Verification of Payee API-documentatie
Authenticatie, het verify-endpoint, request- en response-payloads, SEPA-schema-matchcodes en foutafhandeling — alles wat een ontwikkelaar nodig heeft om de IBAN/naam-controle te integreren, met kopieerklare JSON- en cURL-voorbeelden.
{BASE_URL}/vop/v1/verify - Authenticatie
- Bearer token (OAuth 2.0)
- Formaat
- application/json
Basis-URL en API-inloggegevens worden bij de onboarding verstrekt — neem contact op om ze te krijgen.
De Verification of Payee-API is één geauthenticeerd REST-endpoint: u POST een begunstigdenaam en IBAN en ontvangt in realtime een gestandaardiseerd matchresultaat. De onderstaande voorbeelden zijn illustratief; uw exacte basis-URL en inloggegevens worden uitgegeven tijdens de onboarding.
Authenticatie
Elke aanvraag wordt geauthenticeerd met een bearer token via HTTPS. Stuur het token in de Authorization-header; tokens worden per omgeving uitgegeven (sandbox en productie).
Dezelfde inloggegevens ontgrendelen ook het RoxBusiness-dashboard, waar u ad-hocverificaties kunt uitvoeren zonder code te schrijven.
Authorization: Bearer <YOUR_API_TOKEN>
Content-Type: application/json Aanvraag
POST een JSON-body met de naam van de begunstigde en de IBAN. Voor rechtspersonen kunt u ook een organisatie-identificatie (bijv. een Italiaanse Partita IVA / Codice Fiscale) en een optionele external_id voor reconciliatie sturen.
Aanvraag-body
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
| name | string | Verplicht | Te verifiëren naam van de begunstigde, zoals de betaler die invoerde. |
| iban | string | Verplicht | Bestemmings-IBAN (gevalideerd op formaat en checksum vóór de schema-oproep). |
| account_type | enum | Optioneel | NATURAL_PERSON of LEGAL_PERSON. Helpt de antwoordende bank correct te matchen. |
| organisation_id | string | Optioneel | Btw-nummer / fiscaal nummer voor rechtspersonen (bijv. Partita IVA). Geverifieerd tegen de geregistreerde houder. |
| external_id | string | Optioneel | Uw eigen referentie-id, teruggegeven in de respons voor reconciliatie. |
{
"name": "ACME Trading S.r.l.",
"iban": "IT60X0542811101000000123456",
"account_type": "LEGAL_PERSON",
"organisation_id": "IT01524770524",
"external_id": "invoice-2025-00842"
} curl -X POST "$BASE_URL/vop/v1/verify" \
-H "Authorization: Bearer $ROXPAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "ACME Trading S.r.l.",
"iban": "IT60X0542811101000000123456",
"account_type": "LEGAL_PERSON",
"organisation_id": "IT01524770524",
"external_id": "invoice-2025-00842"
}' Respons
Een 200-respons geeft het genormaliseerde resultaat, de SEPA-schema-matchcode, de BIC van de antwoordende bank en de verwerkingstijd terug. Bij een gedeeltelijke overeenkomst wordt de geverifieerde naam teruggegeven in suggested_name.
Respons-body
| Veld | Type | Beschrijving |
|---|---|---|
| verification_id | string | Unieke id voor deze verificatie, voor uw audittrail. |
| result | enum | MATCH, CLOSE_MATCH, NO_MATCH of NOT_APPLICABLE. |
| scheme_code | string | De SEPA-VoP-schemacode: MTCH, CMTC, NMTC of NOAP. |
| suggested_name | string | Bij CLOSE_MATCH de geverifieerde naam van de rekeninghouder om aan de betaler voor te stellen. |
| responding_bic | string | BIC van de instelling die de verificatie beantwoordde. |
| processing_time_ms | integer | Tijd die de antwoordende PSP nodig had, in milliseconden. |
| external_id | string | Uw referentie-id, ongewijzigd teruggegeven. |
{
"verification_id": "vop_3f9a1c2e7b",
"result": "CLOSE_MATCH",
"scheme_code": "CMTC",
"suggested_name": "ACME Trading SRL",
"responding_bic": "BCITITMMXXX",
"processing_time_ms": 412,
"external_id": "invoice-2025-00842"
} Matchresultaatcodes
Elke respons komt overeen met een van de vier SEPA-VoP-schemacodes. Vertak op scheme_code zodat uw logica stabiel blijft.
| Code | Resultaat | Betekenis | Aanbevolen actie |
|---|---|---|---|
| MTCH | MATCH | De naam komt overeen met de rekeninghouder. | Ga met vertrouwen door. |
| CMTC | CLOSE_MATCH | Bijna juist (bijv. handelsnaam vs. juridische naam). | Toon suggested_name; vraag de betaler te bevestigen. |
| NMTC | NO_MATCH | De naam hoort niet bij de IBAN. | Harde stop — waarschuw en blokkeer auto-goedkeuring. |
| NOAP | NOT_APPLICABLE | De verificatie kon niet worden voltooid. | Informeer de betaler; laat hem beslissen. |
Foutafhandeling
NO_MATCH is een geldig 200-resultaat, geen fout — behandel het nooit als een transportfout. Echte fouten gebruiken 4xx/5xx-statuscodes met een machineleesbare foutcode en een request_id voor support.
| HTTP | Foutcode | Wanneer het gebeurt |
|---|---|---|
| 400 | invalid_iban | De IBAN faalde de formaat- of checksumvalidatie. |
| 400 | missing_field | Een verplicht veld (name of iban) ontbreekt. |
| 401 | unauthorized | Ontbrekend of ongeldig bearer token. |
| 429 | rate_limited | Te veel aanvragen — pas backoff toe en probeer opnieuw. |
| 503 | scheme_unavailable | Het VoP-schema / de antwoordende PSP is tijdelijk onbereikbaar. |
{
"error": "invalid_iban",
"message": "The 'iban' field failed checksum validation.",
"request_id": "req_8a2b1f0c"
} Integreer in vier stappen
Een standaard REST-integratie die in uw bestaande betaalstroom past.
- 1
Verkrijg inloggegevens
Doorloop de onboarding en ontvang uw bearer token en basis-URL voor sandbox en productie.
- 2
Roep /verify aan
POST de naam van de begunstigde en de IBAN, met een optionele external_id en organisation_id.
- 3
Lees scheme_code
Vertak op MTCH / CMTC / NMTC / NOAP en sla de verification_id op.
- 4
Handel in uw UI
Toon een duidelijk signaal aan de betaler, of maak een betaalrun of mandaat afhankelijk van het resultaat.
Ontwikkelaars-FAQ
De eerste vragen van integratieteams.
Een JSON-body met name en iban (verplicht), plus optioneel account_type, organisation_id (btw/fiscaal nummer voor rechtspersonen) en uw external_id. Zie het aanvraagvoorbeeld hierboven.
NO_MATCH (schemacode NMTC) is een geldige 200-respons, geen fout. Behandel het als een harde stop: waarschuw de betaler, blokkeer auto-goedkeuring en eis een hercontrole vóór verzending.
Ja. Tokens worden per omgeving uitgegeven, zodat u in sandbox kunt integreren en testen voordat u de basis-URL naar productie omschakelt.
Ja — stuur organisation_id met account_type LEGAL_PERSON. Dat helpt wanneer de handelsnaam verschilt van de geregistreerde naam.
Stuur uw eigen external_id in de aanvraag; deze wordt ongewijzigd teruggegeven, en elke respons draagt ook een unieke verification_id.
Verkrijg uw API-inloggegevens
Onboard op het SEPA-VoP-schema met één REST-integratie en ga live vóór uw deadline.