Webhook Signature
- Secured with HMAC-SHA256 signature.
- Sezzle-Signature header contains a hash of the webhook body, generated using the merchant private key.
- Always verify the signature matches the webhook data to confirm it originates from Sezzle.
Webhook Delivery and Network
- Webhooks are server-to-server HTTP POST requests sent from Sezzle’s infrastructure directly to your endpoint.
- They do not originate from a browser or from a resolvable Sezzle hostname, so there is no domain to add to an allowlist.
- Requests carry a standard server-side user-agent and none of the headers a browser sends, such as cookies,
Referer, orAccept-Language. Bot-mitigation rules on some WAF and CDN products score requests on those signals and may block deliveries.
Sezzle-Signature header in your application as described above.
These are two separate steps. A rule that admits any request carrying a Sezzle-Signature header does not authenticate anything on its own, since any caller can set that header to any value. The security comes from recomputing the HMAC over the request body with your private key and rejecting requests whose signature does not match. Done that way, signature verification confirms an event genuinely came from Sezzle, which source-IP filtering alone cannot do.
If your security policy requires a source IP allowlist, contact your Account Manager. Our egress addresses are not published here so that we can notify affected merchants directly ahead of any infrastructure change.
Webhook Event Payload
- Options
- Template
string
Unique identifier for the webhook event.
string
Timestamp (ISO 8601) when the event was generated.
string
Type of the eventAvailable options:
customer.tokenized, order.authorized, order.captured, order.refunded, dispute.merchant_input_requested, dispute.deadline_approaching, dispute.closed.customer_win, dispute.closed.merchant_win, dispute.closed.neutralstring
Type of data associated with the event.Available options:
customer, order, disputeobject
Payload data specific to the event type. See options in the applicable accordion below.
Examples per Event
customer.tokenized
customer.tokenized
order.captured
order.captured
- The
"uuid"is the webhook UUID - The
"data.uuid"is the order UUID that can be used on the API call to get order details - The
"data.capture.uuid"is the UUID for the capture
order.refunded
order.refunded
- The
"data.uuid"is the order UUID that can be used on the API call to get order details
source field:- If the value is
"dashboard", it’s initiated from the merchant dashboard - If the value is
"gateway", it’s via the gateway API
dispute
dispute
The following applies to the following webhooks:
dispute.merchant_input_requesteddispute.deadline_approachingdispute.closed.customer_windispute.closed.merchant_windispute.closed.neutral
Webhook Acceptance and Retries
- Considered delivered upon receiving any HTTP 2xx response, such as 200, 202, or 204.
- Any other response triggers retries:
- Multiple attempts in the first hour.
- A few attempts throughout the day.
- Final attempts one day and three days later, spanning five days total.
- If the final retry fails, the webhook subscription is deleted for all events.
- To resume receiving webhooks, recreate the webhook.
- Webhooks may not arrive in chronological order, as new ones can be sent before retries of older ones.
- Retried webhooks use the current merchant private key for signing, so the signature may differ from the original if the key has changed.