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:
FIELD | DESCRIPTION |
---|---|
trackers array of objects, required | An array of trackers as described in the next table. The maximum allowed tracker count is 1000. |
The below table shows which fields you can send per tracker to create or update it
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 about sending expected deliveries |
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. |
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.