payment.succeeded
A payment was captured, subscription renewals included; `data.billing_reason` says which kind it was. Sent to your endpoint as a signed POST. Answer with any 2xx within 10 seconds; a delivery that fails is retried after 5 seconds, 5 minutes, 30 minutes, and 2, 5, 10 and 10 hours — eight attempts in all, spanning a little more than a day. Verify the signature before trusting the body.
A payment was captured, subscription renewals included; data.billing_reason says which kind it was.
Sent to your endpoint as a signed POST. Answer with any 2xx within 10 seconds; a delivery that fails is retried after 5 seconds, 5 minutes, 30 minutes, and 2, 5, 10 and 10 hours — eight attempts in all, spanning a little more than a day. Verify the signature before trusting the body.
Header Parameters
Unique per event; use it to ignore duplicates.
^evt_[0-9a-f]{32}$Unix seconds. Reject deliveries older than a few minutes.
v1, + base64 HMAC-SHA256 of {webhook-id}.{webhook-timestamp}.{raw body}, keyed with the base64-decoded part of your whsec_ secret.
Request Body
application/json
The event. Read the raw bytes before parsing them: the signature covers exactly what was sent.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
Example Requests
/payment.succeededpayment.failed Webhook
A payment attempt was declined or failed. Sent to your endpoint as a signed POST. Answer with any 2xx within 10 seconds; a delivery that fails is retried after 5 seconds, 5 minutes, 30 minutes, and 2, 5, 10 and 10 hours — eight attempts in all, spanning a little more than a day. Verify the signature before trusting the body.
refund.succeeded Webhook
Money was returned. `data.refund_amount` is what this refund returned, and `data.refunded_amount` the total returned so far. Sent to your endpoint as a signed POST. Answer with any 2xx within 10 seconds; a delivery that fails is retried after 5 seconds, 5 minutes, 30 minutes, and 2, 5, 10 and 10 hours — eight attempts in all, spanning a little more than a day. Verify the signature before trusting the body.