Strapi's webhooks are simple: an entry changes, Strapi fires a POST request at a URL you configured. What Strapi's docs don't tell you is what happens next β because "next" is entirely your problem. Strapi retries failed deliveries, which means your receiver can get the same event twice.
Source: [Dev.to](https://dev.to/mukesh_13/build-a-retry-safe-strapi-webhook-receiver-idempotency-keys-backoff-and-a-dead-letter-queue-2429)