Deductions and chargebacks
EDI chargebacks and deductions: where they come from, and how to count yours
A chargeback is your customer paying you less than your invoice and telling you why in a code. The retailer issues it. You see it as a deduction line on a remittance advice, which is why the same event carries two names and why a controller and an operations manager can describe it and appear to be discussing two different things. Deduction is the word printed on your statement, and chargeback is the word the retailer uses for the same event. This page is filed under the second one and written for people looking for the first.
It starts with a document. An acknowledgment that went out after their window closed. A ship notice that described something other than what came off the trailer. A label their scanner could not read. A truck that arrived at a door the order did not name. Each of those faults carries a code, and the code travels on your customer's payment cycle, so it reaches you months after the shipment it refers to. By then the order is closed in Odoo and the person who packed it has moved on.
On this page
How it reaches you
- 01
It arrives as a short payment
A deduction arrives as a short payment with a reason code beside it, on a remittance advice, months after the shipment it refers to. Nobody calls first to argue about it. The money has already moved by the time you see the line, and the person who packed that order has forgotten it. The code often points at a claim document held on your customer's supplier portal, behind a login somebody in sales has and you do not, and the timestamp that would settle a late ship notice sits in the EDI platform's log, which you cannot open either. You are being asked to approve a write-off using evidence you are not permitted to see.
- 02
The invoice sits open for an amount nobody can reconstruct
So the invoice sits open for an amount nobody can explain. Somebody writes it off, or somebody spends an afternoon reconstructing a shipment from months ago to challenge a figure smaller than the afternoon costs. Both of those are the same decision, and it repeats every cycle while the cause stays in place.
- 03
So it gets absorbed, and the total stays invisible
Any single deduction is often small enough that disputing it costs more than it returns, so it gets absorbed. That is how the total stays invisible while it grows.
There is a particular discomfort in approving a write-off you cannot explain. You are the person in this building who is supposed to know where the money went, and on this line you do not. The answer lives in a document format nobody has ever put in front of you and in a receiving process happening in somebody else's warehouse. You cannot see either of those from your desk. They land in your numbers anyway.
The four categories of cause
The codes group into four categories. Working in categories is enough to size this, and it is what lets you count without holding anybody's code list.
Document timing
A document has a window. The acknowledgment answers the order inside the time their guideline allows, and the ship notice reaches them before the truck does. A document that leaves your system after its window has closed produces a code whatever it says inside.
Document accuracy
A document is checked against the documents around it. The ship notice is checked against the order and against what comes off the trailer, and the invoice is checked against both. Where any two of those disagree, the difference produces a code.
Labelling
The carton and pallet labels are how the receiving dock connects the physical shipment to the electronic one. A label carrying the wrong identifier, or in a format their scanner does not expect, or in the wrong place on the carton, breaks that connection, and the receiver records the break.
Routing
The order names where the goods go, on whose carrier, and by when. A shipment that reaches a different location, or arrives outside its window, is handled by exception at their end, and the exception carries a cost they pass back to you. Some programmes also require routing to be requested from your customer before the shipment moves at all, so the failure can happen while the goods are still on your dock.
Count yours before you talk to anybody
Pull three months of remittance advices from the customer that sends you the most volume. Take your busiest quarter, because deductions follow shipping volume and a quiet quarter will flatter you. Check your customer's supplier portal as well as your inbox, since many retailers post the remittance there and never email it. Total the deduction lines whose reason codes refer to document timing, document accuracy, labelling or routing. Multiply by four. That figure is yours, and it came from your own customer.
Count it yourself, from data you already hold
takes about an hourThree months of remittance advices
from the customer that sends you the most volume
The deduction lines and their reason codes
they are already on the advice
Total the timing, accuracy, labelling and routing codes
ignore the rest
Multiply by four to reach a year
Your annual chargeback run rate, one customer
One customer, one year, at today's document set
We publish no figure for this, because we have not measured one. An average taken from other suppliers would tell you nothing about yours. Your own remittance advices are the only source that does, and you already hold them.
Bring the four category totals and we will tell you which of them a document change reaches.
Which of these an integration can reach
A genuine short ship is a warehouse problem. You committed a quantity, less than that quantity left the dock, and no document format turns the shortfall into stock. The same holds for a pallet that went out damaged, a product that was missing from the shelf when the order arrived, and a carton packed against the wrong order. Those codes are correctly issued and an integration does nothing about them. A vendor who tells you otherwise has not looked at your receiving reports.
One shortage is worth separating from the rest, because it looks like a warehouse fault and is not one. Their item file says twelve to a case. You moved to six a case last year and told your rep, who told the buyer, and nobody updated the file. The order asks for a hundred cases meaning twelve hundred units, you ship six hundred, and you receive a shortage code. The same product left your dock in the quantity your system committed, and it was counted against a different number at theirs. No picking discipline anywhere touches that one, because it is two item masters disagreeing.
A second kind of cause is mechanical. A document that went out late, or that did not match what shipped, produces a code. Fix the document and the code stops. That holds because the timing and the content of an outbound document are decided by a configuration, at a moment a system chose, against a record the system already holds. Change what the configuration produces and the output changes on every order after it, with nobody having to remember anything.
A person picking the wrong case off a shelf is a training and process problem, and it belongs to your operations manager. A document that leaves at the wrong time, in the wrong shape, belongs to whoever configured the system that sent it. The second one is what we work on.
What two retailers actually publish
Some retailers publish what they charge. Most do not, and the large American names keep their schedules behind a supplier login, so what circulates instead is a set of numbers passed between vendor blogs with no document under them. These four rows are from two Canadian retailers who publish in the open. They are not your schedule. They are here to show you what a real one looks like and how far two of them can sit apart.
| Retailer | What triggers it | Published charge |
|---|---|---|
| Canadian retailer ASupplier Guide v3.1, July 2025, section 9.6 | A ship notice that is late, or sent early | $250 |
| Canadian retailer ASupplier Guide v3.1, July 2025, section 9.6 | A ship notice that disagrees with the shipment | $250 |
| Canadian retailer ASupplier Guide v3.1, July 2025, section 9.6 | A carton barcode their scanner cannot read | $1,000 |
| Canadian retailer BVendor Compliance Policy rev. 1.1.9, July 2023 | A carton barcode their scanner cannot read | $1,000 per order, plus $10 per label |
Read the last two rows together. Same country, same trade, same fault, and one of them charges a flat thousand while the other charges a thousand plus ten a label. On a pallet of four hundred cartons that is one thousand dollars at one customer and five thousand at the other. Anybody quoting you an industry figure for a barcode fault has not read either document.
The first row is the one nobody guesses. Retailer A fines a ship notice for arriving too early as well as too late, and their guide is explicit that it goes within the hour the goods leave and not before. That cannot be fixed by trying harder in the warehouse. A system that sends the notice when the order is confirmed instead of when the shipment is picked is wrong at that customer on every order, and it is wrong while being early.
Five names are missing from that table. Walmart, Target, Amazon, Costco and Kroger keep their schedules behind a supplier login, so we cannot show you theirs and neither can anybody else. Your schedule is in a document you can reach and we cannot. That is why we read yours before we quote anything.
The part that outlasts the money
A second consequence runs alongside the money, and it is the one that reaches the next line review.
The same document faults feed a supplier scorecard. Fill rate, on-time delivery, ship notice accuracy, ship notice timeliness. The deduction is the bill for a single event and the scorecard is the running record of all of them, and the two are read by different people for different reasons.
A deduction is settled when it is paid. A scorecard is read at the review where your listing is renewed, where a category is re-tendered, or where somebody decides which of two suppliers gets the next programme. By then it is a number about you, and nobody in that room is looking at the order it came from.
That is the reason to care about a document that goes out on time. The money is recoverable and the record is not.
What sets the cost of fixing it
Four things, and nobody can put a number on the work before they know them.
Which customer mandated you
One guideline is one body of work. The next customer's guideline is a second body of work, because their parameters are their own.
Which route you are on
Connecting to a platform you already run is a different job from standing up a direct link, its certificates and its transport. If your orders already arrive on a platform, the route that applies to you is set out on the home page.
How many documents
Orders in and invoices out is a smaller build than orders, changes, acknowledgments, ASNs, inventory and catalog.
What your Odoo already holds
Clean item numbers, your customer's part numbers, ship-to locations and units of measure shorten this. Where those are missing, creating them becomes part of the work before a single document can be mapped.
Once those four answers exist you get a range with the assumptions written beside it, and the assumptions matter more than the range does. A number quoted before that is a guess wearing a decimal point.
What we will not tell you
We have not measured what share of these you will stop. A percentage we have not measured is a percentage we made up for the page you are reading, and you would have no way to check it.
We do not recover deductions. A deduction that has already landed is a conversation between you and your customer. Our work sits upstream of it, on the document that produced the code.
No retailer works out of the box. Believing one does is how EDI projects fall apart in month three, with a deadline already spent.
Leaving the platform you already pay for is sometimes the wrong move. We say so in writing when staying on it is the cheaper path, and that answer costs us the larger piece of work.
Your schedule is the only one that applies to you. The published schedules below are somebody else's, named and dated so you can check them. Two retailers in the same country and the same trade price an unreadable barcode differently, so an average across retailers describes nobody, and a figure with no retailer attached to it describes nobody twice.
Nobody can tell you what your customer's guideline requires until somebody has read it. Two suppliers sending the same documents to two different customers are two different mappings, because each customer sets its own parameters and changes them when it feels like it.
Questions people ask about this one
They are different events. Your customer issues a chargeback by paying your invoice short and putting a reason code beside the shortfall on the remittance advice. The money moves first and you find out afterwards.
A dispute is what you raise later, if you decide the deduction was wrong. Raising one means reconstructing a shipment from months earlier well enough to prove what left your dock. Pricing that afternoon against the deduction and letting it go is a reasonable call on any single line. Across a year of lines it is how the total stays invisible while it grows.
Because it travels on your customer's payment cycle. The fault is recorded when the shipment is received, and it surfaces when their accounts payable run produces a remittance advice covering the invoices they are settling. Everything between those two events happens inside their systems, where you cannot see it.
By the time the deduction line reaches you the order is closed in Odoo, the person who packed it has moved on to other work, and reconstructing what left your dock costs real time. That delay is the reason the total goes uncounted. Each line arrives alone, long after anything that would explain it.
It stops the mechanical ones and leaves the rest alone. Where a code is produced because a document went out after their window closed, or because what the document said differed from what shipped, the cause is the document. A connection that produces that document correctly and on time removes the cause, and it removes it on every order after that.
Where a code is produced because the wrong quantity physically left your dock, or the pallet arrived damaged, the cause is in your warehouse and the connection does nothing for it. Which mix you have is knowable before you spend anything. Total three months of your own deduction lines by category and the split is in front of you.
Bring the four totals to a call
Thirty minutes, Mountain Time, with the person who would do the work. Come with three months of deduction lines sorted into timing, accuracy, labelling and routing. You will leave knowing which of those four a document change reaches in your case, and which of them belong to your warehouse.
Book a 30-minute call