P4 Software P4 Software / logisticaHQ-en

Add these docs to Claude

Ask Claude questions about these docs. Claude reads the published pages and links you back to them. Copy this address:

https://docs.p4software.cloud/mcp

In claude.ai or Claude Desktop: open Settings, then Connectors, choose Add custom connector and paste the address.

In Claude Code, run:

claude mcp add --transport http docs https://docs.p4software.cloud/mcp

Billing profiles

3PL Billing Profiles

Creating 3PL Billing profiles is an extremely arduous Task in most Warehouse management Systems, however in LogisticaHQ it is wizard based to simplify the process.

By creating different billing profiles, you can invoice the 3PL client correctly the first time! there can be various profiles for the same Task, in the event you invoice 3PL Clients differently based on volume or type of Products.

All storage fees are calculated by the hour, we have found through our experience and research this works best for the 3PL Provider as well as the 3PL Client.

, set the charge type in this case set it to Picking.

On the screen above chose each, this will invoice the 3PL client .002 cents for each unit picked. As the image above shows there are assorted options to choose from depending on the agreement you have with your client.

If you chose weight or Cube as your billing calculation method, it is critical you setup the dimensions correctly in the Products screen.

On the screen above enter .002 for the rate, in the additional charges field this is for discounts, taxes or miscellaneous charges.

On the screen above select Cumulative this will consolidate all the Picking across various orders into one line on the invoice. Then click finish this will create the billing code, this code will now appear in the 3PL client setup screen and allow you to assign the profile to the client.

There is a detailed excel workbook that is sent via Email with the PDF invoice, this excel workbook contains detailed information for each line charge, no matter what your selection in step #5 is.

Step #5 is for not having thousands of lines on the actual invoice.

Setting Up 3PL Billing

This page walks through setting up billing for one client, from the system settings to a recurring monthly invoice. The examples use a Panamanian client billed monthly, with ITBMS at 7%.

Step 1: Turn on record capture

When an invoice is created, LogisticaHQ can save a snapshot of the client's storage movements and service activity for the period. Storage rules, and Service rules that read those snapshots, need this capture. Both capture settings are off by default. While they are off, only Flat rules and Service rules that read other tables produce lines, and no error is shown.

  1. Go to Setup > System > Configuration.
  2. Open the group Business - Multi Client.
  3. Turn on Generate Storage Records. Storage rules need it.
  4. Turn on Generate Service Records. Service rules that read service activity need it.
  5. Save.

Capture happens when an invoice is created. Turning a setting on later does not fill in invoices that already exist. Generate a new invoice for the period instead.

Two optional settings are also useful:

  • Business - Inventory > Enable Daily Snapshot captures a nightly inventory snapshot, kept for 90 days. Several storage queries in the 3PL Billing Query Library use it. It works independently of the capture settings above. It is also off by default.
  • Business - Products > Report Length Unit Of Measure and Report Weight Unit Of Measure must have a value for Storage rules to run. They default to M and Kg.

Step 2: Set the invoice number prefix and email texts

The same group, Business - Multi Client, holds three more settings:

SettingDefaultUse
Invoice Number PrefixINV-The text before the seven-digit invoice number, for example INV-0000027.
Invoice Email SubjectInvoice @InvoiceNumber has been generated for Billing cycle @Start to @EndThe subject of invoice emails.
Invoice Email BodyInvoice has been generated for Billing cycle @Start to @End, followed by @InvoiceNumber and "Thank you!"The body of invoice emails.

The placeholders you can use in the subject and body are listed in Managing 3PL Invoices.

Step 3: Check the client

Open Setup > 3PL > Clients and open the client. Check these fields:

  • The company name and address. These are copied into the invoice's Bill to section when the invoice is created.
  • The Email. Invoice emails go only to this address.

Step 4: Create a billing profile

  1. Go to Setup > 3PL > Billing profiles and click New.
  2. In the New profile dialog, choose the Client and enter a Name, for example "Acme - Monthly". If you leave the name blank, the profile gets a five-digit number as its name.
  3. Click the profile's name in the list to open it.

The profile screen has four sections:

Billing profile with its rules

  • Details: the profile name, the client, and the recurring settings.
  • Rules: the billing rules.
  • Additional charges and discounts: the charges such as ITBMS.
  • Invoices: the profile's invoices.

Click Update to save the details and the charges.

To bill another client with the same rates, use Clone... on the profile's row in the list. Choose the new client and name. The profile is copied with all its rules.

Step 5: Add additional charges (ITBMS example)

Add the charges before the rules, so the rules can name them.

  1. Expand Additional charges and discounts. The section is collapsed by default.
  2. Click Add. Enter the Name ITBMS and the Percentage 7.
  3. Click Update.

A charge applies only to lines that name it:

  • In Flat and Storage rules, type the charge name in Additional Charges. Separate several names with commas.
  • In Service rules, return the name in the query's AdditionalCharges column.

Names are matched without regard to upper or lower case. A name that is not on the invoice's list of charges is ignored.

For a discount, add a charge with a negative percentage, for example "Volume discount" at -5.

Worked example. An invoice has these lines:

  • $1,000.00 of handling and storage, marked ITBMS.
  • $200.00 of reimbursed freight, not marked.

The totals are:

Sub total$1,200.00
Charges/Discounts (ITBMS 7% of $1,000.00)$70.00
Total$1,270.00

