Developer

Payload structure

One envelope for every event.

json
{
"id": "7d3c1a2e-…",                 // event id — stable across retries
"type": "invoice.created",
"created_at": "2026-08-26T14:02:11.000Z",
"business_id": "d5028291-…",
"data": {
  "id": "0f9e…",                    // document id
  "no": "INV000142",
  "type": "Invoice",
  "status": "posted",               // or "draft" / "voided"
  "receiver": "3dca…",              // customer id
  "total": 1250.00,
  "currency": "USD",
  "date": "2026-08-26",
  "center": null
}
}
Event family`data` carries
*.created (documents)id, no, type, status, receiver, total, currency, date, center
*.voided (documents)id, type, status: "voided", note
customer.created / vendor.createdid, name, email, currency
pingendpoint_id, url, message

Payloads carry ids and figures, not the full record — fetch the resource for the rest. This keeps deliveries small and means a payload never goes stale in your queue.