The Event object
Unique identifier for the event, e.g.
"evt_01HXYZ".Always
"event".The event type string describing what happened, e.g.
"session.paid". Possible values:| Type | Description |
|---|---|
session.pending | A new checkout session was created. |
session.detected | A blockchain transaction has been seen in the mempool. |
session.paid | Payment was confirmed in full. |
session.underpaid | A confirmed transaction arrived for less than the required amount. |
session.overpaid | A confirmed transaction arrived for more than the required amount. |
session.expired | The session TTL elapsed before payment was received. |
session.paid_late | Payment arrived after the session expired. |
session.failed | An unrecoverable processing error occurred. |
true if the event was generated in live mode; false for test mode.A snapshot of the full resource object at the moment the event was fired. For
session.* events this is a CheckoutSession object.ISO 8601 timestamp of when the event was created.
GET /events
Returns a cursor-paginated list of events for your account, ordered by creation time, most recent first. Required scope:events:read
Query parameters
Number of results to return. Between
1 and 100. Defaults to 25.An event
id used as a pagination cursor. Returns events created before this one.Filter by event type, e.g.
session.paid. Returns only events with this exact type string.ISO 8601 datetime. Only return events created at or after this time. Useful for incremental syncs.
Example request
Example response 200
GET /events/{id}
Retrieves a single event by its ID. Required scope:events:read
Path parameters
The ID of the event to retrieve, e.g.
"evt_01HXYZ".Example request
Example response 200
Common use cases
Order fulfillment reconciliation — PollGET /events?type=session.paid&createdAfter=<last-sync-time> on a schedule to catch any payments your webhook handler may have missed.
Audit logging — Stream all events into your data warehouse using autoPaginate: true on the SDK for a complete, immutable record of every transaction.
Debugging webhook delivery — If a webhook delivery failed, retrieve the original event by ID and re-send the payload manually to your handler for testing.
Events are retained for 90 days from their
createdAt timestamp. For longer-term storage, export events to your own database or data warehouse before they age out.