Skip to main content
When you set up a webhook endpoint, Tonder will send POST requests with an event payload when key actions occur. All webhook payloads follow this structure:
The table below describes the top-level fields present in every webhook:
Order Reference in WebhooksThe external_id sent in the session creation request is visible in the Tonder dashboard as Order ID and in transaction reports as Business Transaction ID, but it is not returned in webhook payloads. To receive your order reference in a webhook, include it inside the metadata object — in addition to the existing external_id field — when creating the session. It will then be available under data.metadata in the webhook payload.

Session Events

session.created

Sent when a new checkout session is successfully created. The table below describes the fields in the data object for this event:

session.completed

Sent when a session is successfully paid for and completed. This is the primary event for confirming a successful order. The table below describes the fields in the data object for this event:

session.expired

Sent when a pending session expires without a successful payment (e.g., the customer abandoned the checkout). The table below describes the fields in the data object for this event:

Payment Transaction Events

payment.transaction

Sent when a payment transaction status changes (e.g., Pending, Success, Declined). A single session may have multiple payment.transaction events if the user retries.
While session.completed tells you the order is paid, payment.transaction gives you details about each attempt.
The table below describes the fields in the data object for this event: