--- title: "Charge Class" slug: "charge-class" updated: 2025-06-02T14:39:43Z published: 2025-06-02T14:39:43Z canonical: "help.canary7.com/charge-class" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.canary7.com/llms.txt > Use this file to discover all available pages before exploring further. # Charge Class ## Understanding Charge Class ### What is Charge Class? The **Charge Classis** the foundational element in Canary7's Billing Module. It defines *how* a charge is calculated, delineating between unit, weight, container, or numerous other quantifiable metrics. These are system-defined formulas that cannot be modified. Instead, they are selected and applied within **Charge Types** which define *when* and *why* a charge is triggered. Each Charge Class belongs to a specific **dataset**, which determines the data it operates from (e.g., shipment headers, shipment details, inventory, receipts, etc.). This ensures accurate, context-specific billing based on the operational activity it relates to. ## 📘 Key Characteristics - **System-defined**: Cannot be created or modified by users. - **Used by Charge Types**: The Charge Class provides the logic; the Charge Type decides when to use it. - **Dataset-bound**: Each Charge Class applies to a specific dataset, such as `shipment_header`, `ds_receipt_detail`, or `ds_inventory`. ### Accessing Charge Class Within the Navigation menu, click on the search bar, type and click on "Charge Class". Charge Class is also in Billing > Charge Class. 📂 Charge Class List | **Charge Class Name** | **Dataset** | **Description** | | --- | --- | --- | | PerShipment \| FlatRateCharge | `shipment_header` | Applies a flat charge per shipment. | | ChargePerContainerUptoXContainer | `shipment_header` | Charges per container up to a certain quantity. | | ChargePerContainerUptoXContainerAndUptoYThereAfter | `shipment_header` | Charges per container with two tiers—up to X, and a different rate thereafter. | | PerShipment \| FlatChargeUpToXQty + ChargePerQtyThereAfter | `shipment_header` | Combines a flat charge for the first X quantity and a per-unit charge beyond. | | ChargePerShipmentPerContainer | `shipment_header` | Charges per container within each shipment. | | ChargePerShipmentContainerUptoXContainerThereafter | `shipment_header` | Tiered charge per container up to X, then a different rate. | | ChargePerShipmentContainerUptoXContainerAndUptoYThereafter | `shipment_header` | Multi-tiered charge per container with two thresholds. | | PerShipmentDetail \| FlatRateCharge | `ds_shipment_detail` | Flat charge per shipment detail line. | | PerShipmentDetail \| FlatChargeUpToXQty + ChargePerQtyThereAfter | `ds_shipment_detail` | Tiered charge based on quantity per detail line. | | PerShipmentDetailChildCharge | `ds_shipment_detail_child` | Flat charge for each child line within a shipment detail. | | ChargePerShipmentDetailChildUptoXQtyThereafter | `ds_shipment_detail_child` | Tiered quantity-based charge at the detail child level. | | PerShipmentContainer \| FlatRateCharge | `ds_shipment_container` | Flat charge per shipment container. | | PerShipmentContainer \| FlatChargeUpToXWeight + ChargePerWeightThereAfter | `ds_shipment_container` | Tiered charge based on weight in shipment containers. | | PerReceiptCharge | `ds_receipt_header` | Flat charge per receipt. | | ChargePerReceiptUptoXQtyThereafter | `ds_receipt_header` | Quantity-tiered charge per receipt. | | ChargePerReceiptPerContainer | `ds_receipt_header` | Charges based on number of containers in a receipt. | | ChargePerReceiptContainerUptoXContainerThereafter | `ds_receipt_header` | Container-tiered charge for receipts (X threshold). | | ChargePerReceiptContainerUptoXContainerAndUptoYThereafter | `ds_receipt_header` | Multi-tiered charge for containers on a receipt. | | PerReceiptDetailCharge | `ds_receipt_detail` | Flat charge per receipt detail line. | | ChargePerReceiptDetailUptoXQtyThereafter | `ds_receipt_detail` | Tiered quantity-based charge on receipt detail. | | PerInventoryPerQtyCharge | `ds_inventory` | Charges based on quantity held in inventory. | | PerInventoryPerUnitCharge | `ds_inventory` | Charges per unique inventory unit. | | PerInventoryPerVolumeCharge | `ds_inventory` | Charges based on inventory volume (e.g., cubic metres). | | PerInventoryPerWeightCharge | `ds_inventory` | Charges based on inventory weight. | | PerShipmentExtraPerQtyCharge | `ds_shipment_extra` | Charges based on quantity for additional shipment services. | | PerShipmentContainer \| FlatRateCharge2 | `ds_shipment_container` | Alternate flat-rate charge per shipment container. | | PerInventory \| FlatRateCharge | `ds_inventory` | Flat charge per inventory entry. | | PerShipmentContainer \| FlatChargeUpToXQty + ChargePerQtyThereAfter | `ds_shipment_container` | Tiered quantity-based charge per shipment container. | | PerReceiptContainerCharge \| FlatRateCharge | `ds_receipt_container` | Flat charge per receipt container. | | PerReceiptContainerCharge \| FlatChargeUpToXPieces + ChargePerPieceThereAfter | `ds_receipt_container` | Tiered piece-based charge per receipt container. | | PerShipmentDetailChild \| ChargePerUnit | `ds_shipment_detail_child` | Charges per unit at the detail child level. | | PerInventoryLocation \| FlatCharge | `ds_inventory_location` | Flat charge per inventory location. |