The charges are copied from the profile into each invoice when the invoice is created. If you change a charge on the profile later, existing invoices keep their own copy. You can edit that copy on a Draft invoice.

Step 6: Add rules

In the Rules section, click Add. The Billing rule dialog opens. Enter a Name and a Description, then choose the Type. The other fields depend on the type.

Tips:

  • Control the line order with the rule names. Rules run, and lines are numbered, in alphabetical order of the rule name. Prefix names with numbers such as "010 Storage", "020 Receiving" and "030 Picking".
  • Enable or disable a rule with the toggle in the # column. The change saves immediately. Disabled rules are skipped.
  • Removing a rule also saves immediately.
  • A profile needs at least one rule. Without rules, generating an invoice fails with "Profile [...] does not have any rules".

Flat rule: monthly account fee

Name010 Account management
DescriptionMonthly account management
TypeFlat
Rate350.00
Additional ChargesITBMS

Every invoice gets one line of 1 × $350.00. The rule's name is the Item and its description is the Description. A Flat rule cannot have a rate of 0.

Storage rule: pallet storage per day

Name020 Pallet storage
TypeStorage
ZoneLeave empty for all zones, or pick the zones to bill.
Product trackingAll
Calculation methodLpn
Rate0.60 (per pallet per day)
Additional ChargesITBMS
Break invoice linesCumulative (one line) or By Lpn (one line per pallet)

Suppose the client kept 3 pallets for all 30 days of September. That is 90 pallet-days, and the line is 90 × $0.60 = $54.00. With By Lpn, the invoice shows one line per pallet, each with the pallet code as its description.

Storage billing rule

Other common Storage setups:

  • Per unit per day: calculation method Each, with the rate per unit-day. Set Break invoice lines to By Sku to get one line per SKU.
  • Per bin per day: Any bin. Use Pickable bin or Overstock bin to bill only pick faces or only reserve locations. Set Break invoice lines to By Bin for one line per bin.
  • By volume or weight: Cube or Weight. These use the product's unit cube or unit weight.
  • Only some products: set Product tracking to By category or By Sku. Then enter the categories or SKUs, separated by commas, in the Category or Sku field.

Storage rules need Generate Storage Records turned on (Step 1). A Storage rule cannot have a rate of 0.

Service rule: receiving, picking and other handling

A Service rule runs a SQL query and turns each returned row into an invoice line. Use Service rules for all handling charges.

Name030 Picking per unit
TypeService
Rate0.30 (per unit picked)
SqlThe query, for example the one below.

A Service rule's Rate is a money field that the query reads as @Rate, so the price is kept on the rule and changed there, not inside the SQL. The query returns the rate, the quantity and the charge names:

SELECT
    'PICK-UNIT'                                        AS Item,
    'Units picked'                                     AS Description,
    @Rate                                              AS Rate,
    CAST(ISNULL(SUM(r.Quantity), 0) AS decimal(18,4))  AS Quantity,
    'ITBMS'                                            AS AdditionalCharges
FROM ClientInvoices ci
JOIN BillingServiceRecords r ON r.ClientInvoiceId = ci.Id
WHERE ci.Id = @Id
  AND r.SubType = 'Pick';

If the client picked 4,200 units in the period, the line is 4,200 × $0.30 = $1,260.00, with ITBMS applied.

Rules for writing these queries:

  • The query receives two values: @Id, the Id of the invoice being built, and @Rate, the rule's Rate.
  • The query gets the client and the period by joining ClientInvoices on that Id.
  • Use @Rate for the price. A query can still return a fixed number instead, or several prices in one query.

The 3PL Billing Query Library explains these rules and has 45 ready-to-adapt queries.

The SQL rule editor

Editing a Service rule opens a full-screen editor:

SQL rule editor

  • The query box suggests your tables and columns as you type. Press Ctrl+Space to see suggestions at any point.
  • The Tables panel lists every table. Search it, show a table's columns, and click Insert at cursor to add a name to the query.
  • Required columns shows which of Item, Description, Rate, Quantity and AdditionalCharges the query returns and which are missing.
  • Query library inserts a ready-made query.
  • Test runs the query against one of the client's invoices, with that invoice as @Id and the Rate as it stands in the editor as @Rate. It shows the lines the invoice would get and their total. A test only reads data: nothing is saved.

Click Save rule when the result is right.

Step 7: Make the profile recurring (optional)

To have LogisticaHQ create invoices by itself:

  1. In Details, turn on Recurring.
  2. Choose the Billing cycle: Monthly, Weekly or Bi Weekly.
  3. Set Billing cycle start to the start of the first period to invoice, for example 2026-10-01.
  4. Optionally turn on Auto-post invoices, Auto email invoices, or both.
  5. Click Update.

A scheduled background job checks recurring profiles periodically. When a whole cycle has ended after the Billing cycle start, the job does the following:

  1. It creates the invoice for that cycle.
  2. It moves Billing cycle start forward to the start of the next cycle. If several cycles were missed, it creates one invoice for each.
  3. It posts the invoice immediately if Auto-post invoices is on. Otherwise the invoice waits as a Draft.
  4. It emails the invoice to the client if Auto email invoices is on.

Only the scheduled job applies auto-post and auto-email. Invoices you create yourself from the screens are always Drafts and are never emailed automatically.

Contact support if scheduled invoice emails are not received.

Was this page helpful?