How do you spot a duplicate payment on a labor invoice?

Duplicate payments on contract labor invoices hide behind PO splits and vendor number variants. Here is what an AP team should check before release.

Twitter LinkedIn WhatsApp
Ask AI: ChatGPT Claude Gemini Grok
How do you spot a duplicate payment on a labor invoice?

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. A duplicate payment is one of the cleanest forms of it: the same labor hours, billed and paid twice, with no contract dispute involved at all.

Contract labor invoices are especially exposed. Staffing vendors bill weekly or biweekly, timesheets get re-submitted after a correction, and a single work order can generate several invoice numbers for the same period. Each of those is an opening for the same charge to clear twice.

Executive Summary

A duplicate payment on a contract labor invoice almost never looks like a duplicate. It arrives as a different invoice number, a slightly different amount after a rounding adjustment, or a resubmission after a rejected timesheet. Standard duplicate-detection logic, built around exact matches on invoice number and amount, passes all three through.

The mechanism is structural, not a vendor mistake. Staffing vendors invoice against work orders, not purchase orders, and a single work order can span several invoice numbers as timesheets get corrected and resubmitted. AP systems built for goods receipt do not have an equivalent checkpoint for a labor hour: there is no packing slip to match against.

What changes it is checking on the combination that actually identifies a duplicate: vendor, worker or role, week ending date, and hours, rather than on invoice number and amount alone. That check is a control, not a one-time cleanup, because the same work order structure that created the first duplicate will create the next one.

1. What counts as a duplicate payment on a contract labor invoice?

A duplicate payment is the same billable labor, the same worker or role, the same week ending date, and the same hours, paid to the same vendor more than once under different invoice numbers or amounts. It does not require an identical invoice. A resubmitted invoice with a corrected line item, a split invoice covering the same work order, or a credit memo that was never netted against the original payment all count.

The test is the underlying labor period.

Most AP duplicate checks are built around exact matches: same invoice number, same amount, same vendor. That logic works for a recurring equipment lease or a fixed monthly service fee, where the invoice is genuinely identical each cycle.

Contract labor does not behave that way. Hours vary week to week, so the amount varies too, and a staffing vendor's invoice numbering often resets or branches when a timesheet is corrected. An exact-match check has nothing to catch, because no two invoices in the duplicate pair are actually identical.

The working definition has to shift from the document to the underlying claim: worker or role, vendor, week ending date, and hours billed. When two invoices agree on all four and both were paid, that is a duplicate regardless of what the invoice numbers say.

2. How does a duplicate payment actually get created?

A duplicate payment on a contract labor invoice is created by a process gap, not a single error. A timesheet gets corrected after the original invoice is already in the payment queue, the vendor issues a new invoice for the corrected version, and AP pays both because nothing links the second invoice back to the first. Vendor number variants and split invoicing across cost centers create the same result through a different path.

A contract labor engagement typically runs through a work order, not a purchase order, and a work order can generate several invoices over its life: an original, a correction after a disputed timesheet, and sometimes a separate invoice per cost center if the worker was allocated across departments.

Each of those invoices carries its own invoice number. If the AP system checks for duplicates on invoice number and amount, none of them collide, because none of them are literally identical to another. The system has no visibility into the fact that all three describe the same underlying labor.

A second path runs through the vendor master file itself. A staffing vendor may be entered under two vendor numbers, one from a legacy onboarding and one from a newer contract, and a duplicate check that matches on vendor ID misses a pair paid under two different IDs for the same entity.

3. Which fields on a contract labor invoice reveal a duplicate?

Four fields, read together, identify a duplicate payment on a contract labor invoice: worker name or role, week ending date, hours billed, and vendor tax ID rather than vendor number. Invoice number and total amount are the fields a standard AP duplicate check relies on, and they are the two fields most likely to differ between a duplicate pair, because a resubmitted or split invoice changes both while leaving the underlying labor unchanged.

Invoice number and total amount are useful for catching an exact resubmission, where a vendor accidentally sends the same PDF twice. They are close to useless for catching the more common case, where the invoice was regenerated with a small change and a new number.

A field-level check has to treat the four fields above as a set. Any pair of invoices matching on all four, from the same vendor tax ID, in the same pay period, is a candidate worth reviewing before the second one is released for payment.

  • Week ending date: The labor period itself. Two invoices billing the same worker for the same week are a duplicate candidate regardless of invoice number.
  • Worker name or role code: Ties the charge to a person or position rather than to a generic line item description.
  • Hours billed: A near-identical hour count for the same period, even if not exact, is worth a manual look rather than an automatic pass.
  • Vendor tax ID: Groups invoices from the same legal entity even when they were entered under separate vendor numbers in the AP system.

4. Can three-way matching catch a duplicate labor payment?

Three-way matching checks the invoice against a purchase order and a receipt, confirming that what was ordered was received and billed at the agreed price. It has no equivalent for labor: there is no packing slip for an hour worked, and many contract labor invoices are matched against a work order or a timesheet approval rather than a purchase order at all, so the control that catches a duplicate goods invoice does not extend to a duplicate labor invoice.

A purchase order for goods is consumed as it is received: a PO for 100 units is closed once 100 units have been receipted, and a second invoice against the same PO is flagged because there is nothing left on the order to bill against.

