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.created | id, name, email, currency |
| ping | endpoint_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.