Order schemas

This section contains the schemas for the Order API.

Request body schema for order

Name Type Required Description
parcel_attributes Array, see table true An array of parcel specifications to be included in the order.

There is a maximum of 1000 parcels per request.

Each item can be used to specify the qty, dimensions, and other information about the products being shipped, and the parcel used to ship it. If the Allocate each item in an order to a separate carton setting is enabled in the Shippit administration page, then each item is assigned a separate parcel according to the dimensions given. Otherwise, Shippit may combine multiple items into a single parcel.

If the product_attributes field is present, then product information is specified in entries there, separate from the parcel information. In which case each parcel entry represents a single parcel.
product_attributes Array, see table false an array of product details. If this is present, each item in parcel_attributes represents a separate parcel, while each line in product_attributes represents a product line item.

There is a maximum of 1000 parcels per request.
authority_to_leave string false whether or not the order can be left unattended at the delivery address, options are Yes or No
cash_on_delivery_amount number false Used by some carriers, such as NinjaVan, to indicate amount to be received on delivery for cash on delivery orders.
courier_type string false The service level for the order. For a complete list of service level strings, see the Service levels section in the Developer Guide. If you want to specify the courier in the request, use courier_allocation instead.

You must specify either courier_allocation or courier_type. If omitted or invalid, an enabled carrier that matches the default service level is allocated instead. The default service level is standard and can be configured by Shippit on request.
courier_allocation string false You must specify either courier_allocation or courier_type.
For a complete list of carrier reference strings, see the Carriers section in the Developer Guide.
If omitted or invalid, an enabled carrier that matches the default service level is allocated instead. The default service level is standard, and can be configured by Shippit on request.

If tracking_only is set to true, then courier_allocation is required.
receiver_contact_number string false conditional – number of the person receiving the order, may be different than the user who purchased the order. Mandatory for International orders.
receiver_name string false name of the person receiving the order if different than the user who purchased the order
retailer_invoice string or number false Merchant invoice number - the customer-facing sales order reference of the order. This is what the recipient sees on the shipping label, packing slip, customs declaration, receipt, etc. This attribute accepts numeric values, but it’s recommended that you pass this in as a string where possible.
retailer_reference string false Merchant reference id - if the merchant uses a separate internal reference id for the order, it can be placed here.
receiver_language_code string false Two-letter ISO 639-1 language code of the recipient. Used to determine the language of tracking notifications and other communications. Defaults to EN
validate boolean false when true, run validations against the submitted order and only save the order if the supplied parameters are valid.
Validations run
- destination suburb and postcode checked against a list of known postcodes / suburbs.
- If a valid combination is not found, a suggested address is returned.
product_currency string false Three letter ISO 4217 currency code that applies to the order, which is sent to the carrier and presented on the customs invoice. Defaults to AUD
suppress_communications boolean false if true, all notifications are suppressed for this specific order
tracking_only boolean false Whether the Order being passed is a tracking order or not.

A tracking order is an order where the courier was allocated outside of Shippit, but was loaded into Shippit to take advantage of tracking and notifications. If this is present and set to true, this order is a tracking order.

If it is set to true, courier_allocation must be present.
tracking_histories Array, see table false An array of Tracking History statuses that are are shown to the recipient as part of the order’s history on the tracking page.
user_attributes Array, see table false Represents the customer details attached to the order.
features [string] false Some carriers provide add-on services or features that you can indicate in the order. These services are identified by a unique string, and are dependent on the carrier. To request these services, add the appropriate string in this field. For example, white_glove, or identity_on_delivery.
customer_shipping_fee_paid string false Shipping fee paid by the customer.
This is displayed on the commercial invoice for international orders to support accurate duties and tax calculation by customs. This fee is not related to the Shippit quote. When not provided, no shipping fee is displayed on the commercial invoice.
description string false Goods description for the order. May appear in labels for international orders. If not provided, defaults to the goods type setting from the international shipping settings of the merchant account. Description is mandatory for international orders when validate is set to true.
duties number false The duty amount for an order. This is displayed on the commercial invoice for international orders to calculate the invoice total. Duties are not returned by Shippit. When not provided, no duties amount is displayed on the commercial invoice. eg: 12.90
tax_amount number false The tax amount for an order. This is displayed on the commercial invoice for international orders to calculate the invoice total. When not provided, no tax amount is displayed separately on the commercial invoice. eg: 2.39
customs_clearance_attributes Array, see table false Represents customs clearance parameters for international orders.
pickup_postcode string false Pickup postcode for the return order

* required for return orders
pickup_address string false Pickup address for the return order

