DEVELOPERS
Subscribe to shipment, order, return request, and inventory events. Carriyo posts the full payload to your endpoint the moment something changes - no polling required.
Read the Webhook DocsEVENT TYPES
Carriyo emits events for four entity types. Subscribe to the triggers you need and add conditions to filter the rest.
27 triggers: every status change from draft to return_in_transit, label updates, and reason codes.
Know the moment a shipment moves. Filter by shipment type, delivery type, geography, pickup location, or creation source.
18 triggers: ORDER_CREATE, ORDER_CANCEL, ORDER_CLOSED, holds, and fulfillment-order events.
Track the order lifecycle from creation to close, including every fulfillment order under it.
8 status triggers and 2 item-level triggers (return_status_update, return_received_update).
Stay informed throughout the reverse logistics flow, from request to received items.
ALL_INVENTORY_UPDATES, with the old and new inventory image in each payload.
Mirror stock positions into your own systems as they change at any location.
RELIABILITY
Three automatic retries: immediately, after 3 minutes, and after 5 more. Optional extended retries continue for about 30 hours.
Static custom headers (for example a fixed Authorization value) or OAuth2 client credentials, where Carriyo fetches a token from your endpoint.
A stable event-id header on every attempt, so your handler can deduplicate. Ordering is not guaranteed; use payload timestamps.
Every delivery attempt, response, and retry is visible in Settings > Integration Monitor, with the trigger and webhook id.
Subscribe to specific triggers and add conditions such as shipment type, delivery type, or creation source to reduce noise.
Replay a single failed event or bulk-replay an outage window from the Integration Monitor, or via the retrigger-failed-events API.
GETTING STARTED
Add your HTTPS endpoint under Settings > Webhooks in the Dashboard, or via the API. Pick the triggers and conditions you want.
Send fixed custom headers that your endpoint checks, or let Carriyo obtain a bearer token from your OAuth2 token endpoint.
Handle the payload idempotently using the event-id header, return a 2xx within 30 seconds, and Carriyo handles the rest.