Verify → dedup → enqueue → 200. No business logic here: Stripe retries anything that doesn't get a 2xx within ~10s, so the heavy work happens in the background processor.
POST
/webhooks/stripe
const url = 'https://example.com/webhooks/stripe';const options = {method: 'POST', headers: {'stripe-signature': 'example'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/webhooks/stripe \ --header 'stripe-signature: example'Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”stripe-signature
required
string