Third-party logistics providers bundle multiple services into a single monthly invoice. What looks like one document is financially six or seven separate costs - each with its own account code and potentially its own GST treatment.
Most e-commerce and wholesale businesses process these invoices incorrectly. Either the whole invoice is coded to a single account, or specific line items are coded to whatever seems closest without a consistent policy. The result compounds over time: COGS is understated, margin reports are misleading, and month-end reconciliation requires revisiting invoices that should have been handled correctly at intake.
This guide covers how to process 3PL invoices accurately in Xero and MYOB, what each charge type should map to, and how to configure AP automation to handle the split automatically.
What a typical 3PL invoice contains
A monthly statement from an Australian 3PL provider typically includes several distinct charge types:
Storage fees: The cost per pallet, bin, or cubic metre of inventory held during the month. Storage fees are typically charged weekly or monthly based on inventory levels at a given date.
Inbound receiving: A charge for receiving, counting, and putting away stock from inbound shipments. Often charged per pallet or per carton.
Pick-and-pack: A per-order or per-unit charge for picking items from storage, packing them, and preparing them for dispatch. This is usually the largest component of the monthly invoice for active e-commerce businesses.
Outbound freight: The freight cost charged to the 3PL for carrier dispatch, passed through to the customer. Some 3PLs bill freight directly; others use separate carrier invoices.
Returns handling: A per-return or per-unit charge for receiving, inspecting, and restocking returned goods.
Special projects: Ad hoc charges for tasks outside normal operations - repackaging, relabelling, stock counts, or promotional kit assembly.
Surcharges: Fuel surcharges, DG handling surcharges, or peak period surcharges applied across the invoice.
Each of these maps to a different account code. None of them should be bundled into a single posting.
Account code mapping for 3PL charges
The correct account code for each charge type depends on the business’s chart of accounts, but the following mapping is a reasonable starting point:
| Charge type | Typical account | GST |
|---|---|---|
| Storage fees | Warehousing / Storage expense | 10% |
| Inbound receiving | Warehousing / Receiving expense | 10% |
| Pick-and-pack | Fulfilment / Pick-and-pack expense | 10% |
| Outbound freight | Freight out / Delivery expense | 10% |
| Returns handling | Returns processing expense | 10% |
| Special projects | Operations / Project expense | 10% |
| Fuel surcharge | Freight surcharge expense | 10% |
For e-commerce businesses with a separate freight P&L analysis, outbound freight is often tracked in a dedicated account separate from warehousing costs. For businesses that calculate landed cost at product level, inbound receiving charges may be included in the landed cost allocation rather than expensed separately.
The key principle is consistency. Whatever mapping is applied in month one should be applied every month thereafter. Inconsistent coding makes trend analysis impossible and creates unexplained variances in operating expense categories.
GST handling for 3PL invoices in Australia
The majority of 3PL charges for domestic services attract GST at 10 percent. This includes storage, pick-and-pack, inbound receiving, returns handling, and special projects from Australian-based 3PLs.
Outbound freight components may have mixed GST treatment if the 3PL is billing for international shipping. Domestic dispatch is taxable. International freight is generally GST-free. If a single line item bundles both domestic and international freight, it should be split to apply the correct treatment.
Fuel surcharges are typically taxable at the same rate as the underlying freight service. Confirm the GST treatment with your 3PL if their invoices do not clearly identify the tax rate per line.
How Xero and MYOB handle 3PL invoice coding
Xero supports multi-line bill entry where each line can be assigned a different account code and GST treatment. The challenge is that this requires manual entry of each line item for every 3PL invoice - typically five to ten lines per month. Without AP automation, this is a manual process every month.
MYOB AccountRight similarly supports multi-line bills. The same manual entry requirement applies.
Neither platform learns from previous invoices or applies coding from supplier history. Each month, the person processing the invoice makes the same coding decisions again.
With AP automation: A purpose-built AP platform like Pulsify reads the 3PL invoice at intake, extracts each line item, and applies the account code and GST treatment based on how this 3PL has been coded previously. In the first month, the reviewer confirms the coding. From month two onwards, routine charges are coded automatically and only exceptions - new charge types or unusual amounts - are flagged for review.
This is the practical difference between processing a 3PL invoice in 15 minutes versus 2 minutes. The coding decisions happen once and are applied consistently thereafter.
Handling the 3PL invoice reconciliation problem
Many businesses receive their 3PL statement and discover the total does not match what they expected. Storage fees seem higher than the inventory levels justify. Pick-and-pack charges do not reconcile to order volumes. A surcharge appears with no explanation.
The reconciliation process requires:
- Comparing storage fees against the average inventory volume for the period
- Comparing pick-and-pack charges against the dispatch report from the 3PL portal or OMS
- Identifying any charge types that have not appeared in previous invoices
- Requesting a breakdown from the 3PL for any line item that is not self-explanatory
This reconciliation is separate from AP coding. It is a verification step before the invoice is approved for payment. Some businesses perform this reconciliation manually using their OMS data. Others build a simple spreadsheet that compares 3PL charges against dispatch and inventory reports each month.
AP automation supports this process by surfacing 3PL invoices with unusual amounts - charges significantly above or below the historical average for this supplier - as exceptions before approval. The exception queue prompts the reconciliation rather than requiring the finance team to remember to do it.
Setting up automated coding for 3PL invoices
To configure automated 3PL invoice coding in Pulsify:
- Enter the first invoice manually using the correct account codes and GST treatments for each charge type
- The system records the line item descriptions, charge types, and coding from this first invoice
- On the second invoice from the same 3PL, the system applies the same coding automatically
- Exceptions - line items with descriptions that do not match known patterns or amounts outside historical range - are flagged for manual review
Most businesses reach a point within two to three months where their 3PL invoices pass through with minimal exception flagging. Routine charges that appear every month are coded automatically. New charges or unusually large amounts are flagged. The review work reduces to genuine exceptions rather than full manual processing every month.
For more on how Pulsify handles automated line-item coding for complex invoices like 3PL statements, see the feature overview. For the broader invoice processing workflow, see invoice processing automation.
Sources: ATO GST for business · ATO eInvoicing for business