{
"status": "shipment_delivered",
"store_id": 1234,
"carrier_name": "Estafeta",
"tracking_urls": [
"https://tracking.example.com/orders/abc123"
],
"tracking_number": "1234567890123456789012",
"zip_code": "06600",
"order_number": "ORD-0001",
"updated_at": "2026-10-14T18:32:10Z",
"estimated_time_arrival": "2026-10-14T23:59:59Z",
"incident_description": null,
"label_tracking_event_id": 8812001,
"is_multi_package": false,
"packages": [
{
"shipping_number": "1234567890123456789012",
"tracking_url": "https://carrier.example.com/track/1234567890123456789012",
"shipping_status": "shipment_delivered",
"carrier_name": "Estafeta",
"package_index": 1,
"total_packages": 1
}
],
"triggered_by_package": {
"shipping_number": "1234567890123456789012",
"shipping_status": "shipment_delivered",
"carrier_name": "Estafeta",
"tracking_url": "https://carrier.example.com/track/1234567890123456789012",
"previous_status": "shipment_out_for_delivery",
"package_index": 1,
"total_packages": 1
},
"channel_name": "openapi"
}Carrier tracking status changed
Cubbo sends this event to your order webhook URL every time the carrier tracking status of a shipped order changes (in transit, out for delivery, delivered, incident, returned, canceled, partially delivered, to be self-collected). A tracking update whose status equals the previous status is not sent.
statusis the shipment status that triggered the event. For multi-package orders it describes the package that changed; the full set is listed inpackages, andtriggered_by_packageidentifies the one that changed.updated_atis the timestamp of the carrier event, not the time of delivery of the webhook.incident_descriptionis set only whenstatusisshipment_with_incident.estimated_time_arrivalisnullwhen the shipment was returned or the package was reported stolen or lost.label_tracking_event_ididentifies the exact tracking event; combined with theX-Cubbo-Idempotency-Keyheader it lets you deduplicate retries while still receiving one event per package.channel_integration_idandchannel_order_idare added when the “include channel details in webhooks” setting is enabled for your store by Cubbo.channel_nameandchannel_order_idare included for every recently created Open API integration.- This event has no
idfield; correlate byorder_number(unique within a store) orchannel_order_id.
{
"status": "shipment_delivered",
"store_id": 1234,
"carrier_name": "Estafeta",
"tracking_urls": [
"https://tracking.example.com/orders/abc123"
],
"tracking_number": "1234567890123456789012",
"zip_code": "06600",
"order_number": "ORD-0001",
"updated_at": "2026-10-14T18:32:10Z",
"estimated_time_arrival": "2026-10-14T23:59:59Z",
"incident_description": null,
"label_tracking_event_id": 8812001,
"is_multi_package": false,
"packages": [
{
"shipping_number": "1234567890123456789012",
"tracking_url": "https://carrier.example.com/track/1234567890123456789012",
"shipping_status": "shipment_delivered",
"carrier_name": "Estafeta",
"package_index": 1,
"total_packages": 1
}
],
"triggered_by_package": {
"shipping_number": "1234567890123456789012",
"shipping_status": "shipment_delivered",
"carrier_name": "Estafeta",
"tracking_url": "https://carrier.example.com/track/1234567890123456789012",
"previous_status": "shipment_out_for_delivery",
"package_index": 1,
"total_packages": 1
},
"channel_name": "openapi"
}Authorizations
Headers
Name of the event (orderUpdated, orderFulfilled, shippingUpdated, inventoryMovement,
replenishmentStatus, replenishmentCreated, replenishmentScheduled). Route on this header,
not on the URL: all feeds can share one endpoint. Treat a request without this header as an order
event.
orderUpdated, orderFulfilled, shippingUpdated, inventoryMovement, replenishmentStatus, replenishmentCreated, replenishmentScheduled Body
Payload of the shippingUpdated event.
Shipment status that triggered the event.
shipment_in_transit, shipment_out_for_delivery, shipment_delivered, shipment_partially_delivered, shipment_with_incident, shipment_returned, shipment_canceled, shipment_to_be_self_collected, shipment_not_defined "shipment_delivered"
Reason of the incident. Set only when status is shipment_with_incident.
second_try, third_try, client_requested, missing_references, not_at_home, refused_payment, refused_package, cubbo_requested, carrier_requested, stolen, lost, damaged, loading_error, pickup_expired, delivery_failed, null null
Response
Acknowledge receipt with any 2xx status. The response body is ignored. A 429 or any 5xx response is retried; any other 4xx response is treated as a permanent rejection and is not retried.