A work order for contract labor is not consumed the same way. It authorizes a rate and a role over a period, not a fixed quantity, so it stays open for the length of the engagement. Two invoices against the same open work order do not trip the same alert a closed PO would, because the system has no receipt quantity to check against.

Where a timesheet approval substitutes for a receipt, the same gap shows up differently: the approval confirms hours were worked, not that this particular invoice has not already been paid for those hours.

5. What should an AP team check before releasing payment?

Before releasing payment on a contract labor invoice, check the worker, week ending date, and hours against every invoice already paid to that vendor in the trailing 60 days, not just against open items in the current batch. Confirm the vendor tax ID rather than trusting the vendor number field alone. Where a work order stays open across multiple invoices, hold a log of what has already been billed against it, separate from the purchase order system.

A batch-level duplicate check only compares invoices sitting in the queue together. A duplicate that arrives three weeks after the original was already paid clears every batch check, because the original is no longer in the batch. A lookback against payment history, not just open items, is what catches the delayed pair.

The vendor tax ID check matters most at staffing vendors that operate under a holding company with several billing entities. Two entities with the same tax ID and different vendor numbers in the AP system are the same payee, and a duplicate paid to each looks, on the vendor number alone, like two separate legitimate payments.

Where a standard AP check stops and where a labor-specific check has to start.

Check Standard AP duplicate check Labor-specific check needed
Match key Invoice number and amount Worker, week ending date, hours
Vendor identity Vendor number Vendor tax ID
Lookback window Open items in current batch Trailing 60 days of paid invoices
PO logic Quantity received vs. billed Cumulative hours billed against open work order

6. How do you recover a duplicate payment once it's posted?

Recovery starts with documenting the matched pair: both invoice numbers, the shared worker and week ending date, and both payment dates. Most vendors will issue a credit memo once shown the matched pair rather than a cash refund, because it is faster on their side too. The disclaimer applies here: contract terms on credit versus refund vary by agreement, and this is general information, not legal advice.

Once a duplicate is confirmed, the recovery conversation with the vendor goes faster when the matching evidence is attached to the request rather than described in an email. Two invoice numbers, the common week ending date, the worker or role, and both payment references make the case self-evident.

Most staffing vendor contracts do not specify a refund mechanism for an overpayment, which leaves the credit memo as the default path. A credit against a future invoice is faster to process for the vendor than issuing cash back, and most AP teams prefer it too, since it does not require a separate cash receipt process.

The better fix is upstream of recovery. A vendor whose invoicing structure produces duplicates once will produce them again under the same work order pattern, so the check described above belongs in the standard release process, not just in a one-time cleanup.

For the wider pattern this sits inside, start with the margin drift guide. See also the Margin Drift Diagnostic and our insights.

7. Frequently Asked Questions (People Also Ask)

Is a duplicate payment the same thing as an overbilled invoice?

No. An overbilled invoice charges a rate or quantity the contract does not support, a single event. A duplicate payment pays for the same already-billed labor twice, across two invoices. Both are recoverable, but they need different evidence: a rate card for overbilling, a matched invoice pair for a duplicate.

Why doesn't our ERP catch this automatically?

Most ERP duplicate checks match on invoice number and total amount. A resubmitted or split labor invoice changes both fields while billing the same underlying hours, so it passes the standard check. Catching it requires matching on worker, week ending date, and hours instead.

How far back should we look for duplicate labor payments?

A batch-level check only compares invoices in the current queue. A useful review compares each new invoice against paid invoice history for that vendor going back at least 60 days, since a delayed resubmission can arrive weeks after the original was already paid.

Does this only happen with staffing agencies?

It is most visible with staffing and contract labor vendors because their invoices vary week to week and route through work orders rather than fixed purchase orders. The same underlying mechanism, a resubmitted document with no link back to the original, can occur with any vendor that bills against an open-ended engagement rather than a closed PO.

What's the fastest way to confirm a suspected duplicate before contacting the vendor?

Pull both invoices side by side and compare worker or role, week ending date, hours billed, and vendor tax ID. If all four match and both invoices were paid, document the two invoice numbers and payment dates before reaching out. That pairing is what a vendor needs to issue a credit quickly.

Should we ask for a refund or a credit memo?

A credit memo against a future invoice is usually faster to process on both sides than a cash refund. Contract terms on which is owed vary by agreement, so check the contract language. This is general information, not legal advice.

Can a vendor number change hide a duplicate?

Yes. If the same legal entity is entered under two vendor numbers in the AP system, invoices paid under each number will not trigger a vendor-level duplicate check. Matching on vendor tax ID instead of vendor number closes that gap.

Is this something ongoing monitoring can prevent, or only catch after the fact?

A check applied at invoice release, before payment clears, prevents the duplicate rather than requiring recovery afterward. The same worker, week ending date, and hours check used for recovery works as a pre-payment control; it just has to run before release instead of during a periodic review.

Does a rise in staffing costs make duplicate detection more or less urgent?

Employment services costs have moved measurably: the BLS Producer Price Index for the employment services industry group read 175.559 in July 2026, up 5.3% year over year (US Bureau of Labor Statistics, read 2026-09-07). As contract labor spend grows with rising rates, the dollar impact of any duplicate on that spend grows with it, even though the detection method itself does not change.

Margin Drift Resources