Ontwikkelaar 7 min leestijd

Webhooks en asynchrone resultaten bij Verification of Payee

Een robuuste Verification of Payee-integratie houdt rekening met het verzoek dat niet binnen 300 milliseconden terugkomt. Zo gebruikt u webhooks en callbacks om asynchrone resultaten af te handelen zonder uw checkout te bevriezen.

Door Tomaas Vento Starrantino · Beoordeeld door Donato Leone

Webhooks en asynchrone resultaten bij Verification of Payee

Kernpunten

  • Behandel VoP als meestal synchroon, maar soms asynchroon: ontwerp vanaf dag één een status 'in behandeling'.
  • Gebruik een webhook om de definitieve uitkomst van de vergelijking te ontvangen wanneer een antwoordende PSP laat antwoordt.
  • Controleer altijd de handtekeningen van webhooks en maak uw handlers idempotent, zodat herhaalde leveringen geen problemen geven.

Een Verification of Payee-verzoek levert meestal in realtime een uitkomst van de vergelijking op, snel genoeg om die te tonen voordat de betaler een overboeking autoriseert. Maar VoP is een netwerkaanroep naar een andere bank, en netwerken zijn niet perfect betrouwbaar. Een antwoordende PSP kan traag zijn, een verbinding kan wegvallen, of een verzoek kan in een wachtrij belanden. Een integratie van productiekwaliteit heeft een plan nodig voor het antwoord dat een paar seconden - of een paar minuten - te laat binnenkomt.

Waarom een VoP-aanroep asynchroon kan worden

Het schema definieert een krap antwoordvenster, maar echt verkeer produceert toch randgevallen die u netjes moet afhandelen in plaats van ze als harde fouten te behandelen:

  • De antwoordende PSP is tijdelijk overbelast en antwoordt net buiten uw synchrone time-out.
  • Een tijdelijke netwerkstoring veroorzaakt een nieuwe poging die pas klaar is nadat uw oorspronkelijke verzoek al is teruggekeerd.
  • U dient veel controles in één keer in (bijvoorbeeld een betaalrun) en verzamelt de resultaten zodra ze binnenkomen.

De webhook-flow ontwerpen

Het schoonste patroon is om elke controle een stabiele identificator te geven, een status 'in behandeling' terug te geven wanneer het synchrone venster verloopt, en een webhook de definitieve uitkomst te laten leveren.

  1. 1 Dien de verificatie in en sla het request-ID op bij de betaling die u op het punt staat te doen.
  2. 2 Komt er geen antwoord binnen uw synchrone budget, toon de betaler dan een status 'in behandeling' in plaats van een fout.
  3. 3 Ontvang de definitieve uitkomst (Overeenkomst, Bijna overeenkomst, Geen overeenkomst of niet beschikbaar) op uw webhook-endpoint.
  4. 4 Koppel de payload van de webhook terug aan het opgeslagen request-ID en werk de betaalbeslissing bij.

Standaard veilig en idempotent

Verifieer de handtekening van elke webhook voordat u die vertrouwt, en maak uw handler idempotent: dezelfde uitkomst kan meer dan eens worden geleverd. Sleutel uw verwerking op het request-ID zodat een dubbele levering nooit twee keer op een betaling ingrijpt.

RoxPay geeft een synchroon resultaat terug wanneer dat kan en valt terug op een ondertekende webhook wanneer een antwoordende PSP traag is, zodat uw checkout responsief blijft en uw administratie compleet is.

FAQ

Veelgestelde vragen

Strikt genomen niet, maar het is sterk aan te raden. Zonder asynchroon pad dwingt een trage antwoordende PSP u om de betaler te blokkeren of een geldig resultaat weg te gooien. Met een webhook legt u late antwoorden netjes vast.

Maak uw webhook-handler idempotent. Sleutel de verwerking op het request-ID van de verificatie en negeer een payload die u al hebt toegepast, want dezelfde uitkomst kan meer dan eens worden geleverd.

Toon een neutrale status 'in behandeling' in plaats van een fout, en bevestig een risicovolle overboeking niet automatisch voordat de uitkomst binnenkomt of uw beleidstime-out is bereikt.

Bouw een veerkrachtige VoP-integratie

Praat met RoxPay over synchrone resultaten met een webhook-fallback voor trage antwoordende PSP's.