Skip to content
CheckMyFreightBill.com
Freight AP and Invoice Workflow

How Duplicate Freight Invoices Hide in Your AP

The same load, two invoice numbers, five weeks apart. Here is how duplicate freight bills slip past AP and the four checks that catch them every time.

By 11 min read

Your AP system already has duplicate detection. It flags a second invoice when the vendor, the invoice number, and the amount match something you have already paid. It works, and it catches almost nothing in freight.

The reason is simple and it is the whole point of this post: duplicate freight invoice detection fails because a real duplicate almost never arrives with the same invoice number. The load gets rebilled, corrected, resubmitted, or billed by a second party, and every one of those events produces a fresh invoice number. To your AP system it is a new bill from a known vendor. It sails through.

The dollar sizes are what make this worth a process rather than a spot check. A duplicated detention line is worth a couple of hundred dollars. A duplicated linehaul is worth the whole load. In one 20-bill scan we ran, the largest single finding was a truckload bill submitted twice, five weeks apart, under invoice numbers 77401 and 77982, for $1,180. Nothing else on that scan came close.

Why invoice-number matching fails on freight

An AP duplicate rule is a key comparison. Pick a key, usually vendor plus invoice number, sometimes vendor plus amount plus date. Compare the incoming bill against history. Flag a collision.

That design assumes the invoice number is a stable identifier for the transaction. In most vendor categories it is. Nothing in the office supply workflow reissues documents, so you never get a second bill for the same case of paper under a new number.

Freight reissues documents constantly, because the billing event and the transportation event are decoupled. A load moves once, but it can be billed at pickup, corrected after the POD comes back, rebilled after a rate dispute, submitted again by a factor, and submitted a third time by whoever inherited the aging report. Each of those is a new document out of a billing system that assigns sequential numbers. There is no field on a standard freight bill that says “this replaces invoice 77401.” Occasionally there is a note in the remarks. Usually there is not.

So the key that matters is the load rather than the invoice number, identified by the pro number, the BOL number, and the pickup date plus origin and destination, none of which your AP duplicate rule is looking at.

A second failure layers on top. Freight bills often carry a reference field your ERP maps to “invoice number” that is actually the pro or load number. Two documents for one load can carry different values there, and two different loads can carry the same value, producing a false flag that teaches everyone to click past the warning.

The seven mechanisms that produce a second bill for one load

Duplicates are not one thing. They come out of at least seven distinct workflows, and the workflow determines what the second bill looks like, which determines what will catch it.

Rebill after a correction. You short-pay or dispute a charge, the carrier agrees and issues a corrected bill, and the original is never voided on their side. Both stay open and both can be collected. Usually a billing clerk fixed the number and never closed the old record.

Corrected bill issued without voiding the original. The variant that hurts more, because the carrier caught its own error and reissued before you disputed anything. Two bills, different amounts, days apart, and no dispute thread to connect them. AP sees two distinct amounts and pays both.

The carrier and its factoring company both submit. A carrier factors an invoice and also emails it to you directly. The factor’s version arrives from a different remit-to entity, often under a different vendor record, so vendor-plus-number matching is defeated at the vendor level before it ever reaches the number. The money went to two parties, which makes recovery messier.

A broker and the underlying carrier both bill the shipper. The broker bills you at the customer rate. The carrier, unpaid or told by someone on a bad day to bill the shipper directly, bills you at the carrier rate. Two vendors, two amounts, one load. That is also a signal something went wrong upstream, so it deserves a look rather than a quiet short-pay.

EDI 210 resubmission after a rejection. A 210 fails a syntax or content edit and the carrier’s system regenerates and resends. If the first transmission still created a record on your side, you have two, and many billing systems assign a new invoice number on regeneration, so no downstream control sees it.

A paper or PDF bill following an electronic one. The 210 landed and posted. Weeks later collections emails a PDF for the same load because their system shows it open. The two documents enter through different doors, one an integration and one an inbox, and nothing compares across channels.

