Skip to main content
Payment Acceptance webhooks deliver real-time status updates to your application as payment sessions and disbursements move through their lifecycle. Subscribe to specific event types and receive POST requests at your webhook URL whenever a status change occurs.

Getting started

1

Subscribe to webhooks

Set up a webhook subscription to Payment Acceptance events. This is a webhook delivery configuration — unrelated to recurring-payment subscriptions, which aren’t a Payment Acceptance concept.
2

Verify

Implement signature verification in your receiver.
3

Inspect payloads

See example payloads for event shapes.

Event types

Payment session events

Subscribe to acceptance.payment_session.* events to track the full payment lifecycle:

Disbursement events

Subscribe to acceptance.disbursement.* events to track standalone payouts:

Payload structure

Every webhook delivers a standard CDP envelope:
For payment session events, data.paymentSession always contains a session summary. For action-triggered events (authorization, capture, void, refund), the corresponding action detail is also present as a sibling field — data.authorization, data.capture, data.void, or data.refund. For session-level events (created, canceled), no action field is included — the paymentSession.status value is sufficient. For disbursement events, the data object contains the full disbursement resource. See example payloads for complete event shapes.

Security

Webhook requests include an X-Hook0-Signature header containing an HMAC-SHA256 signature of the request body using your webhook secret. Always verify this signature before processing events. See verification for implementation details.

Best practices

  • Acknowledge quickly - return 200 immediately, then process in the background
  • Support concurrent delivery - your endpoint may receive multiple events at the same time
  • Verify signatures - always check X-Hook0-Signature before processing
  • Handle duplicates - use eventId for idempotent processing
  • Monitor delivery health - subscriptions can be auto-disabled after sustained delivery failures
  • Test locally first before enabling production subscriptions
If a subscription is auto-disabled due to delivery failures, fix the endpoint issue and re-enable it via the Update Subscription API.

Webhook Subscriptions

Create and manage webhook subscriptions

Verification

Verify webhook signatures

Example payloads

Complete event payload examples

Payment Sessions

Understand the payment lifecycle