> ## Documentation Index
> Fetch the complete documentation index at: https://www.zippendo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect DHL eCommerce Europe

> Connect DHL eCommerce Europe under Carriers with your eConnect Client ID, Client secret and Customer ID, plus the optional Account number, Pricing reference, cash on delivery bank account and Test mode.

**DHL eCommerce Europe** sends parcels through DHL's European parcel network: to the door across Europe, to over 220 countries through DHL's postal partners, small parcels up to 2 kg, business parcels and pallets, and returns with a label or a QR code. The fields that every carrier shares are on [Carrier credentials](/docs/how-to/carrier-credentials).

DHL has three carriers in Zippendo, each with its own DHL account. Use this one when DHL eCommerce Europe gave you a customer ID and eConnect API access. If you ship from the Netherlands, Belgium or Luxembourg with keys from My DHL eCommerce, use [DHL Parcel Benelux](/docs/how-to/connect-dhl-parcel-nl). For express shipments, use [DHL Express](/docs/how-to/connect-dhl).

<Warning>
  Two parts of DHL eCommerce Europe are not available yet: tracking events and DHL's service point search. Zippendo turns both on later. Until then the shipment's **Tracking timeline** stays empty, and you can't use **DHL Parcel Connect ServicePoint**. Every other product works. See "Service point delivery" and "Pickups, tracking and cancelling" below.
</Warning>

<Info>
  You do not pick a sender address on this form. Add your addresses under the organization menu → **Manage** → **Addresses**. You choose the sender address on each shipment or in a [shipping rule](/docs/how-to/shipping-rule-fields). DHL eCommerce Europe ships from the DHL eCommerce Europe countries listed below. **DHL Parcel Connect**, **DHL Parcel Connect ServicePoint** and **DHL Parcel International** also ship from the United Kingdom. Return shipments come back to an address in a DHL eCommerce Europe country.
</Info>

The **DHL eCommerce Europe countries** are the 25 EU countries other than Ireland and Malta: Austria, Belgium, Bulgaria, Croatia, Cyprus, the Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Italy, Latvia, Lithuania, Luxembourg, the Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain and Sweden.

## Before you start

* A business account with DHL eCommerce Europe and its customer ID: the EKP or local customer number, for example `5012345678`.
* eConnect API access from DHL eCommerce Europe. DHL issues it, and you can't create it yourself. The steps are under "Get your carrier credentials" below.
* For **Fetch label**: DHL must turn on label reprint for your customer ID. Ask for it when you request API access.
* For pickups from France or Italy: DHL must turn on courier pickup for your customer ID.

You can connect DHL eCommerce Europe more than once, for example one connection for test credentials and one for live credentials. Give each one its own **Carrier name**.

## Get your carrier credentials

