Pre vývojárov
Partnerské API
Pošlite nám klienta pod vlastným pseudonymným identifikátorom - bez e-mailu, mena a ďalších osobných údajov - a kedykoľvek si prečítajte stav jeho vzdelávania. Slúži ako compliance check pred zmluvou, vkladom alebo výplatou.
Verzia 1.3.2 · JSON cez HTTPS · OpenAPI
Ako to funguje
API je pre všetkých partnerov rovnaké. V piatich krokoch:
- API vám pre firmu zapneme; vo svojej administrácii si v záložke API vytvoríte API kľúč.
- Keď sa má klient vyškoliť, váš systém zavolá POST /v1/users s vaším identifikátorom klienta.
- Založíme profil bez e-mailu a vrátime vstupný odkaz (entryUrl); ten klientovi ukážete ako tlačidlo.
- Klient naň klikne a je rovno v kurze.
- Stav si kedykoľvek prečítate cez GET /v1/users/{identifier}, alebo ho vášmu serveru oznámime webhookom.
Prevádzkovateľom identifikátora ste vy, my spracúvame iba pseudonymné údaje. Ako identifikátor nikdy neposielajte e-mail ani meno - e-mailovú adresu API odmietne chybou 422.
Adresa a autentifikácia
Každé volanie ide cez HTTPS na adresu nižšie a nesie váš API kľúč v hlavičke Authorization.
https://api.responsiblo.com Authorization: Bearer rsb_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- rsb_live_... otvára váš produkčný program, rsb_test_... váš testovací program (sandbox).
- Kľúč sa zobrazí iba raz, pri vytvorení; ukladáme si iba jeho odtlačok. Majte ho ako tajomstvo na svojom serveri - nikdy v prehliadači ani v aplikácii.
- Kľúč má oprávnenia: read (stav a zoznam osôb, certifikát) a write (posielanie a anonymizácia osôb). Môže byť obmedzený na vaše IP adresy a mať platnosť.
- Výmena: vytvoríte nový kľúč, starý platí ešte 7 dní, potom vyprší.
- Odpovede sa nikdy neukladajú do vyrovnávacej pamäte (Cache-Control: no-store) a API neprijíma volania z prehliadača (bez CORS).
POST /v1/users
Pošle osobu do programu kľúča (oprávnenie write).
curl -X POST https://api.responsiblo.com/v1/users \
-H "Authorization: Bearer $RSB_KEY" \
-H "Content-Type: application/json" \
-d '{"identifier":"client-48213","language":"cs","label":"campaign-2026-10"}'
| Pole | Povinné | Význam |
|---|---|---|
identifier |
áno | Váš pseudonym osoby, 1 až 64 znakov A-Z a-z 0-9 . _ : @ -; nikdy e-mailová adresa (odmietnutá chybou 422). |
program |
nie | Kód programu; keď ho uvediete, musí to byť program kľúča. |
language |
nie | Jazyk kurzu (cs, en, ...); predvolený je prvý jazyk programu. |
label |
nie | Váš štítok - kohorta alebo kampaň, 1 až 64 znakov, nikdy osobný údaj. |
expiresAt |
nie | Posledný deň prístupu, RRRR-MM-DD. |
201 Created pre novú osobu, 200 OK, keď identifikátor už existuje - nič sa nemení, volanie možno bezpečne opakovať. Telo je stav nižšie aj s entryUrl. Vyčerpaný limit osôb alebo licencie programu vracia 403.
GET /v1/users/{identifier}
Stav osoby (oprávnenie read): to, čo compliance check potrebuje, nič navyše.
curl https://api.responsiblo.com/v1/users/client-48213 -H "Authorization: Bearer $RSB_KEY"
{
"identifier": "client-48213",
"program": "your-program",
"status": "in_progress",
"progress": 43,
"lessonsCompleted": 3,
"lessonsTotal": 7,
"quizScore": null,
"label": "campaign-2026-10",
"createdAt": "2026-10-20T10:02:11Z",
"startedAt": "2026-10-20T10:05:40Z",
"completedAt": null,
"lastActivityAt": "2026-10-20T10:31:40Z",
"expiresAt": null,
"certificate": null,
"entryUrl": "https://your-company.responsiblo.com/entry/..."
}
status | Význam |
|---|---|
enrolled |
poslaná, ešte nevstúpila |
started |
vstúpila, zatiaľ nič nedokončila |
in_progress |
má dokončené lekcie, program ešte nie |
completed |
program je dokončený (completedAt) |
expired |
prístup skončil (uplynul expiresAt; osoba v sandboxe končí po 7 dňoch) |
quizScore je výsledok záverečného kvízu v %, len čo je dokončený. Časy sú v UTC na celé sekundy. Pole certificate nesie certifikát osoby (pozri nižšie), kým ho nemá, je null.
?include=detail
Pridá postup v každom kurze a výsledok každého kvízu - nikdy jednotlivé odpovede.
"courses": [{"id": "733db340-...", "name": "Introduction", "progress": 40, "lessonsCompleted": 2, "lessonsTotal": 5, "completed": false}],
"quizzes": [{"id": "d2e72fd7-...", "name": "Quiz of the introduction", "score": 85, "completedAt": "2026-10-20T10:31:40Z"}]
GET /v1/users
Zoznam osôb, ktoré ste poslali do programu kľúča (oprávnenie read), po stránkach: každá položka má tvar stavu vyššie. Voliteľne status (iba osoby v tomto stave), limit (1 až 500, predvolene 100) a cursor.
curl "https://api.responsiblo.com/v1/users?status=completed&limit=100" -H "Authorization: Bearer $RSB_KEY"
{
"items": [{ "identifier": "client-48213", "status": "completed", "...": "the state of GET /v1/users/{identifier}" }],
"nextCursor": "MjAyNi0xMC0yMFQxMDowMjoxMVp8...",
"limit": 100
}
curl "https://api.responsiblo.com/v1/users?status=completed&limit=100&cursor=MjAyNi0xMC0yMFQxMDowMjoxMVp8..." -H "Authorization: Bearer $RSB_KEY"
- Pokračujte s cursor = nextCursor, kým nextCursor nie je null; kurzor je nepriehľadný text, nikdy ho neskladajte sami.
- Osoby idú podľa okamihu poslania v stálom poradí (aj pri rovnakom okamihu), žiadna dvakrát; anonymizované osoby v zozname nie sú.
- S filtrom status prejdeme pre jednu stránku najviac 2000 osôb, stránka preto môže mať menej položiek ako limit, aj žiadnu - pokračujte, kým je nextCursor.
Certifikát osoby
Len čo osoba program dokončí, vydá jej kurz certifikát - pod jej pseudonymom (prezývka profilu ID XXXXXX), bez mena a bez e-mailu. Nič sa neposiela e-mailom; v stave osoby je pole certificate s číslom, časmi a verejnou overovacou stránkou a PDF si stiahnete cez GET /v1/users/{identifier}/certificate.
"certificate": {
"number": "RSP-7KQ2-M4XH-9TWB",
"issuedAt": "2026-10-20T10:39:15Z",
"expiresAt": "2028-10-20T10:39:12Z",
"verifyUrl": "https://responsiblo.com/verify/RSP-7KQ2-M4XH-9TWB"
}
curl https://api.responsiblo.com/v1/users/client-48213/certificate -H "Authorization: Bearer $RSB_KEY" -o client-48213.pdf
- Overovacia stránka verifyUrl ukáže iba pseudonym, program, partnera a platnosť - nikdy váš identifikátor.
- PDF vracia application/pdf (oprávnenie read). Bez certifikátu odpoveď 404 certificateNotFound, keď sa PDF ešte vyrába, 404 certificatePdfNotReady s Retry-After.
- Zrušený certifikát sa nikdy nevydá (pole certificate je potom null, PDF 404); certifikát s uplynutou platnosťou zostáva pravdivým dokladom a vydá sa.
- Webhook oznámi certifikát udalosťou certificate.issued (hneď po user.completed).
DELETE /v1/users/{identifier}
Anonymizuje osobu (oprávnenie write): z profilu zmizne váš identifikátor, štítok a každá správa webhooku, ktorá ho menuje; vstupné odkazy prestanú platiť. Certifikát a výsledok kurzu zostanú pod číslom certifikátu - ako compliance doklad.
curl -X DELETE https://api.responsiblo.com/v1/users/client-48213 -H "Authorization: Bearer $RSB_KEY" HTTP/1.1 204 No Content
Odpoveď 204 bez tela; každé ďalšie volanie toho istého identifikátora vráti 404 userNotFound, opakovanie je teda bezpečné. Rovnaký identifikátor potom môžete poslať znova ako novú osobu.
Vstupný odkaz
entryUrl ukážte osobe (tlačidlo Spustiť kurz vo vašom systéme). Prihlási ju do kurzu - bez e-mailu a bez hesla.
Odkaz platí 30 dní a možno ho použiť opakovane; každé volanie GET /v1/users/{identifier} vráti nový. Nikdy ho neposielajte nikomu inému: kto odkaz má, vstúpi ako tá osoba.
Webhooky
V záložke API svojej administrácie nastavíte jeden webhook pre každý program: verejnú HTTPS adresu svojho servera a udalosti. Potom vám posielame POST s JSON - iba identifikátory a stavy, nikdy vstupný odkaz.
| Udalosť | Kedy |
|---|---|
user.enrolled |
osoba bola poslaná (prvýkrát, keď ju váš webhook pozná) |
user.started |
osoba vstúpila do kurzu |
user.completed |
osoba dokončila program |
certificate.issued |
osoba získala certifikát; data nesú certificate (číslo, časy, verifyUrl) |
user.expired |
osobe skončil prístup |
POST https://your-server.example/responsiblo/webhook
Content-Type: application/json
X-Responsiblo-Event: user.completed
X-Responsiblo-Delivery: 5b0c1f9e-2d1a-4a57-9a3e-0d6c9c1f2b77
X-Responsiblo-Signature: t=1792492800,v1=3f1c...e9
{
"id": "5b0c1f9e-2d1a-4a57-9a3e-0d6c9c1f2b77",
"type": "user.completed",
"createdAt": "2026-10-20T10:40:00Z",
"apiVersion": "1.3.2",
"program": "your-program",
"data": {
"identifier": "client-48213",
"status": "completed",
"progress": 100,
"lessonsCompleted": 7,
"lessonsTotal": 7,
"quizScore": 85,
"label": "campaign-2026-10",
"startedAt": "2026-10-20T10:05:40Z",
"completedAt": "2026-10-20T10:39:12Z",
"expiresAt": null
}
}
Podpis
Každá správa nesie hlavičku X-Responsiblo-Signature: t=<unixový čas>,v1=<HMAC-SHA256 textu t.telo s tajomstvom webhooku, hex>. Tajomstvo (whsec_...) sa zobrazí raz pri vytvorení webhooku. Skôr než správe uveríte, overte podpis aj vek t; ako kľúč idempotencie použite X-Responsiblo-Delivery.
// PHP: $secret = "whsec_...", $header = X-Responsiblo-Signature, $body = the raw body
preg_match('/^t=(\d+),v1=([0-9a-f]{64})$/', $header, $m);
$valid = $m
&& abs(time() - (int) $m[1]) <= 300
&& hash_equals(hash_hmac('sha256', $m[1] . '.' . $body, $secret), $m[2]);
Doručenie a opakovanie
Doručené = odpoveď 2xx do 10 sekúnd. Inak to skúsime znova o 1 minútu, 5 minút, 30 minút, 2 hodiny a 12 hodín, potom to vzdáme. Presmerovania nesledujeme.
20 nedoručených správ za sebou webhook vypne, kým ho znova nezapnete; správy z toho času počkajú. Tlačidlo Test pošle ping; log doručení nájdete vo svojej administrácii.
Udalosť certificate.issued pridáte webhooku v jeho nastaveniach; webhook založený pred verziou 1.2 ju sám nedostáva.
Chyby
Každá chyba má jeden tvar: status, code, reason a message; chyba 422 pridá errors (pole - čo je zle).
{ "status": "error", "code": 422, "reason": "invalidBody", "message": "The body is not valid.",
"errors": { "identifier": "identifier must be a pseudonym of the partner, never an e-mail address" } }
| HTTP | reason | Čo robiť |
|---|---|---|
| 400 | invalidJson |
pošlite jeden objekt JSON |
| 401 | missingToken, invalidToken |
pošlite platný kľúč (zrušený a prešlý kľúč vyzerajú rovnako); hlavička WWW-Authenticate hovorí Bearer |
| 403 | scopeDenied, ipNotAllowed, apiDisabled, partnerInactive, spaceUnavailable, httpsRequired, userLimitReached, seatsExhausted |
kľúč toto nesmie, API je pre vašu firmu vypnuté, alebo je program plný |
| 404 | userNotFound, notFound |
v programe kľúča nie je osoba s týmto identifikátorom (ani anonymizovaná) |
| 404 | certificateNotFound, certificatePdfNotReady |
osoba zatiaľ certifikát nemá, alebo sa jeho PDF vyrába - skúste to po Retry-After |
| 409 | identifierTaken |
identifikátor patrí osobe iného programu |
| 422 | invalidBody, invalidParameter |
pozri errors (pole tela alebo parameter dopytu - čo je zle) |
| 429 | rateLimited |
počkajte Retry-After sekúnd |
| 500 | internalError |
skúste to neskôr; našej podpore uveďte incidentId |
Pre programy a agentov
- Rozhodujte podľa code a reason, nikdy podľa textu message; errors je objekt pole -> čo je zle.
- Opakujte iba 429, 500 a certificatePdfNotReady, a to po Retry-After sekundách (inak s rastúcim odstupom); 4xx okrem 429 bez opravy volania neopakujte.
- POST /v1/users je idempotentné podľa identifier (201 prvýkrát, potom 200); DELETE vráti 204 prvýkrát a 404 potom - obe možno bezpečne opakovať.
- Webhook deduplikujte podľa X-Responsiblo-Delivery; poradie správ nie je zaručené, rozhoduje stav v data.
Sprievodca pôžičkou
Sprievodca pôžičkou je krátky kurz pre žiadateľa u poskytovateľa pôžičky: pred podpisom zmluvy prejde tri lekcie, osem praktických situácií a prípadne kvíz, všetko nad číslami svojej vlastnej ponuky, a na konci ponuku potvrdí. Na každej obrazovke môže požiadať o vysvetlenie. Ponuku pošlete cez API, dostanete vstupný odkaz a výsledok vám oznámi webhook.
Sprievodcu pôžičkou aktivujeme po dohode s vami.
Žiadateľ je aj tu iba váš pseudonymný profil z POST /v1/users. Ponuku určujú vaše referencie (externalApplicationId, offerReference) a dokumenty iba odkaz s odtlačkom SHA-256 - nikdy meno, e-mail, rodné číslo, číslo účtu ani telefón. responsiblo pôžičku neschvaľuje, dokumenty nesťahuje ani neukladá, totožnosť neoveruje a k sprievodcovi nevydáva certifikát.
- Založíte profil žiadateľa: POST /v1/users s vaším pseudonymom.
- Pošlete ponuku: POST /v1/users/{identifier}/loan-offers; odpoveď 201 nesie entryUrl.
- entryUrl odovzdáte žiadateľovi svojím overeným kanálom. Odkaz platí 30 dní a možno ho použiť opakovane; sprievodca ukáže čísla jeho ponuky.
- Koniec sa dozviete webhookom (loanGuide.completed, loanGuide.assistanceRequested a ďalšie).
- Stav si prečítate cez GET …/loan-offers/{offerReference}, záznam pre svoj spis cez GET …/evidence. Zmenená ponuka = nová ponuka so supersedes, stiahnutá žiadosť = POST …/cancel.
Do aktivácie odpovedajú operácie sprievodcu 404 notFound alebo 409 loanGuideNotConfigured. Oprávnenie write posiela a ruší ponuku, read číta stav a evidenciu.
POST /v1/users/{identifier}/loan-offers
Pošle ponuku k profilu žiadateľa (oprávnenie write). Voliteľná hlavička Idempotency-Key má 1 až 255 viditeľných znakov ASCII. Príklad: pôžička 10 000 CZK, na zaplatenie 10 800 CZK jednou platbou 30 dní po výplate, RPMN 155,10 %.
curl -X POST https://api.responsiblo.com/v1/users/applicant-30417/loan-offers \
-H "Authorization: Bearer $RSB_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: offer-30417-1" \
-d '{
"externalApplicationId": "APP-30417",
"offerReference": "OFF-30417-1",
"locale": "cs-CZ",
"currency": "CZK",
"principalMinor": 1000000,
"disbursedAmountMinor": 1000000,
"totalPayableMinor": 1080000,
"aprPercent": "155.10",
"interestRate": { "percent": "8", "period": "month" },
"repayment": {
"type": "singlePayment",
"amountMinor": 1080000,
"due": { "kind": "relative", "days": 30, "anchor": "disbursement" }
},
"documents": [
{ "role": "precontract_information", "reference": "DOC-PRE-30417", "title": "Předsmluvní informace",
"url": "https://documents.lender.example/pre/30417.pdf",
"sha256": "623f4a37e444268c076896d6c2f389b46f568d1a26539b013f2ba25d03846f72" },
{ "role": "contract_package", "reference": "DOC-CON-30417", "title": "Smlouva a podmínky",
"url": "https://documents.lender.example/contract/30417.pdf",
"sha256": "9c7bfe0077d1189914f0e1c483c961f4c5b36e9892385f3d2ab6168e0c088aa6" }
],
"validUntil": "2026-11-15T18:00:00Z"
}'
HTTP/1.1 201 Created
{
"offerReference": "OFF-30417-1",
"externalApplicationId": "APP-30417",
"offerStatus": "active",
"guideStatus": "created",
"validUntil": "2026-11-15T18:00:00Z",
"snapshotSha256": "8055bfa3c5f2c163691b85785eaf61221169a123bed67aff2c1dbaf2a8e44e7e",
"entryUrl": "https://your-company.responsiblo.com/entry/...",
"createdAt": "2026-11-10T09:14:05Z"
}
| Pole | Povinné | Význam |
|---|---|---|
externalApplicationId |
áno | Vaše číslo žiadosti, 1 až 128 znakov A-Z a-z 0-9 . _ : -; nikdy e-mailová adresa. |
offerReference |
áno | Vaša referencia ponuky, rovnaké pravidlá ako externalApplicationId. |
locale |
áno | Jazyk a krajina sprievodcu: cs-CZ. |
currency |
áno | Mena: CZK. |
principalMinor |
áno | Výška pôžičky v halieroch, celé číslo 1 až 10 000 000 000. |
disbursedAmountMinor |
áno | Vyplatená suma v halieroch; musí sa rovnať výške pôžičky. |
totalPayableMinor |
áno | Celková suma na zaplatenie v halieroch; najmenej výška pôžičky a presne súčet platieb. |
aprPercent |
áno | RPMN v percentách ako text ("155.10"), vypočítaná a garantovaná vami. Kladné náklady s RPMN 0 API odmietne. |
interestRate |
nie | Úroková sadzba {percent, period}, period = year, month alebo day. |
repayment |
áno | Splácanie: singlePayment {amountMinor, due} s dátumom (kind date) alebo počtom dní od výplaty (kind relative, 1 až 365), alebo installments {schedule: [{date, amountMinor}]} s 1 až 360 splátkami vo vzostupnom poradí, žiadna v minulosti. Typ musí zodpovedať produktu nastavenému pre vášho sprievodcu. |
documents |
áno | 2 až 10 dokumentov {role, reference, title, url, sha256}; pokryté roly, ktoré vyžadujú nastavenia vášho sprievodcu (predvolene precontract_information a contract_package). url iba HTTPS na hoste povolenom v nastaveniach vášho sprievodcu, najviac 2 048 znakov, bez prihlasovacích údajov; sha256 = 64 hexadecimálnych znakov, ktoré deklarujete vy. |
validUntil |
áno | Platnosť ponuky, RFC 3339 s časovým posunom, v budúcnosti a najviac 7 dní dopredu. |
supersedes |
nie | offerReference aktívnej ponuky toho istého profilu, ktorú nová ponuka nahrádza. |
returnUrl |
nie | Nepovinné: adresa, kam žiadateľa po dokončení sprievodcu vráti stránka Hotovo. Len absolútna HTTPS adresa, najviac 2 048 znakov, bez prihlasovacích údajov; symboly {offerReference} a {externalApplicationId} nahradíme referenciami ponuky. Bez nej platí adresa návratu z nastavení vášho sprievodcu. |
Rovnaké telo znova (pod rovnakými referenciami alebo rovnakým Idempotency-Key) vráti 200 s existujúcou ponukou a novým entryUrl; iné telo pod nimi vráti 409 offerConflict. Profil má jednu aktívnu ponuku: ďalšia bez supersedes vráti 409 activeOfferExists, chybné supersedes 409 notSupersedable. Nastavenia vášho sprievodcu (kvíz, kontakt) sa v tej chvíli k ponuke uzamknú.
Stav, evidencia a zrušenie
GET /v1/users/{identifier}/loan-offers/{offerReference}- stav (oprávnenie read): offerStatus (active, expired, superseded, cancelled), guideStatus (created, in_progress, completed), dokončené lekcie, prax, kvíz (null, keď je vypnutý) a okamihy predloženia ponuky, potvrdenia a žiadosti o vysvetlenie. Nikdy odpovede, hodnoty ponuky ani odkaz. Dokončenie zostáva, aj keď ponuka neskôr vyprší.GET /v1/users/{identifier}/loan-offers/{offerReference}/evidence- záznam pre váš spis (oprávnenie read): schemaVersion loan-guide-evidence/1, snímka vašej ponuky s odtlačkom snapshotSha256, vydanie kurzu s odtlačkami lekcií, udalosti v poradí sequence, každá odpoveď so všetkými pokusmi, potvrdenie a limitations - čo záznam nedokazuje (predložené neznamená prečítané, totožnosť tvrdíte vy, dokumenty iba odkazom, žiadny certifikát, žiadne schválenie pôžičky).POST /v1/users/{identifier}/loan-offers/{offerReference}/cancel- zruší aktívnu ponuku (oprávnenie write), reasonCode = withdrawn_by_provider alebo application_closed; 200 vráti stav, ponuka, ktorá nie je aktívna alebo má dokončeného sprievodcu, vráti 409 notActive.
curl https://api.responsiblo.com/v1/users/applicant-30417/loan-offers/OFF-30417-1 -H "Authorization: Bearer $RSB_KEY"
{
"offerReference": "OFF-30417-1",
"externalApplicationId": "APP-30417",
"offerStatus": "active",
"guideStatus": "completed",
"quizEnabled": true,
"lessonsCompleted": 3,
"lessonsTotal": 3,
"practiceCompleted": true,
"quizPassed": true,
"offerPresentedAt": "2026-11-10T18:32:47Z",
"confirmedAt": "2026-11-10T18:34:02Z",
"completedAt": "2026-11-10T18:34:02Z",
"assistanceRequested": false,
"assistanceRequestedAt": null,
"validUntil": "2026-11-15T18:00:00Z",
"evidenceErased": false,
"...": "..."
}
curl -X POST https://api.responsiblo.com/v1/users/applicant-30417/loan-offers/OFF-30417-1/cancel \
-H "Authorization: Bearer $RSB_KEY" \
-H "Content-Type: application/json" \
-d '{"reasonCode":"withdrawn_by_provider"}'
?externalApplicationId= je potrebné, iba keď jedna offerReference patrí k viacerým žiadostiam profilu (inak 409 ambiguousOfferReference).
Webhooky sprievodcu
Webhook programu (pozri Webhooky) dostáva udalosti sprievodcu bez osobitného odberu. Podpis, doručenie a opakovanie sú rovnaké ako pri ostatných udalostiach; data nesú identifier, offerReference, externalApplicationId, guideStatus, occurredAt a sequence (poradie udalostí jednej ponuky) - nikdy evidenciu, hodnoty ponuky ani vstupný odkaz.
| Udalosť | Kedy |
|---|---|
loanGuide.completed |
žiadateľ prešiel sprievodcom a ponuku potvrdil |
loanGuide.assistanceRequested |
žiadateľ požiadal o vysvetlenie (zavolajte mu) |
loanGuide.expired |
ponuke uplynulo validUntil |
loanGuide.superseded |
ponuku nahradila nová (supersedes) |
loanGuide.cancelled |
ponuku ste zrušili |
POST https://your-server.example/responsiblo/webhook
Content-Type: application/json
X-Responsiblo-Event: loanGuide.completed
X-Responsiblo-Delivery: 0f6e2a4c-91d3-4b8e-a7c5-3e2d1b9f6a08
X-Responsiblo-Signature: t=1794335647,v1=8b2d...4c
{
"id": "0f6e2a4c-91d3-4b8e-a7c5-3e2d1b9f6a08",
"type": "loanGuide.completed",
"createdAt": "2026-11-10T18:34:07Z",
"apiVersion": "1.3.2",
"program": "your-program",
"data": {
"identifier": "applicant-30417",
"offerReference": "OFF-30417-1",
"externalApplicationId": "APP-30417",
"guideStatus": "completed",
"occurredAt": "2026-11-10T18:34:02Z",
"sequence": 23
}
}
Každá udalosť príde jednému webhooku najviac raz (kľúč idempotencie = X-Responsiblo-Delivery). Webhook založený neskôr staršie udalosti neprehráva a udalosti staršie ako 28 dní sa už neoznamujú.
Retencia evidencie
Keď cesta ponuky skončí (dokončená, zrušená, expirovaná alebo nahradená ponuka), beží doba uchovania z nastavení vášho sprievodcu (predvolene 30 dní). Potom sa evidencia zmaže: GET …/evidence vráti 410 evidenceErased a stav ďalej odpovedá s evidenceErased: true, referenciami a okamihmi. Aktívna ponuka sa nikdy nemaže. Evidenciu, ktorú musíte uchovať, si stiahnite hneď po loanGuide.completed.
Chyby sprievodcu
Chyby majú tvar API vyššie. Navyše pre sprievodcu:
| HTTP | reason | Čo robiť |
|---|---|---|
| 404 | offerNotFound |
profil takú ponuku nemá (userNotFound = profil neexistuje) |
| 409 | offerConflict, activeOfferExists, notSupersedable |
referencie alebo Idempotency-Key už patria inému telu, alebo má profil inú aktívnu ponuku - pošlite supersedes |
| 409 | loanGuideNotConfigured |
sprievodca nie je pre váš program aktivovaný - napíšte nám |
| 409 | ambiguousOfferReference |
doplňte ?externalApplicationId= |
| 409 | notActive |
ponuka nie je aktívna alebo má dokončeného sprievodcu |
| 410 | evidenceErased |
evidencia bola po retencii zmazaná, stav zostáva |
| 422 | invalidOffer |
errors = {cesta: kód[,kód]} s cestou v tele (repayment.schedule[2].date, documents[0].url); kódy v tabuľke nižšie |
| 422 | invalidBody |
supersedes, Idempotency-Key alebo telo zrušenia |
errors | Kódy chyby invalidOffer |
|---|---|
required |
pole chýba |
invalidFormat |
zlý tvar (typ, vzor, dĺžka, odkaz bez HTTPS alebo s prihlasovacími údajmi) |
outOfRange |
mimo povoleného rozsahu (suma, počet dokumentov, splátok alebo dní) |
notEqualPrincipal |
vyplatená suma sa nerovná výške pôžičky |
sumMismatch |
súčet platieb sa nerovná celkovej sume na zaplatenie |
belowPrincipal |
celková suma na zaplatenie je nižšia ako výška pôžičky |
aprContradiction |
RPMN 0 pri kladných nákladoch |
typeMismatch |
typ splácania nezodpovedá produktu nastavenému pre vášho sprievodcu |
missingRole |
chýba dokument s rolou, ktorú vyžadujú nastavenia vášho sprievodcu |
hostNotAllowed |
odkaz dokumentu smeruje na host, ktorý nastavenia vášho sprievodcu nepovoľujú |
notAscending |
dátumy splátok nejdú vzostupne alebo sa opakujú |
inPast |
dátum splátky alebo validUntil je v minulosti |
tooFar |
validUntil je viac ako 7 dní dopredu |
unsupported |
nepodporovaná hodnota (locale, currency, type, period, kind) |
unknownField |
pole, ktoré API nepozná |
looksLikeEmail |
referencia vyzerá ako e-mailová adresa |
Chyba nikdy neopakuje hodnotu, ktorú ste poslali. Príklad: rovnaká ponuka s platbou 10 700 CZK namiesto 10 800 CZK a platnosťou 9 dní:
"repayment": { "type": "singlePayment", "amountMinor": 1070000, "due": { "kind": "relative", "days": 30, "anchor": "disbursement" } },
"validUntil": "2026-11-19T18:00:00Z"
HTTP/1.1 422 Unprocessable Entity
{
"status": "error",
"code": 422,
"reason": "invalidOffer",
"message": "The offer contains invalid data.",
"errors": {
"repayment.amountMinor": "sumMismatch",
"validUntil": "tooFar"
}
}
Limity
120 volaní za minútu na kľúč. Po 30 odmietnutých kľúčoch z jednej adresy počas desiatich minút adresa 10 minút čaká.
Log volaní (bez tiel, identifikátor iba ako odtlačok SHA-256) uchovávame 180 dní, doručené a vzdané správy webhookov 30 dní.
Stav a kontrakt
GET /v1/status- bez kľúča, vracia {"status":"ok","version":"1.3.2"}GET /openapi- bez kľúča, dokument OpenAPI 3 partnerského API
Sandbox
Testovací kľúč rsb_test_... otvára váš testovací program s rovnakým kurzom. Osoby v ňom končia po 7 dňoch; webhook testovacieho programu je oddelený od produkčného.
História verzií
- 1.3.2 (2026-11) - Každá operácia dokumentu OpenAPI má názov a popis a operácie sú rozdelené do skupín. /v1/status a webhooky hlásia verziu 1.3.2. Tvary požiadaviek a odpovedí bez zmeny.
- 1.3.1 (2026-10) - Opravy bez zmeny endpointov a ich odpovedí.
- 1.3.0 (2026-10) - Sprievodca pôžičkou: POST /v1/users/{identifier}/loan-offers, stav, evidencia a zrušenie ponuky, webhooky loanGuide.*, retencia evidencie. Nepovinná adresa návratu returnUrl pri ponuke.
- 1.2.0 (2026-10) - GET /v1/users so stránkovaním, certifikát osoby (pole certificate, GET /v1/users/{identifier}/certificate, udalosť certificate.issued), DELETE /v1/users/{identifier} (anonymizácia), identifikátor najviac 64 znakov, retencia logu.
- 1.1.0 (2026-10) - API kľúče, POST /v1/users, GET /v1/users/{identifier} s ?include=detail, vstupný odkaz, webhooky, jeden tvar chýb, verejný stav a OpenAPI, limity.
- 1.0.0 (2024) - GET /v1/user/{identifier} s JWT partnerského kľúča.
Chcete API pre svoju firmu? Napíšte nám