Nash · AsyncAPI Specification

Nash Webhooks

Version 1.0.0

Real-time delivery events Nash pushes to subscriber endpoints over HTTP, delivered and signed via Svix. Each message carries `type`, `event`, and `data`. Endpoints are registered per event type in the Nash Portal.

View Spec View on GitHub CompanyDeliveryLast-Mile DeliveryLogisticsDispatchRoute OptimizationFleet ManagementCourierShippingOrdersWebhooksAI AgentsAsyncAPIWebhooksEvents

Channels

delivery
Delivery lifecycle events, once per state transition.
task
Task lifecycle events, once per state transition.
courier_location
Courier location updates, once every 1-2 minutes when available.
shift
Shift events emitted when a delivery window is dispatched in bulk.

Messages

DeliveryEvent
Delivery event
TaskEvent
Task event
CourierLocationEvent
Courier location event
ShiftEvent
Shift event

Servers

https
portal
Webhook endpoints are registered in the Nash Portal (Settings > Webhook Management).

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
# generated: '2026-07-20'
# method: generated
# source: https://docs.usenash.com/reference/webhooks (documented event catalog)
# note: Faithful AsyncAPI rendering of Nash's documented webhook event surface.
#       Nash does not publish an AsyncAPI document; this is generated by API
#       Evangelist from the real, documented event types and enums. No events or
#       fields were invented.
info:
  title: Nash Webhooks
  version: 1.0.0
  description: >-
    Real-time delivery events Nash pushes to subscriber endpoints over HTTP,
    delivered and signed via Svix. Each message carries `type`, `event`, and
    `data`. Endpoints are registered per event type in the Nash Portal.
  contact:
    name: Nash Support
    email: support@usenash.com
    url: https://docs.usenash.com/reference/webhooks
defaultContentType: application/json
servers:
  portal:
    host: portal.usenash.com
    protocol: https
    description: Webhook endpoints are registered in the Nash Portal (Settings > Webhook Management).
channels:
  delivery:
    address: delivery
    description: Delivery lifecycle events, once per state transition.
    messages:
      deliveryEvent:
        $ref: '#/components/messages/DeliveryEvent'
  task:
    address: task
    description: Task lifecycle events, once per state transition.
    messages:
      taskEvent:
        $ref: '#/components/messages/TaskEvent'
  courier_location:
    address: courier_location
    description: Courier location updates, once every 1-2 minutes when available.
    messages:
      courierLocationEvent:
        $ref: '#/components/messages/CourierLocationEvent'
  shift:
    address: shift
    description: Shift events emitted when a delivery window is dispatched in bulk.
    messages:
      shiftEvent:
        $ref: '#/components/messages/ShiftEvent'
operations:
  receiveDeliveryEvent:
    action: receive
    channel:
      $ref: '#/channels/delivery'
  receiveTaskEvent:
    action: receive
    channel:
      $ref: '#/channels/task'
  receiveCourierLocationEvent:
    action: receive
    channel:
      $ref: '#/channels/courier_location'
  receiveShiftEvent:
    action: receive
    channel:
      $ref: '#/channels/shift'
components:
  messages:
    DeliveryEvent:
      name: DeliveryEvent
      title: Delivery event
      contentType: application/json
      payload:
        type: object
        required: [type, event, data]
        properties:
          type:
            type: string
            const: delivery
          event:
            type: string
            enum: [created, not_assigned_driver, assigned_driver, started, pickup_enroute, pickup_arrived, items_pick_update, items_pick_complete, pickup_complete, dropoff_enroute, dropoff_arrived, dropoff_complete, canceled_by_provider, return_in_progress, return_arrived, returned, scheduled, expired, failed, canceled_by_customer, canceled_by_nash, canceled_by_auto_reassign, proof_of_delivery, pincode_verification, pickup_label, shipping_label, manifested]
          data:
            description: A Job (delivery) object, the same shape as the Create Job response.
            type: object
    TaskEvent:
      name: TaskEvent
      title: Task event
      contentType: application/json
      payload:
        type: object
        required: [type, event, data]
        properties:
          type:
            type: string
            const: task
          event:
            type: string
            enum: [created, updated, running, completed, canceled_by_provider, failed, canceled_by_customer, canceled_by_nash, planned_selection, refund_created, refund_updated]
          data:
            description: A Job (delivery) object, the same shape as the Create Job response.
            type: object
    CourierLocationEvent:
      name: CourierLocationEvent
      title: Courier location event
      contentType: application/json
      payload:
        type: object
        required: [type, event]
        properties:
          type:
            type: string
            const: courier_location
          event:
            type: string
            enum: [updated]
    ShiftEvent:
      name: ShiftEvent
      title: Shift event
      contentType: application/json
      payload:
        type: object
        required: [type, event]
        properties:
          type:
            type: string
            const: shift
          event:
            type: string
            enum: [dispatched]
  messageTraits:
    SvixSigned:
      headers:
        type: object
        properties:
          svix-id:
            type: string
          svix-timestamp:
            type: string
          svix-signature:
            type: string