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

# Returns

> Create a return shipment from a dispatched outbound shipment.

Returns in Zippendo are **merchant-side labels**. There is no customer return portal, no shopper self-serve page, and no hosted QR/email flow in the dashboard. You create an **inbound** shipment (or let dispatch create one), print the label, and hand it to the shopper — or use a carrier product that emails / shows a QR itself (for example GLS ShopReturn).

<Warning>
  Zippendo does not host a return portal. Carrier products such as **GLS ShopReturn** or **GLS ShopReturnMail** may email the shopper or show a QR — that is the carrier, not a Zippendo page.
</Warning>

## How returns work

You need two pieces:

1. An **inbound** [shipping rule](/docs/tutorials/shipping-rules) — **Direction** is **Inbound (Return)**, with a return product (ShopReturn, Pick\&Return, PostNord Return, and similar).
2. On the **outbound** rule you actually ship with, **Return Shipping Rule** points at that inbound rule.

Then you either:

* Turn on **Auto-create return on dispatch** on the outbound rule — Zippendo creates and sends the inbound shipment when the outbound one is dispatched, or
* Leave auto-create off and click **Create Return Shipment** on a **dispatched** outbound shipment (or **Create Return** on the order **Shipments** tab).

The created return is type **inbound**, reference `RET-` plus the original reference, sender/receiver swapped (the customer becomes sender; your warehouse becomes receiver), and it is booked with the carrier immediately.

<Note>
  **Create Return Shipment** (shipment header) and **Create Return** (order **Shipments** card) appear only when the outbound shipment is **dispatched**, a **Return Shipping Rule** is set on the shipment's rule or the order's rule, and **Auto-create return on dispatch** is off. The docs org's example shipments have no return rule, so the button is not on those screenshots — configure the rule first. The API resolves the shipment's rule first, then the order's.
</Note>

## 1. Create an inbound shipping rule

**Shipping Rules → Add Shipping Rule**. The page is **Create Shipping Rule**.

<Frame caption="Direction — Outbound for regular shipments, inbound for returns">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/01-shipping-rule-direction-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=5df758c95e605651a3206f2288c51cb4" alt="Create Shipping Rule form with Direction set to Outbound and the inbound-for-returns description" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/01-shipping-rule-direction-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/01-shipping-rule-direction-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=125c1cf74b5021733f39411e49fc9aca" alt="Create Shipping Rule form with Direction set to Outbound and the inbound-for-returns description" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/01-shipping-rule-direction-dark.png" />
</Frame>

<Steps>
  <Step title="Set Direction to Inbound (Return)">
    The description under **Direction** is **Outbound for regular shipments, inbound for returns.** Switching to **Inbound (Return)** filters **Product** to return products.
  </Step>

  <Step title="Choose carrier and return product">
    Example: **GLS Denmark** → **GLS ShopReturn** (drop-off at a ParcelShop) or **GLS Pick\&Return** (carrier collects at the customer). Other carriers expose their own return products.
  </Step>

  <Step title="Choose the receiver address">
    **Address** is your warehouse — the parcel is coming **to** you. Use an address that includes the **Return** type (see below).
  </Step>

  <Step title="Set receiving countries and save">
    **Receiving Countries** is still required. Name the rule so you can find it on the outbound rule (`GLS ShopReturn – DK`).
  </Step>
</Steps>

<Frame caption="Inbound (Return) filters products to return services such as GLS ShopReturn">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/02-shipping-rule-inbound-products-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=6a440d68cdd81a07edb462cee5a21529" alt="Create Shipping Rule with Direction Inbound (Return), GLS Denmark, and GLS ShopReturn / GLS Pick&Return in the product list" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/02-shipping-rule-inbound-products-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/02-shipping-rule-inbound-products-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=cb4f34463ab81703b746a230843b16b0" alt="Create Shipping Rule with Direction Inbound (Return), GLS Denmark, and GLS ShopReturn / GLS Pick&Return in the product list" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/02-shipping-rule-inbound-products-dark.png" />
</Frame>

Condition fields, hard limits, and **Test** are the same as outbound rules — do not duplicate that here; see [Shipping rules](/docs/tutorials/shipping-rules).

## 2. Attach it to the outbound rule

Open the **outbound** rule shoppers (or you) already use. Scroll to **Return Shipping**.

<Frame caption="Return Shipping — pick the inbound rule; Auto-create appears after you select one">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/03-shipping-rule-return-section-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=60b816f90529e7ce0a5a2f23fe44d185" alt="Return Shipping section with Return Shipping Rule set to None, below Automatic Printing" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/03-shipping-rule-return-section-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/03-shipping-rule-return-section-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=489c0b88d9fa9af9d4c65a6bc4b64afa" alt="Return Shipping section with Return Shipping Rule set to None, below Automatic Printing" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/03-shipping-rule-return-section-dark.png" />
</Frame>

* **Return Shipping Rule** — **Select a shipping rule to use for return shipments.** The dropdown lists inbound rules. **None** means Zippendo will not offer **Create Return Shipment**.
* **Auto-create return on dispatch** — **Automatically create and send a return shipment when the outbound shipment is dispatched.** This checkbox only appears after you pick a return rule.

Use auto-create when every outbound label should include a return label at send time. Leave it off when returns are the exception and you will click the button per shipment.

## 3. Create the return shipment

### From a dispatched outbound shipment

Open the outbound shipment (**Overview**). When the conditions above are met, the header action is **Create Return Shipment**. That calls `POST /orgs/:orgId/shipments/:shipmentId/create-return`: create the inbound shipment, swap parties, and send it.

