Building Verification of Payee from scratch means integrating with each responding PSP and normalising every response. A VoP API removes that work: you connect once, and the provider handles scheme connectivity across SEPA. Your job becomes a clean request/response integration.
1. Authenticate
Calls are made over HTTPS and authenticated with a bearer token. Store the credential as a secret, never in the client. For manual or low-volume checks, a dashboard is available so non-developers can verify without writing code.
2. Send the request
POST the payee name and IBAN to the verify endpoint. Include your own reference id so you can reconcile the result against the payment or onboarding record it belongs to.
Keep it idempotent
Pass a stable external id with each request so retries don't create duplicate verifications, and so you can match an async log entry back to the originating action.
3. Handle the four outcomes
Every response maps to a SEPA scheme code, so your branching stays simple:
- MATCH (MTCH) — name matches the account holder; proceed with confidence.
- CLOSE_MATCH (CMTC) — almost right; surface the suggested verified name and ask the user to confirm.
- NO_MATCH (NMTC) — show a clear warning before the payment is confirmed.
- NOT_APPLICABLE (NOAP) — verification not available right now; let the user decide.
The response also carries the responding bank's BIC and the processing time, which are useful for monitoring and audit logs.
4. Reuse it everywhere
Because the contract is the same, the one endpoint serves several jobs: an inline check as a payer reviews a new beneficiary, batch verification of a supplier file, and a pre-check inside a SEPA Direct Debit mandate flow. RoxPay uses VoP exactly this way — including as a mandatory pre-check before a SDD mandate signing link is issued.