* required for return orders
pickup_suburb string false Pickup suburb for the return order

* required for return orders
pickup_state string false Pickup state for the return order

Australian states valid options are:
NSW, QLD, ACT, WA, NT, SA, VIC, TAS

* required for return orders
return boolean false Whether the order being passed is a return order or not. This method of processing returns is no longer recommended. See returns for more information.
pickup_at string false The start of the pickup window for OnDemand orders in the format YYYY-MM-DDTHH:mm:ss+HH:mm
pickup_deadline_at string false The end of the pickup window for OnDemand orders in the format YYYY-MM-DDTHH:mm:ss+HH:mm
dropoff_at string false The start of the drop off window for OnDemand orders in the format YYYY-MM-DDTHH:mm:ss+HH:mm
dropoff_deadline_at string false The end of the drop off window for OnDemand orders in the format YYYY-MM-DDTHH:mm:ss+HH:mm
delivery_company string false Company name for the delivery
delivery_address string true Delivery address for the order
delivery_suburb string true Delivery suburb for the order
delivery_state string true Delivery state for the order. Australian States valid options are NSW, QLD, ACT, WA, NT, SA, VIC, TAS
delivery_postcode string true Delivery postcode for the order
delivery_country_code string false Two letter country code
delivery_timezone string false Time zone for the delivery
delivery_instructions string false Special delivery instructions for the order, limited to 55 characters
group_order Array, see table false Represents the group order details that the order belongs to.

Request schema for parcel_attributes

Name Type Required Description
title string false conditional – Title or description of the product. Mandatory for international orders with specific couriers.
package_type string false Set to pallet if the package is a pallet, otherwise leave this field out. You can’t mix pallets with other types of parcels within an order.
packed integer false The number of products packed; used in partial orders, or otherwise when the number of products in the parcel is less than the total in the order. If not present, set to product quantity.

If this is present, at least 1 item should have packed greater than 0.

For international orders, all items should have packed greater than 0.
sku string false conditional – Stock Keeping Unit (SKU) code of the product, for stock keeping purposes. Mandatory on international orders with specific couriers.
product_line_id string false Product line associated with product. Like SKU, this is also for stock keeping purposes, and can be used when SKU would not be enough (e.g. an order containing multiple lines with the same SKU)
origin_country_code string false Two-letter country code (ISO 3166-1 Alpha-2) for the product’s origin country. This is used in customs tracking for International shipments. Defaults to the home country of the Merchant.
location string false Location of the product
dangerous_goods_code string false This is the DG code required when making dangerous goods declarations.

Before you can declare orders as having dangerous goods, you must first request for dangerous goods to enabled for your account. Contact Shippit Support or your account manager to have this enabled.

DG surcharges are often charged on the weight of the order, so it is recommended to split your order into multiple orders if your order contains either:
- both dangerous and non-dangerous goods, or
- more than one dangerous goods code
dangerous_goods_text string false Additional information related to dangerous goods being shipped
dangerous_goods_class string false This is the DG class when making dangerous goods declarations.
price number false Unit price of each product line item. Used in the packing slip and customs declarations.
weight number false Weight of the parcel in kilos.
depth number false Depth of the parcel in metres
length number false Length of the parcel in metres
width number false Width of the parcel in metres.
label_number string false Parcel number in the carrier system.

This is used when the order is a tracking order, to match the parcel number in a carrier against the parcel recorded in shippit.
qty number false conditional – The number of products specified by the entry.

There is a maximum of 1000 parcels per quote request.

Should not be present if a product_attributes key is present in the request.

If Allocate each item in an order to a separate carton is enabled in Shippit, a separate parcel is generated for each product listed.

Request schema for product_attributes

Name Type Required Description
title string false conditional – Title or description of the product. Mandatory for international orders with specific couriers.
packed integer false The number of products packed; used in partial orders, or otherwise when the number of products in the parcel is less than the total in the order. If not present, set to product quantity.

If this is present, at least 1 item should have packed greater than 0.

For international orders, all items should have packed greater than 0.
sku string false conditional – Stock Keeping Unit (SKU) code of the product, for stock keeping purposes. Mandatory on international orders with specific couriers.
product_line_id string false Product line associated with product. Like SKU, this is also for stock keeping purposes, and can be used when SKU would not be enough (e.g. an order containing multiple lines with the same SKU)
origin_country_code string false Two-letter country code (ISO 3166-1 Alpha-2) for the product’s origin country. This is used in customs tracking for International shipments. Defaults to the home country of the Merchant.
location string false Location of the product
dangerous_goods_code string false This is the DG code required when making dangerous goods declarations.

