tread.io · AsyncAPI Specification
Treadio Webhooks
Version
View Spec
View on GitHub
CompanyConstructionLogisticsTransportation ManagementDispatchFleet ManagementBulk MaterialsTruckingWebhooksAPIAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-07-21'
method: searched
source: https://docs.tread.ai/integrations/webhooks
spec_type: Webhooks
summary: >-
Tread pushes real-time events to a customer-controlled HTTPS endpoint when records change.
Subscriptions are configured per company (Settings -> Integrations -> Webhooks). Each
subscription listens to one or more triggers (topic + event) and is signed with HMAC-SHA256.
delivery:
transport: 'HTTPS POST (HTTP rejected)'
signature_header: X-Tread-Hmac-sha256
signature_algorithm: HMAC-SHA256(secret, raw_request_body) hex digest
ack: 'Respond 2xx to mark delivered; anything else triggers a retry.'
timeout_seconds: 10
retries: 'Failed deliveries retried at increasing intervals up to a per-event limit; attempt field increments.'
ordering: 'Not guaranteed; reconcile with event_time.'
replay: 'Not supported; design for at-least-once delivery and idempotent handlers.'
custom_headers: 'Optional per-subscription request headers (auth/routing tokens).'
envelope:
fields:
- subscription_id
- trigger_id
- event_id
- delivery_id
- attempt
- event_time
- event
- payload
- meta.company_id
event_format: '<Topic>::<event_type>, e.g. Order::create'
payload: 'The resource as it appears in the Tread API.'
topics:
- name: Order
description: A daily Order.
- name: Job
description: One Driver's assignment for one Order.
- name: Load
description: One pickup-to-drop-off cycle.
- name: Ticket
description: The record of one Load (proof of work).
- name: ImportedProject
description: A Project pushed in via the import API.
- name: ImportedOrder
description: An Order pushed in via the import API.
- name: ImportedTicket
description: A Ticket pushed in via the import API.
event_types: [create, update, state_change, skip, error]
events:
- Order::create
- Order::update
- Order::state_change
- Order::skip
- Order::error
- Job::create
- Job::update
- Job::state_change
- Job::skip
- Job::error
- Load::create
- Load::update
- Load::state_change
- Load::skip
- Load::error
- Ticket::create
- Ticket::update
- Ticket::state_change
- Ticket::skip
- Ticket::error
- ImportedProject::create
- ImportedProject::update
- ImportedProject::state_change
- ImportedProject::skip
- ImportedProject::error
- ImportedOrder::create
- ImportedOrder::update
- ImportedOrder::state_change
- ImportedOrder::skip
- ImportedOrder::error
- ImportedTicket::create
- ImportedTicket::update
- ImportedTicket::state_change
- ImportedTicket::skip
- ImportedTicket::error
prerequisites:
- An HTTPS endpoint you control.
- A Tread admin user with the Integrations permission.
- Ability to verify HMAC signatures.
- A retry-tolerant, idempotent handler.
asyncapi_spec: null
asyncapi_note: >-
Tread publishes no machine-readable AsyncAPI document; this is the webhook catalog captured
from the docs. 7 topics x 5 event types = 35 subscribable triggers.