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

# Create shipments, print labels and track parcels

> Turn routed orders into shipments on OTO rates or your own, print labels and documents, book carrier pickups, track parcels and handle failed deliveries.

> [!NOTE]
>
> **Where to find it:** Main → Shipping → Shipments — [Open in OTO ↗](https://app.tryoto.com/shipments)

This is the operational heart of shipping: turning routed orders into booked shipments, getting the paperwork printed, having the carrier collect, and following the parcel until it arrives — or doesn’t.

## What this function covers

| Group | What it deals with |
| - | - |
| **Creating shipments** | Booking with a carrier, single or in bulk, including specialised services and COD. |
| **Documents** | Air waybills, invoices, customs proforma, pick lists and pickup lists. |
| **Pickup and tracking** | Getting the carrier to collect, and following the parcel with one status vocabulary. |
| **When it goes wrong** | Cancelling and re-booking, and managing failed delivery attempts. |

## Creating shipments

### The box and weight step

Select one or more orders on **Shipments → Pending Orders** and choose **Create Shipment**, then either **With OTO Rates** or **With My Rates** depending on whose contract you are shipping under.

First comes the parcel. Pick a predefined **Box Type** or type **Box Dimensions** and **Weight** directly; **Add Another Box** handles a multi-package shipment. COD is set on the same step, as a plain question: *Collect payment from the receiver on delivery (COD)?*

![The box and weight step of shipment creation](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/ship-1-box-weight.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=05f246f29ebb911191e4c3e5f3a81fe3)

Fig. 1 — Origin and destination come from the order. Note Package Weight and Volumetric Weight calculated side by side as you type.

> [!TIP]
>
> **Both weights, before you commit**
>
> The screen shows actual and volumetric weight together — here 1.00 kg against 0.90 — so you can see which one the carrier will bill on before choosing. The product’s own warning is the honest version: *“Enter an accurate weight to avoid unexpected extra charges.”* Under-declaring does not save money; it moves the cost to an invoice line you will argue about later in [reconciliation](https://docs.tryoto.com/modules/shipping-management/shipping-invoices-reconciliation.md).

### Choosing a carrier

**Show Shipping Prices** returns every carrier that can serve the shipment. Each row carries rather more than a price:

| What you see | Why it matters |
| - | - |
| **Service type** | A chip on the carrier — *Same Day Delivery*, *Express*, *PUDO (Pick up drop off)*, *Locker Delivery*. |
| **Star rating** | Measured performance, shown next to the carrier name. The same figure [Customer Rating](https://docs.tryoto.com/modules/shipping-management/shipping-automation.md) selection uses. |
| **First mile** | How the parcel leaves you — *Pickup By Courier*, *Branch Drop Off*, *Locker Drop Off*. |
| **Last mile** | How it reaches the customer — *Customer Doorstep*, *Pickup By Customer*, *Pickup By Customer (Locker)*. |
| **Estimated dates** | A pickup estimate and a delivery estimate per carrier, so the choice is speed against price rather than price alone. |
| **Price** | The cost of this shipment with this carrier. |

![The carrier options list with prices and estimates](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/ship-2-carrier-options.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=01c37a9b76e32b196e1b2ac6ed0fb1fa)

Fig. 2 — Seven options from 12.00 to 16.00, spanning lockers, PUDO branches and door-to-door. A carrier whose connection still needs checking shows Verify in place of Select.

> [!NOTE]
>
> **Drop-off is a real option, not an edge case**
>
> Three of the seven options here never visit your door: the parcel goes to a locker or a carrier branch and the customer collects it. Drop-off and PUDO are usually the cheapest rows on this screen, and for a merchant shipping from a store they remove the pickup window entirely.

### Bulk creation

The same flow runs across a selection of orders. Under **With My Rates**, one control sets the carrier **for all orders** and each order can still be overridden individually, with its own **Box Count** and **Box Weight**. A running **Total Cost** sits at the foot before you commit.

![Bulk shipment creation on your own rates](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/ship-3-with-my-rates.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=80be2ed5e11ffc08a4e7ba339e34b341)

Fig. 3 — Each order shows its route and can be removed from the batch. The default per-order value is Automatic Shipment — leave it and shipping automation picks the carrier.

> [!TIP]
>
> **The default is the interesting one**
>
> **Automatic Shipment** means you do not have to choose at all: the rules decide, order by order, and you are simply confirming the batch. Setting a carrier here overrides the rules for these orders only — useful for a one-off, and a habit worth noticing if it becomes routine, because it means the rules are wrong.

### Specialised shipping services

Not every parcel is a box going next-day. OTO carries the service type through to the carrier so that specialised handling is booked as such, not discovered at pickup. Services include **same-day** and **4-hour** delivery, **express**, **cold delivery**, **heavy & bulky**, **international**, and the **PUDO** and **locker** options above.

Because each carrier service is its own connection — see [Carrier integration](https://docs.tryoto.com/modules/shipping-management/carrier-integration.md) — a cold-chain service carries its own coverage and its own SLA, separate from the same carrier’s standard offering.

### Cash on delivery

COD is booked as part of the shipment, with the amount to collect passed to the carrier. The money collected then flows into [reconciliation](https://docs.tryoto.com/modules/shipping-management/shipping-invoices-reconciliation.md), where it is matched against what the carrier actually remits.

COD orders are also the ones most worth protecting upstream — see the COD confirmation and address verification checks in [Pre-fulfillment checks](https://docs.tryoto.com/modules/omnichannel-oms/prefulfillment.md).

### Scheduled shipment creation for delivery slots

An order with a delivery slot should not become a shipment the moment it arrives — it should become one shortly before the slot, so the carrier’s clock starts when the delivery is actually due. OTO creates these shipments automatically ahead of the slot rather than on receipt. Slots themselves are configured per carrier; see [Order fulfillment](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md).

### Asynchronous label generation

Labels are generated in the background rather than holding the screen. On a bulk creation of several hundred shipments that is the difference between a usable interface and a frozen one — the operator carries on working while the air waybills are produced.

## Documents

From **Shipments → Awaiting Pickup**, select orders and open the **Print** menu. Eight documents are available:

| Document | What it is for |
| - | - |
| **Shipping label (AWB)** | The air waybill that goes on the parcel. |
| **Return AWB** | The reverse label — printed in advance and put in the box, it turns a return into something the customer can do without contacting you. |
| **Order Details With AWB** | Both on one sheet, so the packer has the contents and the label together. |
| **Delivery Company Pickup List** | The handover manifest. See below. |
| **Order Details** | The order on its own, for the box or the file. |
| **Pick List (PDF)** | A printed picking list for the warehouse floor. |
| **Pick List Export** | The same as data, for a system that wants to consume it. |
| **International Proforma** | The customs declaration for cross-border shipments. |

![The Print menu on the Awaiting Pickup tab](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/ship-4-print-menu.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=daeff05c446b7c91874b48f7c42f8597)

Fig. 4 — The toolbar also carries Orders, OTO PACK, Notify and Tools, and each tab shows a live count.

Air waybills are available in **English, Turkish and Arabic**, and the templates themselves are configured under [Printing Templates](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md).

> [!WARNING]
>
> **One bad order stops the batch**
>
> If any selected order has a problem with its air waybill, the batch will not print. Find the problematic order, deselect it, and print the rest — then deal with that one through the shipment error logs.

> [!NOTE]
>
> **Multi-package shipments**
>
> Each package needs its own air waybill. A shipment created with a package count of 1 produces a single label, so set the count correctly at creation rather than reprinting afterwards.

### The pickup list

**Delivery Company Pickup List** is what the carrier’s driver signs. It lists **Order Number**, **Shipment ID**, **Boxes Count** and **Delivery Company**, with **Total Packages** and **Total Order** at the foot, and carries signature blocks for both sides. A **Language** selector sits above the preview.

![The Delivery Company Pickup List](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/ship-5-pickup-list.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=22361561e9c41d86a4285ab29896fba7)

Fig. 5 — Boxes counted as well as orders — which is the number that matters when a parcel from a multi-box shipment goes missing.

> [!TIP]
>
> **Get it signed**
>
> The moment of handover is where liability moves and where a dispute is least recoverable if nobody recorded it. A signed pickup list costs thirty seconds and settles the question of whether the carrier ever had the parcel.

## Pickup and tracking

### Pickup requests

Pickup requests are raised automatically when shipments are created, or manually when a collection needs arranging outside the routine.

Every request is logged at **Settings → Logs → System Logs → Pick up Request Logs**, with **OTO Order ID**, **Order ID**, **Created Date**, **Shipment Number**, **Delivery Company**, **Message**, **Status** and **LOG Status**. The **Message** column carries the carrier’s own response, which is usually where the answer is when a pickup did not happen.

![Pick up Request Logs](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/ship-7-pickup-logs.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=67ecab0aeef841ef4aabb34a968594cc)

Fig. 6 — One of six log types on this screen — alongside Shipment Error Logs, Webhook Error Logs, Inventory Sync Logs, Product Sync Logs and Route Automation Logs.

### Real-time tracking with one status set

Each carrier has its own status vocabulary. OTO maps them all onto one set, so a shipment on Aramex and a shipment on SMSA both read the same way — and any rule, report or customer message built on those statuses works across every carrier without a special case.

An order’s full history opens as **Status History**, with two tabs: **Order Status History** and **Packing Status History**. Each row records the **Date**, **Delivery Company**, **Shipment ID**, a **Description**, the **Location** and the normalised **Status**.

![Status History for a shipment](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/ship-6-status-history.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=a29eada47081b9f4c51912cfdd789c41)

Fig. 7 — A real journey: information received, SMS sent to receiver, departed terminal, arrived destination, held for pickup, arrived terminal, then an undelivered attempt. The description carries the carrier’s own words — here, waiting for a corrected delivery address.

> [!TIP]
>
> **Read the description, not just the status**
>
> The normalised status tells you *what* happened; the carrier’s description tells you *why*. *“The shipment is on hold as we are waiting for the correct delivery address”* is a fixable problem, and the fix is upstream in [address correction](https://docs.tryoto.com/modules/omnichannel-oms/order-data-correction.md) — not in chasing the carrier.

Shipments in flight sit under **Shipments → Currently Shipping** and move to **Delivered** on completion. The same statuses drive the customer-facing tracking page and messages in [Customer Notification](https://docs.tryoto.com/modules/customer-notification/overview.md).

### Failed delivery management

A failed delivery attempt is the most expensive routine event in the operation, and the one most often left to sort itself out. OTO records the number of attempts and the reason each one failed, and can trigger messages automatically when an attempt fails — so the customer is asked to fix the address or arrange a time while the parcel is still with the carrier, rather than after it has been returned.

Failure reasons are drawn from your own list under **Settings → Advanced → Reason Settings**, which means attempts can be counted and compared by reason rather than by free text.

## When it goes wrong

### Cancelling and re-booking

A shipment can be cancelled any time before the carrier collects it. On **Shipments → Awaiting Pickup**, select it and choose **Orders → Cancel Shipment**. The order returns to **Pending Orders** with the status **Shipment Canceled**, from where a new shipment can be created with the same carrier or a different one.

That last point is what makes the feature valuable rather than merely corrective: if a carrier is running late on pickups or has stopped serving a city, the affected orders can be pulled back and re-booked elsewhere without re-keying anything.

> [!WARNING]
>
> **Two things to know**
>
> Cancellation cannot be undone — a shipment cancelled in error has to be recreated. And refunds of shipping fees vary by carrier, from immediate to as long as 30 days.

## Limits and prerequisites

| Requirement | Detail |
| - | - |
| **Credit** | Shipping on OTO rates requires credit purchased in the account. |
| **A pickup location** | The order’s warehouse or branch must exist before a shipment can be created. |
| **Carrier verification** | A connection that has not been verified shows **Verify** instead of **Select** and cannot be booked until it is. |
| **Cancellation window** | Only before the carrier collects. After pickup, cancellation is unavailable. |
| **Refund timing** | Varies by carrier — immediate to 30 days. |
| **Printing a batch** | One order with an air waybill problem blocks the whole batch. |
| **Package count** | Each package needs its own air waybill; set the count at creation. |
| **Proforma templates** | Access to more than one template depends on the account’s package. |

## Related

* [Carrier integration](https://docs.tryoto.com/modules/shipping-management/carrier-integration.md) — the accounts, coverage and SLA this function books against.
* [Shipping automation](https://docs.tryoto.com/modules/shipping-management/shipping-automation.md) — makes the carrier choice automatically instead of per shipment.
* [Invoice reconciliation](https://docs.tryoto.com/modules/shipping-management/shipping-invoices-reconciliation.md) — checks what these shipments were billed at.
* [Order fulfillment](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md) — printing templates, delivery slots and the packing side.
* [Customer Notification](https://docs.tryoto.com/modules/customer-notification/overview.md) — the tracking page and failed-delivery messages built on these statuses.


## Related topics

- [Shipping Management](https://docs.tryoto.com/modules/shipping-management/overview.md)
- [Order fulfillment in warehouses and stores](https://docs.tryoto.com/modules/omnichannel-oms/order-fulfillment.md)
- [Quick start: ship your first order with OTO](https://docs.tryoto.com/get-started/quickstart.md)


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