---
title: "Book a carrier for this offer"
method: POST
path: "/v2/tms/offers/{offer_id}/carriers/{carrier_id}/book"
tags: ["v2", "tms", "Load Offers"]
---

# Book a carrier for this offer

`POST /v2/tms/offers/{offer_id}/carriers/{carrier_id}/book`

## Request

- Base URL: `https://api.mentium.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mentium.io/v2/tms/offers/{offer_id}/carriers/{carrier_id}/book`
- Auth: HTTP bearer

Book a carrier for this offer.

    1. Find CarrierOffer by offer_id + carrier_id
    2. Update status to BOOKED in TMS
    3. Close all other CarrierOffers for same offer

    For some TMS (like TAI), the API doesn't support updating carrier assignment
    on existing shipments. In these cases, the booking is recorded in Mentium
    and a `tms_link` is returned for manual carrier assignment in the TMS web UI.

## Path parameters

- `offer_id` string, required
- `carrier_id` string, required

## Headers

- `mentium-workspace-id` string, nullable

## Request body

- BookCarrierRequest: Request body for booking a carrier
  - `accepted_carrier_rate_amount` number, nullable: Carrier rate to book. If omitted, books at the current carrier rate.

## Response `200`

Successful Response

- BookCarrierResponse: Response from booking a carrier
  - `success` boolean, required: Whether the booking was successful
  - `offer_id` string, required: The load offer ID
  - `carrier_id` string, required: The carrier's external reference ID
  - `carrier_offer_id` string, nullable: The carrier offer ID
  - `status` string, required: BOOKED when the carrier was written to the TMS, ACCEPTED when they are not in the TMS yet and the acceptance was kept for a person to finish.
  - `booked_at` string, date-time, required: Timestamp when the booking was made
  - `closed_offers_count` integer, required: Number of other carrier offers that were closed
  - `tms_link` string, nullable: Link to TMS web UI for manual actions (e.g., TAI carrier assignment). When present, indicates the TMS requires manual completion.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/mentium/apis/mentium-api.md) - [All operations](https://skmtc.dev/mentium/apis/mentium-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mentium/apis/mentium-api/revisions/b4ed8e59432e?raw)
