Order Tracking Updated
EVENT_TRACKING_UPDATED is sent when tracking information changes.
When it fires
Fires automatically only when a shipment is created, the related order draft exists, and the new tracking number is non-empty and is not an Amazon dummy tracking number. Updates and deletions do not fire it. A manual third_party_tracking_force_resync can also publish the event for the latest primary shipment of explicitly supplied order IDs; that path does not populate tracking_list. Before delivery, an API failure while loading the current order suppresses delivery; no returned order produces empty vendor ID and status.
Example payload
V3
{
"type": "tracking_order_updated",
"order": {
"gearment_id": "260909P-DEMO01-5T8H3C7V",
"gearment_name": "260909P-DEMO01-5T8H3C7V",
"vendor_id": "SHOP-10483",
"status": "shipped"
},
"tracking": {
"number": "1Z999AA10123456784",
"company": "UPS",
"url": "https://www.ups.com/track?tracknum=1Z999AA10123456784"
},
"tracking_list": [
{
"number": "1Z999AA10123456784",
"company": "UPS",
"url": "https://www.ups.com/track?tracknum=1Z999AA10123456784",
"type": "t-shirt"
}
]
}V1
{
"api_key": "ck_demo_8f2c",
"type": "tracking_updated",
"data": {
"gearment_ord_id": "109876545",
"gearment_ord_name": "260909P-DEMO01-5T8H3C7V",
"ord_status": "processing",
"order_id": "SHOP-10483",
"tracking_number": "1Z999AA10123456784",
"tracking_company": "UPS",
"tracking_url": "https://www.ups.com/track?tracknum=1Z999AA10123456784",
"tracking_list": [
{
"tracking_number": "1Z999AA10123456784",
"tracking_company": "UPS",
"tracking_url": "https://www.ups.com/track?tracknum=1Z999AA10123456784",
"type": "t-shirt"
}
]
}
}Fields
| Version | Field | Type | Presence | Description |
|---|---|---|---|---|
| V1 | api_key | string | A | Default credential client key |
| V1 | type | string | A | Literal "tracking_updated" |
| V1 | data | object | A | Legacy payload container |
| V1 | data.gearment_ord_id | string | A | Legacy numeric ID as a string when mapped; otherwise internal ID |
| V1 | data.gearment_ord_name | string | A | Internal Gearment order ID |
| V1 | data.ord_status | string | A | Literal "processing" |
| V1 | data.order_id | string | A/empty | Current order’s platform reference |
| V1 | data.tracking_number | string | A | Tracking number that triggered the event |
| V1 | data.tracking_company | string | A/empty | Triggering event’s tracking carrier |
| V1 | data.tracking_url | string | A/empty | Triggering event’s tracking URL |
| V1 | data.tracking_list | array<object> | A | All retrieved shipment tracking records; possibly [] |
| V1 | data.tracking_list[].tracking_number | string | Per item | Shipment tracking number |
| V1 | data.tracking_list[].tracking_company | string | Per item | Shipment tracking company |
| V1 | data.tracking_list[].tracking_url | string | Per item | Shipment tracking URL |
| V1 | data.tracking_list[].type | string | Per item | Shipment tracking product type |
| V3 | type | string | A | Literal "tracking_order_updated" |
| V3 | order | object | A | Current order identity and status |
| V3 | order.gearment_id | string | A | Internal Gearment order ID |
| V3 | order.gearment_name | string | A | Same internal ID copied into the name field |
| V3 | order.vendor_id | string | A/empty | Current order’s platform reference |
| V3 | order.status | string | A/empty | Mapped current order status |
| V3 | tracking | object | A | Tracking record that triggered the event |
| V3 | tracking.number | string | A | Triggering tracking number |
| V3 | tracking.company | string | A/empty | Triggering tracking carrier |
| V3 | tracking.url | string | A/empty | Triggering tracking URL |
| V3 | tracking_list | array<object> | A | All retrieved shipment tracking records; possibly [] |
| V3 | tracking_list[].number | string | Per item | Shipment tracking number |
| V3 | tracking_list[].company | string | Per item | Shipment tracking company |
| V3 | tracking_list[].url | string | Per item | Shipment tracking URL |
| V3 | tracking_list[].type | string | Per item | Shipment tracking product type |
Presence: A is always emitted; A/empty is always emitted but the value can be ""; Per item is emitted for every array element.
Verify the signature before parsing the body. See Verifying a payload.
Payload handling
Confirm the exact topic and payload version with the Webhook simulator. Preserve unknown fields, process the event idempotently, and do not depend on JSON property ordering.