Developer 5 min read

Idempotency and Reconciliation in the Verification of Payee API

A robust Verification of Payee integration handles two unglamorous realities: requests get retried, and results need to be matched back to payments. Both come down to one habit — sending a stable external id.

By Verification of Payee EU · powered by RoxPay

Key takeaways

  • Send a stable external id with every verification request.
  • It gives you idempotency on retries and a key for reconciliation.
  • Log the id, outcome and responding BIC to build a clean audit trail.

Most VoP integration guides stop at 'send a name and IBAN, read the outcome'. Production adds two problems: networks fail and clients retry, and finance later asks 'which payment did this verification belong to?'. A single field — a stable external id per request — solves both.

Idempotency on retries

If a request times out, your client may retry it. Without an idempotency key, that's a second verification — extra cost and confusing logs. Attaching the same external id to the retry lets the system recognise it as the same logical request, so retries are safe.

One id, generated once

Generate the external id when you create the payment intent, not per HTTP attempt. That way every retry of the same logical verification carries the same id.

Reconciliation

The same external id is your correlation key. Store it on your payment record, send it with the verification, and you can later join the verification result back to the exact payment — essential for disputes, audits and analytics.

Build the audit trail

  1. 1 Generate an external id per verification and persist it with your payment.
  2. 2 Send it on the request; reuse it on any retry.
  3. 3 Log the returned verification id, outcome and responding BIC against it.

RoxPay's Verification of Payee API accepts an external id per request and returns its own verification id with the responding BIC, so idempotency and reconciliation fall out of one clean pattern.

FAQ

Frequently asked

Send a stable external id generated once per logical verification (at payment-intent creation), and reuse it on retries. The system can then recognise a retry as the same request rather than a new check.

Use the external id as a correlation key: store it on the payment record, send it with the verification, and join the result back to the payment using it.

The external id, the returned verification id, the outcome, and the responding BIC. Together they tie each verification to a payment and to the bank that answered.

Build a robust VoP integration

Talk to RoxPay about Verification of Payee with built-in idempotency and reconciliation.