---
title: "Create"
method: POST
path: "/shipping/cargo_on_flight_bookings/create/v1"
tags: ["/shipping/cargo_on_flight_bookings"]
---

# Create

`POST /shipping/cargo_on_flight_bookings/create/v1`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/shipping/cargo_on_flight_bookings/create/v1`
- Auth: HTTP bearer

Creates a booking for a flight task group's cargos: a draft to search and book through an integration, or a MANUAL booking placed outside CHRT, confirmed with its AWB and itinerary, which sets the task group's flights and the cargos' AWB. | authz_personas=[task_group_coordinator_operators] | (CargoOnFlightBookingClientCreate1) -> (CargoOnFlightBooking1)

## Request body

- CargoOnFlightBookingClientCreate1
  - `schema_version` 1, required
  - `task_group_id` string, required
  - `cargo_ids` string[], required
  - `cargo_on_flight_integration` 'air_canada' | 'cargoai' | 'manual', required
  - `cargo_dimensions` CargoOnFlightBookingCargoDimension1[], required
    - `quantity` integer, required
    - `length_inches` number, required
    - `width_inches` number, required
    - `height_inches` number, required
    - `weight_per_piece_pounds` number, required
    - `stackable` boolean
    - `turnable` boolean
  - `special_handling_codes` SpecialHandlingCodeEnum1[]
  - `awb_number` string, nullable: IATA Air Waybill number: 3-digit airline prefix + 8-digit serial, e.g. '020-12345678'.
  - `booked_itinerary` CargoOnFlightBookingItinerary1: The itinerary of the search result a booking was placed on.
    - `carrier_iata` string, required
    - `legs` CargoOnFlightBookingItineraryLeg1[]
      - `carrier_iata` string, required
      - `flight_number` string, required
      - `surface_transport` boolean, required
      - `aircraft_body_type` 'widebody' | 'narrowbody' | 'freighter' | 'unknown'
      - `integration_body_type` string, nullable
      - `aircraft_code` string, nullable
      - `origin_iata` string, required
      - `destination_iata` string, required
      - `scheduled_departure_utc` string, date-time, required
      - `scheduled_arrival_utc` string, date-time, required
    - `latest_acceptance_utc` string, date-time, nullable, required
    - `time_of_availability_utc` string, date-time, nullable, required
    - `origin_ground_handling_agent_name` string, nullable
    - `origin_ground_handling_agent_address` string, nullable
  - `booked_rate` CargoOnFlightBookingRate1: A price quoted for a shipment: one of a search result's rates, or the price a MANUAL booking was quoted.
    - `integration_rate_id` string, nullable, required
    - `rate_name` string, nullable, required
    - `currency_code` string, required
    - `total_amount` number, required
    - `special_handling_codes` string[]
    - `net_rate_per_kilogram` number, nullable
    - `all_in_rate_per_kilogram` number, nullable
    - `chargeable_weight_kilograms` number, nullable
    - `charges` CargoOnFlightBookingRateCharge1[]
      - `label` string, required
      - `code` string, nullable, required
      - `basis` string, required
      - `rate` number, required
      - `minimum_amount` number, nullable, required
      - `maximum_amount` number, nullable, required
    - `other_charges_due_carrier` CargoOnFlightBookingRateCharge1[]
      - `label` string, required
      - `code` string, nullable, required
      - `basis` string, required
      - `rate` number, required
      - `minimum_amount` number, nullable, required
      - `maximum_amount` number, nullable, required

## Response `200`

Successful Response

- CargoOnFlightBooking1
  - `schema_version` 1, required
  - `_id` string, required
  - `order_id` string, required
  - `order_short_id` string, required
  - `task_group_id` string, required
  - `cargo_ids` string[]
  - `created_by_org_id` string, required: Must be a string starting with `org_`
  - `created_by_user_id` string, nullable: Must be a string starting with `user_`
  - `cargo_on_flight_integration` 'air_canada' | 'cargoai' | 'manual', required
  - `iata_cass_office_id` string, nullable
  - `airline_cargo_account_id` string, nullable
  - `cargo_on_flight_booking_search_id` string, nullable
  - `cargo_dimensions` CargoOnFlightBookingCargoDimension1[]
    - `quantity` integer, required
    - `length_inches` number, required
    - `width_inches` number, required
    - `height_inches` number, required
    - `weight_per_piece_pounds` number, required
    - `stackable` boolean
    - `turnable` boolean
  - `special_handling_codes` SpecialHandlingCodeEnum1[]
  - `awb_number` string, nullable: IATA Air Waybill number: 3-digit airline prefix + 8-digit serial, e.g. '020-12345678'.
  - `status` 'draft' | 'requested' | 'confirmed' | 'rejected' | 'failed' | 'cancellation_requested' | 'cancelled', required
  - `integration_status` string, nullable
  - `draft_started_at_timestamp` string, date-time, required
  - `requested_at_timestamp` string, date-time, nullable
  - `confirmed_at_timestamp` string, date-time, nullable
  - `rejected_at_timestamp` string, date-time, nullable
  - `failed_at_timestamp` string, date-time, nullable
  - `cancellation_requested_at_timestamp` string, date-time, nullable
  - `cancelled_at_timestamp` string, date-time, nullable
  - `booked_itinerary` CargoOnFlightBookingItinerary1: The itinerary of the search result a booking was placed on.
    - `carrier_iata` string, required
    - `legs` CargoOnFlightBookingItineraryLeg1[]
      - `carrier_iata` string, required
      - `flight_number` string, required
      - `surface_transport` boolean, required
      - `aircraft_body_type` 'widebody' | 'narrowbody' | 'freighter' | 'unknown'
      - `integration_body_type` string, nullable
      - `aircraft_code` string, nullable
      - `origin_iata` string, required
      - `destination_iata` string, required
      - `scheduled_departure_utc` string, date-time, required
      - `scheduled_arrival_utc` string, date-time, required
    - `latest_acceptance_utc` string, date-time, nullable, required
    - `time_of_availability_utc` string, date-time, nullable, required
    - `origin_ground_handling_agent_name` string, nullable
    - `origin_ground_handling_agent_address` string, nullable
  - `booked_rate` CargoOnFlightBookingRate1: A price quoted for a shipment: one of a search result's rates, or the price a MANUAL booking was quoted.
    - `integration_rate_id` string, nullable, required
    - `rate_name` string, nullable, required
    - `currency_code` string, required
    - `total_amount` number, required
    - `special_handling_codes` string[]
    - `net_rate_per_kilogram` number, nullable
    - `all_in_rate_per_kilogram` number, nullable
    - `chargeable_weight_kilograms` number, nullable
    - `charges` CargoOnFlightBookingRateCharge1[]
      - `label` string, required
      - `code` string, nullable, required
      - `basis` string, required
      - `rate` number, required
      - `minimum_amount` number, nullable, required
      - `maximum_amount` number, nullable, required
    - `other_charges_due_carrier` CargoOnFlightBookingRateCharge1[]
      - `label` string, required
      - `code` string, nullable, required
      - `basis` string, required
      - `rate` number, required
      - `minimum_amount` number, nullable, required
      - `maximum_amount` number, nullable, required
  - `flight_leg_ids` string[]

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-15** `2bec7058f85a`: 1 info
  - added the optional property `airline_cargo_account_id` to the response with the `200` status
- **2026-10-13** `2aa61055d20a`: 1 warning, 1 info
  - added the new `air_canada` enum value to the `cargo_on_flight_integration` response property for the response status `200`
  - added the new `air_canada` enum value to the request property `cargo_on_flight_integration`
- **2026-10-09** `5e62049a1c19`: 62 warning, 62 info
  - added the new `AGC` enum value to the `special_handling_codes/items/` response property for the response status `200`
  - added the new `ALO` enum value to the `special_handling_codes/items/` response property for the response status `200`
  - added the new `AXA` enum value to the `special_handling_codes/items/` response property for the response status `200`
  - added the new `BSA` enum value to the `special_handling_codes/items/` response property for the response status `200`
  - …120 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/chrt/apis/chrt-fastapi/changes/shipping/cargo_on_flight_bookings/create/v1/post.md)

---

[API](https://skmtc.dev/chrt/apis/chrt-fastapi.md) - [All operations](https://skmtc.dev/chrt/apis/chrt-fastapi/llms.txt) - [OpenAPI document](https://skmtc.dev/chrt/apis/chrt-fastapi/revisions/6f428e2e2b98?raw)
