Event catalogue
Webhook deliveries and GET /v1/events share one envelope: id, type, version, createdAt, organisationId, isTest and data. Register endpoints in the portal or through POST /v1/webhooks; the catalogue below is the contract integrations build against. See webhooks for signatures and retries.
JSON
{
"id": "evt_01J9Y2K8QF4T6W8Z0B2D4F6H8K",
"type": "item.ready",
"version": 1,
"createdAt": "2026-10-16T09:14:02.000Z",
"organisationId": "org_01J9Y2K8QF4T6W8Z0B2D4F6H8K",
"isTest": false,
"data": {
"item": {
"id": "itm_01J9Y2K8QF4T6W8Z0B2D4F6H8K",
"status": "READY"
}
}
}Events
| Type | When |
|---|---|
item.created | An item was accepted |
item.needs_attention | Validation found problems the customer must repair |
item.held | The item waits (paused Postflow, funds, approval mode) |
item.ready | The item is ready for the next production run |
item.pending_approval | The item waits for an explicit approval |
item.scheduled | The item is attached to a production run |
item.in_production | The run was handed to the printer |
item.handed_to_carrier | The run was offered to the carrier |
item.completed | The item is on its way |
item.returned | The item came back to the sender after delivery |
item.not_sent | The item was damaged, misprinted or not handed to the carrier |
item.failed | The item failed in production or was excluded |
item.cancelled | The item was cancelled |
item.suppressed | The recipient matched the suppression list |
postbatch.validated | A Postbatch finished validation |
postbatch.approved | A Postbatch was approved |
postbatch.scheduled | A Postbatch was attached to a run |
postbatch.completed | A Postbatch completed |
postbatch.cancelled | A Postbatch was cancelled |
import.completed | An import finished |
import.failed | An import failed |
template.published | A template version was published |
preview.ready | A requested preview is available |
qr.scanned | A tracked QR code was scanned |
run.cutoff_reached | A production run reached its cutoff |
run.rendered | A production run was rendered |
run.handed_to_printer | A production run was handed to the printer |
webhook.disabled | A webhook endpoint was disabled after repeated failures |
webhook.test | A test event sent from the portal or the API |
balance.low | The available balance dropped below the threshold |
invoice.issued | An invoice was issued |