Menu

Post image 1
Post image 2
1 / 2
0

Payment Webhooks Will Lie To You. Here's How We Built Ones That Don't (in NestJS)

DEV Community·arun rajkumar·about 1 month ago
#FPi4xSTZ
Reading 0:00
15s threshold

A payment webhook fires once. You miss it. The customer thinks they paid. Your dashboard says they didn't. Welcome to my Tuesday morning, two years ago. I've shipped four payment webhook systems in my career. The first three taught me everything I now refuse to do again. The fourth — the one running inside Atoa today — handles open banking payment notifications across our Node.js services without a single missed event in the last 14 months. Here's the boring, opinionated, production-tested pattern. The lie webhooks tell you Every payment platform sells webhooks the same way: "We'll notify your endpoint the moment the payment status changes." What they don't sell you on: Webhooks retry . Sometimes 8 times. Sometimes never. Webhooks arrive out of order . failed can land before pending . Webhooks lie about idempotency . Two succeeded events for the same payment is normal, not a bug. Webhooks drop . Network blip, your pod restart, a bad DNS lookup — one missed delivery and your reconciliation is wrong.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.

Read More