Skip to main content
A webhook is sent for each status marked “Webhook: Yes” in Statuses, to the callback URL configured for your client account. No webhook is sent for CREATED or APPROVAL_REQUIRED. See also Webhook Configuration.

Request

Events

data has the same shape as the GET response. See Transaction Object. Example body (captured FAILED transaction):

Signature

The body is not signed. Treat the body as a notification and read the authoritative state with GET.
When several webhook credentials are active, the oldest one signs. Verification (Python):
Each attempt is signed with a fresh timestamp. A window of 300 s is sufficient.

Delivery

Deduplicate on (data.id, data.status). Order by data.updated_at. Ignore a webhook whose updated_at is older than the state you hold. Poll GET or list when a webhook is missing.