Ontwikkelaar 7 min leestijd

Omgaan met Verification of Payee-timeouts en retries

Elke Verification of Payee-integratie krijgt vroeg of laat te maken met een bank van de begunstigde die traag reageert of onbereikbaar is. Het verschil tussen een robuuste en een kwetsbare integratie zit in hoe deze met de timeout omgaat.

Door Tomaas Vento Starrantino · Beoordeeld door Donato Leone

Omgaan met Verification of Payee-timeouts en retries

Kernpunten

  • Stel een verstandige synchrone timeout in en behandel overschrijding als 'niet beschikbaar', niet als een harde fout.
  • Probeer opnieuw met backoff, maar alleen met idempotente verzoeken die zijn gekoppeld aan een stabiele identificator.
  • Definieer een duidelijk terugvalbeleid voor de betaler wanneer er niet op tijd een uitkomst kan worden verkregen.

Verification of Payee is afhankelijk van een antwoord van de bank van de begunstigde. Wanneer die bank traag, overbelast of tijdelijk onbereikbaar is, moet uw integratie beslissen wat er gebeurt — en die beslissing raakt zowel de ervaring van de betaler als uw compliancepositie. De slechtste uitkomsten zijn een vastgelopen checkout of een verificatie die stilletjes dubbel wordt geteld of in rekening gebracht.

De uitkomst 'niet beschikbaar' is een functie

Het schema definieert een niet-beschikbaar-resultaat juist zodat u geen eigen foutsemantiek hoeft te verzinnen. Wanneer de reagerende partij niet op tijd kan antwoorden, behandel dit dan als een volwaardige uitkomst en niet als een uitzondering.

  • Stel een synchrone timeout in die aansluit bij uw checkoutbudget (vaak een paar seconden).
  • Toon bij overschrijding een neutrale 'niet beschikbaar'-status aan de betaler in plaats van een verontrustende foutmelding.
  • Bepaal via beleid of de betaler mag doorgaan, moet wachten, of naar handmatige beoordeling moet worden doorgestuurd.

Veilig opnieuw proberen

Retries helpen bij tijdelijke storingen, maar richten schade aan als ze niet idempotent zijn. Een retry mag nooit een tweede logische verificatie of een tweede afschrijving veroorzaken.

  1. 1 Koppel een stabiele verzoekidentificator aan elke verificatiepoging.
  2. 2 Probeer tijdelijke netwerkfouten opnieuw met exponentiële backoff en een klein maximum aantal pogingen.
  3. 3 Probeer nooit een definitief resultaat opnieuw (Overeenkomst, Bijna overeenkomst, Geen overeenkomst) — probeer alleen echte transportfouten opnieuw.
  4. 4 Koppel een laat binnenkomend antwoord aan de verzoekidentificator, zodat het maar één keer wordt geregistreerd.

Begroot de wachttijd, beslis dan

Kies een synchroon tijdsbudget dat u kunt verantwoorden tegenover zowel uw UX- als uw compliance-team. Val na dat budget bewust terug — toon 'in behandeling' of 'niet beschikbaar' — in plaats van het verzoek te laten hangen totdat de betaler afhaakt.

RoxPay geeft de gestandaardiseerde uitkomsten terug, inclusief niet beschikbaar, ondersteunt idempotente retries op basis van request-ID en valt terug op een webhook voor late antwoorden — zodat uw timeoutbeleid eenvoudig blijft.

FAQ

Veelgestelde vragen

Stem deze af op uw checkoutervaring — vaak een paar seconden bij synchroon gebruik. Val daarna terug op een status 'in behandeling' of 'niet beschikbaar' in plaats van de betaler eindeloos te blokkeren.

Alleen bij transportfouten, en alleen met idempotente verzoeken die zijn gekoppeld aan een stabiele identificator. Probeer een definitieve overeenkomst-uitkomst nooit opnieuw; dat is een resultaat, geen fout.

Behandel dit als een gedefinieerde uitkomst en pas uw beleid toe: laat de betaler voorzichtig doorgaan, wacht op een asynchroon antwoord, of stuur de betaling door voor handmatige beoordeling, afhankelijk van het risico.

Maak VoP betrouwbaar in productie

Praat met RoxPay over timeouts, idempotente retries en webhook-fallbacks binnen het SEPA VoP-schema.