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

> Connect DAO Denmark from Carriers → All Carriers — Customer ID (kundeid), API Password (kode), and optional Sandbox Mode.

**DAO Denmark** books Danish home, parcel-shop, international, and return labels from Zippendo. The catalog card copy is: **Ship with DAO Denmark through Zippendo — home delivery, parcel shop drop-off, and international options from one workflow.** Catalog slug: `dao_dk`.

This page is the DAO connect form. Shared chrome (name, brand, sandbox, delete): [Carrier credentials](/docs/how-to/carrier-credentials). Inventory of every connector: [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 DAO Denmark parcel-API account. **Learn more** on the catalog card opens [dao.as](https://dao.as).
* The **Customer ID** (`kundeid`) and **API Password** (`kode`) DAO issued for that account — those names are the helpers on the form.
* Permission to create carriers in the organization. You can connect DAO more than once 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 DAO Denmark">
    Card title **DAO Denmark**. Buttons: **Connect** and **Learn more** (opens [dao.as](https://dao.as) 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="DAO Denmark on All Carriers — Connect and Learn more">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-dao/01-all-carriers-card-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=73ef952581bfd63bf71dc60a80854b44" alt="All Carriers grid with the DAO Denmark card, Connect, and Learn more" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-dao/01-all-carriers-card-light.png" />

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

<Frame caption="Create new carrier for DAO Denmark — Customer ID and API Password">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-dao/02-connect-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=08e4259adf6781d012ede39bdf585b95" alt="Create new carrier dialog for DAO Denmark with required Customer ID and API Password" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-dao/02-connect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-dao/02-connect-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=241f8d08f443c66f465184af715919cb" alt="Create new carrier dialog for DAO Denmark with required Customer ID and API Password" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-dao/02-connect-modal-dark.png" />
</Frame>

## Shared fields

These appear on every carrier connect dialog, including DAO.

| Field               | Required | What it is                                                                                                                                                                                             |
| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Carrier name \*** | Yes      | Display name in **My Carriers** and on shipments. Placeholder **Enter carrier name**. Defaults to **DAO 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. |

## DAO credentials

**Carrier Configuration** splits into **Required Fields** and **Optional Fields**. **API Password** uses a password input because the label contains “Password”. Each helper is catalog copy.

| Field            | Required | Control                                                                     | Where you get it                                                                                                | Format              | Sandbox vs live                                                                                                                        |
| ---------------- | -------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Customer ID**  | Yes      | Text. Helper: **DAO customer ID (kundeid)**                                 | Issued by DAO with your parcel-API account. **Learn more** → [dao.as](https://dao.as).                          | String (`kundeid`). | Same value. **Sandbox Mode** does not switch host.                                                                                     |
| **API Password** | Yes      | Password. Helper: **DAO API password (kode)**                               | The `kode` DAO issued for the parcel API — not your dao.as website login unless DAO told you they are the same. | String (`kode`).    | Same value.                                                                                                                            |
| **Sandbox Mode** | No       | Checkbox, default off. Helper: **Enable test mode (adds test=1 to orders)** | Zippendo checkbox — not a DAO portal value.                                                                     | Boolean.            | On: Zippendo adds `test=1` to DAO orders so DAO does not create a live parcel. Off: real orders. Same API host (`https://api.dao.as`). |

There is no API key, client secret, or country dropdown. DAO is Denmark-only on this integration (`dao_dk`).

<Warning>
  Leave **Sandbox Mode** off for live orders. 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).

Catalog products:

| Product            | Type     | Notes                                                                                    |
| ------------------ | -------- | ---------------------------------------------------------------------------------------- |
| **daoHOME**        | Outbound | Home delivery to Danish addresses. Next-day delivery with SMS/email notification.        |
| **daoSHOP**        | Outbound | Delivery to a DAO parcel shop (pakkeshop) chosen by the customer. Service-point product. |
| **daoGLOBAL**      | Outbound | International parcel delivery from Denmark to European destinations.                     |
| **daoSHOP Return** | Inbound  | Return label for customers to drop off at a DAO parcel shop.                             |

Sender country for the catalog is Denmark. Weight helper: **0.1 - 25 kg**.

### daoSHOP (droppoint)

**daoSHOP** is a service-point product. On **Create Shipment** the card title is **Drop Point** and the required field is **Service Point \***. Pick a DAO pakkeshop 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).

**daoSHOP Return** is inbound and is **not** booked with a selected shop on the create form (`isServicePoint` is false) — the consumer drops at a DAO shop.

DAO 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).

DAO does not generate customs documents or commercial invoices in Zippendo.

## 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** — **Customer ID**, **API Password**, **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.**

## 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.

## Common errors

| When                            | Copy                                                                                                                                     |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Required field empty on connect | **Create** does nothing until **Carrier name**, **Customer ID**, and **API Password** 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 Danish postcode         | **The postal code is invalid for DAO.**                                                                                                  |
| daoSHOP 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)
