A payment webhook can arrive twice even when nothing is wrong with my application. The uncomfortable case is when the second delivery arrives while the first one is still running. If both requests check whether an event exists before either inserts it, both can decide to apply the payment.
Source: [Dev.to](https://dev.to/martinpisacreta/how-i-make-stripe-webhooks-idempotent-in-aspnet-core-2040)