Skip to content
CheckMyFreightBill.com
Data, TMS and Integration

Freight Invoices in QuickBooks: A Workflow for Exceptions

A freight invoices QuickBooks workflow that keeps disputed charges, short pays, and carrier credits out of the wrong month and off the wrong GL account.

By 11 min read

The freight invoices QuickBooks workflow that survives a close has one rule at its center: enter the bill at the amount the carrier billed, and handle the disagreement as a separate, visible transaction. Do not edit the bill down to what you think you owe. Enter it whole, pay the undisputed part, and let a vendor credit or a receivable carry the contested amount until it resolves.

That sounds like a small mechanical preference. It is the difference between a freight expense line your controller can explain and one that drifts by a few percent every month with no audit trail behind the drift.

Freight breaks accounts payable because a meaningful share of the invoices are wrong, they get corrected weeks later under new numbers, and the correction lands in a different period than the original. Every one of those is an exception, and exceptions are what a standard three-way-match AP process is worst at. This post lays out how to run them through QuickBooks without corrupting the general ledger or losing the dispute.

Enter the billed amount, always

Start with the rule, because everything else follows from it.

When a carrier bills $2,412.50 and you believe $2,312.50 is correct, there are two ways to record it. You can enter a bill for $2,312.50 and quietly ignore the difference. Or you can enter the bill for $2,412.50 and record a $100 dispute against it.

The first is faster and it is wrong, for four reasons:

  • Your AP no longer ties to the carrier’s AR. The next statement reconciliation surfaces a hundred small gaps and nobody can explain any of them.
  • The dispute becomes invisible. Nothing in the system says a claim is open, so nothing chases it.
  • You lose the deadline. Contest windows run from receipt of the bill, and a bill you never fully recorded has no reliable receipt date.
  • You cannot measure recovery. If the exception was never booked, the credit that arrives later looks like a random vendor credit rather than money you recovered.

Enter it whole. Then decide what the exception is.

The four freight exceptions, and what each does to the GL

Almost every freight billing exception is one of four things. They look similar in an inbox and behave completely differently in a ledger.

1. Overbilled and disputed, not yet paid. The bill is in the system at full value. You are paying part. The contested balance stays open in AP against that vendor until the carrier issues a corrected bill or you concede. No GL adjustment is needed yet, because the expense as booked is the carrier’s assertion and the open balance is the disagreement.

2. Overbilled and already paid. Now the money is gone and the expense is overstated. This is not a payables problem anymore, it is a receivable from the carrier. Book it that way, out of freight expense and into a claims receivable, once the claim is filed and the recovery is reasonably expected under your own materiality policy.

3. Duplicate. The same load billed twice under different invoice numbers. If it is unpaid, void the second bill and note why. If it is paid, you have a refund claim, and it has rules behind it.

4. Rebill or corrected bill. The carrier reissues an invoice for the same load, usually with a new number and sometimes a different amount. The danger is booking both. This is exactly why duplicate freight invoices hide behind new invoice numbers and why matching on invoice number alone fails.

Here is the mapping, with the QuickBooks mechanic for each.

Exception GL effect QuickBooks mechanic What it must never be
Disputed, unpaid None yet; expense stands at billed Bill entered in full, partial bill payment, memo naming the dispute An edited-down bill
Disputed, already paid Move contested amount from freight expense to a claims receivable Journal entry, reversed when the credit or refund lands Left sitting in freight expense
Duplicate, unpaid None Void the duplicate bill, keep it voided rather than deleted A deleted transaction
Duplicate, paid Receivable from carrier Journal entry to claims receivable, cleared on refund A negative freight expense with no counterparty
Rebill replacing an original Net difference only Void or credit the original, enter the rebill Two live bills for one load
Carrier credit memo received Reduces freight expense in the period the credit relates to, per your policy Vendor credit applied to the specific bill An unapplied floating credit

The rightmost column is the one to enforce. Every entry in it is something a well-meaning AP clerk will do at 4:30 on a Friday, and each one costs an hour to unwind later.

Chart of accounts: split the charge types

You cannot audit what you cannot see, and a single Freight Expense account hides everything.

At minimum, split freight into:

  • Linehaul. The base transportation charge.
  • Fuel surcharge. Separate, because it is formula-driven and independently checkable against a published index.
  • Accessorials. Separate, because this is where error concentrates and where the trend line tells you something.
  • Claims and adjustments. Where credits, recoveries, and write-offs land so they do not silently net against current-period spend.

Two reasons this matters beyond tidiness. First, the accessorial-to-linehaul relationship is a real operating signal, and you cannot compute it if the two are commingled. Second, when a carrier issues a credit for a detention charge in November for an October load, you want that credit to land against accessorials and not to disguise itself as a linehaul saving.

In QuickBooks, use expense accounts for the split and use classes or locations for the dimension your business cares about, whether that is site, business unit, or customer. Resist the urge to build a separate account per carrier. Carriers are vendors, and vendor-level reporting already exists.

The workflow, end to end

Step 1: Land every bill in one place. One inbox, one address, routed by rule. Getting this right is the subject of how to export freight invoice data from your TMS, inbox, and carrier portals, and it matters here because a bill entered from a forwarded screenshot has no reliable received date.

Step 2: Capture the received date. Put it in a custom field or the bill memo. Do not use invoice date as a proxy. The gap between the two can be weeks, and it is the gap that decides whether a late rebill is still collectible under 49 U.S.C. 13710, which requires a carrier to bill charges beyond the original bill within 180 days of your receipt of that original bill to preserve its collection rights, and gives you 180 days from receipt to contest.

