CertRent Open API
Проверенные арендаторы по запросу.
Подключите арендатора, запросите его согласие и получите подтверждённый банком доход, историю аренды, личность и рекомендации арендодателей с проверенным правом собственности — через один REST API. Квитанции о согласии и правила проверки для каждого рынка приходят с каждым ответом.
Ключи sandbox выдаются мгновенно и бесплатны навсегда. Live-ключи требуют короткой проверки.
Проверьтесь один раз — подавайте заявки где угодно
Арендаторы, которых вы подключаете, создают один профиль, который остаётся с ними. Если они уже прошли проверку для другого объекта, ваш запрос может быть одобрен за секунды — без повторной проверки и повторной оплаты.
По умолчанию — только с разрешения арендатора
Ничего из подтверждённых данных нельзя прочитать без ограниченного по объёму и по времени согласия арендатора. Каждое согласие создаёт квитанцию, которую могут проверить обе стороны.
Соответствие требованиям — прямо в интеграции
Спросите любой эндпоинт, какие правила действуют в Нью-Йорке или Лос-Анджелесе — ограничения сборов, защита источника дохода, сроки fair-chance, обязанности при неблагоприятном решении — и подавайте свои неблагоприятные решения через API.
Быстрый старт
От нуля до решения по проверке
В sandbox подключение арендатора мгновенно создаёт синтетического, полностью проверенного — так вы можете построить всю интеграцию ещё до того, как её коснётся хоть один реальный соискатель.
1. Подключите арендатора (бесплатно)
POST /renters
curl -X POST https://certrent.com/api/v1/renters \
-H "Authorization: Bearer ck_test_…" \
-H "Content-Type: application/json" \
-d '{
"email": "applicant@example.com",
"name": "Dana Ruiz",
"property": "120 W 45th St",
"unit": "7B",
"market": "nyc",
"external_id": "your-crm-id-4471"
}'
$res = Http::withToken('ck_test_…')
->post('https://certrent.com/api/v1/renters', [
'email' => 'applicant@example.com',
'name' => 'Dana Ruiz',
'property' => '120 W 45th St',
'unit' => '7B',
'market' => 'nyc',
'external_id' => 'your-crm-id-4471',
])->json();
$renterId = $res['id'];
const res = await fetch('https://certrent.com/api/v1/renters', {
method: 'POST',
headers: {
Authorization: 'Bearer ck_test_…',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'applicant@example.com',
name: 'Dana Ruiz',
property: '120 W 45th St',
unit: '7B',
market: 'nyc',
external_id: 'your-crm-id-4471',
}),
});
const renter = await res.json();
import requests
renter = requests.post(
'https://certrent.com/api/v1/renters',
headers={'Authorization': 'Bearer ck_test_…'},
json={
'email': 'applicant@example.com',
'name': 'Dana Ruiz',
'property': '120 W 45th St',
'unit': '7B',
'market': 'nyc',
'external_id': 'your-crm-id-4471',
},
).json()
2. Запросите согласие арендатора
POST /renters/{id}/access-requests
curl -X POST https://certrent.com/api/v1/renters/42/access-requests \
-H "Authorization: Bearer ck_test_…" \
-H "Content-Type: application/json" \
-d '{
"scopes": ["read:identity","read:income","read:rent_history","read:decision"],
"purpose": "Tenant screening for 120 W 45th St, Unit 7B",
"expires_in_days": 30
}'
Http::withToken('ck_test_…')->post("https://certrent.com/api/v1/renters/{$renterId}/access-requests", [
'scopes' => ['read:identity', 'read:income', 'read:rent_history', 'read:decision'],
'purpose' => 'Tenant screening for 120 W 45th St, Unit 7B',
'expires_in_days' => 30,
]);
await fetch(`https://certrent.com/api/v1/renters/${renter.id}/access-requests`, {
method: 'POST',
headers: { Authorization: 'Bearer ck_test_…', 'Content-Type': 'application/json' },
body: JSON.stringify({
scopes: ['read:identity', 'read:income', 'read:rent_history', 'read:decision'],
purpose: 'Tenant screening for 120 W 45th St, Unit 7B',
expires_in_days: 30,
}),
});
requests.post(
f"https://certrent.com/api/v1/renters/{renter['id']}/access-requests",
headers={'Authorization': 'Bearer ck_test_…'},
json={
'scopes': ['read:identity', 'read:income', 'read:rent_history', 'read:decision'],
'purpose': 'Tenant screening for 120 W 45th St, Unit 7B',
'expires_in_days': 30,
},
)
3. Получите решение
GET /renters/{id}/decision?rent=3200
curl "https://certrent.com/api/v1/renters/42/decision?rent=3200" \
-H "Authorization: Bearer ck_test_…"
$decision = Http::withToken('ck_test_…')
->get("https://certrent.com/api/v1/renters/{$renterId}/decision", ['rent' => 3200])
->json();
const decision = await (await fetch(
`https://certrent.com/api/v1/renters/${renter.id}/decision?rent=3200`,
{ headers: { Authorization: 'Bearer ck_test_…' } },
)).json();
decision = requests.get(
f"https://certrent.com/api/v1/renters/{renter['id']}/decision",
headers={'Authorization': 'Bearer ck_test_…'},
params={'rent': 3200},
).json()
Объект решения
Подтверждённые факты и коэффициент доступности аренды — никогда не балл и никогда не одобрение или отказ. Решение остаётся за вами.
{
"profile_id": 318,
"completeness": 100,
"rentready": true,
"verified": { "identity": true, "income": true, "rent_history": true, "references": true },
"income": { "monthly_income_verified": 9400.0, "method": "bank_connected" },
"affordability": {
"status": "meets_standard",
"rent": 3200.0,
"income_to_rent_ratio": 2.94,
"rent_to_income_percent": 34.0,
"max_affordable_rent": 3133.33
},
"rent_history": { "months_observed": 12, "on_time_payments": 12, "observed_rent": 2820.0 },
"references": { "total": 2, "ownership_verified": 2 },
"confidence": { "level": "high", "income_method": "bank_connected" },
"signals": [
{ "code": "income_bank_connected", "severity": "info",
"message": "Income was read directly from the renter's bank …" }
],
"consent": { "grant_id": 77, "expires_at": "2026-08-25T14:02:11+00:00" }
}
Справочник
Эндпоинты
Базовый URL https://certrent.com/api/v1 · Аутентификация Bearer
| Метод | Путь | Область действия ключа | Что это даёт |
|---|---|---|---|
| GET | /me | — | Ваш клиент, области действия ключей, цены и текущее использование. |
| GET | /usage?period=YYYY-MM | — | Тарифицируемое использование за расчётный период. |
| GET | /compliance?market=nyc|la | — | Правила проверки и обязанности, действующие на этом рынке. |
| POST | /renters | renters:write | Подключите арендатора и пригласите его. Бесплатно. |
| GET | /renters | renters:read | Список подключённых вами арендаторов. Фильтруйте по статусу, эл. почте или external_id. |
| GET | /renters/{id} | renters:read | Одна связь с арендатором и её статус. |
| POST | /renters/{id}/reinvite | renters:write | Отправить приглашение повторно. |
| DELETE | /renters/{id} | renters:write | Удалить вашу связь. Аккаунт арендатора при этом никогда не удаляется. |
| POST | /renters/{id}/access-requests | renters:write | Попросите арендатора дать согласие на конкретные области доступа. |
| GET | /access-grants/{id} | renters:read | Статус согласия, области доступа и срок действия. |
| GET | /access-grants/{id}/receipt | renters:read | Машиночитаемая квитанция о согласии. |
| DELETE | /access-grants/{id} | renters:write | Освободите доступ, который вам больше не нужен. |
| GET | /renters/{id}/decision | renters:read | Объект решения по проверке. Тарифицируется на live. |
| GET | /renters/{id}/profile | renters:read | Полный профиль, на который дано согласие. Тарифицируется на live. |
| GET/POST | /webhooks | renters:read / webhooks:write | Показать список эндпоинтов или создать новый. |
| PATCH/DELETE | /webhooks/{id} | webhooks:write | Обновить или удалить эндпоинт. |
| POST | /webhooks/{id}/test | webhooks:write | Отправить подписанное тестовое событие. |
| GET | /webhooks/{id}/deliveries | renters:read | Посмотрите, что мы отправили и как это прошло. |
| POST | /adverse-actions | renters:write | Зафиксируйте запись об отказе или условном предложении. |
| GET | /adverse-actions | renters:read | Ваша история неблагоприятных решений. |
Чтение и запись одобряются раздельно. Ключ только с renters:read может проверять, но не может подключать.
Области согласия
Их даёт арендатор, а не мы. Всё, что за пределами согласия, просто отсутствует в ответе.
- read:identity
- Подтверждённая личность (имя, статус проверки — никогда ваш документ)
- read:income
- Доход и платёжеспособность, подтверждённые банком
- read:rent_history
- История платежей за аренду
- read:references
- Рекомендации арендодателей с подтверждённым правом собственности
- read:decision
- Общая сводка решения RentReady
Вебхуки
Каждая доставка содержит заголовок CertRent-Signature: t={timestamp},v1={HMAC-SHA256 строки "{timestamp}.{raw body}" с вашим секретом эндпоинта}. Проверьте его, прежде чем доверять полезной нагрузке. При сбое доставка повторяется с задержкой до шести попыток.
- renter.invited
- Арендатор был подключён и приглашён пройти проверку.
- renter.registered
- Приглашённый арендатор создал аккаунт CertRent.
- renter.verified
- Арендатор завершил направление проверки (или все сразу).
- renter.income_updated
- Доход арендатора, подтверждённый через банк, изменился.
- grant.created
- Арендатор дал согласие поделиться с вами своим профилем.
- grant.revoked
- Арендатор отозвал ранее данное согласие.
- rent_report.updated
- Статус передачи данных об аренде арендатора изменился.
Две среды
ck_test_…— Sandbox. Выдаётся мгновенно, бесплатен навсегда. Подключение создаёт синтетического проверенного арендатора, а согласие даётся автоматически, так что вы можете построить весь процесс от начала до конца. Никогда не реальный человек.ck_live_…— Live. Выдаётся после короткой проверки вашей компании и сценария использования. Реальные арендаторы, реальное согласие, с тарификацией.
Данные sandbox и live никогда не смешиваются: ключ видит только свою среду.
Цены
Вы платите за одно: за чтение подтверждённого профиля.
Свяжитесь с нами
- ✓ Подключение и приглашение арендаторов — бесплатно.
- ✓ Запросы согласия, вебхуки, проверки соответствия — бесплатно.
- ✓ Списывается один раз за арендатора в календарный месяц, сколько бы раз вы его ни читали.
- ✓ Sandbox — бесплатно навсегда.
Частые вопросы
Есть ли API для проверки арендаторов?
Да. Open API CertRent позволяет управляющей компании проверять соискателей прямо из собственной системы управления арендой через стандартный REST-интерфейс с секретным ключом. Ключи Sandbox выдаются мгновенно и бесплатно; доступ к Live предоставляется после короткой проверки.
Как подтвердить доход соискателя через API?
CertRent считывает доход из собственного банковского подключения арендатора, а не из загруженных документов, поэтому подделывать расчётный лист попросту нечего. Ваша интеграция подключает соискателя, соискатель даёт согласие, и вы получаете подтверждённый месячный доход вместе с показателем доступности относительно той аренды, под которую идёт проверка.
Должен ли арендатор дать согласие, прежде чем я увижу его профиль?
Да, всегда. Ни одни подтверждённые данные не доступны для чтения, пока арендатор не одобрит именно ваш запрос, выбрав, какие категории вы можете видеть и на какой срок. Каждое одобрение фиксируется квитанцией согласия, и арендатор может отозвать доступ в любой момент.
Сколько стоит API для проверки арендаторов?
Подключение арендаторов, приглашения, получение вебхуков и проверка правил соответствия — бесплатно. Списание происходит только за чтение подтверждённого профиля, один раз за соискателя в календарный месяц. Sandbox бесплатен всегда.
Можно ли использовать один подтверждённый профиль у разных арендодателей?
В этом и смысл сети. Арендатор создаёт один подтверждённый профиль и использует его для каждой заявки, поэтому соискатель, уже проверенный для другого объекта, может одобрить ваш запрос за секунды — без повторной проверки и повторной оплаты.
Готовы приступить?
Зарегистрируйтесь, скопируйте свой sandbox-ключ и сделайте первый вызов за несколько минут.