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

# Quick start: ship your first order with OTO

> Get your first order moving in OTO on the route that fits you: a merchant connecting a store, a business with several locations, or a developer using the API.

Three routes through the same platform, depending on who you are and what “working” means for you. Each one ends with a real order moving.

## Which route

| If you… | Start at |
| - | - |
| Sell on a storefront and want orders shipping | Merchant — about an hour |
| Run several locations, brands or carriers | Multi-location — adds hubs and rules |
| Are integrating another system | Developer — five API calls |

## Merchant

The shortest path from a connected store to a parcel with a label on it.

| # | Step | Where |
| - | - | - |
| 1 | **Connect your store.** Find it in the catalog and press **Explore Channel**. Shopify and Salla install OTO's app from their own marketplace; most others take a store URL and an API key. | **Integrations → Sales Channels** |
| 2 | **Create the place you ship from.** One warehouse is enough to start. Set the address on the map rather than typing it, so routing gets a coordinate. | **Settings → Management → Warehouses** |
| 3 | **Set the two fields that make promises.** **Serving Radius** and **Preparation SLA**, on that hub. The SLA defaults to 24 hours — change it to what you actually do. | Same screen, step 2 of the wizard |
| 4 | **Connect a carrier.** Open one and connect the specific *service* you need — a carrier is several services, and rules select services. | **Integrations → Shipping Partners** |
| 5 | **Connect a messaging provider.** Your SMS account, so tracking messages go out under your registered sender name. | **Settings → Customer Notifs → SMS** |
| 6 | **Ship one order.** Pick a real order, create the shipment, print the label. Then track it to delivery and read the tracking page your customer sees. | **Shipments** |

> [!TIP]
>
> **Ship one order end to end before configuring anything else**
>
> The temptation is to set up rules, notifications and branding first, then try it. Do the opposite: one order, all the way to delivered, with everything on defaults.
>
> It takes twenty minutes and it surfaces the real problems — an address format the carrier rejects, a missing contact name, a product with no weight — while there is still only one order to fix rather than four hundred.

## Multi-location

Everything above, plus the four decisions that only matter once there is more than one of something.

| Decision | Why now |
| - | - |
| **Hub codes** | Agree them with whoever owns your ERP or POS *before* creating hubs. They are the join between systems, cheap to decide and expensive to change. See [ERP systems](https://docs.tryoto.com/integrations/erp-systems.md). |
| **Which hubs ship what, where** | Serving radius and preparation SLA per hub, then [order routing](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md) rules to choose between them. |
| **Which carrier, when** | [Shipping automation](https://docs.tryoto.com/modules/shipping-management/shipping-automation.md) rules, weighing cost, coverage and speed — including your own drivers if you run them. |
| **Who sees what** | Role templates before people, not after. Financial visibility is its own permission. See [Users, roles & permissions](https://docs.tryoto.com/platform/users-roles-and-permissions.md). |

If you run shops as well as warehouses, add them as **branches** and decide per hub whether location-based inventory is on — see [Hubs Management](https://docs.tryoto.com/modules/hubs-management/overview.md). If you trade under more than one name, set up **brands** first, because messages, tracking pages and labels all hang off them.

> [!WARNING]
>
> **Order of operations matters more than it looks**
>
> Brands, hub codes and SKU conventions are referenced by everything created after them. Set them up first and the rest follows; set them up late and you are editing history.
>
> The sequence that works: **brands → hubs → products → channels → carriers → rules → people**.

## Developer

Five calls, in order. The full surface is in the [endpoint index](https://docs.tryoto.com/developers/rest-api-reference.md); this is the spine.

| # | Call | What you get |
| - | - | - |
| 1 | `POST /rest/v2/refreshToken` | An access token, valid one hour. Cache it; do not fetch one per request. |
| 2 | `GET /rest/v2/healthCheck` | Confirmation that the token and the host are both right before you debug anything else. |
| 3 | `POST /rest/v2/createOrder` | The order exists in OTO and is subject to routing. Supply your own order number or let OTO generate one. |
| 4 | `POST /rest/v2/createShipment` | A carrier is booked and an AWB exists. |
| 5 | `POST /rest/v2/webhook` | Registered once, not per order. Everything after this point is pushed to you. |

Get your `refresh_token` from **Settings → API Integrations → Connect**, and build against `https://staging-api.tryoto.com` before production. See [Authentication](https://docs.tryoto.com/developers/authentication.md).

> [!TIP]
>
> **Add step 5 on day one, not when polling starts hurting**
>
> Polling `orderStatus` works immediately and needs no endpoint of your own, which is exactly why integrations get built that way and stay that way.
>
> A webhook is a morning's work. Retrofitting one into a system that has assumed polling for a year is not.

## Before you go live

| | |
| - | - |
| **Check preparation SLAs** | Every hub, set from what it actually does rather than the 24-hour default. |
| **Check working hours** | Including whether branches have any. Hours feed the delivery promise. |
| **Send yourself every message** | Tracking, delivery, return — in every language you support, on a real handset. |
| **Set the credit threshold** | High enough to leave time to notice and pay. Out of credit means shipments stop being created. |
| **Turn on MFA** | Everyone, and administrators first. See [Security & compliance](https://docs.tryoto.com/platform/security-and-compliance.md). |
| **Subscribe to the silent failures** | **Shipment Creation Attempt Failed** and **SLA Breach**. Nothing else tells you about them. See [notifications](https://docs.tryoto.com/platform/collaboration-and-notifications.md). |

## Where to go next

> **[Core concepts](https://docs.tryoto.com/get-started/core-concepts.md)**
>
> The vocabulary everything else uses.

> **[Omnichannel OMS](https://docs.tryoto.com/modules/omnichannel-oms/overview.md)**
>
> The module to read first.

> **[Developers](https://docs.tryoto.com/developers/overview.md)**
>
> The full API.


## Related topics

- [Ecommerce operations platform and shipping gateway](https://docs.tryoto.com/index.md)
- [What is OTO](https://docs.tryoto.com/get-started/what-is-oto.md)
- [Core concepts: orders, shipments, stock and hubs](https://docs.tryoto.com/get-started/core-concepts.md)


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