<Steps>
  <Step title="Ask DHL for API access">
    Contact your local DHL eCommerce sales representative and ask for access to eConnect, DHL eCommerce Europe's API. **Learn more** on the carrier card opens DHL's [Parcel Connect page](https://developer.dhl.com/parcel-connect), which links to DHL's contact form.
  </Step>

  <Step title="Test first">
    DHL sends test credentials first: a client ID and a secret for its test system. Connect them with **Test mode** on and send a few test shipments with the carrier products you plan to use.
  </Step>

  <Step title="Let DHL approve your shipments">
    DHL's experts check the data and the labels of your test shipments.
  </Step>

  <Step title="Go live">
    DHL then sends live credentials. Connect them with **Test mode** off, as a new carrier or by editing the test one.
  </Step>
</Steps>

## Connect DHL eCommerce Europe

<Steps>
  <Step title="Open All carriers">
    In the sidebar, click **Carriers**, then open the **All carriers** tab.
  </Step>

  <Step title="Find DHL eCommerce Europe">
    On the **DHL eCommerce Europe** card, click **Connect**.
  </Step>

  <Step title="Fill in the form">
    The **Connect carrier** window opens. Enter a **Carrier name**, your **Client ID**, **Client secret** and **Customer ID**. The account number, the pricing reference, the cash on delivery bank account and **Test mode** are under **Optional fields**.
  </Step>

  <Step title="Connect the carrier">
    Click **Connect**. You see "Carrier connected", and the carrier appears on the **My carriers** tab.
  </Step>
</Steps>

## Fields on the form

| Field | Required | What to enter |
| - | - | - |
| **Carrier name** | Yes | The name you see on **My carriers** and when you pick a carrier on a shipment. It starts as **DHL eCommerce Europe**. |
| **Brand** | No | Shown only if your organization has [brands](/docs/how-to/create-a-brand). The form says: "Only this brand can use this carrier." Leave it empty to let every brand use it. |
| **Client ID** | Yes | From DHL's message with your API access. The form says: "The eConnect client ID DHL eCommerce Europe sent you when it set up your API access." |
| **Client secret** | Yes | Sent with the client ID. The form hides what you type. The form says: "The secret that came with your eConnect client ID." |
| **Customer ID** | Yes | From your DHL contract. The form says: "Your DHL eCommerce Europe customer ID (EKP or local customer number), for example 5012345678." |
| **Account number** | No | From your DHL contract. Leave it empty unless DHL asked for it. The form says: "Your DHL account number. Fill it in only if DHL asked you to send it with your shipments." |
| **Pricing reference** | No | From your DHL contract. The form says: "The customer pricing reference DHL gave you for Connect Light, if any." |
| **Cash on delivery account holder** | No | From your bank. The form says: "Name on the bank account DHL pays cash on delivery amounts into." |
| **Cash on delivery IBAN** | No | From your bank. The form says: "IBAN of the bank account DHL pays cash on delivery amounts into (SEPA)." |
| **Cash on delivery BIC** | No | From your bank. The form says: "BIC of that bank account." |
| **Cash on delivery bank name** | No | From your bank. The form says: "Name of the bank that holds that account." |
| **Cash on delivery bank city** | No | From your bank. The form says: "City of the bank that holds that account." |
| **Test mode** | No | A checkbox, off by default. The form says: "Use DHL eCommerce Europe's test system. It needs the test credentials DHL sends you for it; your live credentials do not work there." |

**Connect** does nothing until **Carrier name**, **Client ID**, **Client secret** and **Customer ID** have a value.

Cash on delivery needs the account holder, the IBAN, the BIC and the bank name. The bank city is optional. Your VAT number, EORI and IOSS are not on this form. They come from [Organization settings](/docs/how-to/organization-settings), or from the brand when it has its own customs identifiers.

Tick **Test mode** only for DHL's test credentials, and leave it off for real orders. Live credentials don't work with **Test mode** on, and test credentials don't work with it off. See [Test mode](/docs/how-to/sandbox-mode).

## After you connect

The carrier appears on **My carriers** with a **Connected** badge. You choose the product on each shipment or in a shipping rule, not on this form. See [Carrier products and services](/docs/how-to/carrier-products-and-services). A product that is not on your DHL contract is refused when you send, with DHL's reason.

| Product | What it is for | Ships from | Ships to | Max weight | Parcels per shipment |
| - | - | - | - | - | - |
| **DHL Parcel Connect** | Parcels to the receiver's door across Europe. | The DHL eCommerce Europe countries and the United Kingdom | The DHL eCommerce Europe countries, Ireland, Norway and the United Kingdom | 31.5 kg | One |
| **DHL Parcel Connect ServicePoint** | Parcels to a DHL service point, parcel locker or post office the receiver chooses. Not available yet. | The DHL eCommerce Europe countries and the United Kingdom | The DHL eCommerce Europe countries, Norway and the United Kingdom | 31.5 kg | One |
| **DHL Parcel International** | Parcels to over 220 countries through DHL's postal partners, with DHL's CN23. | The DHL eCommerce Europe countries and the United Kingdom | Any country | 31.5 kg | One |
| **DHL Parcel Connect Light (tracked)** | Small parcels worldwide through DHL's postal network, tracked to the door. | The DHL eCommerce Europe countries | Any country | 5 g to 2 kg (1 kg to Germany) | One |
| **DHL Parcel Connect Light (untracked)** | The same small parcels, without tracking. | The DHL eCommerce Europe countries | Any country | 5 g to 2 kg | One |
| **DHL Parcel Connect PLUS** | Business delivery of several parcels in one shipment. | The DHL eCommerce Europe countries | The DHL eCommerce Europe countries | 31.5 kg per parcel | 1 to 999 |
| **DHL Parcel Connect PLUS Pallet** | Business delivery of pallets. | The DHL eCommerce Europe countries | The DHL eCommerce Europe countries | 31.5 to 1,000 kg per pallet, 2,500 kg per shipment | 1 to 5 pallets |
| **DHL Parcel Return Connect** | Return shipment: your customer hands the parcel in at a DHL point in their country, with the label or a QR code, or DHL collects it. | Your customer, in a DHL eCommerce Europe country | You, in a DHL eCommerce Europe country | 31.5 kg | One |
| **DHL Parcel Return International** | Return shipment through DHL's postal partners: your customer hands the parcel in at a post office with the label. | Your customer, in a DHL eCommerce Europe country | You, in a DHL eCommerce Europe country | 31.5 kg | One |

Every parcel needs a weight.

### One parcel per shipment

Every product except the two Connect PLUS products carries one parcel per shipment. DHL can't cancel a shipment once it has it, so Zippendo does not send several of these parcels one by one. Split a shipment with more parcels into one shipment per parcel ([Split and move parcels](/docs/how-to/split-and-move-parcels)), or use **DHL Parcel Connect PLUS**, which carries up to 999 parcels in one shipment.

### Connect PLUS

**DHL Parcel Connect PLUS** and **DHL Parcel Connect PLUS Pallet** need:

* the receiver's phone number, and it must be a valid one
* the receiver's email address
* the length, width and height of every parcel or pallet

Parcels and pallets go on separate shipments: **DHL Parcel Connect PLUS** for up to 999 parcels, **DHL Parcel Connect PLUS Pallet** for up to 5 pallets of 31.5 to 1,000 kg each. DHL prints one label per parcel or pallet.

### Extra details for the carrier

Fill these in on the shipment or in a shipping rule, under **Extra details for the carrier**. Each product lists only the details it offers.

| Detail | Products | What it does |
| - | - | - |
| **Label format** | All | On every product except Connect PLUS, the form says: "PDF when empty. ZPL (203 dpi) suits most thermal label printers." The list offers **PDF**, **PNG**, **ZPL (203 dpi)** and **ZPL (300 dpi)**. Connect Light offers **PDF**, **PNG** and **ZPL (203 dpi)**. On both Connect PLUS products, the form says: "PDF when empty. Choose ZPL (300 dpi) only for a 300 dpi thermal label printer." The list offers **PDF**, **PNG** and **ZPL (300 dpi)**. |
| **Bulky parcel** | Parcel Connect, ServicePoint, Parcel International, both return products, Connect PLUS | "Tick for a parcel with an irregular shape or packaging that cannot run through DHL's sorting machines. Leave it unticked for a regular parcel." |
| **Extra insurance** | Parcel Connect, ServicePoint, both Connect PLUS products | "Extra insurance under clause A or B of your DHL contract. Leave it empty for the standard cover. Use it only if your contract with DHL includes it." Choose **A** or **B**. |
| **Cash on delivery amount** | Parcel Connect, ServicePoint, with the service **Cash on delivery** | "Amount DHL collects from the receiver and pays into the bank account in the carrier settings." Required when **Cash on delivery** is ticked. DHL offers cash on delivery on some routes only. |
| **Cash on delivery currency** | Parcel Connect, ServicePoint, with the service **Cash on delivery** | "Currency of the cash on delivery amount. When empty, the receiver's own currency where DHL collects it (PLN, CZK, HUF, RON, SEK or DKK), otherwise EUR." Choose **EUR**, **CZK**, **HUF**, **PLN**, **RON**, **SEK** or **DKK**. |
| **Own barcode** | Parcel Connect, ServicePoint, Return Connect, both Connect PLUS products | "A value of up to 35 characters, such as your order number, that DHL prints on the label as a barcode. Letters A to Z, digits, spaces and standard symbols only." |
| **DHL Postnummer** | ServicePoint | "The receiver's DHL registration number. Needed for service points in Luxembourg, and for a DHL Packstation in Germany addressed by its ID." |
| **Collect from the customer** | Return Connect | "Tick to have DHL collect the return at your customer's address. Leave it unticked when your customer hands the parcel in at a DHL point." |
| **Consolidate returns** | Both return products | "Tick to have DHL collect your returns at a return location DHL set up for you instead of sending each one to your address." |
| **Return location ID** | Both return products | "The return location ID DHL set up for you, where DHL sends the return instead of your address. With Consolidate returns ticked and this empty, DHL uses your default return location." |
| **If undeliverable** | Return International | "What DHL does with a return it cannot deliver: send it back to the sender or abandon it. Leave it empty for what your DHL contract sets." Choose **Return to sender** or **Abandon**. |
| **Reason for export** | All except the return products | "What the goods are, for the customs declaration. Commercial goods (a sale) when empty." Choose **Commercial goods (sale)**, **Commercial sale of goods**, **Documents**, **Free use**, **Gift**, **Goods for testing**, **Mixed content**, **Other**, **Product sample**, **Returned for repair**, **Returned item**, **Unwanted goods returned** or **Returned under warranty**. |
| **Shipping fee** | Parcel International, both Connect Light products | "What the receiver paid for shipping, in the currency of the order lines, for the customs declaration. 0 when empty." |
| **Letter format** | Both Connect Light products | "P (up to 100 g), G (up to 500 g) or E (up to 2 kg; 1 kg on tracked parcels to Germany). Used when the parcel has no dimensions; chosen from the weight when empty." |
| **Receiver's state** | Parcel International, both Connect Light products | "The receiver's state or province code, for example NY. Needed for the United States; used for Canada and Australia when given." |
| **Delivery instructions** | Both Connect Light products | "Instructions for the courier, such as a door code, up to 100 characters. Leave it empty for none." |
| **Manufacturer ID (MID)** | Both Connect Light products | "The manufacturer identification code US customs requires. Needed for shipments to the United States." |
| **Limited-quantity weight per piece (kg)** | Both Connect PLUS products, with the service **Dangerous goods in limited quantities** | "Weight of the limited-quantity goods in each parcel or pallet, in kg. Rounded up to whole kilograms." Required when the service is ticked, and no higher than the parcel's or pallet's own weight. |

Every checkbox is unticked until you tick it. **Reason for export** and **Shipping fee** are used only when the shipment needs a customs declaration. A **Letter format** must fit the parcel's weight. A detail that a product does not list is ignored.

Services, ticked under **Services** on the shipment or in the shipping rule:

| Service | Products | What it does |
| - | - | - |
| **Cash on delivery** | Parcel Connect, ServicePoint | DHL collects the **Cash on delivery amount** from the receiver and pays it into the bank account on **Edit carrier**. That bank account must be filled in. |
| **Dangerous goods in limited quantities** | Both Connect PLUS products | Every parcel or pallet contains dangerous goods in limited quantities (LQ). Fill in **Limited-quantity weight per piece (kg)**. |
| **QR code return (no printed label)** | Return Connect | DHL returns a QR code instead of a label to print. See "Return shipments" below. |

A service that a product does not offer is refused when you send. So is a **Cash on delivery amount** without the **Cash on delivery** service.

### Labels

Zippendo asks DHL for 10 x 15 cm labels in the **Label format** you chose, or PDF when it is empty. The label is added to the shipment's documents when you send it.

If DHL's answer has no label, Zippendo asks DHL to print it again straight away. If that fails too, the shipment is sent with a warning and offers **Fetch label**. On Connect PLUS, if DHL's answer does not number its parcels so that each label can be matched to one of your parcels, the shipment keeps only DHL's shipment number, gets no labels and shows the same warning, so no label goes on the wrong parcel. **Fetch label** works only while DHL still keeps the label, which is 10 days, and only when DHL has turned on label reprint for your customer ID.

### Service point delivery

**DHL Parcel Connect ServicePoint is not available yet.** It needs DHL's service point search, which Zippendo turns on later. Until then the service point search for this carrier shows "The carrier's settings are incomplete or not valid. Check them under Carriers." Nothing is wrong with your carrier settings. Send to the receiver's door with **DHL Parcel Connect** in the meantime.

Once it is turned on:

* Choose the service point in the **Service point** section of the shipment before you send. See [Pick a service point](/docs/how-to/pick-a-service-point) and [Service points](/docs/how-to/drop-point-and-service-points).
* The receiver needs an email address. DHL emails the receiver when the parcel is ready to collect.
* Service points in Luxembourg, and DHL Packstations in Germany, hand parcels only to receivers who are registered with DHL. The service point search lists neither of them, and it leaves out service points that DHL lists without a postcode or city. To send to one, create the shipment through the [Zippendo API](/docs/api-reference/overview) with the service point's DHL ID, and fill in **DHL Postnummer** with the receiver's DHL registration number. A developer can also send that number as a receiver attribute named `postNumber`.
* The service point must be in the same customs area as the receiver's address. For example, a Swedish service point for a receiver in Norway is refused.
* If DHL's service point search does not answer when you send, DHL gets nothing and you see "The carrier did not respond. Try again in a moment." Send the shipment again.

### Return shipments

A return shipment brings a parcel from your customer to you. Create it with the **Inbound** type, with your customer as the sender. See [Inbound and returns](/docs/how-to/inbound-and-returns).

**DHL Parcel Return Connect** works three ways:

* **With a label:** send your customer the label from the shipment's documents. Your customer hands the parcel in at a DHL point in their country.
* **With a QR code:** tick the service **QR code return (no printed label)**. DHL returns a QR code instead of a label to print. The shipment shows it under **Tracking information** as **QR code**, with **Open QR code**. Send it to your customer, who shows it at a DHL point. QR codes work only for customers in Belgium, Bulgaria, the Czech Republic, Germany, Luxembourg, Poland, Portugal, Spain and Sweden. For a customer anywhere else, Zippendo creates the return with a printed label instead and shows the warning "The carrier issued the label but couldn't produce one of the accompanying documents. Check the shipment's documents before handing the parcel over.", with the reason underneath. Send your customer the label from the shipment's documents.
* **Collected by DHL:** tick **Collect from the customer**, and DHL collects the parcel at your customer's address.

**DHL Parcel Return International** sends the return through DHL's postal partners. Your customer hands the parcel in at a post office with the label. DHL needs the house number in its own field. Zippendo takes it from your customer's first address line, or from the start of the second line, and moves a floor, door or flat written after it ("3º B", "3. tv", "m. 12") to DHL's second address line. When Zippendo can't split the address, it sends the first address line as written, with its first number as the house number. Only an address with no number at all is refused. **If undeliverable** tells DHL what to do with a return it can't deliver.

On both return products, **Consolidate returns** has DHL collect your returns at a return location DHL set up for you, instead of sending each one to your address. **Return location ID** sends the return to that DHL return location instead of your address, with or without **Consolidate returns**. With **Consolidate returns** ticked and **Return location ID** empty, DHL uses your default return location.

Return products carry no customs declaration. A return from a place outside the EU's customs area, such as the Canary Islands or Åland, is refused.

### Customs

Zippendo builds the customs declaration from the order lines and checks it before anything goes to DHL. Which shipments need one depends on the product:

| Product | Needs a customs declaration |
| - | - |
| **DHL Parcel Connect**, **DHL Parcel Connect ServicePoint** | To or from the United Kingdom (Northern Ireland included), to Norway, to Ireland (the parcel travels through Great Britain), and to or from places inside EU countries that are outside the EU's customs area, such as the Canary Islands or Åland. |
| **DHL Parcel International** | Every shipment that crosses a customs border, for example to Switzerland or the United States. DHL returns its CN23, and Zippendo adds it to the shipment's documents. |
| **DHL Parcel Connect Light** (both) | To every country outside the EU, and to the places inside EU countries that DHL lists as customs areas, such as the Canary Islands, Åland and Heligoland. DHL prints the CN22 on the Connect Light label. |
| **DHL Parcel Connect PLUS** (both) | Only to or from places inside EU countries that are outside the EU's customs area, such as the Canary Islands. |
| Return products | Never. See "Return shipments" above. |

When a shipment needs a customs declaration, every order line needs:

* a description
* an HS code (tariff number) of 6 to 10 digits. Dots and spaces are fine.
* a quantity
* a value greater than 0
* a currency, the same on every order line
* a country of origin on **DHL Parcel Connect** and **DHL Parcel Connect ServicePoint**, and on every shipment to the United States

More rules:

* **United Kingdom:** on **DHL Parcel Connect** and **DHL Parcel Connect ServicePoint** to or from the United Kingdom, Northern Ireland included, Zippendo makes a commercial invoice from the order lines, sends it to DHL with the customs data, and adds it to the shipment's documents as **Commercial invoice**.
* **United States:** a **DHL Parcel International** or Connect Light parcel to the United States needs the receiver's state. Fill in **Receiver's state**, for example NY. A Connect Light parcel to the United States also needs **Manufacturer ID (MID)**. A developer using the [Zippendo API](/docs/api-reference/overview) can also send the state as a receiver attribute named `state`. Through the API, the field's key is `recipientStateOrProvinceCode`, the same key FedEx and UPS use.
* **Connect Light:** goods declared in EUR may be worth 350 EUR at most. Above that, use **DHL Parcel International**.
* **Weights:** on **DHL Parcel Connect**, **DHL Parcel Connect ServicePoint**, **DHL Parcel International** and Connect PLUS shipments that need a customs declaration, Zippendo rounds each parcel's weight up to the next 10 g, so the weight DHL records matches the declared weight. A parcel can be sent up to 9 g heavier than you entered.
* **Terms of trade:** on Parcel Connect and Connect PLUS, a shipment with the term of trade DDP is declared DDP, and any other term is declared DAP. Connect Light is always declared DAP.
* **Your numbers:** your VAT number, EORI and IOSS come from [Organization settings](/docs/how-to/organization-settings), or from the brand when it has its own customs identifiers. DHL takes at most 35 characters for each. A longer one is refused before anything goes to DHL. Zippendo declares the IOSS only on parcels from outside the EU to consumers in the EU, when the goods are declared in EUR and worth 150 EUR or less. The receiver's EORI comes from **Receiver's EORI number** on the receiver.
* **Invoices:** for DHL eCommerce Europe, the shipping rule hides **Generate proforma invoice** and **Generate commercial invoice**. Zippendo makes no proforma invoice and no other commercial invoice for these shipments. The only invoice is the one for the United Kingdom above. See [Customs and documents](/docs/how-to/customs-and-documents).

Zippendo sends the customs data to DHL right after DHL has the shipment. If DHL does not accept it, the shipment is sent with the warning "The carrier accepted the shipment but refused its customs data, so the parcel can't clear customs. Don't hand the parcel over; contact the carrier." Underneath, the warning gives DHL's reason when DHL gave one, or why the data could not be sent. Zippendo can't send the customs data again for that shipment, and DHL can't cancel it, so contact DHL eCommerce Europe with the tracking number.

### Pickups, tracking and cancelling

* **Pickups:** you can book DHL eCommerce Europe pickups under **Pickups**, for pickup addresses in France and Italy only. See [Schedule a pickup](/docs/how-to/schedule-a-pickup). The pickup form has no time fields for DHL eCommerce Europe. DHL collects between 09:00 and 17:00, local time at the pickup address. Pick today or a later date. A pickup for today starts no earlier than the next quarter hour, and once today's window has passed, choose a later date. The pickup address needs a name, street, postcode, city and a valid phone number for DHL's courier, and the pickup needs the parcels' total weight. DHL receives your **Special instructions (optional)**. DHL must have turned on courier pickup for your customer ID. You can't cancel or change a DHL eCommerce Europe pickup in Zippendo. To cancel, contact DHL with the **Carrier reference**.
* **Other countries:** hand your parcels to DHL as your agreement with DHL describes. A DHL eCommerce Europe shipment has no pickup window you can set.
* **Tracking:** tracking events are not available yet. Zippendo turns DHL tracking on later. Until then the shipment's **Tracking timeline** stays empty. Each shipment still has its tracking number and a **Tracking link** to DHL's tracking page. **DHL Parcel Connect Light (untracked)** gets no **Tracking link**, because DHL does not track it, and Zippendo never fetches events for it. Once tracking is on, Zippendo fetches DHL eCommerce Europe tracking for one parcel every 5 seconds, so with many open parcels an update can take longer than an hour to appear. There is nothing to set up. See [Carrier tracking webhooks](/docs/how-to/tracking-webhooks).
* **Cancelling:** you can't cancel DHL eCommerce Europe shipments in Zippendo. Contact DHL eCommerce Europe with the tracking number.

## Change or remove the connection

To change it, open **Carriers** → **My carriers** and click **Edit carrier** on the card. The **Edit carrier** page has two sections:

* **General**: **Carrier name**, and **Brand** if your organization has brands.
* **Carrier settings**: the same DHL eCommerce Europe fields as on the connect form, including **Test mode**.

Click **Save**. You see "Carrier updated".

To remove it, click **Delete** on the same page, type the carrier name in capital letters, and click **Delete**. Shipping rules that use this carrier are deleted with it. Shipments you already sent keep their labels and tracking numbers.

## Common problems

A shipment that fails shows the message below with DHL's or Zippendo's reason underneath. A warning means DHL has the shipment.

| What you see | What to do |
| - | - |
| Nothing happens when you click **Connect** | Fill in **Carrier name**, **Client ID**, **Client secret** and **Customer ID**. |
| "Couldn't connect the carrier. Try again." | Try again. |
| "You've reached your plan's limit. Upgrade your plan or remove something you no longer use." or "You're over your plan's limits. Upgrade your plan or remove what you no longer use." | Your plan's carrier limit is reached. Upgrade, or remove a carrier you don't use. See [Billing and usage](/docs/how-to/billing-and-usage). |
| "The carrier rejected your login details. Update the carrier credentials under Carriers." | DHL refused the **Client ID** or **Client secret**: a typo, credentials DHL has replaced, test credentials with **Test mode** off, or live credentials with it on. Copy both again from DHL's message, and turn on **Test mode** only for test credentials. |
| "The carrier's settings are incomplete or not valid. Check them under Carriers." with "Configuration not found for customerId" underneath | DHL does not know this **Customer ID** for these credentials, for example because of a typo or a customer ID from the other environment. Check **Customer ID** against your DHL contract, or ask DHL which customer ID goes with these credentials. |
| "The carrier's settings are incomplete or not valid. Check them under Carriers." with a note about the cash on delivery bank account underneath | The shipment has the **Cash on delivery** service, and the bank account is missing on the carrier. Fill in **Cash on delivery account holder**, **Cash on delivery IBAN**, **Cash on delivery BIC** and **Cash on delivery bank name** on **Edit carrier**. |
| "The selected carrier product does not ship between these countries. Choose a different product." | The product does not ship from the sender's country to the receiver's, for example Connect PLUS to Norway or Connect Light from the United Kingdom. Pick a product for this route from the product table above. |
| "Some options for this carrier product are missing or not valid. Check the shipment's services and options, then try again." with a note underneath that the product carries one parcel per shipment | Split the shipment into one shipment per parcel, or use **DHL Parcel Connect PLUS**. |
| The same message, with a note that the receiver's email address is needed | **DHL Parcel Connect ServicePoint** or Connect PLUS without the receiver's email. Add the receiver's email address. |
| The same message, with a note that the receiver's DHL Postnummer is needed | A service point in Luxembourg, or a DHL Packstation, without the receiver's DHL registration number. Fill in **DHL Postnummer**, or choose another service point. |
| The same message, with another note underneath | Zippendo found something else before sending, for example a parcel over the weight limit, a Connect PLUS receiver without a valid phone number, a parcel without dimensions on Connect PLUS, a service the product does not offer, a **Cash on delivery amount** without the **Cash on delivery** service, a Return International address without any number, a parcel to the United States without **Receiver's state**, Connect Light goods worth more than 350 EUR, or a VAT number, EORI or IOSS over 35 characters. Change what the note names, then send again. |
| "The customs declaration is incomplete. Each item needs a description, a quantity, and a declared value greater than zero." | An order line is missing a description, an HS code, a value, a currency or a country of origin, or the order lines use more than one currency. Nothing went to DHL. The note underneath names the order line and what it needs. Fix the order lines and send again. |
| "This carrier product can't carry a customs declaration. For shipments that cross a customs border, choose a product that supports customs." | A return from a place outside the EU's customs area. Use another carrier for this return. |
| "This product delivers to a service point. Select a service point before sending." | A **DHL Parcel Connect ServicePoint** shipment without a service point. Choose one in the **Service point** section of the shipment. |
| "The carrier's settings are incomplete or not valid. Check them under Carriers." in the service point search, or with a note that the feature is not switched on in Zippendo yet | DHL's service point search is not available yet. Your settings are fine. Use **DHL Parcel Connect** to the door for now. |
| "DHL eCommerce Europe couldn't create the shipment." | DHL refused the shipment. Its reason is underneath, for example a field it finds too long or a product that is not on your contract. Fix what DHL names, then send again. |
| Warning: "The carrier accepted the shipment but refused its customs data, so the parcel can't clear customs. Don't hand the parcel over; contact the carrier." | DHL has the shipment but refused its customs data, or the data could not be sent in time. Don't hand the parcel over. Contact DHL eCommerce Europe with the tracking number. |
| Warning: "The carrier issued the label but couldn't produce one of the accompanying documents. Check the shipment's documents before handing the parcel over." | DHL accepted the customs data of a **DHL Parcel International** shipment but returned no CN23. Ask DHL eCommerce Europe for the CN23 before you hand the parcel over. |
| Warning: "The carrier accepted the shipment but its label couldn't be downloaded. The parcel will still be collected. Use Fetch label on the shipment to try again." | DHL has the shipment, but its label did not arrive. Click **Fetch label** within 10 days. It needs label reprint turned on for your customer ID. |
| "The carrier's settings are incomplete or not valid. Check them under Carriers." after **Fetch label** | DHL has not turned on label reprint for your customer ID. Ask DHL eCommerce Europe to turn on label reprint, or ask DHL for the label. |
| "The carrier rejected this. Check the carrier's reason, correct the details and try again." after **Fetch label** | DHL refused to print the label again, for example because it no longer keeps the label (after 10 days). Ask DHL eCommerce Europe for the label. |
| Warning: "The carrier accepted the shipment but returned no label or QR code, and Zippendo can't request it again. Ask the carrier for it, and don't send the shipment again." | DHL accepted a QR code return without its QR code. Ask DHL eCommerce Europe for the QR code, or send your customer the label if the shipment has one. Don't send the return again. |
| "The connection to the carrier was lost before it answered. Zippendo has no confirmation that the shipment was created, so check with the carrier before sending again." | DHL did not answer, answered with a server error, or answered without a shipment number, so DHL may have the shipment. Check with DHL eCommerce Europe before you send again. DHL can't cancel a second shipment. |
| "The carrier did not respond. Try again in a moment." | DHL was down or busy before it took the shipment, or DHL's service point search did not answer. DHL has nothing. Send again in a moment. |
| Pickup shows **Failed** with "The carrier rejected this. Check the carrier's reason, correct the details and try again." | The pickup address is outside France and Italy, today's window has passed, the address has no valid phone number, the parcels have no weight, or DHL refused the request, for example because courier pickup is not turned on for your customer ID. Check the address and the date, or ask DHL to turn on courier pickup, then request the pickup again. |
| "The carrier didn't confirm the pickup, so it may still have been scheduled. Check with the carrier before requesting the pickup again." | DHL did not answer the pickup request, or answered with a server error and no confirmation number, so DHL may have the pickup. Ask DHL before you request it again, so the courier does not come twice. |

More help: [Carrier authentication failures](/docs/knowledge-base/carrier-authentication-failures).

## Related

* [Connect DHL Parcel Benelux](/docs/how-to/connect-dhl-parcel-nl)
* [Connect DHL Express](/docs/how-to/connect-dhl)
* [Connect a carrier or integration](/docs/how-to/connect-index)
* [Carrier credentials](/docs/how-to/carrier-credentials)
* [Test mode](/docs/how-to/sandbox-mode)
* [Carrier products and services](/docs/how-to/carrier-products-and-services)
* [Customs and documents](/docs/how-to/customs-and-documents)
* [Inbound and returns](/docs/how-to/inbound-and-returns)
* [Schedule a pickup](/docs/how-to/schedule-a-pickup)
* [Request a carrier integration](/docs/how-to/request-carrier-integration)
* [Carriers](/docs/tutorials/carriers)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.