Glossary
At-Least-Once Delivery
The delivery guarantee nearly all webhook providers offer: every event arrives one or more times. Duplicates are expected — which is exactly why handlers must be idempotent.
Distributed systems offer three delivery guarantees: at-most-once (may drop, never duplicates), at-least-once (never drops, may duplicate), and exactly-once (the holy grail, effectively unachievable end-to-end). Webhook providers almost universally choose at-least-once — losing a payment event is worse than sending it twice.
So duplicates aren't a bug, they're the contract. A network race where your 200 response is lost makes the provider retry an event it already delivered. You'll receive the same evt_* twice, and both look identical.
'Exactly-once processing' is achievable even though exactly-once *delivery* isn't: accept at-least-once delivery, then deduplicate by event ID so the side effects run once. That's the whole reason idempotency matters.
How HookSense helps
Use HookSense Replay to simulate at-least-once duplicates: capture one event, fire it at your handler several times, and confirm the charge or email happens exactly once.
Get a free webhook URL