---
title: "Bounce carrier"
method: POST
path: "/loads/{loadId}/carriers/{carrierId}/bounce"
tags: ["Loads"]
---

# Bounce carrier

`POST /loads/{loadId}/carriers/{carrierId}/bounce`

Mark carrier as bounced (rejected load without payment).

## What happens

- LoadCarrier status changes to BOUNCED
- Carrier is removed from active execution
- No payment is recorded

## When to use

Use bounce when carrier rejects the load before dispatch,
or fails to show up without prior notice.

For carriers who were dispatched but cancelled, use TONU instead.

## Path parameters

- `loadId` string, required
- `carrierId` string, required

## Request body

- BounceCarrierRequest — Request body for bouncing a carrier
  - `reason` 'TONU' | 'BOUNCED' | 'RATE_DISPUTE' | 'EQUIPMENT_ISSUE' | 'DRIVER_ISSUE' | 'TIMING_ISSUE' | 'OTHER' — Reason for removing a carrier from a load
  - `reasonText` string — Additional reason details

## Response `200`

Carrier bounced successfully

- 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
- `409` — Carrier is not in valid status for bounce

---

[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)
