VoP Readiness — Verification of Payee
Since the EU Instant Payments Regulation (IPR), Verification of Payee is no longer optional in the euro area:
- 9 October 2025 — euro-area PSPs must be able to answer VoP requests (match the payee name against the IBAN before a credit transfer).
- April 2026 — payer-side PSPs must run the check in real time for euro credit transfers.
- 9 July 2027 — the obligation extends to EU PSPs outside the euro area.
The name check itself runs between the banks, inside the EPC's VoP scheme. What an integrator needs to know before initiating a payment is: is the recipient bank actually reachable for VoP? That is what IBANforge answers.
Two fields, two questions
Every POST /v1/iban/validate response carries both:
| Field | Level | Question it answers |
|---|---|---|
sepa.vop_required | Country | Is this IBAN's country under the IPR VoP obligation? |
sepa.vop_participant | Bank | Is the resolved institution listed as ready in the EPC VoP scheme register? null when no institution was resolved — no subject, no claim. |
The register is refreshed weekly from the EPC's official participant export.
Example
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Authorization: Bearer ifk_your_key" \
-H "content-type: application/json" \
-d '{"iban": "DE89370400440532013000"}'{
"valid": true,
"bic": { "code": "COBADEFF", "bank_name": "Commerzbank", "city": "Köln" },
"sepa": {
"member": true,
"schemes": ["SCT", "SDD", "SCT_INST"],
"vop_required": true,
"vop_participant": true
}
}A Swiss counterpart, by contrast, typically returns "vop_required": false, "vop_participant": false — Switzerland is SEPA-reachable but not under the IPR, and most Swiss institutions are not VoP scheme participants.
How to use it in a payout flow
- Validate first. A VoP request on a structurally invalid or fabricated IBAN wastes a round-trip and pollutes your match statistics.
valid,bank_code_checkandissuertell you whether there is a real institution to talk to. - Read
vop_participant.truemeans your PSP's VoP request has a counterparty that answers.falseornullmeans plan for theno match / otherbranch of your flow instead of treating it as a failure. - Run the actual name check through your PSP. IBANforge does not execute VoP and does not see account names — the traffic-light result (
match,close match,no match) comes from the banks inside the scheme.
Limits, stated plainly
- Listing in the EPC register means the bank answers VoP requests. It does not mean a specific account exists, and it is not the name check itself.
vop_participantisnullwhenever no institution could be resolved for the IBAN's bank code — the same rule asissuer.type: we do not make claims about an institution we could not substantiate.- Scheme participation changes weekly; responses carry the data's
as_ofmonth inbank_code_check.
Related: IBAN validation · Compliance check (sanctions, FATF, risk score) · Batch validation