> ## 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 GLS Denmark

> Connect GLS Denmark from Carriers → All Carriers — Login Name, Password, Customer ID, Contact ID, and optional Sandbox Mode.

**GLS Denmark** books Danish and European parcel labels from Zippendo: business, private home, ParcelShop, express, returns, and pick services. The catalog card copy is: **Create GLS Denmark labels in Zippendo for business, private, and ParcelShop deliveries across Denmark and Europe.** Catalog slug: `gls_dk`.

This page is the GLS connect form. Shared chrome: [Carrier credentials](/docs/how-to/carrier-credentials). Inventory: [Connect a carrier or integration](/docs/how-to/connect-index). Walkthrough: [Carriers](/docs/tutorials/carriers).

<Info>
  You do **not** pick a sender address on this form. Add addresses under **Manage → Addresses**. The address is chosen on the shipment or on a [shipping rule](/docs/how-to/shipping-rule-fields).
</Info>

## Prerequisites

* A **GLS Denmark** shipping agreement. Zippendo’s GLS integration is the Denmark Label API (`gls_dk`), not GLS in another country.
* Four values GLS issues with that agreement: **Login Name**, **Password**, **Customer ID**, and **Contact ID**. There is no self-serve API-key screen in Zippendo. **Learn more** opens [gls-group.eu/DK](https://gls-group.eu/DK).
* Permission to create carriers in the organization. Connecting another GLS account is allowed if each connection has its own **Carrier name**.

## Connect from All Carriers

<Steps>
  <Step title="Open All Carriers">
    Sidebar **Carriers**. Page title **Carriers / Integrations**. Header tabs: **My Carriers** (`?tab=my-carriers`) and **All Carriers** (`?tab=all-carriers`).
  </Step>

  <Step title="Find GLS Denmark">
    The card title is **GLS Denmark**. Buttons: **Connect** and **Learn more** (opens [gls-group.eu/DK](https://gls-group.eu/DK) in a new tab).
  </Step>

  <Step title="Click Connect">
    Modal id `connect-carrier-modal`. Title **Create new carrier**. Subtitle **Fill out the information below to create a new carrier**.
  </Step>

  <Step title="Fill required fields">
    Shared fields first, then **Carrier Configuration → Required Fields**. Empty required values make **Create** return without saving.
  </Step>

  <Step title="Create">
    Click **Create** (shows **Creating…** while the request runs) or **Cancel**. Success toast: **Carrier created successfully**. Failure copy in the modal: **Failed to create carrier. Please try again.**
  </Step>
</Steps>

<Frame caption="GLS Denmark on All Carriers — Connect and Learn more">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/01-all-carriers-card-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=fd5a02b3d294433c75edfdbfbf4ab6dd" alt="All Carriers grid with the GLS Denmark card, Connect, and Learn more" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-gls/01-all-carriers-card-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/01-all-carriers-card-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=e421511a43b06aa9ad360a1518b21f8a" alt="All Carriers grid with the GLS Denmark card, Connect, and Learn more" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-gls/01-all-carriers-card-dark.png" />
</Frame>

<Frame caption="Create new carrier for GLS Denmark — Login Name, Password, Customer ID, Contact ID">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/02-connect-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=8fc3c789ecf4fce150fff70aa5832d7e" alt="Create new carrier dialog for GLS Denmark with required Login Name, Password, Customer ID, and Contact ID" className="block dark:hidden" width="2880" height="2800" data-path="images/how-to/connect-gls/02-connect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/02-connect-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=360e7c5c8cc733672ddcd9f5936eb7f9" alt="Create new carrier dialog for GLS Denmark with required Login Name, Password, Customer ID, and Contact ID" className="hidden dark:block" width="2880" height="2800" data-path="images/how-to/connect-gls/02-connect-modal-dark.png" />
</Frame>

<Frame caption="GLS Optional Fields — Sandbox Mode">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/03-sandbox-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=2fbc5407a59df572941648476842de37" alt="GLS Denmark connect form scrolled to Optional Fields and the Sandbox Mode checkbox" className="block dark:hidden" width="2880" height="2800" data-path="images/how-to/connect-gls/03-sandbox-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/03-sandbox-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=d65fbeb5c51bab9d49616580e6efac68" alt="GLS Denmark connect form scrolled to Optional Fields and the Sandbox Mode checkbox" className="hidden dark:block" width="2880" height="2800" data-path="images/how-to/connect-gls/03-sandbox-dark.png" />
</Frame>

## Shared fields

These appear on every connect dialog, including GLS.

| Field               | Required | What it is                                                                                                                                                                                             |
| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Carrier name \*** | Yes      | Display name in **My Carriers** and on shipments. Placeholder **Enter carrier name**. Defaults to **GLS Denmark**. Letters, numbers, and `. & ' + / ( ) _ -` only.                                     |
| **Brand**           | No       | Only when the organization has [brands](/docs/how-to/create-a-brand). Label **Brand**. Helper: **Only this brand can use this carrier.** Leave unset for organization-wide. Hidden when you have no brands. |

## GLS credentials

**Carrier Configuration** splits into **Required Fields** and **Optional Fields**. Password-labelled fields use a password input. Each helper is catalog copy.

| Field            | Required | Control                                                                         | Where you get it                                                                | Format                                           | Sandbox vs live                                                                                                                                 |
| ---------------- | -------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Login Name**   | Yes      | Text. Helper: **GLS customer number used for API authentication (LoginName)**   | GLS Denmark account / agreement. This is the GLS customer number, not an email. | String. Often the same value as **Customer ID**. | Same field on both hosts. **Sandbox Mode** switches the Label API host.                                                                         |
| **Password**     | Yes      | Password. Helper: **GLS account password**                                      | The password GLS issued for Label API access.                                   | String.                                          | Same field. Use the password that belongs to the environment you selected.                                                                      |
| **Customer ID**  | Yes      | Text. Helper: **GLS customer ID (typically same as login name)**                | GLS Denmark. Usually the same as **Login Name**.                                | String.                                          | Same field on both hosts.                                                                                                                       |
| **Contact ID**   | Yes      | Text. Helper: **GLS contact identifier for your account**                       | GLS Denmark issues a separate contact identifier (not the customer number).     | String.                                          | Same field on both hosts.                                                                                                                       |
| **Sandbox Mode** | No       | Checkbox, default off. Helper: **Enable test mode (uses GLS test environment)** | Zippendo checkbox — not a GLS portal value.                                     | Boolean.                                         | On: `https://labeltest.gls-denmark.cloud/label`. Off: `https://labelapi.gls-denmark.cloud/label`. ParcelShop Finder does not use this checkbox. |

GLS does **not** use OAuth or a developer-portal API key. Credentials travel in every Label API request as `LoginName`, `Password`, `CustomerId`, and `ContactId`.

<Warning>
  Leave **Sandbox Mode** off for live orders. Test credentials on the production host, or live credentials on the test host, fail at send time. Details: [Sandbox mode](/docs/how-to/sandbox-mode).
</Warning>

## After you connect

The connection appears on **My Carriers** with a **Connected** badge and **Edit Carrier**. Products are **not** on this form — they appear when you [create a shipment](/docs/how-to/send-a-shipment) or save a [shipping rule](/docs/how-to/shipping-rule-fields). See [Carrier products and services](/docs/how-to/carrier-products-and-services).

Outbound products include **GLS BusinessParcel**, **GLS PrivateDelivery**, **GLS ShopDelivery**, **GLS Express 10**, **GLS Express 12**, and **GLS GlobalExpress**. Inbound: **GLS ShopReturn**, **GLS Pick\&Ship**, **GLS Pick\&Return**. Sender country for the catalog is Denmark. Weight helper on typical GLS products: **0.1 - 31.5 kg**.

### ShopDelivery (droppoint)

**GLS ShopDelivery** is a service-point product (`isServicePoint`). On **Create Shipment** the card title is **Drop Point** and the required field is **Service Point \***. Pick a GLS ParcelShop before send. Error: **This carrier product delivers to a service point — select a droppoint before sending.** How to pick: [Pick a service point](/docs/how-to/pick-a-service-point). Naming: [Droppoint vs service point](/docs/how-to/drop-point-and-service-points).

ShopDelivery needs recipient **contact, email, and mobile** on the receiver party. PrivateDelivery needs **email and mobile**.

GLS does **not** appear in **Pickups**. Pickup scheduling is Bring and PostNord only — [Schedule a pickup](/docs/how-to/schedule-a-pickup).

Tracking is pulled on a schedule. There is no tracking-webhook field on **Edit your carrier** — [Carrier tracking webhooks](/docs/how-to/tracking-webhooks).

## Edit

On **My Carriers**, click **Edit Carrier**. Page title: **Edit your carrier**. URL `/dashboard/carriers/:id`.

Two cards:

* **General** — **Carrier name** (helper: **Update the name of your carrier**), plus **Brand** when brands exist.
* **Carrier settings** — the same GLS fields as connect, including **Sandbox Mode**.

Header actions: **Delete** and **Save** (pending **Saving…**). Success toast: **Carrier updated successfully**. Loading: **Loading carrier…**. Load failure: **Failed to load carrier. Please try again.** Save failure: **Failed to update carrier. Please try again.**

<Frame caption="Edit your carrier for GLS Denmark — credentials and Sandbox Mode">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/04-edit-carrier-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=32fefb927b89e98e8c9d26140ff2d5f9" alt="Edit your carrier for GLS Denmark with Login Name, Password, Customer ID, Contact ID, and Sandbox Mode" className="block dark:hidden" width="2880" height="2800" data-path="images/how-to/connect-gls/04-edit-carrier-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/04-edit-carrier-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=e4e8a33f35ca707197694eb70add6906" alt="Edit your carrier for GLS Denmark with Login Name, Password, Customer ID, Contact ID, and Sandbox Mode" className="hidden dark:block" width="2880" height="2800" data-path="images/how-to/connect-gls/04-edit-carrier-dark.png" />
</Frame>

## Delete

On **Edit your carrier**, click **Delete**. Modal id `global-delete-modal`. Title **Delete Carrier**. Subtitle **You are about to delete carrier "\{\{name}}".** Body: **This will permanently delete carrier "\{\{name}}". This action cannot be undone.** Type the carrier name in **uppercase** to enable **Delete**. Toast: **Carrier deleted successfully**. Failure: **Failed to delete carrier**.

Booked shipments keep their labels and tracking.

<Frame caption="Delete Carrier — type the name in uppercase to enable Delete">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/05-delete-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=2efe572f8511a96e1a895394090c6489" alt="Delete Carrier dialog asking to type the GLS Denmark name in uppercase" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-gls/05-delete-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-gls/05-delete-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=8000ea3cea2c6c2a14e254b0914ba5f8" alt="Delete Carrier dialog asking to type the GLS Denmark name in uppercase" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-gls/05-delete-modal-dark.png" />
</Frame>

## Common errors

| When                            | Copy                                                                                                                                     |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Required field empty on connect | **Create** does nothing until **Carrier name** and all four GLS fields have values.                                                      |
| Connect request fails           | **Failed to create carrier. Please try again.**                                                                                          |
| Plan / resource cap             | **You have reached your plan limit for this resource.** / **You have exceeded your plan limits. Please upgrade or remove excess items.** |
| Send with bad credentials       | **The carrier rejected your API credentials. Update the carrier's API key or secret in Carrier settings.**                               |
| Invalid delivery address        | **The delivery address is invalid for GLS.**                                                                                             |
| ShopDelivery without a shop     | **This carrier product delivers to a service point — select a droppoint before sending.**                                                |
| Product vs countries            | **The selected carrier product does not ship between these countries. Choose a different product.**                                      |
| Carrier down                    | **The carrier service is currently unavailable.** / **The carrier rejected the request.**                                                |

Auth failures after send: [Carrier authentication failures](/docs/knowledge-base/carrier-authentication-failures).

## Related

* [Connect a carrier or integration](/docs/how-to/connect-index)
* [Carrier credentials](/docs/how-to/carrier-credentials)
* [Sandbox mode](/docs/how-to/sandbox-mode)
* [Carrier products and services](/docs/how-to/carrier-products-and-services)
* [Connect an integration](/docs/how-to/connect-an-integration)
* [Request a carrier integration](/docs/how-to/request-carrier-integration)
* [Carriers](/docs/tutorials/carriers)
