--- title: "3PL Billing" type: module sources: - areas/billing/index.md - areas/billing/billing_configuration/index.md - areas/billing/billing_configuration/contracts.md - areas/billing/billing_configuration/planners.md - areas/billing/billing_configuration/rules_documentation.md - areas/billing/billing_configuration/rules_handling_container.md - areas/billing/billing_configuration/rules_handling_filters.md - areas/billing/billing_configuration/rules_handling_uom.md - areas/billing/billing_configuration/rules_handling_volume.md - areas/billing/billing_configuration/rules_handling_weight.md - areas/billing/billing_bills/index.md - areas/billing/billing_bills/bills.md - areas/billing/billing_bills/billing_reports.md - areas/3pl_billing/index.md - areas/3pl_client_portal/index.md related: - modules/3pl-portal.md - modules/owner-extensions.md - concepts/account-owner.md - concepts/stock.md - concepts/order-outbound.md - concepts/order-inbound.md last_compiled: "2026-04-26" --- # 3PL Billing ## Overview The 3PL Billing module identifies, quantifies, records, and consolidates data from logistical activities in the warehouse for billing purposes. It is primarily designed for 3PL (Third-Party Logistics) operators who need to invoice each client (owner) individually based on the warehouse services consumed. **Prerequisite**: The [Owner Extensions](owner-extensions.md) module must be installed. This adds the mandatory owner field to receipt and shipping orders and restricts mixing items from different owners in the same order. **Scope limitation**: By default, the module only counts data from Easy WMS activities. Activities from other modules (Manufacturing container consumption, Yard Management transport documents) are excluded unless custom rules are configured. ## Key capabilities - Configurable billing rules for all standard logistics activities (storage, handling, inbound, outbound, packing, etc.) - Custom rules based on transactions for non-standard activities - Contract-based billing: one contract per owner, specifying rules + planner + validity period - Economic valuation: optional currency-based pricing with unit costs or percentage (for stock value rules) - Tiered pricing: volume discount/surcharge ranges per rule - Bill generation: periodic automatic or manual; owner-specific bills with full line detail - Pre-validation: optional manual review before automatic bill closure and ERP export - Compensation: manual surcharges or discounts (%) at bill or line level - Notifications: alerts for generation errors, closure events ## Architecture ### Core entities **Billing rule**: definition of what to count. Two types: - **Standard rules** (automatic): count activities tracked natively by EasyWMS; system counts without user intervention - **Manual rules**: Fixed (flat fee regardless of volume) or Variable (operator-entered quantity); used for activities EasyWMS does not track Rules are organized in three groups by concept: #### Group 1 - Storage Quantifies articles in stock at a given moment (snapshot-based): | Sub-type | What is counted | |----------|----------------| | Container | Number of containers with owner's stock | | Location | Number of locations with owner's stock | | Unit of measure | Quantity in the chosen UoM | | Weight | Weight of owner's stock (max of balance weight vs. theoretical) | | Volume | Volume of owner's stock (based on item conversion dimensions) | #### Group 2 - Handling Quantifies dynamic processes applied to stock (flow-based): | Sub-type | What is counted | |----------|----------------| | Container | Containers involved in the operation | | Work orders | Number of operations (receipts, shipments, loads, routes, counts, kits) | | Work order lines | Number of order lines processed | | Weight | Weight processed in the operations | | Unit of measure | Quantity processed in chosen UoM | | Volume | Volume processed | Operations covered: inbound receipts, outbound shipments, loads, routes, counts, kit assemblies. #### Group 3 - Transaction Custom rules based on specific WMS transaction types: | Parameter | Description | Required? | |-----------|-------------|----------| | Transaction type | Which WMS transaction triggers the count | Yes | | Owner parameter | Field in the transaction identifying the owner | Yes | | Quantity parameter | Field providing the count value (if absent: quantity = 1 per event) | No | | Operation type | Increment (adds to total), Decrement (subtracts), Variable (sign-based) | Yes | Used for non-standard activities not covered by groups 1 or 2. **Billing planner**: defines when to generate bills - daily, weekly, monthly, or custom schedule. **Billing contract**: ties together an owner + billing rules + planner + validity period + optional economic valuation. **Bill**: periodic summary document generated per contract. Contains lines (one per rule) with breakdown detail. **Bill line**: total quantification of one rule for the period. Can be drilled down to individual activity records. **Compensation**: manual % surcharge or discount applicable at bill level or line level. ### Contract lifecycle ``` Contract created → Enabled → Bills generated periodically → Lines generated per rule → Pre-validation (optional) → Closed → ERP export Contract disabled → No new activities recorded; no automatic bill closure ``` ### Economic valuation When a contract has a currency configured: - Standard rules: Fee (currency/unit) × quantity counted - Stock value rules: Fee (%) × stock value (presentation currency must match contract currency) - Bill totals: Gross price (before compensation) → Subtotal price (after line compensation) → Total price (after bill compensation) ### Tiered pricing (requires `EnablePriceRanges` toggle) Ranges must be consecutive starting at 1. Last range has no upper limit (acts as catch-all): ``` Range 1: 1–100 units → 10€/unit Range 2: 101–200 units → 8€/unit Range 3: 201+ units → 6€/unit ``` Bill line displays the **average price** (total gross amount ÷ count) when ranges are used. ## Configuration ### Initial setup 1. Install Owner Extensions module 2. Define owners (3PL clients) in inventory masters 3. Create billing rules for each activity category: - Storage rules (container presence, time-based) - Handling rules (inbound, outbound, picking) - Weight/volume/UoM-based rules - Custom transaction-based rules 4. Create billing planners (frequency) 5. Create contracts: one per owner, assigning applicable rules + planner 6. Enable contracts ### Contract rules configuration For each rule assigned to a contract: - Activity type filter (which operations qualify) - Owner filter (auto-applied from contract) - Economic valuation (fee/unit or fee/% for stock value rules) - Price ranges (optional) ### Pre-validation When enabled on a contract, generated bills must be manually reviewed and approved before automatic closure. Prevents incorrect bills from being sent to ERP. ### Contract enable/disable rules - A contract can be enabled/disabled multiple times within its validity period - Disabled contracts: no activity recording for manipulation rules; no automatic bill closure - **Cannot change valuation (on/off) after a contract has been active** - must clone and disable old ## Operations ### Bill management (PC - Billing menu) | View | Content | |------|---------| | Bills | All generated bills per contract/owner | | Bill lines | Individual rule quantification per bill | | Bill detail lines | Breakdown of each activity counted in a line | | Compensations | All applied discounts/surcharges | | Reports | Detailed and simplified billing reports | ### Bill status flow 1. Bills generated automatically (by planner) or manually 2. If pre-validation enabled: bill in "pending validation" state 3. Validated → Closed → exported to ERP 4. Manual close or forced close available from web interface ### Compensation actions Available on bills and individual lines: - Apply % discount (negative compensation) - Apply % surcharge (positive compensation) - "Compensated" flag shown on bill and line records ### Billing notifications The system can automatically generate notifications for 6 billing events. Users subscribe per event: | Event | Trigger | |-------|---------| | **Bill sent automatically** | A bill has been created, closed, and sent to ERP automatically | | **Bill pending validation** | A bill has been generated and awaits manual approval before closure | | **Bill corrected** | Bill data has been manually corrected after automatic generation | | **Bill cancelled** | A bill has been cancelled; data will not be sent to ERP | | **Contract expired** | The contract's end date has passed; no new bills will be generated | | **Contract about to expire** | The last bill of the contract has been generated; next scheduled date falls outside validity period | Notification channels: **email**, **SMS**, or **SmartUI contextual notification**. Channel and timing are configurable per event per subscriber. ## Errors & troubleshooting | Issue | Cause | Resolution | |-------|-------|-----------| | Billing calculation error notification | Stock value rule currency doesn't match contract currency | Ensure all item presentations use same currency as contract | | Contract cannot be enabled | Not all rules have fee configured (when valuation active) | Complete fee configuration for all contract rules | | Bill marked as erroneous | Currency mismatch in stock value calculation | Check presentation currencies; fix contract currency if needed | | Activities not recorded | Contract disabled during activity period | Enable contract before activities occur | ## Related - [[3pl-portal]] - 3PL clients access their billing data and operational KPIs through the client portal - [[owner-extensions]] - Prerequisite module; adds owner enforcement to orders and master data - [[account-owner]] - Owners are the 3PL clients; contracts are created per owner - [[stock]] - Storage-based billing rules measure stock presence and movements - [[order-inbound]] - Inbound handling activities (receipt) counted by billing rules - [[order-outbound]] - Outbound handling activities (shipping, picking) counted by billing rules