Skip to main content
FTP Integration - CSV Columns
Updated over 8 months ago

A breakdown of the CSV columns available for use with the Shippit Connect FTP Integration can be found below.

For complete guidelines on what entries are accepted for each of the CSV columns, including the data types and requirements for each value, see our API Documentation for Create Order and review the REQUEST BODY SCHEMA.

api-rbs.png

Quick Links

Sample CSV

Download the sample CSV that suits your business. These include sample entries for reference

Orders with Multiple Parcels

When you are dealing with an order that contains multiple parcels, add each parcel as a separate row in the CSV. In these cases, the primary shipping details should be repeated to ensure all parcels include the correct shipping details.

For an example of how that would look, download the Sample CSV above and review the first 3 rows.

Pro Tips

  • Headers are case-sensitive and do not support whitespace. Ensure you are using the correct header as described in the table in Columns Breakdown

  • Avoid duplicating orders across multiple rows. We have no process to identify duplicates and will process all orders explicitly. This does not include splitting an order over multiple rows due to multiple parcels.

  • Trim the values to remove whitespace before and after the value as this can lead to inconsistencies

  • Do not leave required fields empty in the CSV as this may cause the row/order to not process.

  • Not all carriers support the new customs fields. In these cases, Shippit will use default carrier values.

Recommendations

  • Even if a column contains no values, we recommend keeping the column in the CSV. This helps avoid downstream issues if someone uses the last CSV as the template for their version.

  • Try to avoid using unconventional characters since not all carriers support these.
    eg. Use dash (-) character instead of the en dash (–) or em dash (—)
    This will help avoid issues down the line due to a lack of carrier support for these characters.

  • On-Demand services have very little lead time, so these orders should be uploaded regularly to ensure allocation and booking occur in a reasonable timeframe.

Columns Breakdown

It is important that you manage which headers are included in the CSV as only the headers listed below are considered part of the specification.

Any column that does not match this specification will be dropped during processing and ignored. We do not pass through any of this data. This includes misspelled headers.

In addition, if the required fields for processing the order are missing from that row, this row will also not be processed as you may expect. This would be equivalent to attempting to book an order through the Shippit website and not including the correct address details. The order will not be processed. After updating the CSV with data for all the required fields you can then process it again.

✔️ = Required
❔ = Optional but Recommended
✈️ = Used for International shipping
🟠 = Repeat for multiple parcels in an order
* = Either courier_type or courier_allocation is required but not both

Column Header

Create Order API equivalent

order_id

✔️ 🟠

retailer_reference

retailer_invoice

🟠

retailer_invoice

courier_type

✔️* 🟠

courier_type

courier_allocation

✔️* 🟠

courier_allocation

currency

✔️ 🟠

product_currency

shipping_amount

✔️ ✈️

customer_shipping_fee_paid

cash_on_delivery_amount

cash_on_delivery_amount

collection_point_id

N/A

collection_point_name

N/A

delivery_date

delivery_date

delivery_window

delivery_window

delivery_company

🟠

N/A

delivery_address

✔️ 🟠

delivery_address

delivery_suburb

❔ 🟠

delivery_suburb

delivery_district_city

🟠

delivery_district_city

delivery_state

❔ 🟠

delivery_state

delivery_postcode

❔ 🟠

delivery_postcode

delivery_country

✔️ 🟠

delivery_country_code

validate

validate

suppress_communications

suppress_communications

delivery_instructions

delivery_instructions

authority_to_leave

🟠

authority_to_leave

receiver_name

✔️ 🟠

receiver_name

receiver_contact_number

✔️ 🟠

receiver_contact_number

receiver_language_code

✔️ 🟠

receiver_language_code

user_firstname

✔️ 🟠

user_attributes.first_name

user_lastname

✔️ 🟠

user_attributes.last_name

user_email

✔️ 🟠

user_attributes.email

line_item_id

product_attributes.line_item_id

sku

product_attributes.sku

title

product_attributes.title

weight

parcel_attributes.weight

length

parcel_attributes.length

width

parcel_attributes.width

depth

parcel_attributes.depth

qty

parcel_attributes.qty

qty_packed

parcel_attributes.packed

price

product_attributes.price

location

product_attributes.location

dangerous_goods_code

product_attributes.dangerous_goods_code

dangerous_goods_text

product_attributes.dangerous_goods_text

origin_country_code

✔️ ✈️ 🟠

product_attributes.origin_country_code

tariff_code

product_attributes.tariff_code

customs_duties_amount

✈️ 🟠

duties

customs_export_reason

✈️ 🟠

customs_clearance_attributes.export_reason

customs_incoterm

✈️ 🟠

customs_clearance_attributes.incoterm

customs_tax_id_type

✈️ 🟠

customs_clearance_attributes.tax_id_type

customs_tax_id_country_code

✈️ 🟠

customs_clearance_attributes.tax_id_country_code

customs_tax_id_number

✈️ 🟠

customs_clearance_attributes.tax_id_number

customs_recipient_id

✈️ 🟠

customs_clearance_attributes.recipient_id

customs_documents_require_printing

✈️ 🟠

N/A

Commercial Invoice

The values from the customs_* columns are surfaced in the Commercial Invoice

commercial_invoice_example.png
Did this answer your question?