Skip to main content
Payment webhooks always use the transaction envelope. The top-level event stays transaction; the concrete event name is in data.event_type.

Example delivery payload

data.informations echoes the custom informations array you sent when creating the transaction via the API — use it to reconcile the event against your own records. It is present only when you sent custom entries on create; transactions created without them (or through checkout links) omit the field.

ACK response

Event names emitted today

  • transaction.created
  • transaction.pending
  • transaction.paid
  • transaction.cancelled
  • transaction.refunded
  • transaction.partially_refunded
  • transaction.chargedback
  • transaction.three_ds_required

Common ingestion error

Fix: deduplicate by the top-level event id, not by transaction ID, because the same transaction can emit more than one business event over time.

Mapping guidance

  • Use transaction.paid to release goods or services.
  • Keep the order open on transaction.pending.
  • For method: "voucher", transaction.pending can also carry payment instructions in data.voucher. Show the returned url, digitable_line, barcode, or instructions and keep waiting for transaction.paid.
  • Use refund and chargeback events to drive finance and support flows.
  • Route transaction.three_ds_required back into your card challenge flow.