---
title: "Convert quote to shipment"
method: POST
path: "/quotes/{id}/convert-to-shipment"
tags: ["Quotes"]
---

# Convert quote to shipment

`POST /quotes/{id}/convert-to-shipment`

Convert an accepted quote into a shipment.

## What happens

1. Quote status is set to WON (if not already)
2. A new Shipment is created
3. The Order from the quote is linked to the shipment
4. Optionally, additional orders can be added

## Prerequisites

- Quote must be in QUOTED or WON status
- Quote cannot already have a shipment

## Response

Returns the IDs of both the quote and the newly created shipment.

## Path parameters

- `id` string, required

## Query parameters

- `by` 'id' | 'key'

## Request body

- ConvertToShipmentRequest — Request body for converting a quote to a shipment
  - `additionalOrders` OrderInput[] — Optional additional orders to add to the shipment
    - `mode` 'FTL' | 'TL' | 'LTL' | 'PTL' | 'RLTL' | 'AIR' | 'OCEAN' | 'RAIL' | 'INTERMODAL' | 'DRAYAGE' | 'AUTO' | 'EXPEDITED_AIR' | 'EXPEDITED_GROUND', required — Transportation mode. Optional on write — a shipment or load created without one is stored with no mode, the same as one created in the TMS. - `FTL`: Full Truckload — the value the TMS stores and always returns - `TL`: legacy spelling of `FTL`, still accepted on write, never returned - `LTL`: Less than Truckload - `PTL`: Partial Truckload - `RLTL`: Retail LTL - `AUTO`: Auto transport - `EXPEDITED_AIR`: Expedited air - `EXPEDITED_GROUND`: Expedited ground - `AIR`: Air freight - `OCEAN`: Ocean freight - `RAIL`: Rail freight - `INTERMODAL`: Intermodal (multiple modes) - `DRAYAGE`: Drayage/cartage
    - `stops` OrderStopInput[], required — At least origin and destination stops
      - `type` 'PICKUP' | 'DELIVERY', required — Type of stop
      - `location` 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
      - `address` AddressInput — Address data for creating a new location
        - `line1` string, required — Primary street address line
        - `line2` string — Secondary address line (suite, floor, etc.)
        - `city` string, required — City name
        - `state` string — State or province code
        - `zipCode` string — Postal / ZIP code
        - `country` string, required — Country name or code
        - `market` string — Market or region identifier
        - `latitude` string — Latitude coordinate
        - `longitude` string — Longitude coordinate
        - `isAirportOrAirbase` boolean — Whether this location is an airport or airbase
        - `isConstructionOrUtilitySite` boolean — Whether this location is a construction or utility site
        - `isSmartyValidated` boolean — Whether address has been validated by SmartyStreets
        - `obeysDst` boolean — Whether this location observes daylight saving time
        - `cityId` string, uuid — Reference to standardized city record (internal use)
      - `requestedStartDate` string, date — Requested start date for the stop
      - `requestedEndDate` string, date — Requested end date for the stop
      - `requestedStartTime` string — Requested start time (HH:MM format)
      - `requestedEndTime` string — Requested end time (HH:MM format)
      - `appointmentRequired` boolean — Whether an appointment is required
      - `notes` string — Special instructions for the stop
    - `freight` OrderFreightInput — Freight details for an order
      - `handlingUnitQuantity` integer — Number of handling units
      - `handlingUnitType` string — Handling unit name. Org-configurable list (e.g. Pallet, Skid, Crate, Drum, Roll, Gaylord, Totes) — not a closed enum; match the names your organization uses in the TMS.
      - `weight` number — Total weight in pounds
      - `volume` number — Total volume in cubic feet. Accepted for compatibility but not currently persisted.
      - `length` number — Length in inches
      - `width` number — Width in inches
      - `height` number — Height in inches
      - `commodityDescription` string — Description of the commodity
      - `hazmat` boolean — Whether freight is hazardous materials
      - `stackable` boolean — Whether freight is stackable
    - `equipment` ResourceReferenceInput[] — Equipment types required
      - 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
    - `references` object[] — Reference numbers for the order
      - `type` string, required — Reference type (e.g., BOL_NUMBER, PO_NUMBER)
      - `value` string, required — Reference value
    - `specialRequirements` ResourceReferenceInput[] — Special requirements (e.g., liftgate, team drivers)
      - 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

## Response `200`

Quote converted to shipment successfully

- ConvertToShipmentResponse
  - `quoteId` string, uuid, required — Quote ID that was converted
  - `quoteStatus` 'WON', required — Quote status after conversion (always WON)
  - `shipmentId` string, uuid, required — Created shipment ID
  - `shipmentKey` string, required — Created shipment friendly ID
  - `orderId` string, uuid, required — Order ID from the quote

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - invalid or missing access token
- `404` — Resource not found
- `409` — Conflict - resource already exists or constraint violation

---

[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/revisions/7af4e91459ca/schema)
