Stan

CertRent logo CertRent Wynajmuj z pewnością

CertRent Open API

Zweryfikowani najemcy, na żądanie.

Zapisz najemcę, poproś o jego zgodę i odczytaj dochody potwierdzone przez bank, historię czynszu, tożsamość oraz referencje od właścicieli ze sprawdzoną własnością — za pomocą jednego API REST. Każda odpowiedź zawiera potwierdzenia zgody oraz zasady weryfikacji właściwe dla danego rynku.

Klucze testowe (sandbox) są wydawane natychmiast i zawsze są za darmo. Klucze live wymagają krótkiej weryfikacji.

Zweryfikuj się raz, aplikuj wszędzie

Najemcy, których zapisujesz, tworzą jeden profil, który zostaje przy nich. Jeśli byli już zweryfikowani dla innej nieruchomości, Twoja prośba może zostać zatwierdzona w kilka sekund — bez ponownej weryfikacji i ponownej opłaty.

Zaprojektowane wokół zgody najemcy

Żadne zweryfikowane dane nie są dostępne bez zgody najemcy o określonym zakresie i czasie trwania. Każda zgoda generuje potwierdzenie, które obie strony mogą zweryfikować.

Zgodność wbudowana w odpowiedź

Zapytaj dowolny punkt końcowy, jakie zasady obowiązują w NYC lub Los Angeles — limity opłat, ochrona źródła dochodu, terminy fair-chance, obowiązki związane z decyzjami negatywnymi — i zgłaszaj swoje decyzje negatywne przez API.

Szybki start

Od zera do decyzji weryfikacyjnej

W trybie testowym (sandbox) zapisanie najemcy natychmiast tworzy syntetycznego, w pełni zweryfikowanego najemcę — dzięki czemu możesz zbudować całą integrację, zanim dotknie jej choćby jeden prawdziwy kandydat.

1. Zapisz najemcę (za darmo)

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. Poproś najemcę o zgodę

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. Odczytaj decyzję

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()

Obiekt decyzji

Zweryfikowane fakty i wskaźnik zdolności płatniczej — nigdy punktacja, nigdy zatwierdzenie/odmowa. Decyzja zawsze należy do Ciebie.

{
  "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" }
}

Referencja

Punkty końcowe

Bazowy URL https://certrent.com/api/v1 · Uwierzytelnianie Bearer

Metoda Ścieżka Zakres klucza Co to robi
GET /me Twój klient, zakresy kluczy, cennik i bieżące użycie.
GET /usage?period=YYYY-MM Mierzone użycie w okresie rozliczeniowym.
GET /compliance?market=nyc|la Zasady weryfikacji i obowiązki obowiązujące na tym rynku.
POST /renters renters:write Zapisz najemcę i zaproś go. Za darmo.
GET /renters renters:read Wyświetl listę zapisanych najemców. Filtruj według statusu, e-maila lub external_id.
GET /renters/{id} renters:read Jeden link najemcy i jego status.
POST /renters/{id}/reinvite renters:write Wyślij ponownie e-mail z zaproszeniem.
DELETE /renters/{id} renters:write Usuń swoje powiązanie. Nigdy nie usuwa konta najemcy.
POST /renters/{id}/access-requests renters:write Poproś najemcę o zgodę na konkretne zakresy.
GET /access-grants/{id} renters:read Status zgody, zakresy i termin wygaśnięcia.
GET /access-grants/{id}/receipt renters:read Potwierdzenie zgody w formacie odczytywalnym maszynowo.
DELETE /access-grants/{id} renters:write Zwolnij dostęp, którego już nie potrzebujesz.
GET /renters/{id}/decision renters:read Obiekt decyzji weryfikacyjnej. Mierzony w trybie live.
GET /renters/{id}/profile renters:read Pełny profil objęty zgodą. Mierzony w trybie live.
GET/POST /webhooks renters:read / webhooks:write Wyświetl listę lub utwórz punkt końcowy.
PATCH/DELETE /webhooks/{id} webhooks:write Zaktualizuj lub usuń punkt końcowy.
POST /webhooks/{id}/test webhooks:write Wyślij podpisane zdarzenie testowe.
GET /webhooks/{id}/deliveries renters:read Sprawdź, co wysłaliśmy i jak to poszło.
POST /adverse-actions renters:write Zarejestruj odmowę lub ofertę warunkową.
GET /adverse-actions renters:read Twoja historia decyzji negatywnych.

Dostęp do odczytu i zapisu są zatwierdzane osobno. Klucz posiadający wyłącznie renters:read może weryfikować, ale nigdy nie może zapisywać.

Zakresy zgody

To najemca udziela tych uprawnień — nie my. Wszystko, co wykracza poza udzieloną zgodę, po prostu nie pojawia się w odpowiedzi.

read:identity
Zweryfikowana tożsamość (imię i nazwisko, status weryfikacji — nigdy Twój dokument tożsamości)
read:income
Dochody potwierdzone przez bank i zdolność płatnicza
read:rent_history
Historia płatności czynszu
read:references
Referencje od właścicieli ze zweryfikowaną własnością
read:decision
Ogólne podsumowanie decyzji RentReady

Webhooki