Step 3: Match before you enter. Rate confirmation, BOL, POD, and invoice. The procedure for the most common failure is in rate con versus carrier invoice reconciliation. Matching before entry, not after, is what keeps the exception count in the ledger low.

Step 4: Enter at billed value, coded by charge type. One bill, multiple expense lines, one per charge category. If your invoice source collapses accessorials into a single total, fix the source, because the coding cannot be better than the data feeding it, and charge lines lifted off a scanned PDF need checking behind the document extraction before they become GL lines. That is one of the practical differences between structured and document-based invoice sources, covered in EDI 210 freight invoice format versus a PDF in your inbox.

Step 5: Flag the exception, do not resolve it in the bill. Use a memo convention that a report can filter, something like DISPUTE: detention 4h, no POD times, opened 10/14. Consistency beats cleverness here.

Step 6: Pay the undisputed balance. In QuickBooks, that is a partial bill payment against the full bill, leaving the contested amount as an open balance on the vendor.

Step 7: Resolve, then close the loop in the ledger. A corrected invoice means voiding or crediting the original and entering the replacement. A vendor credit means applying it to the specific bill, never leaving it floating. A concession means paying the remaining balance and closing the flag.

Step 8: Report on it monthly. Open disputes by age, by carrier, and by charge type. If nothing reports on the flag, the flag will stop being applied within two months. That is not a discipline problem, it is a design problem.

Short pay without breaking the vendor balance

Short paying is the normal outcome of step 6, and it is also where ledgers get damaged, because people try to make the bill and the payment agree.

The clean pattern: bill at full value, payment for the undisputed amount, remaining balance open. The vendor’s aging then shows exactly what you contest, which is correct and which is what you want to see. Send the dispute the same day you short pay, with the invoice, the supporting document, and a specific requested action. Releasing the undisputed balance is not a courtesy, it removes the carrier’s past-due leverage while the dispute runs.

What not to do:

  • Do not write off the difference to a miscellaneous account to make the bill zero out. That destroys the recovery record.
  • Do not delete the bill and re-enter it at the lower amount. Now the carrier’s invoice number is attached to a number the carrier never billed.
  • Do not apply an unrelated open credit to make the balance disappear. Credits should always be applied to the bill they relate to.

If the carrier issues a corrected invoice with a new number, void the original with a memo pointing at the replacement. Voiding preserves the number and the history. Deleting removes them, and the deleted invoice number is exactly what you will need in six weeks when a collections email arrives.

When you already paid: it is a refund claim, with duties attached

Once the money is out the door, the posture changes and so does the ledger treatment. Move the contested amount out of freight expense into a claims receivable and track it as an asset you are collecting.

The rules give this real teeth, and it is worth knowing them precisely rather than approximately.

An overcharge claim under 49 CFR 378.4 must be accompanied by the freight bill, the rate, classification, weight, or tariff authority relied on, and payment information. The rule also says inadequate documentation alone cannot disqualify a claim. Once the written claim is received, the processing carrier must pay, decline to pay, or settle it within 60 days under 49 CFR 378.8, absent a written agreement to extend for extenuating circumstances.

Duplicates carry their own duty. Under 49 CFR 378.9, when a carrier itself discovers an overpayment, duplicate payment, or overcollection, it must refund within 30 days. The same section covers unidentified payments: the carrier must notify the payor within 60 days, may treat unclaimed funds as its own after 90 days without a response, and once it receives payor information must refund or respond within 14 days.

Be careful how you use these. They are duties on the carrier, not automatic credits to your account, and none of them post themselves to your GL. What they give you is a defensible date to put in a follow-up field, which is what turns a receivable into a collection. The full set of clocks is in every freight billing deadline that can cost you money.

Month-end without a surprise

Two things break freight at close: bills that have not arrived, and disputes that resolve in a later period than they opened.

For the missing bills, accrue. The carrier has a presentation obligation, seven days from receipt of the shipment on a prepaid move or seven days from delivery on a collect move under 49 CFR 377.205, but plenty of bills arrive later than that and your close will not wait. Accrue from delivered loads at the rate confirmation amount, because that is your best available estimate, and reverse when the bill lands.

For the disputes, decide a policy once and apply it consistently: whether a recovery is recognized when the credit is received or when the claim is filed and collection is reasonably assured. Either is defensible. Switching between them by transaction is not, and it is what makes a freight expense line impossible to explain year over year.

Finally, reconcile carrier statements quarterly against your vendor aging. Statements are where you find the bill nobody entered and the credit nobody applied, and both are pure findings.

The checklist

  1. Split freight into linehaul, fuel, accessorials, and claims in the chart of accounts.
  2. Route all carrier billing to one inbox and record a received date on every bill.
  3. Match against the rate con, BOL, and POD before entering, not after.
  4. Enter every bill at the billed amount, coded by charge type.
  5. Flag exceptions in a filterable memo convention.
  6. Short pay the disputed line, release the rest, and send the dispute the same day.
  7. Void, never delete, when a rebill replaces an original.
  8. Apply vendor credits to the specific bill they relate to.
  9. Move already-paid disputes out of freight expense into a claims receivable.
  10. Report open disputes by age, carrier, and charge type every month.
  11. Reconcile carrier statements against vendor aging quarterly.

None of this requires a new system. It requires the ledger to reflect two facts at once: what the carrier billed, and what you agree you owe. Systems that collapse those two into a single number are easier to operate for about a quarter, and then the freight expense line stops being explainable, which is the moment finance stops trusting it.

Sources