---
title: "Update"
method: PUT
path: "/billing_new/rate_sheets/update/v1/{rate_sheet_id}"
tags: ["/billing_new", "/billing_new/rate_sheets"]
---

# Update

`PUT /billing_new/rate_sheets/update/v1/{rate_sheet_id}`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/billing_new/rate_sheets/update/v1/{rate_sheet_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/chrt/apis/chrt-fastapi/docs/billing_new/rate_sheets/update/v1/:rate_sheet_id/put.ts> (a function with typed inputs; its response is checked against the schema)

Replaces an active rate sheet's fields and rules; orders priced later use the new rules. | authz: allowed_org_types=[provider], min_org_role=operator | (RateSheetUpdateReq) -> (RateSheet1)

## Path parameters

- `rate_sheet_id` string, required

## Request body

- RateSheetUpdateReq
  - `rate_sheet` RateSheetClientCreate1, required
    - `schema_version` 1, required
    - `name` string, required
    - `invoice_type` 'accounts_receivable' | 'accounts_payable', required
    - `currency_code` 'USD' | 'CAD' | 'EUR' | 'GBP' | 'MXN' | 'AUD' | 'JPY' | 'CNY' | 'CHF' | 'INR', required
    - `counterparty_org_id` string, nullable: Must be a string starting with `org_`
    - `counterparty_off_chrt_org_data_id` string, nullable
    - `counterparty_driver_id` string, nullable
    - `task_group_type` 'chrt_ground_provider' | 'cargo_on_flight' | 'cargo_on_vessel' | 'onboard_courier', required
    - `applies_to_service_lines` ServiceLineEnum[]
    - `effective_time_zone_name` string: IANA time zone name (e.g. `America/New_York`).
    - `effective_starts_at_timestamp` string, date-time, nullable
    - `effective_ends_at_timestamp` string, date-time, nullable
    - `rules` union[], required
      - union
        - BaseRateChargeRule1
          - `rule_type` 'base_rate', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - LocationRateChargeRule1
          - `rule_type` 'location_rate', required
          - `rule_key` string, uuid4
          - `charged_per` 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `location_rates` RateSheetLocationRate1[], required
            - `shipper_account_id` string, nullable
            - `pricing_zone_id` string, nullable
            - `flat_rate` number, required
        - ZoneToZoneChargeRule1
          - `rule_type` 'zone_to_zone', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `zone_pair_rates` RateSheetZonePairRate1[], required
            - `origin_pricing_zone_id` string, required
            - `destination_pricing_zone_id` string, required
            - `flat_rate` number, required
          - `rates_apply_both_directions` boolean
        - MileageChargeRule1
          - `rule_type` 'mileage', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_distance_miles` number
          - `rate_per_mile` number, required
          - `ends_at_total_distance_miles` number, nullable
          - `minimum_charge` number, nullable
        - LongDistanceMileageChargeRule1
          - `rule_type` 'long_distance_mileage', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_distance_miles` number
          - `rate_per_mile` number, required
          - `ends_at_total_distance_miles` number, nullable
          - `minimum_charge` number, nullable
        - WaitTimeChargeRule1
          - `rule_type` 'wait_time', required
          - `rule_key` string, uuid4
          - `charged_per` 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_wait_minutes` number, required
          - `rate_per_wait_minute` number, required
        - ExtraStopChargeRule1
          - `rule_type` 'extra_stop', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_stops` integer
          - `rate_per_extra_stop` number, required
          - `attempted_stops_count_as_stops` boolean
        - StopFeeChargeRule1
          - `rule_type` 'stop_fee', required
          - `rule_key` string, uuid4
          - `charged_per` 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
          - `applies_to_task_actions` union[], required
            - union
              - …
        - PieceCountChargeRule1
          - `rule_type` 'piece_count', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_pieces` integer, required
          - `rate_per_piece` number, required
          - `quantity_basis` 'order_unique_cargo' | 'task_group_unique_cargo' | 'task_handled_cargo', required
        - WeightChargeRule1
          - `rule_type` 'weight', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `included_weight` number, required
          - `rate_per_weight_unit` number, required
          - `weight_unit` 'lb' | 'kg', required
          - `weight_type` 'gross' | 'chargeable' | 'volumetric', required
          - `quantity_basis` 'order_unique_cargo' | 'task_group_unique_cargo' | 'task_handled_cargo', required
          - `weight_breaks` RateSheetWeightBreak1[]
            - `starts_at_weight` number, required
            - `rate_per_weight_unit` number, required
          - `minimum_charge` number, nullable
          - `dim_factor_cubic_inches_per_pound` number, nullable
        - FuelSurchargeChargeRule1
          - `rule_type` 'fuel_surcharge', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
        - VehicleSurchargeChargeRule1
          - `rule_type` 'vehicle_surcharge', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `vehicle_types` VehicleTypeEnum[], required
          - `flat_rate` number, nullable
          - `surcharge_percentage` number, nullable
          - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[]
        - AirWaybillResaleChargeRule1
          - `rule_type` 'air_waybill_resale', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `pricing_method` 'markup' | 'margin', required
          - `pricing_percentage` number, required
          - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
          - `combine_sources_into_one_charge` boolean
          - `applies_to_relationship_types` string[]
        - FlightTicketResaleChargeRule1
          - `rule_type` 'flight_ticket_resale', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `pricing_method` 'markup' | 'margin', required
          - `pricing_percentage` number, required
          - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
          - `combine_sources_into_one_charge` boolean
          - `applies_to_relationship_types` string[]
        - SupplierMarkupChargeRule1
          - `rule_type` 'supplier_markup', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `pricing_method` 'markup' | 'margin', required
          - `pricing_percentage` number, required
          - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
          - `combine_sources_into_one_charge` boolean
          - `applies_to_relationship_types` string[]
        - RevenueShareChargeRule1
          - `rule_type` 'revenue_share', required
          - `rule_key` string, uuid4
          - `charged_per` 'order'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `revenue_share_percentage` number, required
          - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
        - OnboardCourierMissionBaseChargeRule1
          - `rule_type` 'onboard_courier_mission_base', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - AttemptChargeRule1
          - `rule_type` 'attempt', required
          - `rule_key` string, uuid4
          - `charged_per` 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `rate_per_occurrence` number, required
        - PickAndHoldChargeRule1
          - `rule_type` 'pick_and_hold', required
          - `rule_key` string, uuid4
          - `charged_per` 'task_group'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `rate_per_occurrence` number, required
        - EquipmentChargeRule1
          - `rule_type` 'equipment', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - DangerousGoodsChargeRule1
          - `rule_type` 'dangerous_goods', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - AfterHoursChargeRule1
          - `rule_type` 'after_hours', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - WeekendChargeRule1
          - `rule_type` 'weekend', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - HolidayChargeRule1
          - `rule_type` 'holiday', required
          - `rule_key` string, uuid4
          - `charged_per` 'order' | 'task_group' | 'task'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `flat_rate` number, required
        - OrderMinimumChargeRule1
          - `rule_type` 'order_minimum', required
          - `rule_key` string, uuid4
          - `charged_per` 'order'
          - `line_item_description` string, required
          - `export_ref__sage__item_id` string, nullable
          - `minimum_charge` number, required
  - `expected_revision` integer, required

## Response `200`

Successful Response

- RateSheet1
  - `schema_version` 1, required
  - `name` string, required
  - `invoice_type` 'accounts_receivable' | 'accounts_payable', required
  - `currency_code` 'USD' | 'CAD' | 'EUR' | 'GBP' | 'MXN' | 'AUD' | 'JPY' | 'CNY' | 'CHF' | 'INR', required
  - `counterparty_org_id` string, nullable: Must be a string starting with `org_`
  - `counterparty_off_chrt_org_data_id` string, nullable
  - `counterparty_driver_id` string, nullable
  - `task_group_type` 'chrt_ground_provider' | 'cargo_on_flight' | 'cargo_on_vessel' | 'onboard_courier', required
  - `applies_to_service_lines` ServiceLineEnum[]
  - `effective_time_zone_name` string: IANA time zone name (e.g. `America/New_York`).
  - `effective_starts_at_timestamp` string, date-time, nullable
  - `effective_ends_at_timestamp` string, date-time, nullable
  - `rules` union[], required
    - union
      - BaseRateChargeRule1
        - `rule_type` 'base_rate', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - LocationRateChargeRule1
        - `rule_type` 'location_rate', required
        - `rule_key` string, uuid4
        - `charged_per` 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `location_rates` RateSheetLocationRate1[], required
          - `shipper_account_id` string, nullable
          - `pricing_zone_id` string, nullable
          - `flat_rate` number, required
      - ZoneToZoneChargeRule1
        - `rule_type` 'zone_to_zone', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `zone_pair_rates` RateSheetZonePairRate1[], required
          - `origin_pricing_zone_id` string, required
          - `destination_pricing_zone_id` string, required
          - `flat_rate` number, required
        - `rates_apply_both_directions` boolean
      - MileageChargeRule1
        - `rule_type` 'mileage', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_distance_miles` number
        - `rate_per_mile` number, required
        - `ends_at_total_distance_miles` number, nullable
        - `minimum_charge` number, nullable
      - LongDistanceMileageChargeRule1
        - `rule_type` 'long_distance_mileage', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_distance_miles` number
        - `rate_per_mile` number, required
        - `ends_at_total_distance_miles` number, nullable
        - `minimum_charge` number, nullable
      - WaitTimeChargeRule1
        - `rule_type` 'wait_time', required
        - `rule_key` string, uuid4
        - `charged_per` 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_wait_minutes` number, required
        - `rate_per_wait_minute` number, required
      - ExtraStopChargeRule1
        - `rule_type` 'extra_stop', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_stops` integer
        - `rate_per_extra_stop` number, required
        - `attempted_stops_count_as_stops` boolean
      - StopFeeChargeRule1
        - `rule_type` 'stop_fee', required
        - `rule_key` string, uuid4
        - `charged_per` 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
        - `applies_to_task_actions` union[], required
          - union
            - 'chrt_ground_provider__pickup' | 'chrt_ground_provider__deliver' | 'chrt_ground_provider__recover_from_airline' | 'chrt_ground_provider__tender_to_airline' | 'chrt_ground_provider__recover_from_ocean_terminal' | 'chrt_ground_provider__tender_to_ocean_terminal' | 'chrt_ground_provider__consolidate' | 'chrt_ground_provider__hold' | 'chrt_ground_provider__other'
            - 'cargo_on_flight__cargo_received_by_airline' | 'cargo_on_flight__cargo_manifested' | 'cargo_on_flight__cargo_loaded_onto_flight' | 'cargo_on_flight__flight_departed' | 'cargo_on_flight__flight_arrived' | 'cargo_on_flight__cargo_offloaded_from_flight' | 'cargo_on_flight__cargo_cleared_customs' | 'cargo_on_flight__cargo_ready_for_recovery' | 'cargo_on_flight__cargo_recovered'
            - 'cargo_on_vessel__gated_in_full' | 'cargo_on_vessel__loaded_onto_vessel' | 'cargo_on_vessel__vessel_departed' | 'cargo_on_vessel__vessel_arrived' | 'cargo_on_vessel__discharged_from_vessel' | 'cargo_on_vessel__available_for_pickup' | 'cargo_on_vessel__gated_out_full'
            - 'obc__cargo_picked_up' | 'obc__courier_thru_security' | 'obc__courier_boarded_flight' | 'obc__courier_deboarded_flight' | 'obc__courier_cleared_customs' | 'obc__cargo_delivered'
      - PieceCountChargeRule1
        - `rule_type` 'piece_count', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_pieces` integer, required
        - `rate_per_piece` number, required
        - `quantity_basis` 'order_unique_cargo' | 'task_group_unique_cargo' | 'task_handled_cargo', required
      - WeightChargeRule1
        - `rule_type` 'weight', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `included_weight` number, required
        - `rate_per_weight_unit` number, required
        - `weight_unit` 'lb' | 'kg', required
        - `weight_type` 'gross' | 'chargeable' | 'volumetric', required
        - `quantity_basis` 'order_unique_cargo' | 'task_group_unique_cargo' | 'task_handled_cargo', required
        - `weight_breaks` RateSheetWeightBreak1[]
          - `starts_at_weight` number, required
          - `rate_per_weight_unit` number, required
        - `minimum_charge` number, nullable
        - `dim_factor_cubic_inches_per_pound` number, nullable
      - FuelSurchargeChargeRule1
        - `rule_type` 'fuel_surcharge', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
      - VehicleSurchargeChargeRule1
        - `rule_type` 'vehicle_surcharge', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `vehicle_types` VehicleTypeEnum[], required
        - `flat_rate` number, nullable
        - `surcharge_percentage` number, nullable
        - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[]
      - AirWaybillResaleChargeRule1
        - `rule_type` 'air_waybill_resale', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `pricing_method` 'markup' | 'margin', required
        - `pricing_percentage` number, required
        - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
        - `combine_sources_into_one_charge` boolean
        - `applies_to_relationship_types` string[]
      - FlightTicketResaleChargeRule1
        - `rule_type` 'flight_ticket_resale', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `pricing_method` 'markup' | 'margin', required
        - `pricing_percentage` number, required
        - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
        - `combine_sources_into_one_charge` boolean
        - `applies_to_relationship_types` string[]
      - SupplierMarkupChargeRule1
        - `rule_type` 'supplier_markup', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `pricing_method` 'markup' | 'margin', required
        - `pricing_percentage` number, required
        - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
        - `combine_sources_into_one_charge` boolean
        - `applies_to_relationship_types` string[]
      - RevenueShareChargeRule1
        - `rule_type` 'revenue_share', required
        - `rule_key` string, uuid4
        - `charged_per` 'order'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `revenue_share_percentage` number, required
        - `applies_to_line_item_types` InvoiceLineItemTypeEnum1[], required
      - OnboardCourierMissionBaseChargeRule1
        - `rule_type` 'onboard_courier_mission_base', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - AttemptChargeRule1
        - `rule_type` 'attempt', required
        - `rule_key` string, uuid4
        - `charged_per` 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `rate_per_occurrence` number, required
      - PickAndHoldChargeRule1
        - `rule_type` 'pick_and_hold', required
        - `rule_key` string, uuid4
        - `charged_per` 'task_group'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `rate_per_occurrence` number, required
      - EquipmentChargeRule1
        - `rule_type` 'equipment', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - DangerousGoodsChargeRule1
        - `rule_type` 'dangerous_goods', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - AfterHoursChargeRule1
        - `rule_type` 'after_hours', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - WeekendChargeRule1
        - `rule_type` 'weekend', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - HolidayChargeRule1
        - `rule_type` 'holiday', required
        - `rule_key` string, uuid4
        - `charged_per` 'order' | 'task_group' | 'task'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `flat_rate` number, required
      - OrderMinimumChargeRule1
        - `rule_type` 'order_minimum', required
        - `rule_key` string, uuid4
        - `charged_per` 'order'
        - `line_item_description` string, required
        - `export_ref__sage__item_id` string, nullable
        - `minimum_charge` number, required
  - `_id` string, required
  - `revision` integer
  - `owned_by_org_id` string, required: Must be a string starting with `org_`
  - `created_by_user_id` string, required: Must be a string starting with `user_`
  - `created_at_timestamp` string, date-time, required
  - `last_edited_by_user_id` string, required: Must be a string starting with `user_`
  - `last_edited_at_timestamp` string, date-time, required
  - `archived_by_user_id` string, nullable: Must be a string starting with `user_`
  - `archived_at_timestamp` string, date-time, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-06** `05afd8b01f0c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/chrt/apis/chrt-fastapi/changes/billing_new/rate_sheets/update/v1/:rate_sheet_id/put.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/2945f2b4f0cf?raw)
