PaymentKits guide · 5 min read
Handle duplicate webhook deliveries without duplicate work
A concise pattern for logical-event deduplication, retry safety and observable delivery records.
Keep delivery and event separate
Record each delivery attempt, but perform business work only once per provider event identity.
Return stable responses
A durable acknowledgement can still be followed by a duplicate. Make the receiver idempotent using an event key.
Test the boundary
Use a synthetic duplicate fixture before relying on a provider retry in production.