<Frame caption="Dispatched outbound shipment — Create Return Shipment appears only after a return rule is attached">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/07-shipment-detail-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=d06db961b7ea835510e89ca5724e0d54" alt="Shipment NL-202609-0142 overview, dispatched outbound, with no Create Return Shipment action" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/07-shipment-detail-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/07-shipment-detail-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=6cf94ceaeea8aab74560b940f2b0e6fb" alt="Shipment NL-202609-0142 overview, dispatched outbound, with no Create Return Shipment action" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/07-shipment-detail-dark.png" />
</Frame>

On the order, open the **Shipments** tab. The same conditions unlock **Create Return** on that shipment card.

<Frame caption="Order Shipments tab — Create Return is on the card when a return rule is configured">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/08-order-shipments-tab-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=d8d425a72369c501bff9c50eac1960a1" alt="Order Shipments tab with a dispatched outbound shipment card and Details" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/08-order-shipments-tab-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/08-order-shipments-tab-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=89e15d5e31ad075aa4b0b0b11bbf5c22" alt="Order Shipments tab with a dispatched outbound shipment card and Details" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/08-order-shipments-tab-dark.png" />
</Frame>

The new shipment:

| Field                   | Value                                                |
| ----------------------- | ---------------------------------------------------- |
| **Type**                | Inbound                                              |
| **Reference**           | `RET-` + original reference                          |
| **Sender**              | Original receiver (the customer)                     |
| **Receiver**            | Original sender (your warehouse)                     |
| **Rule**                | The inbound **Return Shipping Rule**                 |
| **Status after create** | Booked / sent with the carrier (not left as a draft) |

Print the inbound label the same way as any other shipment — [Labels and printing](/docs/tutorials/labels-printing).

### Manual inbound shipment

If there is no outbound shipment to clone from (warranty, unsolicited return, sample coming back), create one yourself.

**Shipments → Create shipment**. Set **Type** to **Inbound**. The address field becomes **Receiver Address** (your warehouse). Pick an inbound product.

<Frame caption="Create shipment with Type Inbound — Receiver Address is your warehouse">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/04-create-shipment-inbound-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=4e614b0793955c05ca06eaa26ff50858" alt="Create shipment form with Type Inbound and Receiver Address" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/04-create-shipment-inbound-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/04-create-shipment-inbound-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=9118d47ae869c35ebacb9fc2b2bb96c8" alt="Create shipment form with Type Inbound and Receiver Address" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/04-create-shipment-inbound-dark.png" />
</Frame>

The full form (parcels, parties, send): [Create a shipment](/docs/tutorials/create-a-shipment) — section **Outbound vs inbound (returns)**. Do not re-document every field here.

## Return addresses

**Manage → Addresses**. Mark the warehouse as **Return** (you can keep **Sender** on the same row). Inbound rules and inbound create-shipment only offer addresses with that type.

<Frame caption="Addresses — Nordlys Lager – Nordhavn is both Sender and Return">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/05-settings-addresses-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=c3070f5ade6a4137e07a2c6eb2cbd202" alt="Addresses table with Sender and Return type badges" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/05-settings-addresses-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/05-settings-addresses-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=7d1c8fc803a11cf87db1900f45cb2528" alt="Addresses table with Sender and Return type badges" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/05-settings-addresses-dark.png" />
</Frame>

Open the address. **Address Types** is **Select one or more types for this address**: **Sender**, **Pickup**, **Return**.

<Frame caption="Edit Address — tick Return on the warehouse">
  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/06-address-types-light.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=049cc5d272a75bd0096765aeed1e4d92" alt="Edit Address with Address Types Sender, Pickup, and Return, Return selected" className="block dark:hidden" width="2880" height="1800" data-path="images/tutorials/returns/06-address-types-light.png" />

  <img src="https://mintcdn.com/zippendo/PYkJy9eJDrG1N0mY/images/tutorials/returns/06-address-types-dark.png?fit=max&auto=format&n=PYkJy9eJDrG1N0mY&q=85&s=a2afb0c1743caaa06339ee48073b8cbe" alt="Edit Address with Address Types Sender, Pickup, and Return, Return selected" className="hidden dark:block" width="2880" height="1800" data-path="images/tutorials/returns/06-address-types-dark.png" />
</Frame>

**Pickup** here is carrier collection from your site, not a shopper parcel shop.

## What Zippendo does not do

* **No return portal** — shoppers cannot open a Zippendo URL to book a return.
* **No in-app QR / return email composer** — use a carrier service that already does that (ShopReturnMail, ShopReturnQR, and similar) if you need the shopper to print at home.
* **Automations → action.shipment.create-return** is a stub in the product today. Do not rely on it to create returns; use **Auto-create return on dispatch** or **Create Return Shipment**.

## Checklist

<Check>
  You are set up for returns when (1) an inbound rule exists with a return product and a **Return** address, and (2) the outbound rule you ship with points **Return Shipping Rule** at it.
</Check>

<CardGroup cols={2}>
  <Card title="Shipping rules" icon="route" href="/docs/tutorials/shipping-rules">
    Direction, products, and the rest of the rule form.
  </Card>

  <Card title="Create a shipment" icon="package" href="/docs/tutorials/create-a-shipment">
    Manual inbound labels and sending the shipment.
  </Card>

  <Card title="Labels and printing" icon="printer" href="/docs/tutorials/labels-printing">
    Print the inbound label after it is booked.
  </Card>

  <Card title="Getting started" icon="rocket" href="/docs/tutorials/getting-started">
    Addresses, carriers, and the rest of first-run setup.
  </Card>
</CardGroup>

Field-level: [Inbound and returns](/docs/how-to/inbound-and-returns) · [Shipping rule fields](/docs/how-to/shipping-rule-fields)