Before you can declare orders as having dangerous goods, you must first request for dangerous goods to enabled for your account. Contact Shippit Support or your account manager to have this enabled.

DG surcharges are often charged on the weight of the order, so it is recommended to split your order into multiple orders if your order contains either:
- both dangerous and non-dangerous goods, or
- more than one dangerous goods code
dangerous_goods_text string false Additional information related to dangerous goods being shipped
dangerous_goods_class string false This is the DG class when making dangerous goods declarations.
tariff_code string false Tariff or HS code for international orders declarations
mid_code string false Manufacturer identification code (MID) used for customs declarations. This code identifies the manufacturer of the product and is required for some international shipments, particularly to the United States.
quantity integer false The number of products
price number false Unit price of each product line item. Used in the packing slip and customs declarations. Required for transit protection.

Request schema for tracking_histories

Name Type Required Description
status string true The status of the order
timestamp string true The date / time when the status change occurred.

Request schema for user_attributes

Name Type Required Description
email string true The customer’s email address. Must match regular expression as defined in https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
first_name string true The customer’s first name. If last_name is not provided, then it is used as the customer’s full name.
last_name string false The customer’s last name
mobile string false Mobile number of the user who purchased the order. This could be different to the person receiving the order.

Request schema for customs_clearance_attributes

Name Type Required Description
tax_id_type string false The Shippier’s tax id type which is passed to a carrier for the purpose of customs clearance. Valid values include:
- EORI
- IOSS
- LVG
- OSR
- VOEC
- VAT/GST
- FTZ
- DAN
- TAN
- DTF
- EIN
- SSN
- DUN
- FED
- STA
- CNP
- GBVAT
- NZ IRD
tax_id_country_code string false The issuing country of the tax id number in in ISO 3166 Alpha-2 format. eg. GB for Great Britain
tax_id_number string false The tax id number that is declared against this order.
incoterm string false The incoterm to use for the order. For valid values, see International orders in the Developer guide.
export_reason string false The reason for exporting these goods. For valid values, see International orders in the Developer guide.
recipient_id string false A free text field to provide a identification number for a recipient. For example, a citizen identification number or passport number which is required for customs clearance for some international destinations. eg: PA1992991
receiver_freight_charge_amount number false The amount charged to the receiver for freight services. This represents the cost that the receiver is responsible for paying as part of the freight or shipping charges.

Request schema for group_order

Name Type Required Description
id string true The group order ID. Retrieved from the response when creating the group order.

Response schema for order

Name Type Required Description
tracking_number string true Unique random ID assigned by Shippit to an order. This can be used as a reference for future API calls or support tickets.
slug string true tracking_number in lowercase.
parcel_attributes Array, see table false An array of parcel specifications that were created with the order.
products Array, see table false An array of product items specified in the order.

If product information was not provided, this array is blank.
tracking_url string false The URL of the order’s customer tracking page.
return boolean false Whether or not the order is a return order. This method of processing returns is no longer recommended. See returns for more information.
id integer false Shippit internal numerical ID
processing_state string false Internal order status set and progressed by Shippit upon creation.
invoice_number any false Internal link between an order and a Shippit invoice - this is almost always null on order creation.
courier_delivery_instructions string false Delivery instructions as sent to the courier. In most cases, this is the same as the delivery_instructions passed into the request. Some couriers, however, have a specific format expected when sending delivery instructions through their API. This contains the actual delivery instructions that get sent through the courier API when booked.
courier_name string false Human-readable name of the courier that has been allocated to the order, or null if the order hasn’t been allocated yet.

If you’re creating orders by passing in courier_type, the courier is usually not yet assigned at order creation and you receive null. Courier allocation is run as a background process depending on the merchant preferences, available couriers, and quotes returned by the couriers, which may take a few seconds to complete after order creation.

If you’re passing in a specific courier keyword in courier_allocation, this reflects the courier that is specified.

Note that the Shippit web user can also update the courier in between API calls. The final courier that has been assigned can be determined from the LABEL call.
price any false The price that is charged for the allocated order.

If you’re creating orders by passing in courier_type, the courier is usually not yet assigned at order creation and you receive 0. Courier allocation is run as a background process depending on the merchant preferences, available couriers, and quotes returned by the couriers, which may take a few seconds to complete after order creation.

Note that the Shippit web user can also update the courier in between API calls. The final courier and quoted price can be determined from the LABEL call.

