POST /v1/webhooks/endpoints. Omit events to receive all of them. See
Webhook signatures for verification.
The body is { id, type, created, livemode, data }. data.external_ref is your order id. A retry or a
resend keeps the event id (also sent as Tendr-Event-Id), so deduplicate on it. Failed deliveries are
retried with exponential backoff for 3 days, and you can resend any delivery from the dashboard.
Headers
Every delivery is aPOST with these headers:
Verify the raw body before parsing it, and reject a
t more than 5 minutes old. See
Webhook signatures.
Checkout, payment and refund events
Gasless and hook events
gas.budget_low and gas.budget_exhausted carry mode (test or live), month (YYYY-MM),
budget_usd, reserved_usd, spent_usd and remaining_usd. gas.budget_exhausted also carries
requested_usd. See gas policy.
hook.succeeded and hook.failed carry payment_id, session_id, external_ref, hook_call_id,
chain, contract, attempts and tx_hash. hook.failed also carries error, the last error. See
integrator hooks.
Payment link fields
Every checkout, payment and refund event carriesdata.payment_link_id and data.payer_note next to
external_ref. They are always present:
Sessions made from a link’s public page have no
external_ref (it is null): match them by
payment_link_id instead. Treat payer_note as untrusted text and escape it wherever you show it.
network_fee on payment.succeeded
payment.succeeded includes data.network_fee for payments quoted with gasless payments. It is null
for older payments.
paid_by:merchant(you sponsored) orshopper.fee_mode:token(the shopper paid in the payment token),native(the shopper’s wallet paid gas itself), or null when you sponsored.amount,asset: the token fee in base units and its 1Click asset id. Null unlessfee_modeistoken.usd: the quoted fee in USD, a decimal string. When Tendr collects the fee it includes Tendr’s safety margin.method: the gasless method (eip3009,permit,paymaster,kora,meta_tx,forwarder), or null when the shopper’s wallet paid gas itself.reason: why the shopper paid, when you were expected to sponsor. See why a payment was not sponsored.