Każda dostawa zawiera nagłówek CertRent-Signature: t={timestamp},v1={HMAC-SHA256 ciągu "{timestamp}.{raw body}" przy użyciu sekretu Twojego punktu końcowego}. Zweryfikuj go, zanim zaufasz ładunkowi danych. Błędy są ponawiane z opóźnieniem do sześciu prób.

renter.invited
Najemca został zapisany i zaproszony do weryfikacji.
renter.registered
Zaproszony najemca utworzył swoje konto CertRent.
renter.verified
Najemca ukończył ścieżkę weryfikacji (lub wszystkie ścieżki).
renter.income_updated
Dochody najemcy powiązane z bankiem uległy zmianie.
grant.created
Najemca wyraził zgodę na udostępnienie Ci swojego profilu.
grant.revoked
Najemca odwołał wcześniej udzieloną zgodę.
rent_report.updated
Status raportowania czynszu najemcy uległ zmianie.

What data is actually in here

An honest answer, not a sales pitch: this is renter-consented, source-verified data — not a credit report, and not assembled from third-party bureau files.

Live today

  • Identity verification result (government ID, via Didit)
  • Bank-verified monthly income, employer, income method
  • Verified rent-payment history (months observed, on-time rate)
  • Whether this renter is currently reporting rent to the credit bureaus
  • Referencje od właścicieli ze zweryfikowaną własnością
  • Affordability ratio (rent-to-income), confidence level, fraud/authenticity signals

Not in the API (and why)

  • Credit-bureau data — score, tradelines, delinquencies, collections, inquiries. We don't assemble or resell bureau data today.
  • Raw bank transaction/balance detail — only the verified income figure derived from it.
  • Eviction records or landlord-tenant court history.
  • SSN, date of birth, or the ID document itself — only the fact of verification.

Why: CertRent is not a Consumer Reporting Agency. What you read here is data the renter verified about themselves and consented to share with you — not a report assembled from third-party files. If you combine it with an actual consumer report from elsewhere, your own FCRA obligations for that report still apply — see GET /compliance below.

Dwa środowiska

  • ck_test_… — Sandbox. Wydawany natychmiast, zawsze za darmo. Zapisanie tworzy syntetycznego zweryfikowanego najemcę, a zgoda jest udzielana automatycznie, dzięki czemu możesz zbudować cały proces od początku do końca. Nigdy prawdziwa osoba.
  • ck_live_… — Live. Wydawany po krótkiej weryfikacji Twojej firmy i przypadku użycia. Prawdziwi najemcy, prawdziwa zgoda, z pomiarem użycia.

Dane testowe (sandbox) i produkcyjne nigdy się nie mieszają: klucz widzi wyłącznie swoje własne środowisko.

Cennik

Płacisz za jedną rzecz: odczyt zweryfikowanego profilu.

Porozmawiaj z nami

  • ✓ Zapisywanie i zapraszanie najemców — za darmo.
  • ✓ Prośby o zgodę, webhooki, sprawdzanie zgodności — za darmo.
  • ✓ Naliczane raz na najemcę w miesiącu kalendarzowym, niezależnie od tego, ile razy odczytasz jego dane.
  • ✓ Sandbox — zawsze za darmo.

Najczęściej zadawane pytania

Czy istnieje API do weryfikacji najemców?

Tak. CertRent Open API pozwala firmie zarządzającej nieruchomościami weryfikować kandydatów bezpośrednio z własnego oprogramowania do wynajmu, za pomocą standardowego interfejsu REST z kluczem tajnym. Klucze testowe (sandbox) są wydawane natychmiast i są bezpłatne; dostęp live jest przyznawany po krótkiej weryfikacji.

Jak zweryfikować dochody kandydata za pomocą API?

CertRent odczytuje dochody bezpośrednio z połączenia bankowego najemcy, a nie z przesłanych dokumentów, więc nie ma odcinka wypłaty do sfałszowania. Twoja integracja zapisuje kandydata, kandydat wyraża zgodę, a Ty otrzymujesz zweryfikowane miesięczne dochody wraz ze wskaźnikiem zdolności płatniczej względem czynszu, który weryfikujesz.

Czy najemca musi wyrazić zgodę, zanim będę mógł zobaczyć jego profil?

Tak, zawsze. Żadne zweryfikowane dane nie są dostępne, dopóki ten najemca nie zatwierdzi Twojej konkretnej prośby, wybierając, które kategorie możesz zobaczyć i przez jak długo. Każde zatwierdzenie generuje potwierdzenie zgody, a najemca może odwołać dostęp w dowolnym momencie.

Ile kosztuje API do weryfikacji najemców?

Zapisywanie najemców, zapraszanie ich, odbieranie webhooków i sprawdzanie zasad zgodności są zawsze bezpłatne. Płacisz tylko wtedy, gdy odczytujesz zweryfikowany profil, raz na kandydata w miesiącu kalendarzowym. Sandbox jest zawsze za darmo.

Czy jeden zweryfikowany profil można wykorzystać u różnych właścicieli?

Na tym właśnie polega ta sieć. Najemca buduje jeden zweryfikowany profil i wykorzystuje go przy każdym wniosku, więc kandydat już zweryfikowany dla innej nieruchomości może zatwierdzić Twoją prośbę w kilka sekund, zamiast być ponownie weryfikowanym i obciążanym opłatą.

Gotowy, aby zacząć budować?

Zarejestruj się, skopiuj swój klucz testowy (sandbox) i wykonaj pierwsze wywołanie w kilka minut.