How do I ship internationally with ShipEngine?

You can create international shipments through any major carrier that ShipEngine supports. Packages created with ShipEngine’s API must ship from the country that matches the originating ShipEngine account. Currently, you can create ShipEngine accounts in the United States, Canada, the United Kingdom, and Australia.

Customs must be declared for international shipments. You will need to include a customs object with the label request.

Some carriers may require that a customs form (also referred to as a commercial invoice) be included with your international shipment. The customs form will be included in the JSON response as form_download.

This article includes:

Customs Forms

ShipEngine automatically submits your customs forms electronically for UPS (via Electronic Data Interchange, or EDI), DHL Express (Paperless Trade, or PLT), and FedEx (via Electronic Trade Documents, or ETD).

The ETD and PLT features are enabled by default for FedEx and DHL users shipping through ShipEngine. However, certain restrictions may apply based on destination.

UPS Paperless Invoice Enrollment

UPS users must apply to UPS directly for the Electronic Data Interchange service. Once this service is enabled on the UPS side, it will be enabled on the ShipEngine side.

Go to the Eliminate Paper Invoices section of the UPS International Tools and Resources page and click Enroll Now.

UPS & FedEx

When you print UPS labels, there will be “EDI” printed on them signifying that you've electronically submitted your customs forms.

If you see "INV" instead of "EDI" on UPS labels, this means the customs information will not be transmitted electronically. You will need to print the customs forms and send them on the package.

UPS Label sample with EDI in the lower corner.

Likewise, we will print “ETD” on your FedEx labels when we've submitted your customs forms electronically. If you don’t see ETD on your label, you will need to print the forms and send them on the package.

FedEx International Label highlighting ETD for Electronic Trade Document

DHL Express

By default, DHL Express transmits customs declarations electronically for shipments to over 150 countries worldwide. Learn more about the DHL customs process and Paperless Trade.

If you are shipping to a country that supports Paperless Trade, then you don't need to print out the customs form. The label will include "C-PLT", as shown below.

DHL Express Label highlighting C-PLT for Customs Paperless Trade submission

You can also see Paperless Trade listed on the archive document that prints out with the label under the Features/Services section.

DHL Express Label highlighting Paperless Trade under the Features/Services section

If the label does not display "C-PLT" and the archive document does not list Paperless Trade below the Features/Services section, then you will need to print your customs forms.

Harmonization Codes

The purpose of a Harmonization Code (also referred to as Tariff CodeCustoms TariffsHarmonized Tariff Codes, and Harmonized System Code) is to expedite the shipping process for international orders. The codes are used for tax assessment purposes. This is a system used to trade most of the merchandise that is sent internationally and is a universal economic language and code for your goods.

Once an order reaches an international border, these codes will help the customs office to identify what it is that you are shipping. It is recommended to have your Harmonization Codes listed and properly identified at the time of label creation.

For a full list of Harmonization Codes, use the Harmonized Tariff Schedule search.

Address Validation

You can validate addresses before creating labels in order to save costs and avoid getting charged by carriers for address correction. ShipEngine can validate addresses for the following countries: the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.

Our developer documentation also includes an address validation level by country guide to help when validating international addresses.

Troubleshooting

Error message

What the error means

How to resolve

International shipments require customs items

The create label request for an international shipment is missing a customs declaration.

Add a customs object to your create label request.

A shipping carrier error occurred: Unable to create FedEx shipment. Destination country is not Thermal Air WayBill enabled.

The FedEx International Ground service cannot be used because the destination country is not valid.

If you are shipping from the US, FedEx International Ground can only be used when shipping to Canada. If the destination country is not Canada, try using a different FedEx international service

Server was unable to process request. > Failed to convert parameter value from a Int32 to a Byte. > Value was either too large or too small for an unsigned byte.

At least one of the customs declaration line items has a quantity over 255.

Adjust your customs declarations quantity value to be below 255 per line item. You can have separate declarations for the same item to break up the quantity when it exceeds 255.