Webhooks
Event catalogue
Everything Nexa can tell you about, and exactly what each one looks like on the wire.
An endpoint subscribes to the events it wants; the rest are not delivered to it. Event types are permanent — we add to this list, we do not rename or remove.
Each event names the scope your key needs to fetch the object it points at. An alarm.raised without assets:read tells you a fault exists and leaves you unable to look at the machine.
Operations
operation.createdneeds operations:readA work order was opened, by a person in the portal or through the API.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.created",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "assigned",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-24T07:30:00.000Z"
}
}
}operation.updatedneeds operations:readAn operation's details changed — title, description, notes, skill or amount.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.updated",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "assigned",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-24T07:30:00.000Z"
}
}
}operation.assignedneeds operations:readAn operation was assigned or reassigned to a technician or a vendor.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.assigned",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "assigned",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-24T07:30:00.000Z"
}
}
}operation.rescheduledneeds operations:readAn operation's scheduled date or time moved.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.rescheduled",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "assigned",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-26T13:00:00.000Z"
}
}
}operation.cancelledneeds operations:readAn operation was called off before it was carried out.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.cancelled",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "cancelled",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-24T07:30:00.000Z"
}
}
}operation.completedneeds operations:readAn operation was closed out with a completion report. Terminal.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "operation.completed",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "8c1e93a0-2d7f-4b8c-9b3d-5f2c1a7e4c81",
"object": "operation",
"status": "completed",
"title": "Line 2 conveyor — bearing noise",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"assignee_type": "technician",
"technician_id": "3a91cc70-1b44-4e9f-bb02-77de55aa1122",
"vendor_id": null,
"scheduled_for": "2026-09-24T07:30:00.000Z"
}
}
}Assets
asset.createdneeds assets:readA new asset or machine was added to the register.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "asset.created",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"object": "asset",
"name": "Conveyor CV-02",
"reference": "CNV-0042",
"status": "operational",
"category": "machine",
"building_id": "1f0a6e52-4a19-8c33-90ab-12cd34efb7d4",
"room_id": "6e524a19-8c33-90ab-12cd-34efb7d41f0a"
}
}
}asset.updatedneeds assets:readAn asset's details changed.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "asset.updated",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"object": "asset",
"name": "Conveyor CV-02",
"reference": "CNV-0042",
"status": "operational",
"category": "machine",
"building_id": "1f0a6e52-4a19-8c33-90ab-12cd34efb7d4",
"room_id": "6e524a19-8c33-90ab-12cd-34efb7d41f0a"
}
}
}asset.status_changedneeds assets:readAn asset moved between operational, under maintenance, out of service or retired. The event to drive an availability view from — it carries the previous status so you do not have to keep your own copy.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "asset.status_changed",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"object": "asset",
"name": "Conveyor CV-02",
"reference": "CNV-0042",
"status": "under_maintenance",
"category": "machine",
"building_id": "1f0a6e52-4a19-8c33-90ab-12cd34efb7d4",
"room_id": "6e524a19-8c33-90ab-12cd-34efb7d41f0a",
"previous_status": "operational"
}
}
}Alarms
alarm.raisedneeds assets:readA machine alarm fired from telemetry. Only ever emitted for businesses with the Machine telemetry feature.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "alarm.raised",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "d4e5f6a7-b8c9-40d1-92e3-f4a5b6c7d8e9",
"object": "alarm",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"code": "E-207",
"severity": "critical",
"raised_at": "2026-09-23T10:03:58.000Z",
"cleared_at": null
}
}
}alarm.clearedneeds assets:readA machine alarm returned to normal.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "alarm.cleared",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"id": "d4e5f6a7-b8c9-40d1-92e3-f4a5b6c7d8e9",
"object": "alarm",
"asset_id": "b7d41f0a-6e52-4a19-8c33-90ab12cd34ef",
"code": "E-207",
"severity": "critical",
"raised_at": "2026-09-23T10:03:58.000Z",
"cleared_at": "2026-09-23T11:47:12.000Z"
}
}
}Platform
webhook.pingA test delivery. Sent when you register an endpoint and whenever you press Send test event. Every endpoint receives it whether or not it is subscribed.
Example payload
{
"id": "evt_5f2c1a7e-9b3d-4c81-a0e6-2d7f4b8c1e93",
"type": "webhook.ping",
"created_at": "2026-09-23T10:04:00.000Z",
"api_version": "2026-09-01",
"data": {
"object": {
"object": "ping",
"message": "If you are reading this, your endpoint is reachable and the signature verified."
}
}
}