> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.milenow.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.milenow.com/_mcp/server.

# 6. Outsource a trip (web)

A transporter (partner) is an outside trucking company that runs trips for you. You outsource trips in the **Mile web app**. The transporter then answers and assigns its own driver through the [transporter API](/ftl-trips/guides/transporter).

> **Info**
>
> Need to create trips, optimize them or assign them to transporters through the API? Contact Mile support and we will enable it for your account.

Outsourcing must be enabled for your company. Ask Mile to turn it on. Your transporters are set up under **Partners** in the web app.

A trip can be outsourced or offered only while it has **no driver** and has not started.

## Pick a transporter

In the trip, the **Outsource to Partner** list shows your active transporters. The web app can also suggest transporters for the trip. It ranks them best first: transporters with a rate for every leg of the trip, then those with a free truck, then by score.

| Factor                | Scores higher when                                                                       | Default points |
| --------------------- | ---------------------------------------------------------------------------------------- | -------------- |
| Lowest rate           | The transporter's total zone rate for the trip is lower. No price when a leg has no rate | 35             |
| Rating                | The transporter's rating is higher                                                       | 25             |
| Nearest truck         | Its nearest free truck is closer to the first pickup                                     | 25             |
| Fewer recent trips    | It got fewer of your trips in the last 30 days                                           | 10             |
| Covers the trip zones | It has rates for more of the trip's zone legs                                            | 5              |

A free truck is one whose driver is not busy during the trip. A transporter that already rejected the trip, or let its offer expire, is marked as ruled out.

## Outsource directly

#### Pick the transporter

In the trip, pick the transporter in **Outsource to Partner** and outsource the trip without asking them.

#### The transporter is notified

The trip is outsourced at once. The transporter gets a notification and sees the trip in its [trip list](/ftl-trips/guides/transporter#your-trips).

#### The transporter assigns a driver

The trip status stays `null` until the transporter assigns its driver. Then it becomes `4 Dispatch`.

Rules:

* The trip must not have a driver, yours or the transporter's.
* You cannot outsource a trip directly to a transporter who rejected the offer for that trip. Pick another transporter.
* To move the trip to another transporter, pick the other one. The previous transporter is told the trip is no longer theirs.
* If the trip has a waiting offer, stop the offer before you outsource it directly.

### Take a trip back

Pick **Not outsourced (own drivers)** in **Outsource to Partner**. The trip is yours again, and you can add stops or assign your own driver. This works only until the transporter assigns a driver.

### While a trip is outsourced

| You can                                                                            | You cannot                                                               |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Read the trip, and see `partner` on it through the API                             | [Add stops](/ftl-trips/guides/manage-stops#add-ftls-to-a-trip) (409)     |
| [Remove a stop](/ftl-trips/guides/manage-stops#remove-a-stop) that has not started | [Assign a driver through the API](/ftl-trips/guides/assign-driver) (409) |
| Optimize the trip in the web app                                                   | Assign one of your own drivers in the web app                            |

## Outsource through offers

An offer asks a transporter to accept a trip before a deadline. You list transporters in order. Mile offers the trip to the first one. If they reject it or the time runs out, Mile offers it to the next one.

```mermaid
flowchart TD
    A["Send offers (web)"] --> B["Offer to 1st transporter"]
    B -->|"Accepts (API)"| C["Trip outsourced"]
    B -->|"Rejects (API) or time runs out"| D["Offer to next transporter"]
    D -->|"Accepts (API)"| C
    D -->|"Nobody left"| E["Not accepted: trip stays with you"]
```

### Send offers

Select one or more trips in the web app, outsource them to partners, and choose:

| Setting             | Rule                                                                                                               |
| ------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Transporters        | In the order they get the offer                                                                                    |
| Time to accept      | How long each transporter has to answer. 5 minutes to 7 days. Default 2 hours                                      |
| Acceptance required | On (default): offer and wait for an answer. Off: assign each trip to its first transporter at once, without asking |

Each transporter gets an email and a notification when it receives an offer. It sees the trip in its [open offers](/ftl-trips/guides/transporter) without customer names and phones until it accepts.

#### Trips that are skipped

A trip cannot be offered when it:

* has a driver,
* has started (status 5 or later),
* already has a waiting offer, or
* is already outsourced to the first transporter in the list.

The other trips are still offered.

#### Who gets the offer next

The first transporter always gets the offer. A later transporter is skipped if it has no free truck during the trip, or no rate for one of the trip's zones. Each transporter gets one offer per trip in a send.

When nobody is left, the trip is **Not accepted**. It stays with you without a transporter, and you get a notification. Assign it yourself, or offer it again.

#### A trip that is already outsourced

With acceptance required, the trip is taken back from its current transporter before the offer goes out. Without acceptance, it moves straight to the first transporter in the list.

#### Offering again to a transporter who rejected

A new send can offer the trip to a transporter who rejected it before. Outsourcing it to them directly is not allowed.

### Track offers

The **Trip Offers** page shows each send and where each trip stands, with its history, for example "Rejected by Desert Line Transport at 14:46" then "Offered to Harbor Haulage → accepted at 14:52".

| State        | Meaning                                                                                             |
| ------------ | --------------------------------------------------------------------------------------------------- |
| Waiting      | A transporter has the offer until its deadline                                                      |
| Accepted     | A transporter accepted, or the trip was assigned without acceptance. The trip is outsourced to them |
| Not accepted | Every transporter rejected or let the time run out. The trip stays with you                         |
| Withdrawn    | You stopped the offers, or the trip got a driver                                                    |

A send is running while any offer waits, then finished. Expired offers move to the next transporter on their own.

Through the API, [get a trip](/ftl-trips/api-reference/ftl-trips/get-ftl-trip) shows the latest offer in `offer`: its `status` (`offered`, `accepted`, `assigned`, `rejected`, `expired`, `withdrawn` or `not_accepted`), the transporter name in `partner`, and `expires_at`. Once accepted, the transporter is in the trip's `partner`. [List trips](/ftl-trips/api-reference/ftl-trips/list-ftl-trips) with `partner_id` shows every trip outsourced to one transporter.

### Stop offers

On the **Trip Offers** page, stop a send to withdraw every waiting offer in it. Trips already accepted stay with their transporter. Withdrawn trips stay with you, and the transporter is told the offer was withdrawn.

Next: [the transporter side](/ftl-trips/guides/transporter).