> ## 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 Instabox (Legacy API)

> Connect deprecated Instabox (Legacy API) — Client ID, Client Secret, Customer Number, optional Sandbox Mode, and why to prefer Instabox.

**Instabox (Legacy API)** is the standalone Instabox OAuth integration. It is marked **Deprecated** on **All Carriers**. The catalog card copy is: **Legacy Instabox API integration for locker and home delivery across the Nordics. Deprecated — migrate to the Instabee-powered Instabox integration.**

Prefer **[Connect Instabox](/docs/how-to/connect-instabox)** (catalog slug `instabox`) unless you still have OAuth credentials for this older API. This page documents the live **Connect** form for slug `instabox_legacy`. 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).

<Warning>
  The badge on the card is **Deprecated**. Tooltip: **The standalone Instabox API is deprecated. Migrate to the Instabee-powered Instabox integration.** You can still **Connect** and book with stored credentials. New setups should use **Instabox**.
</Warning>

<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

* Existing **Instabox OAuth** credentials from the standalone Instabox API (not the current Instabox **API Key** form).
* **Client ID**, **Client Secret**, and **Customer Number** (parcel id prefix, for example `PA02`) — those names are the helpers on the form.
* **Learn more** opens [instabee.com](https://instabee.com).

## 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 Instabox (Legacy API)">
    Card title **Instabox (Legacy API)** — not the current **Instabox** card. Yellow **Deprecated** badge. Buttons: **Connect** and **Learn more**.
  </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 **Client ID**, **Client Secret**, and **Customer Number**. **Sandbox Mode** sits under **Optional Fields**.
  </Step>

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

<Frame caption="Instabox (Legacy API) on All Carriers — Deprecated badge, Connect, Learn more">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-instabox-legacy/01-all-carriers-card-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=07c4ec4f4b0281ddacb3ed2d5203e469" alt="All Carriers grid with the Instabox Legacy API card marked Deprecated, Connect, and Learn more" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-instabox-legacy/01-all-carriers-card-light.png" />

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

<Frame caption="Create new carrier for Instabox (Legacy API) — Client ID, Client Secret, Customer Number">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-instabox-legacy/02-connect-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=f7f7d423320751625f8042110f31009c" alt="Create new carrier dialog for Instabox Legacy API with Client ID, Client Secret, and Customer Number" className="block dark:hidden" width="2880" height="2800" data-path="images/how-to/connect-instabox-legacy/02-connect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-instabox-legacy/02-connect-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=1a38f50d39ba381d4710d3f462273db4" alt="Create new carrier dialog for Instabox Legacy API with Client ID, Client Secret, and Customer Number" className="hidden dark:block" width="2880" height="2800" data-path="images/how-to/connect-instabox-legacy/02-connect-modal-dark.png" />
</Frame>

Scroll **Optional Fields** for **Sandbox Mode**.

<Frame caption="Instabox (Legacy API) optional field — Sandbox Mode">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-instabox-legacy/03-optional-fields-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=b32d76e9d3ed178e6ea3aa666b011389" alt="Instabox Legacy API connect form scrolled to Optional Fields and Sandbox Mode" className="block dark:hidden" width="2880" height="2800" data-path="images/how-to/connect-instabox-legacy/03-optional-fields-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-instabox-legacy/03-optional-fields-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=cf8803bb31d99444eddc205d1dfe98f8" alt="Instabox Legacy API connect form scrolled to Optional Fields and Sandbox Mode" className="hidden dark:block" width="2880" height="2800" data-path="images/how-to/connect-instabox-legacy/03-optional-fields-dark.png" />
</Frame>

## Shared fields

| Field               | Required | What it is                                                                                                                                                          |
| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Carrier name \*** | Yes      | Display name. Placeholder **Enter carrier name**. Defaults to **Instabox (Legacy API)**. 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.** Hidden when you have no brands. |

## Legacy credentials

**Client Secret** uses a password input because the label contains “Secret”. Helpers are catalog copy.

| Field               | Required | Control                                                                                    | Where you get it                                                      | Format                                  | Sandbox vs live                                                                                                                                                                                                                                                             |
| ------------------- | -------- | ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Client ID**       | Yes      | Text. Helper: **Your Instabox OAuth client id**                                            | Standalone Instabox OAuth app (not the current Instabox **API Key**). | String.                                 | Same field. **Sandbox Mode** does not change hosts — staging subdomains are not used.                                                                                                                                                                                       |
| **Client Secret**   | Yes      | Password. Helper: **Your Instabox OAuth client secret**                                    | Same OAuth app as **Client ID**.                                      | String.                                 | Same field.                                                                                                                                                                                                                                                                 |
| **Customer Number** | Yes      | Text. Helper: **Your Instabox customer number — used as the parcel id prefix (e.g. PA02)** | Instabox account prefix every parcel id must start with.              | String (example in the helper: `PA02`). | Same field.                                                                                                                                                                                                                                                                 |
| **Sandbox Mode**    | No       | Checkbox, default off. Helper: **Use the Instabox staging environment**                    | Zippendo checkbox.                                                    | Boolean.                                | On: debug logging and a separate token-cache key. The OAuth/order hosts stay `oauth.instabox.se`, `availability.instabox.se`, `webshopintegrations.instabox.se`, and `waybill-generator-api.instabox.se`. Use **staging credentials** in the same fields when you check it. |

This form does **not** have a single **API Key**. That field is on [Connect Instabox](/docs/how-to/connect-instabox).

<Warning>
  Leave **Sandbox Mode** off for live orders. Mixing staging secrets with the checkbox off (or the reverse) fails at send time. [Sandbox mode](/docs/how-to/sandbox-mode).
</Warning>

## After you connect

The connection appears on **My Carriers** (**Connected**, **Edit Carrier**). Deprecated connections also show a **Deprecated** badge when you pick the carrier on a shipment. Products are **not** on this form — [Carrier products and services](/docs/how-to/carrier-products-and-services).

Legacy products (names as on **Product \***):

| Product             | Type     | Service point?                                               |
| ------------------- | -------- | ------------------------------------------------------------ |
| **Locker delivery** | Outbound | Yes                                                          |
| **Home delivery**   | Outbound | No                                                           |
| **Locker return**   | Inbound  | No on the create form; optional service **Labelless return** |

Countries: Sweden, Norway, Denmark, Finland. Weight helper: **0.1 - 20 kg**.

**Locker delivery** needs a **Service Point** on the **Drop Point** card. Error: **This carrier product delivers to a service point — select a droppoint before sending.** [Pick a service point](/docs/how-to/pick-a-service-point).

Tracking is **push** (same Instabox-format callbacks as the current Instabox card). No webhook URL on **Edit your carrier** — [Carrier tracking webhooks](/docs/how-to/tracking-webhooks).

This carrier does not generate customs documents or commercial invoices in Zippendo. It does **not** appear in **Pickups**.

## Edit

**My Carriers → Edit Carrier**. Title **Edit your carrier**.

* **General** — **Carrier name** (helper: **Update the name of your carrier**), **Brand** when brands exist.
* **Carrier settings** — **Client ID**, **Client Secret**, **Customer Number**, **Sandbox Mode**.

**Save** (pending **Saving…**) → **Carrier updated successfully**. Load failure: **Failed to load carrier. Please try again.** Save failure: **Failed to update carrier. Please try again.**

## Delete

**Delete** on **Edit your carrier**. Title **Delete Carrier**. 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**. Booked shipments keep labels and tracking.

After you migrate, connect **Instabox** and then delete this legacy connection if you no longer need it.

## Common errors

| When                             | Copy                                                                                                                                     |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Required field empty             | **Create** does nothing until **Carrier name**, **Client ID**, **Client Secret**, and **Customer Number** have values.                   |
| Connect fails                    | **Failed to create carrier. Please try again.**                                                                                          |
| Plan 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 OAuth credentials  | **The carrier rejected your API credentials. Update the carrier's API key or secret in Carrier settings.**                               |
| Locker delivery without a locker | **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.**                                      |

Putting a current Instabox **API Key** into **Client ID** / **Client Secret** will not work. Use [Connect Instabox](/docs/how-to/connect-instabox) for that key.

## Related

* [Connect Instabox](/docs/how-to/connect-instabox) — current Connect card
* [Connect a carrier or integration](/docs/how-to/connect-index)
* [Carrier credentials](/docs/how-to/carrier-credentials)
* [Sandbox mode](/docs/how-to/sandbox-mode)
* [Connect an integration](/docs/how-to/connect-an-integration)
* [Request a carrier integration](/docs/how-to/request-carrier-integration)
* [Carriers](/docs/tutorials/carriers)
