Skip to main content

Webhook Delivery

In a nutshell

Merchant webhooks are queued as delivery records, serialized with a common envelope, sent to the tenant webhook URL, and tracked with delivery attempts.

Envelope

The queue serializes webhook payloads as:
The id is the webhook delivery ID and is also stored as the webhook_deliveries.id primary key.

Headers

The sender attaches:

Signature input

Outgoing signatures hash this string:
The hash is HMAC SHA256 using the tenant webhook secret and is base64 encoded.

Delivery records

webhook_deliveries stores: webhook_delivery_attempts stores each HTTP attempt with status code, response body, and attempt count.

Event data mapping

Delivery eligibility

A delivery is only queued when the tenant has a webhook URL and webhook secret configured.