Webhook Event Reference

Complete list of events your webhook subscriptions can listen to.

Event Naming Convention

All event names follow a dot-separated convention: <module>.<action> or <module>.<entity>.<action>. For example, task.created or task.status.changed.

When creating a webhook subscription, you can subscribe to specific events by their exact name, or use wildcard patterns to match groups of events:

  • task.created — matches only the task.created event.
  • task.* — matches all top-level task events: task.created, task.assigned, task.completed, task.cancelled, task.updated, task.deleted.
  • payment.* — matches all payment events.
Payload Wrapper

The payloads described below are the contents of the data field in the webhook payload envelope. Every delivery is wrapped in the standard payload structure with id, event, timestamp, organizationId, data, and apiVersion.

Task Events

Task events are emitted throughout the lifecycle of a delivery task — from creation through assignment, transit, and completion or cancellation.

Event Description Key Payload Fields
task.created A new task has been created. task, timestamp
task.assigned An agent has been assigned to a task. task, agentId, previousAgentId, agent ({ id, userId, name } from task relations, nullable), timestamp
task.status.changed A task's status has changed (e.g., ACCEPTED to IN_TRANSIT). task, oldStatus, newStatus, reason, timestamp
task.courier.assigned An external courier has been assigned to a task. task, courierId, courierType, previousCourierId, courier ({ id, name } from task relations, nullable), timestamp
task.completed A task has been completed successfully. task, completedAt, completedBy
task.cancelled A task has been cancelled. task, cancelledAt, cancelledBy, reason
task.updated Task details have been modified. task, changes
task.deleted A task has been deleted. taskId, organizationId

Task Object Shape

The task object included in task event payloads contains the following fields:

{
  "id": 1234,
  "code": "TSK-00456",
  "name": "Delivery to Downtown",
  "status": "IN_TRANSIT",
  "taskType": "delivery",
  "courierType": "INTERNAL",
  "timeToServe": "asap",
  "scheduledAt": null,
  "completedAt": null,
  "customerId": 89,
  "agentId": 12,
  "locationId": 5,
  "organizationId": 42,
  "createdAt": "2026-02-16T13:00:00.000Z",
  "updatedAt": "2026-02-16T14:30:00.000Z"
}

Courier Events

Courier events track the lifecycle and status of external courier integrations.

Event Description Key Payload Fields
courier.created A new courier integration has been created. courier
courier.status.changed A courier's status has changed. courier, oldStatus, newStatus
courier.updated Courier details have been modified. courier, changes
courier.deleted A courier has been deleted. courierId, organizationId

Payment Events

Payment events cover the full payment lifecycle including creation, completion, failure, and refunds.

Event Description Key Payload Fields
payment.created A new payment record has been created. payment
payment.completed A payment has been completed successfully. payment
payment.failed A payment has failed. payment, error
payment.refunded A payment has been refunded (full or partial). payment, refundAmount
payment.status.changed A payment's status has changed. payment, oldStatus, newStatus

Agent Events

Agent events track delivery driver activity, including creation, availability changes, and real-time location updates.

Event Description Key Payload Fields
agent.created A new agent (delivery driver) has been created. agent
agent.status.changed An agent's availability or duty status has changed. agent, oldStatus, newStatus
agent.location.updated An agent's GPS location has been updated. agentId, location ({ lat, lng })
High-Frequency Event

The agent.location.updated event fires frequently as drivers move. Subscribing to this event will generate a high volume of webhook deliveries. Make sure your endpoint can handle the throughput, or consider using the real-time tracking Socket.IO connection instead.

Customer Events

Customer events are emitted when customer records are created, modified, or removed.

Event Description Key Payload Fields
customer.created A new customer record has been created. customer
customer.updated Customer details have been modified. customer, changes
customer.deleted A customer record has been deleted. customerId, organizationId

Organization Events

Organization events track changes to the organization (tenant) itself.

Event Description Key Payload Fields
organization.created A new organization has been created. organization
organization.updated Organization details have been modified. organization, changes
organization.deleted An organization has been deleted. organizationId

Wildcard Pattern Summary

For convenience, here are the most useful wildcard patterns you can use when creating subscriptions:

Pattern Matches
task.* All top-level task events (task.created, task.assigned, task.completed, task.cancelled, task.updated, task.deleted)
task.status.* task.status.changed
task.courier.* task.courier.assigned
courier.* All top-level courier events (courier.created, courier.updated, courier.deleted)
courier.status.* courier.status.changed
payment.* All top-level payment events (payment.created, payment.completed, payment.failed, payment.refunded)
payment.status.* payment.status.changed
agent.* All top-level agent events (agent.created)
agent.status.* agent.status.changed
agent.location.* agent.location.updated
customer.* All customer events (customer.created, customer.updated, customer.deleted)
organization.* All organization events (organization.created, organization.updated, organization.deleted)