If the quoted price is still 0 during the LABEL call, something likely went wrong with the courier selection and the order may need to be amended.
customs_documents_require_printing boolean false Whether or not customs documents, such as declarations, invoices, etc for the Order that should be printed and included with the shipment. By default this is true for International orders.
courier_type string false The courier allocated to the order. See the ORDER CREATE courier_allocation API for available keywords.
tracking_histories Array, see table false An array of Tracking History statuses that are are shown to the recipient as part of the order’s history on the tracking page.
state string false The state of the order as progressed by the merchant.
user Array, see table false Represents the recipient of the order
documents Array, see table true Documents attached to the label response

Response schema for parcel_attributes

Name Type Required Description
qty number false The number of parcels specified by the entry.

Depending on how the merchant account is configured, the number of parcels generated may not match the number of parcel attributes passed in. By default, Shippit tries to combine all parcel attributes into a single parcel with the sum of the weights.

However, if Allocate each item in an order to a separate carton is enabled, then Shippit generates one parcel entry for each parcel entry sent in.
weight number false Weight of the parcel in kilograms.
depth number false Depth of the parcel in metres
length number false Length of the parcel in metres
width number false Width of the parcel in metres.
label_number string false Parcel number in the carrier system.

This is used when the order is a tracking order, to match the parcel number in a carrier against the parcel recorded in shippit.

Response schema for products

Name Type Required Description
title string false conditional – Title or description of the product. Mandatory for international orders with specific couriers.
packed integer false The number of products packed; used in partial orders, or otherwise when the number of products in the parcel is less than the total in the order. If not present, set to product quantity.

If this is present, at least 1 item should have packed greater than 0.

For international orders, all items should have packed greater than 0.
sku string false conditional – Stock Keeping Unit (SKU) code of the product, for stock keeping purposes. Mandatory on international orders with specific couriers.
product_line_id string false Product line associated with product. Like SKU, this is also for stock keeping purposes, and can be used when SKU would not be enough (e.g. an order containing multiple lines with the same SKU)
origin_country_code string false Two-letter country code (ISO 3166-1 Alpha-2) for the product’s origin country. This is used in customs tracking for International shipments. Defaults to the home country of the Merchant.
location string false Location of the product
dangerous_goods_code string false This is the DG code required when making dangerous goods declarations.

Before you can declare orders as having dangerous goods, you must first request for dangerous goods to enabled for your account. Contact Shippit Support or your account manager to have this enabled.

DG surcharges are often charged on the weight of the order, so it is recommended to split your order into multiple orders if your order contains either:
- both dangerous and non-dangerous goods, or
- more than one dangerous goods code
dangerous_goods_text string false Additional information related to dangerous goods being shipped
dangerous_goods_class string false This is the DG class when making dangerous goods declarations.
tariff_code string false Tariff or HS code for international orders declarations
quantity integer false The number of products
price number false Unit price of each product line item. Used in the packing slip and customs declarations.

Response schema for tracking_histories

Name Type Required Description
status string true The status of the order
timestamp string true The date / time when the status change occurred.

Response schema for landed_cost

Name Type Required Description
customs_duty integer false The customs duty payable on the order
import_fee integer false The import fee payable on the order
import_tax integer false The import tax payable on the order
landed_cost_guaranteed boolean false Has the landed cost guarantee been enabled for this order
incoterm string false The incoterm to use for the order. For valid values, see International orders in the Developer guide.
receiver_freight_charge decimal string false The receiver freight charge payable on the order
export_reason string false The reason for exporting these goods. For valid values, see International orders in the Developer guide.

Response schema for user

Name Type Required Description
email string true The customer’s email address. Must match regular expression as defined in https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
first_name string true The customer’s first name. If last_name is not provided, then it is used as the customer’s full name.
last_name string false The customer’s last name
mobile string false Mobile number of the user who purchased the order. This could be different to the person receiving the order.

Response schema for documents

Name Type Required Description
archive_awb Array, see table false Archive Airway Bill
customs_invoice Array, see table false Customs invoice. Generated for International orders.
dangerous_goods_declaration Array, see table false Dangerous goods declaration - generated for orders that have dangerous goods properties specified.
packing_slip Array, see table false Packing slip for the order.
shipping_label Array, see table false Shipping label for the order.

If the merchant account was configured to have the label and packing slip combined into a single document, the shipping_label prints the label only without the packing slip.

If the merchant account was configured to enable ZPL output, can contain an encoded_label field containing ZPL output.

Response schema for document types

Name Type Required Description
url string false URL to a printable PDF document.
This is a pre-signed URL, generated by the Shippit platform to provide access to a secured document. The pre-signed URL remains valid for 7 days. If you need to access this document after expiration, please make another request for a new URL to be issued.
page_size string false none
file_type string false File type of the label
encoded_label string false If you have ZPL for your account, printable ZPL data for the document.