Webhook retries are double-charging customers. Derive a stable idempotency key from the payload so retries become harmless no-ops.
All challenges