session.paid or session.expired — Crypto Checkout sends an HTTP POST request to each of your registered endpoints with the event payload.
Each endpoint is secured with a shared HMAC signing secret. You should always verify the X-Signature header on incoming requests before processing the payload.
The WebhookEndpoint object
Unique identifier for the webhook endpoint. Format: UUID.
Always
"webhook_endpoint".The HTTPS URL Crypto Checkout sends event payloads to.
The list of event types this endpoint is subscribed to.
["*"] means all events.When
false, deliveries to this endpoint are suspended.The first few characters of the signing secret, e.g.
"whsec_abc123". Use this to identify which secret to use when verifying signatures without exposing the full secret.ISO 8601 timestamp of when the endpoint was registered.
POST /webhook_endpoints
Registers a new webhook endpoint. Returns the endpoint object plus the one-timesecret field with a 201 status.
Required scope: webhooks:write
Request body
A valid HTTPS URL that Crypto Checkout will
POST event payloads to. HTTP (non-TLS) URLs are rejected.An array of event type strings to subscribe to. Pass
["*"] to receive all events. Must contain at least one entry.Available event types:session.pendingsession.detectedsession.paidsession.underpaidsession.overpaidsession.expiredsession.paid_latesession.failed
Example request
Example response 201
GET /webhook_endpoints
Returns a cursor-paginated list of your registered webhook endpoints. Required scope:webhooks:read
Query parameters
Number of results to return. Between
1 and 100. Defaults to 25.An endpoint
id used as a pagination cursor. Returns endpoints created before this one.Example request
Example response 200
GET /webhook_endpoints/{id}
Retrieves a single webhook endpoint by its ID. The signingsecret is not returned in this response.
Required scope: webhooks:read
Path parameters
The ID of the webhook endpoint to retrieve.
Example request
DELETE /webhook_endpoints/{id}
Permanently deletes a webhook endpoint. No further events will be delivered to the registered URL. Required scope:webhooks:write
Path parameters
The ID of the webhook endpoint to delete.
Example request
Example response 200
POST /webhook_endpoints/{id}/test
Sends a syntheticsession.paid event to the endpoint’s registered URL. Use this to verify that your handler is reachable and correctly processes the payload without waiting for a real payment.
Required scope: webhooks:write
Path parameters
The ID of the webhook endpoint to test.