Zasoby Verification RoxPay Verification of Payee
Authentication, the verify endpoint, request and response payloads, SEPA scheme Overeenkomst codes and error handling — everything a developer needs to integrate the IBAN/name check, with copy-paste JSON and cURL examples.
{BASE_URL}/vop/v1/verify - Uwierzytelnianie
- Token Bearer (OAuth 2.0)
- Format datelor
- application/json
URL-ul de bază și credențialele API sunt furnizate la onboarding — contactează-ne pentru a le obține.
API Verification of Payee is a single authenticated REST endpoint: you POST a begunstigde name and IBAN and receive a standardised Overeenkomst outcome in real time. The examples below are illustrative; your exact base URL and credentials are issued during onboarding.
Uwierzytelnianie
Every request is authenticated with a bearer token over HTTPS. Send the token in the Authorization header; tokens are issued per environment (sandbox and production).
The same credentials also unlock the RoxBusiness dashboard, where you can run ad-hoc verifications without writing code.
Authorization: Bearer <YOUR_API_TOKEN>
Content-Type: application/json Request
POST a JSON body with the begunstigde name and IBAN. For legal persons you may also send an organisation identifier (e.g. an Italian Partita IVA / Codice Fiscale), and an optional external_id for reconciliation.
Request body
| Pole | Type | Wymagane | Opis |
|---|---|---|---|
| name | string | Wymagane | Payee name to verify, as the payer entered it. |
| iban | string | Wymagane | Destination IBAN (validated for format and checksum before the scheme call). |
| account_type | enum | Opcjonalne | NATURAL_PERSON or LEGAL_PERSON. Helps the responding bank Overeenkomst correctly. |
| organisation_id | string | Opcjonalne | VAT number / tax code for legal persons (e.g. Partita IVA). Verified against the registered holder. |
| external_id | string | Opcjonalne | Your own reference id, echoed back in the response for reconciliation. |
{
"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"
}' Response
A 200 response returns the normalised result, the SEPA scheme Overeenkomst code, the responding bank BIC and the processing time. On a Bijna overeenkomst the verified name is returned as suggested_name.
Response body
| Pole | Type | Opis |
|---|---|---|
| verification_id | string | Unikalny identyfikator tej verificării, până la wykorzystania în Twoim dzienniku auditowym. |
| result | enum | MATCH, CLOSE_MATCH, NO_MATCH or NOT_APPLICABLE. |
| scheme_code | string | The SEPA VoP scheme code: MTCH, CMTC, NMTC or NOAP. |
| suggested_name | string | On CLOSE_MATCH, the verified account-holder name to suggest to the payer. |
| responding_bic | string | BIC of the institution that answered the verification. |
| processing_time_ms | integer | Time the responding PSP took, in milliseconds. |
| external_id | string | Your reference id, echoed back unchanged. |
{
"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"
} Kody rezultatu conformității
Every response maps to one of four SEPA VoP scheme codes. Branch on scheme_code so your logic stays stable.
| Kod | Wynik | Znaczenie | Recommended action |
|---|---|---|---|
| MTCH | MATCH | Name matches the titularul contului. | Proceed with confidence. |
| CMTC | CLOSE_MATCH | Almost right (e.g. trading vs legal name). | Show suggested_name; ask the payer to confirm. |
| NMTC | NO_MATCH | Nazwa nu trebuie până la tego IBAN. | Hard stop — warn and block auto-approval. |
| NOAP | NOT_APPLICABLE | Verification could not be completed. | Inform the payer; let them decide. |
Error handling
NO_MATCH is a valid 200 result, not an error — never treat it as a transport failure. Genuine errors use 4xx/5xx status codes with a machine-readable error code and a request_id for support.
| HTTP | Error code | When it happens |
|---|---|---|
| 400 | invalid_iban | The IBAN failed format or checksum validation. |
| 400 | missing_field | Brakuje necesitănego pola (name sau iban). |
| 401 | unauthorized | Missing or invalid bearer token. |
| 429 | rate_limited | Too many requests — back off and retry. |
| 503 | scheme_unavailable | The VoP scheme/responding PSP is temporarily unreachable. |
{
"error": "invalid_iban",
"message": "The 'iban' field failed checksum validation.",
"request_id": "req_8a2b1f0c"
} Integrează in four steps
A standard REST integration that drops into your existing payment flow.
- 1
Get credentials
Onboard and receive your bearer token and base URL for sandbox and production.
- 2
Call /verify
POST the begunstigde name and IBAN, with an optional external_id and organisation_id.
- 3
Odczytaj scheme_code
Branch on MTCH / CMTC / NMTC / NOAP and store the verification_id.
- 4
Act in your UI
Show a clear signal to the payer, or gate a payment run or mandate on the result.
FAQ pentru dezvoltatorilor
The questions integration teams ask first.
A JSON body with name and iban (required), plus optional account_type, organisation_id (VAT/tax code for legal persons) and your external_id. See the request example above.
NO_MATCH (scheme code NMTC) is a valid 200 response, not an error. Treat it as a hard stop: warn the payer, block auto-approval, and require a re-check before sending.
Yes. Tokens are issued per environment, so you can integrate and test against sandbox before switching the base URL to production.
Yes — send organisation_id with account_type LEGAL_PERSON. This helps when the trading name differs from the registered name.
Send your own external_id in the request; it is echoed back unchanged, and every response also carries a unique verification_id.
Get your API credentials
Onboard to the SEPA VoP scheme with one REST integration and go live înainte de termen.