Gearment API

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

VersionFieldTypePresenceDescription
V1api_keystringADefault credential client key
V1typestringALiteral "tracking_updated"
V1dataobjectALegacy payload container
V1data.gearment_ord_idstringALegacy numeric ID as a string when mapped; otherwise internal ID
V1data.gearment_ord_namestringAInternal Gearment order ID
V1data.ord_statusstringALiteral "processing"
V1data.order_idstringA/emptyCurrent order’s platform reference
V1data.tracking_numberstringATracking number that triggered the event
V1data.tracking_companystringA/emptyTriggering event’s tracking carrier
V1data.tracking_urlstringA/emptyTriggering event’s tracking URL
V1data.tracking_listarray<object>AAll retrieved shipment tracking records; possibly []
V1data.tracking_list[].tracking_numberstringPer itemShipment tracking number
V1data.tracking_list[].tracking_companystringPer itemShipment tracking company
V1data.tracking_list[].tracking_urlstringPer itemShipment tracking URL
V1data.tracking_list[].typestringPer itemShipment tracking product type
V3typestringALiteral "tracking_order_updated"
V3orderobjectACurrent order identity and status
V3order.gearment_idstringAInternal Gearment order ID
V3order.gearment_namestringASame internal ID copied into the name field
V3order.vendor_idstringA/emptyCurrent order’s platform reference
V3order.statusstringA/emptyMapped current order status
V3trackingobjectATracking record that triggered the event
V3tracking.numberstringATriggering tracking number
V3tracking.companystringA/emptyTriggering tracking carrier
V3tracking.urlstringA/emptyTriggering tracking URL
V3tracking_listarray<object>AAll retrieved shipment tracking records; possibly []
V3tracking_list[].numberstringPer itemShipment tracking number
V3tracking_list[].companystringPer itemShipment tracking company
V3tracking_list[].urlstringPer itemShipment tracking URL
V3tracking_list[].typestringPer itemShipment 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.