Resubmission after an aging report. The carrier runs AR aging, sees an open balance caused by a payment applied to the wrong load, and rebills. Honest and wrong. It usually lands one to three months out, exactly the gap that defeats a human reviewer.

The gap in time is what actually defeats review

If a duplicate arrived the next day, an AP clerk would catch it. Freight duplicates arrive weeks or months later, in a different batch and a different period, after the original was paid, coded to a freight account, closed, and mentally filed. Nobody holds a six-week-old invoice in memory across a few hundred loads a month. The reviewer compares against what is in front of them: the current batch and whatever the system flagged. If your lookback is 30 days, or implicitly “this period” because that is what a reconciliation covers, a bill arriving on day 38 is invisible by construction.

This is also why duplicate detection is one of the few freight audit checks that genuinely does not survive as a manual process past a certain volume. You can eyeball a fuel surcharge. You can read a POD for detention in and out times. You cannot hold three months of load-level detail in your head.

The four checks that catch duplicates

1. Match on load-identifying fields, not invoice number

Build the match key out of what identifies the shipment, in this order of preference:

  • Pro number. The carrier’s own tracking number. Most reliable, because it is assigned once at pickup and survives rebilling.
  • BOL number. Nearly as good, and often present when the pro is not, especially on shipper-generated BOLs.
  • Pickup date plus origin plus destination plus amount. The fallback when neither reference number is on the document. Weaker, because a regular lane running the same day at the same rate produces legitimate collisions, so it needs human confirmation rather than automatic rejection.

Run all three. Treat a pro or BOL collision as a probable duplicate. Treat a composite collision as a question.

2. Fuzzy amount matching for partial rebills

Exact-amount matching misses the corrected-bill case entirely, because the whole reason a corrected bill exists is that the amount changed. It also misses a second bill that is a subset of the first, one accessorial line rebilled on its own.

So the amount test runs in three modes. Equal, which catches straight resubmissions. Close, within a few percent, which catches a corrected bill where a fuel surcharge or a rounding difference moved the total. And contained, where the second bill’s total equals a line or a sum of lines on the first. That last mode finds the liftgate charge billed twice on a dock-to-dock load, once inside the original bill and once on its own.

3. Lookback windows long enough to span the real gap

Your matching has to reach back further than the typical gap between an original and a rebill. Aging-driven rebills commonly land one to three months out. Post-audit rebills land later still, though by then the 180-day balance-due window under 49 U.S.C. 13710 may already have closed against the carrier, which is a separate and useful defense.

Practically: run duplicate checks against at least six months of paid history, and structure them to cross period boundaries. Month-end close is where a lookback silently stops, because reconciliation scopes to the period, and duplicates live exactly in the seam between periods. If your only cross-check is the monthly reconciliation, the control is blind to the most common case.

4. Reconcile against the rate confirmation, not against the last invoice

The rate confirmation is the single authoritative record of what was owed for a load. Not the first invoice, which may itself be wrong. Not the corrected invoice. The rate con.

Anchoring there changes the shape of the question. Instead of “have I seen this invoice before,” you ask “what have I now paid in total against this load, and does it exceed the rate con plus any authorized accessorials?” That catches every mechanism on the list at once, including the two that defeat vendor-level matching, because it does not care who sent the bill. It only cares about cumulative dollars against one load.

It is the same discipline that decides what a fuel surcharge should have been and whether an accessorial was authorized at all.

Which check catches which mechanism

Mechanism What the second bill looks like The check that catches it
Rebill after a correction New number, adjusted amount, same load Pro or BOL match plus fuzzy amount
Corrected bill, original never voided New number, different amount, days apart Pro or BOL match plus fuzzy amount
Carrier and factor both submit Different vendor record, different remit-to Rate con reconciliation on cumulative paid
Broker and underlying carrier both bill Two vendors, two different amounts Rate con reconciliation on cumulative paid
EDI 210 resubmitted after rejection New number, identical amount, short gap Pro or BOL match, exact amount
Paper or PDF following an electronic bill Different intake channel, same content Cross-channel match on pro or BOL
Resubmission after an aging report New number, identical amount, one to three month gap Long lookback window plus pro or BOL match

