POST /v1/trackers

Trackers can be created or updated via a POST method to https://api.shipup.co/v1/trackers, which accepts an array of JSON objects, each describing a tracker.

Trackers not found via order_number and tracking_number will be created, and those that are found will be updated.

🚧

This endpoint offers a simplified way to send data to Shipup. The payload includes data relative to the order (e.g. order_number) and the tracker (e.g. tracking_number). Shipup will thus create or update an order, a fulfillment, and a tracker for each tracker of your payload. Please use the create or update an order endpoint if you wish to send fulfillment and line item data. You can read more about the differences between those two endpoints here.

Request payload:

The below table shows which fields you can send to create or update a tracker

FIELD

DESCRIPTION

address_city
string, optional

City, town or village

address_country
string, optional, 2 letter ISO code, e.g. FR or GB

Country code

address_name
string, optional

Address full name

address_state
string, optional

State code (US and Canada only)

address_street
string, optional, can include
to have jump of lines

Street address, including street number

address_zip
string, optional

Postal code (zip, postcode, Eircode, …)

carrier_code
string, optional (but highly recommended, see below note)

Code uniquely identifying a shipping carrier

carrier_service_code
string, optional (but highly recommended, see below note)

Code uniquely identifying a shipping carrier's delivery service

custom_variables
object, optional

Tracker custom variables

email
string, optional

Customer's email address

expected_delivery_at
datetime, optional

Expected delivery time for the package

If provided, this date will be used as the merchant expected delivery. Read more in the tracker object's displayable_expected_delivery_date field description

first_name
string, optional

Customer's first name

language_code
string, optional,
see available values

Customer's language
Defaults to your company's main language if not provided

last_name
string, optional

Customer's last name

mute_notifications
boolean, optional

If set to true, no notification will be sent for this tracker. Defaults to false

order_date
datetime, optional

Time at which the order was placed

order_number
string, required

Shop order reference

phone
string, optional

Customer's mobile phone. The format will be handled by Shipup.
If you have several phone numbers, you can send them all in this field, separated by a | (pipe symbol)

tracking_number
string, required

Package tracking number

untracked_carrier_name
string, optional

Carrier name to be displayed as a fallback if Shipup can't find a matching carrier

{
  "trackers": [
    {
      "address_city": "Paris",
      "address_country": "France",
      "address_name": "Alice Dubois",
      "address_state": null,
      "address_street": "12, rue de Cléry",
      "address_zip": "75002",
      "carrier_code": "dpd_fr",
      "custom_variables": {
        "internal_variable": 3
      },
      "expected_delivery_at": 1530468000,
      "email": "[email protected]",
      "first_name": "Alice",
      "language_code": "fr",
      "last_name": "Dubois",
      "mute_notifications": false,
      "order_date": 1530208800,
      "order_number": "1234",
      "tracking_number": "250059116919212260",
      "untracked_carrier_name": "DPD France"
    },
    {
      "carrier_code": "ups",
      "email": "[email protected]",
      "tracking_number": "1Z498710°3884902342"
    }
  ]
}
// status
201
// ⚠️ This payload is invalid.
// Do not use it as an example

{ 
   "trackers": [{
     "email": 123,
     "tracking_number": 456,
     "order_date": 1530208800
   }]
}
// status
400

// body
{ 
   "error": "Wrong data type for keys: tracking_number, email"
}

📘

Importance of carrier_code

When you import tracker data into Shipup using our tracker FTP integration, it's important to include the carrier_code field. You can find available values for this field here. If you fail to do so, Shipup will try to guess the carrier based on the tracking number but this process is prone to error.