IOSOR Kennis

Een dubbele webhook mag geen tweede afschrijving veroorzaken

Foutpad: retries en replays blijven idempotent op prepaid tegoed en inbox — één gebeurtenis-id, één afschrijvingsrij, één inboxregel.

Levering ten minste één keer zal opnieuw proberen. Een dubbele webhook die een tweede afschrijving of inboxregel plaatst, is een geld- en operationeel incident, geen onschuldige bevestiging. Deze pagina toont het foutpad: retries en replays blijven idempotent voor prepaid tegoed en inbox — niet het API-verzenden-idempotentie-essay en niet het inkomende SMS-retry-handboek.

Gerelateerd: Handtekening en replay-venster gate, Webhook-contract vóór de eerste verzending, Debitregels vs bezorgstatus op dezelfde ledger.

IOSOR is white-label prepaid. USD 20 financiert een dubbele-gebeurtenis rooktest op één consument; zachte beoordeling rond USD 1.000/maand prijst retry als nieuwe kosten. Klanten zien uitsluitend white-label gebeurtenis-id's.

Idempotentie is een foutpad, geen slogan

Gelukkig pad: één ondertekende gebeurtenis, één acceptatie, één afschrijving. Foutpad schaadt het vertrouwen — timeout, 5xx, provider-replay, operator-repush. Sla de idempotentiesleutel op uit het Webhook-contract vóór de eerste verzending vóór neveneffecten zoals grootboek, inbox en CRM. Zachte USD 1.000/maand behandelt ACK gevolgd door een nieuwe sleutel als volumeschuld; USD 20 bewijst dat een geforceerde replay nooit geld verdubbelt.

Wat telt als een dubbele

Signaal Beschouwen als dubbel wanneer Veilig resultaat
Gebeurtenis-id Zelfde id reeds geaccepteerd binnen venster ACK; geen tweede afschrijving
Bericht-id Zelfde bericht reeds gekoppeld aan grootboek Rij hergebruiken; geen nieuwe kosten
Inboxsleutel Zelfde MO/MT reeds opgeslagen Geen tweede inboxregel
Buiten replay-venster Oude retry na poortweigering Weigeren; geen geld of status schrijven
Onbekend type Niet op de contractlijst van gebeurtenissen Drop; geen gefingeerd succes

De Handtekening en replay-venster gate beslist over authenticiteit en versheid. Deze pagina beheert wat er gebeurt na een geldige duplicaat: één eindstaat, één geldregel, één inboxregel.

Geld mag niet twee keer bewegen

Een tweede afschrijving voor dezelfde gebeurtenis-id is een bug, zelfs als het product nog afgeleverd toont. Financiën filtert op gebeurtenis- of bericht-id en ziet één prepaid rij voor dat UTC-venster. Gedeeltelijke neveneffecten na ACK — CRM eerst, grootboek later — produceren dubbele waarheid. Als de verwerking mislukt na opslag, probeer de worker dan opnieuw op dezelfde sleutel.

Inbox mag ook niet verdubbelen

Idempotentie is niet alleen geld. Een replayed inkomende of aflevergebeurtenis die een tweede inboxtread opent, traint support om ghosts achterna te zitten en kan autoreply-lussen activeren. Sla de inboxsleutel op met dezelfde gebeurtenis-id die voor debit wordt gebruikt. Product en finance delen een schone afwijslogica.

Koperchecklist voor dubbelveilige webhooks

Valideer handtekeningen en headers voordat het grootboek wordt aangeraakt. Leg de gebeurtenis-id vast in de database om racecondities te blokkeren. Retourneer altijd een 2xx na succesvolle verwerking maar schrijf nooit een tweede saldo af. Bewaking moet dubbele gebeurtenissen direct signaleren.

Begin met IOSOR

Forceer één ondertekende replay binnen het venster op een corridor die al debiteerde. Exporteer het event-id naast het ledger-id en bewijs één debitregel plus één inboxregel. Verschijnt er een tweede debit, stop die consument en stort de extra regel terug — niet verrekenen met later verkeer. Dit hek is replay-geld, geen E.164-check en geen verzendtekst.

IOSOR takeaway

Een replay is geen nieuwe send. Eén event-id schrijft één debit.

Was deze gids nuttig?

Gerelateerde gidsen