Read down the right-hand column and the design falls out. You need a load-level key, a tolerant amount comparison, a long window, and a rate con anchor. Any three of the four leaves a hole.

Recovering a duplicate you have already paid

Catching a duplicate before payment is a matching problem. Catching one after payment is a claim, and here there is federal regulation directly on point.

49 CFR 378.2 defines a duplicate payment as two or more payments for transporting the same shipment. That is a defined term with its own procedure, not a generic billing dispute. Three things follow.

The documentation requirements are not onerous. Under 49 CFR 378.4, an overcharge claim should be accompanied by the freight bill, the rate, classification, weight, or tariff authority relied on, and the payment information. The same section provides that inadequate documentation alone cannot disqualify a claim, so a carrier telling you the claim is not properly formatted is not the end of it. Send both invoices, both proofs of payment, and the rate confirmation.

The carrier is on a clock. Under 49 CFR 378.5 the processing carrier must promptly begin investigating any claim it receives, written or not, but only a written claim starts the clock in 49 CFR 378.8, which requires the carrier to pay, decline to pay, or settle each written overcharge claim within 60 days of receipt, absent a written agreement to extend. Put it in writing, date it, diarize 60 days.

The refund duty can run without you asking. 49 CFR 378.9 requires a carrier that itself discovers an overpayment, duplicate payment, or overcollection to refund within 30 days, and gives it 14 days to refund or respond once a payor supplies identifying information for a payment it could not identify. Those are affirmative obligations, not favors.

The outer limits matter too. Under 49 U.S.C. 14705(b) a civil action to recover overcharges must be brought within 18 months, or 3 years if filed instead as a complaint with the Board or the Secretary, and under 14705(g) those periods run from delivery or tender of delivery. Separately, 49 U.S.C. 13710(a)(3) gives you 180 days from receipt of a bill to contest it. Every clock, with the rule behind it, is in our freight billing deadlines reference.

One real scope caution. Part 378 sits in the framework governing for-hire, non-exempt motor carriage, and a negotiated transportation agreement can set its own dispute procedure. Read the regulation alongside your contract, and where the contract gives you a longer window or a faster carrier response, use the contract.

If you are the shipper, and if you are the broker

Shipper exposure concentrates in the correction and rebill cases, because you are the party a carrier corrects a bill to. Anchor on the rate con, run a six-month lookback, and look hard at any invoice arriving more than 30 days after delivery. Late bills are where duplicates cluster and where the 180-day balance-due question lives.

Broker exposure concentrates in the factoring and channel cases. Link carrier and factor at the vendor-record level so a factored invoice and a direct invoice land in the same matching bucket. Reconcile cumulative dollars per load against the carrier rate con, not per invoice. And when a carrier’s invoice reaches your customer directly, treat it as an incident to investigate, not just a duplicate to reject.

The working checklist

  1. Build the match key from pro number, then BOL number, then pickup date plus origin, destination, and amount.
  2. Run amount comparison in three modes: equal, close within a few percent, and contained within the other bill’s lines.
  3. Set the lookback to at least six months, crossing period boundaries rather than resetting at close.
  4. Reconcile cumulative dollars paid per load against the rate confirmation, ignoring who sent each bill.
  5. Link factor vendor records to their carrier, and compare across intake channels so an EDI bill and an emailed PDF for one load meet somewhere.
  6. On one you already paid, send a written overcharge claim with both invoices, both payment records, and the rate con, then diarize the 60-day window under 378.8.
  7. Check the invoice date against delivery first. A bill that is months late may fail the 180-day rule whether or not it is a duplicate.

Sources