The single most common integration bug with Verification of Payee is treating a NO_MATCH as a failed request. It isn't. A successful verification that happens to say 'this name does not belong to this IBAN' is still a 200 response with useful data. Confuse the two and you'll either swallow fraud signals or show users scary errors.
Cztery kody schemei
Every Verification of Payee response maps to one of four standardised SEPA scheme codes. Branch on the code, not on free-text:
- MTCH — MATCH: il nume corrisponde la titolare. Procedi.
- CMTC — CLOSE_MATCH: almost right (missing middle name, trading vs legal name). Show the suggested verified name and ask the payer to confirm.
- NMTC — NO_MATCH: il nume nu appartiene all'IBAN. avertizează chiaramente e blocca l'approvazione automatica.
- NOAP — NOT_APPLICABLE: la Verifică nu este stata completata (es. bancă răspunzător irraggiungibile). Lascia decidere l'utilizator cu cautela extra.
Esito vs eroare
Se lo stato HTTP este 200 hai un rezultat de Verifică — legi scareme_code. Se este 4xx/5xx hai un eroare — legi il cod de eroare. Non mappare mai NO_MATCH sul tuo parcurs de eroare.
Gestire bene il CLOSE_MATCH
CLOSE_MATCH is where good UX is won or lost. The response can carry the verified account-holder name; surface it as a suggestion ('Did you mean…?') so the payer confirms or corrects rather than abandoning the payment. Treating CMTC as a hard failure frustrates legitimate users.
Codici de eroare veri
Distinti dagli rezultate de scaremă, i probleme a nivel de trasporto restituiscono erori HTTP standard — ad exemplu invalid_iban (400), unauthorized (401), rate_limităd (429) e scareme_unavailable (503). Ognuno riporta un request id pentru la tracciabilità la suport. Passa un id esterno stabile a fiecare apel astfel i retry restano idempotenti e i log si riconciliano.