---
title: "Add carrier to load"
method: POST
path: "/loads/{id}/add-carrier"
tags: ["Loads"]
---

# Add carrier to load

`POST /loads/{id}/add-carrier`

Add an additional carrier to a load.

## Use cases

- Split loads (multiple carriers for same load)
- Adding backup carrier
- Re-assigning after TONU/bounce

## What happens

- New LoadCarrier record is created
- Carrier is notified (if configured)

## Path parameters

- `id` string, required

## Query parameters

- `by` 'id' | 'key'

## Request body

- LoadCarrierInput
  - `carrier` union, required — Reference to another resource by either ID or client key (used in create/update requests)
    - object
      - `id` string, uuid, required — Resource UUID
      - `key` string — Client-defined reference ID
    - object
      - `id` string, uuid — Resource UUID
      - `key` string, required — Client-defined reference ID
  - `contact` union — Reference to another resource by either ID or client key (used in create/update requests)
    - object
      - `id` string, uuid, required — Resource UUID
      - `key` string — Client-defined reference ID
    - object
      - `id` string, uuid — Resource UUID
      - `key` string, required — Client-defined reference ID
  - `charges` object[]
    - `chargeCode` union, required — Reference to another resource by either ID or client key (used in create/update requests)
      - object
        - `id` string, uuid, required — Resource UUID
        - `key` string — Client-defined reference ID
      - object
        - `id` string, uuid — Resource UUID
        - `key` string, required — Client-defined reference ID
    - `description` string
    - `amount` number, required
    - `quantity` number
  - `driverName` string
  - `driverPhone` string
  - `truckNumber` string
  - `trailerNumber` string

## Response `201`

Carrier added successfully

- AddCarrierResponse
  - `loadId` string, uuid, required
  - `loadCarrierId` string, uuid, required — The new load carrier ID
  - `loadCarrier` LoadCarrier
    - `id` string, uuid
    - `carrier` CarrierReference — Enhanced reference to a carrier resource (returned in responses). Includes full carrier details in addition to id/key. Note: Does NOT include nested references (contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
      - `id` string, uuid, required — Carrier UUID
      - `key` string, nullable — Client-defined reference ID if set
      - `name` string, required — Carrier company name
      - `phoneNumber` string, nullable — Primary phone number
      - `email` string, email, nullable — Primary email address
      - `createdAt` string, date-time, required — When the carrier was created
      - `updatedAt` string, date-time, required — When the carrier was last updated
      - `deletedAt` string, date-time, nullable — When the carrier was soft deleted (null if active)
    - `contact` object
      - `id` string, uuid
      - `name` string
      - `phone` string, nullable
      - `email` string, nullable
    - `status` 'ACTIVE' | 'TONU' | 'BOUNCED' — Status of the carrier assignment. - `ACTIVE`: Carrier is actively assigned - `TONU`: Truck Ordered Not Used (carrier dispatched but cancelled) - `BOUNCED`: Carrier bounced/rejected load
    - `billingStatus` 'AWAITING_INVOICE' | 'INVOICE_IN_REVIEW' | 'APPROVED_TO_PAY' | 'PAID' — Billing status for the load (AP side). - `AWAITING_INVOICE`: Waiting for carrier invoice - `INVOICE_IN_REVIEW`: Invoice received, under review - `APPROVED_TO_PAY`: Approved for payment - `PAID`: Paid to carrier
    - `bookedAt` string, date-time, nullable
    - `dispatchedAt` string, date-time, nullable
    - `charges` LoadCarrierCharge[] — Flattened charges array
      - `id` string, uuid
      - `chargeCode` ResourceReference — Reference to another resource (returned in responses)
        - `id` string, uuid, required — Resource UUID
        - `key` string, nullable — Client-defined reference ID if set
      - `description` string, nullable
      - `amount` number
      - `quantity` number
    - `totalCost` number, nullable — Sum of all charges
    - `driverName` string, nullable
    - `driverPhone` string, nullable
    - `truckNumber` string, nullable
    - `trailerNumber` string, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time, nullable

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - invalid or missing access token
- `404` — Resource not found
- `422` — Validation error - invalid field values

---

[API](https://skmtc.net/mvmnt/apis/mvmnt-api.md) · [All operations](https://skmtc.net/mvmnt/apis/mvmnt-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mvmnt/mvmnt-api/versions/c44e5e7a4256/schema)
