Sendle · AsyncAPI Specification

Sendle Tracking Webhooks

Version 1.0

Sendle pushes parcel tracking events to a callback URL configured in the account Settings -> API page. Subscriptions are created per parcel via the Tracking API. Sendle expects 2xx responses; failed deliveries are retried up to three times.

View Spec View on GitHub ShippingLogisticsLast MileParcelsE-commerceCarbon NeutralSmall BusinessAustraliaUnited StatesCanadaAsyncAPIWebhooksEvents

Channels

trackingEvents
Endpoint registered on the account to receive parcel tracking events.

Messages

TrackingEvent
Parcel Tracking Event
Webhook fired when a subscribed parcel transitions between tracking states.

Servers

https
partner
The partner-controlled HTTPS endpoint registered as the account callback URL.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Sendle Tracking Webhooks
  version: "1.0"
  description: |
    Sendle pushes parcel tracking events to a callback URL configured in the
    account Settings -> API page. Subscriptions are created per parcel via the
    Tracking API. Sendle expects 2xx responses; failed deliveries are retried up
    to three times.
servers:
  partner:
    host: example.com
    protocol: https
    description: The partner-controlled HTTPS endpoint registered as the account callback URL.
channels:
  trackingEvents:
    address: /sendle-webhook
    description: Endpoint registered on the account to receive parcel tracking events.
    messages:
      trackingEvent:
        $ref: '#/components/messages/TrackingEvent'
operations:
  receiveTrackingEvent:
    action: receive
    channel:
      $ref: '#/channels/trackingEvents'
    summary: Receive a tracking event for a subscribed parcel
    messages:
      - $ref: '#/channels/trackingEvents/messages/trackingEvent'
components:
  messages:
    TrackingEvent:
      name: TrackingEvent
      title: Parcel Tracking Event
      summary: Webhook fired when a subscribed parcel transitions between tracking states.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/TrackingEventPayload'
  schemas:
    TrackingEventPayload:
      type: object
      required: [sendle_reference, event_id, event_type, scan_time]
      properties:
        sendle_reference:
          type: string
          description: Unique Sendle order identifier (alphanumeric, 6+ chars, starts with "S").
        event_id:
          type: string
          format: uuid
          description: Webhook event unique system identifier.
        event_type:
          type: string
          enum:
            - Pickup Attempted
            - Pickup
            - Drop Off
            - Dropped off
            - Info
            - In Transit
            - Out for Delivery
            - Delivery Attempted
            - Delivered
            - Local Delivery
            - Card Left
            - Left with Agent
            - Damaged
            - Unable to Deliver
            - Expired
        scan_time:
          type: string
          format: date-time
          description: UTC timestamp of the scan event (RFC 3339).
        description:
          type: string
        location_data:
          type: object
          properties:
            suburb: { type: string, nullable: true }
            state: { type: string, nullable: true }
            postcode: { type: string, nullable: true }
            country: { type: string, nullable: true }