EDI 812 Credit/Debit Adjustments: Handling Retailer Deductions
For edi and integration analysts, it leads at shippers, 3pls and carriers · Understand the problem

EDI 812 Credit/Debit Adjustments: Handling Retailer Deductions: Illustrative TMS–ERP order and invoice handoff review beside a warehouse floor; not a client facility.
Quick answer: edi 812 credit debit adjustment
An EDI 812 Credit/Debit Adjustment is the X12 memo a retailer sends to explain a deduction. The BCD header names the memo, adjusted invoice and net amount; each CDD line carries a reason code, quantity and price difference. Link each memo to the 820 short payment, pull proof by reason code and dispute within the partner window.
TL;DR — what you’ll learn
- BCD04 and CDD04 are N2 amounts with two implied decimals, so 41850 means $418.50; the CDD lines netted by flag must equal BCD04 to the cent.
- Each reason code needs its own proof: code 75 needs the signed bill of lading, A2 the pick record, 02 the promotion agreement.
- Under ASC 606-10-32-5 to 32-11, expected deductions are estimated as variable consideration at sale, so accepted 812 lines draw down a reserve.
- In India only the supplier's section 34 credit note changes GST, and it must be declared by 30 November after the financial year.
Topics: edi 812 credit debit adjustment · deduction reason codes · dispute window · GL posting · x12 812 cdd segment
All quantities, amounts, product codes and events are illustrative teaching examples.
The retailer's remittance arrives $418.50 short, the cash application clerk posts the gap to an unapplied-deductions account, and nobody connects it to the 812 that landed in the EDI mailbox three days earlier. Six weeks later an analyst finds the memo, sees that one line claims the whole store order never arrived, and starts hunting for a proof of delivery the carrier archived after 30 days. By then the retailer's dispute window has closed.
The X12 812 Credit/Debit Adjustment is the document that should prevent that chase. Read properly, each memo tells you which invoice was adjusted, by how much, why, and which items and quantities are involved. Mapped to the warehouse, freight and tax records behind each reason code, it lets you accept valid deductions on the day they arrive and dispute invalid ones with evidence while there is still time.
- What this guide covers: the BCD header and CDD detail fields, how adjustment reason codes map to proof, working the dispute window, and US GAAP posting under ASC 606.
- What it adds for India: why a retailer's own debit note does not change GST, when the supplier must issue a credit note under CGST Act section 34, and how that deadline interacts with disputes.
What an 812 carries and where it sits between 810 and 820
An 812 is a notice about money, not a payment. The X12 introduction to the transaction set says it can notify a trading partner of an adjustment or billback, or request one, and that it carries the details and amounts covering exceptions, adjustments, credits or debits for goods or services. It travels in functional group CD and can flow in either direction.
In retail supply, the usual sequence is the vendor's 810 invoice, the retailer's receipt, then an 812 from the retailer explaining why it will pay less, followed by an 820 remittance that actually short-pays. Some retailers send the 812 before the 820, some after, and some only send a deduction code inside the 820. Your trading partner's implementation guide decides which pattern you will see.
Retailer deduction handling starts with the X12 812 Credit/Debit Adjustment, functional group CD: the BCD header identifies the memo, the adjusted invoice and the net amount, and each CDD line carries a code from data element 426; accounts receivable should link every memo to its 820 short payment within 1 business day.
Because the 812 is informational, the accounting record of the deduction lives in accounts receivable, not in the translator. The useful design question is therefore who owns each element of a deduction once the memo is parsed, and who signs off on accepting or disputing it. The table below is a starting allocation for a vendor that ships to retail distribution centres.
Scroll horizontally to see all columns.
| Deduction element | Where it lives after parsing | Owner | Sign-off for accept or dispute |
|---|---|---|---|
| Memo identity (BCD01 date, BCD02 memo number) | AR deduction case header | EDI analyst (mapping) | None; system-assigned |
| Adjusted invoice and PO (BCD07, BCD10) | Link from deduction case to open invoice | Cash application | AR supervisor if no invoice matches |
| Reason code per line (CDD01) | Deduction case line with evidence checklist | Deductions analyst | Customer service manager for pricing; logistics for shortages |
| Quantity and unit price difference (CDD07 to CDD13) | Line amount recalculation | Deductions analyst | Pricing or trade promotion team |
| Proof of delivery and carrier exceptions | TMS shipment record, signed bill of lading | Transport team | Logistics manager for shortage disputes |
| GST credit note decision (India) | Tax document register | Indirect tax team | Tax manager |
| Write-off of small or unrecoverable amounts | AR adjustment journal | AR supervisor | Financial controller above the agreed threshold |
Reading the BCD header: memo number, handling code and net amount
The BCD segment tells you what the memo is about before you read a single line. Published 812 guides define BCD01 as the date of the credit or debit memo, BCD02 as the issuer's memo number, BCD03 as the transaction handling code, BCD04 as the net monetary amount, and BCD05 as the credit/debit flag, with BCD06 and BCD07 for the invoice date and number, and BCD09 and BCD10 for the PO date and number.
- BCD03 handling code: one national pharmacy chain's 2026 guide uses code A, "Off Invoice (Deduction from Original Invoice)", which tells cash application to expect the deduction against the invoice in BCD07.
- BCD04 amount format: the element is type N2, so 41850 means $418.50. Mapping it as a whole number inflates every deduction a hundredfold.
- BCD05 direction: X12 notes that BCD05 indicates whether the net of the detail is a credit or a debit, but whose credit is partner-defined. One government guide defines C as money owed to the vendor and D as money the vendor owes.
- BCD12 transaction type: the same pharmacy guide sends CR for credit memo or DR for debit memo, and its own sample pairs BCD05 C with BCD12 DR, which shows why you must read the partner's guide rather than assume.
Get the header mapping signed off with each trading partner during onboarding, as described in our EDI trading partner onboarding guide. A sign error on BCD05 is not a translation failure; the memo parses cleanly and posts the wrong way, which is harder to catch than a rejected file.
CDD detail lines: reason code, quantity and the price comparison
Each CDD loop describes one adjusted line, and its fields let you recompute the amount instead of trusting it. CDD01 carries the adjustment reason code (element 426), CDD02 the credit/debit flag, CDD03 a line identifier, and CDD04 the line amount. CDD07 and CDD08 give the quantity and unit, and CDD09 the per-unit price difference between the original billing and the corrected amount.
When the dispute is about price, CDD10 to CDD13 carry two price points. The pharmacy chain's guide uses CDD10 OPP for original purchase order price with CDD11 as that price, and CDD12 INV for invoice billing price with CDD13 as the billed price. A LIN segment inside the loop identifies the item by buyer item number or UPC, and an N9 can add a description.
GS*CD*RETAILERID*VENDORID*20261103*0215*4471*X*004010~
ST*812*0001~
BCD*20261103*DM4471028*A*41850*C*20261015*INV88213**20261008*PO55190***DR~
N9*VR*V20931~
N1*BY*EXAMPLE RETAIL DC 0412*92*0412~
CDD*75*C*1*32400***12*CA*27~
LIN**UI*01234567890~
CDD*02*C*2*9450***210*EA*.45~
LIN**UI*01234567891~
SE*9*0001~
Check rule (amounts are N2, two implied decimals):
Net = sum(CDD04 where CDD02 = C) - sum(CDD04 where CDD02 = D)
Line test: CDD04 = CDD07 x CDD09 x 100, within 1 (one cent)
Header test: BCD04 = Net, else route memo to the EDI exception queue
Example: 32400 + 9450 = 41850 = BCD04 -> pass
12 x 27.00 = 324.00 ; 210 x 0.45 = 94.50 -> pass
The sample above is illustrative, built from segment definitions in published guides. It claims that a whole 12-case order was not received (code 75) and that an allowance was misapplied on 210 units (code 02). The header and line tests catch the commonest translation faults: decimal shifts, missing lines and flags that flip the sign of one line but not the total.
Mapping each reason code to the warehouse or freight evidence
A reason code is useful only if it tells someone which proof to pull. Code lists are defined by the X12 element 426, but each retailer publishes the subset it uses, so build the evidence map from your partners' guides, not from a generic list. The codes below appear in public US government and retail 812 guides.
- 75 Total Order Not Received: pull the signed bill of lading, the carrier's delivery scan and the consignee's receiving appointment. A clean signature is the strongest rebuttal.
- A2 Misshipped (Wrong Product Received): pull the pick confirmation by license plate, the packing list and the advance ship notice line that listed the item.
- A5 Overage: pull the shipped quantity on the ASN and the carton count on the bill of lading; an overage usually becomes a debit to the retailer or a return authorisation.
- 11 Returns - Damage and 13 Returns - Dating: pull the return authorisation, photographs and lot or expiry data; for damage in transit, check whether the delivery receipt was signed with an exception.
- 02 Allowance/Charge Error and D4 Unauthorized Product: these are commercial, not physical; pull the promotion agreement or item authorisation, not warehouse records.
Where the shortage is real and the carrier signed for full quantity at pickup but delivered short, the deduction becomes a freight claim against the carrier. Liability then depends on the bill of lading terms and any released value, explained in our article on carrier liability limits and released value. File that claim from the same deduction case so the recovery is matched to the original short payment.
Working the dispute window from memo date to recovery
The dispute window is a contract term, not an X12 rule. Retailers set it in vendor agreements or routing guides, usually counted from the memo date or the remittance date, and they differ. Store each partner's window as data on the trading partner record so every deduction case shows a due date the day it opens.
A practical workflow has four clocks: memo receipt, link to remittance, evidence assembled, and dispute filed. The trace below shows how the clocks fail when the 812 is treated as a mailbox file rather than a case.
- 8 Oct, 14:12, delivery: carrier delivers PO55190 to DC 0412 under BOL 7730041; receiver signs for 48 cases with no exception noted.
- 9 Oct, 06:30, retailer receipt: 12 cases are scanned onto a pallet for another PO; the retailer's receipt for PO55190 records 36 cases, then later a store transfer shows none of the item, so its audit raises code 75.
- 3 Nov, 02:15, memo arrives: 812 DM4471028 is translated and acknowledged with a 997, but the map drops it into a file share; no deduction case is created in the ERP.
- 5 Nov, 09:00, short payment: the 820 pays INV88213 less $418.50; cash application posts the difference to unapplied deductions without a memo reference.
- 28 Nov, 16:40, discovery: an analyst links the memo, asks the carrier for the signed BOL, and receives it on 4 Dec, after the partner's 30-day window (illustrative) closed on 3 Dec.
In the controlled version, the translator creates deduction case DED-77310 at 02:16 on 3 November, attaches the TMS delivery record for BOL 7730041 automatically, and sets the due date from the partner record. The analyst disputes line 1 with the clean signature on 6 November and accepts line 2, so only $94.50 is written down.
Acknowledgement and rejection handling belong to the translator, not to accounts receivable. A 997 confirms that the memo was received and syntactically valid; it says nothing about whether you agree with it. Our explainer on the EDI 997 functional acknowledgment covers that boundary.
Posting deductions to the ledger under ASC 606 variable consideration
Under US GAAP, most retailer deductions are a reduction of revenue, and the expected ones should be estimated before the memo arrives. ASC 606-10-32-6 lists discounts, rebates, refunds, credits, price concessions, incentives, performance bonuses and penalties as reasons consideration can vary, and 606-10-32-5 requires the entity to estimate that variable consideration when it recognises revenue.
The estimate uses the expected value or the most likely amount under 606-10-32-8, constrained by 606-10-32-11 to the amount for which a significant revenue reversal is probable not to occur. A vendor with a stable history of allowance errors and compliance deductions should therefore carry a deduction reserve against revenue, and charge accepted 812 lines against that reserve rather than to a fresh expense line.
Deduction accounting under ASC 606-10-32-5 to 32-11 treats expected retailer price concessions and allowance errors as variable consideration estimated at the time of sale; accepted 812 lines then draw down the reserve, while disputed shortage lines stay in receivables until resolved, with the reserve trued up each quarter.
A disputed line is different. If the vendor delivered in full and holds a signed receipt, the receivable remains valid and the short payment is a collection issue, not a revenue reduction. Track it in a deductions-receivable sub-ledger so ageing is visible, and write it off only when the case is lost or the cost of pursuit exceeds the amount. Ind AS 115 paragraphs 50, 51, 53 and 56 carry the same principles for Indian entities.
Scroll horizontally to see all columns.
| Step | US vendor ($) | India vendor (₹) | Evidence or rule |
|---|---|---|---|
| Original invoice line affected | 12 cases x $27.00 = $324.00 | 12 cases x ₹1,450 = ₹17,400 taxable, plus IGST 18% ₹3,132 = ₹20,532 | Invoice INV88213; tax invoice with HSN rate |
| Allowance error line | 210 units x $0.45 = $94.50 | 210 units x ₹38 = ₹7,980 taxable, plus IGST ₹1,436.40 = ₹9,416.40 | Promotion agreement |
| Total short payment | $418.50 | ₹29,948.40 | 820 remittance or bank credit |
| Shortage line outcome | Disputed with signed BOL; receivable kept, $324.00 recovered | Disputed with signed LR and POD; no credit note, receivable kept | Clean delivery signature |
| Allowance line outcome | Accepted; Dr deduction reserve $94.50, Cr receivable $94.50 | Accepted; section 34(1) credit note for ₹7,980 plus ₹1,436.40, because the invoiced value exceeded the agreed price | ASC 606-10-32-5; CGST Act s.34(1) |
| Reserve true-up | Quarterly, based on accepted deductions as a share of sales | Quarterly under Ind AS 115 paragraph 56 | Historical deduction rate |
The Indian figures assume an item taxed at 18% IGST for an interstate supply. Rates depend on the HSN entry and changed for many goods from 22 September 2025, so take the rate from the invoice, not from this table. If the retailer is really claiming a new post-sale discount rather than correcting a billing error, section 15(3)(b) decides whether tax can be reduced; otherwise the vendor settles commercially without reducing output tax.
India: a retailer debit note is not a GST credit note
An Indian retailer that short-pays usually sends its own "debit note", but under GST only the supplier can change the tax on its supply. CGST Act section 34(1) lets a registered supplier issue a credit note where the taxable value or tax charged exceeds what is payable, where goods are returned, or where goods or services are found deficient. The retailer's document is a commercial claim until the supplier responds.
- Valid shortage: if goods were genuinely short, the supplier issues a section 34 credit note for the undelivered quantity and its tax.
- Rejected shortage: if the signed lorry receipt and proof of delivery show full delivery, no credit note is issued and the receivable is pursued.
- Post-supply discounts: under section 15(3)(b) as currently in force, a discount after supply reduces value only if it was agreed at or before supply, linked to specific invoices, and the recipient reverses the related input tax credit.
- Pending amendment: the Finance Act, 2026 substitutes section 15(3)(b) and adds discounts to the section 34(1) credit-note grounds, but CBIC shows both changes as awaiting a commencement notification.
Timing is where disputes and tax collide. Section 34(2) requires a credit note to be declared in the return for the month of issue, and no later than 30 November following the end of the financial year or the date of the annual return, whichever is earlier. A dispute that resolves after that date can still be settled in cash, but the supplier can no longer reduce its output tax.
GST treatment of retailer deductions in India follows CGST Act section 34: only the supplier's credit note changes tax, it must be declared by 30 November after the financial year or the annual return date if earlier, and output tax falls only where the retailer reverses the matching input tax credit.
Validation rules a translator can enforce before anyone reads a memo
Much of the work on an 812 is mechanical and should never reach a person. Arithmetic, links to open invoices and the evidence attachment can all be fixed rules. Judgement is needed only where the retailer's claim meets physical proof, such as a faint signature or a damage photograph.
Scroll horizontally to see all columns.
| Handling step | Fixed rule in translator or ERP | Where software assists a person |
|---|---|---|
| Checking BCD04 against the CDD lines | Net of CDD04 by flag must equal BCD04 to the cent | None needed |
| Linking the memo to an open invoice | BCD07 must match an open invoice for the same bill-to party | Suggests near matches when the retailer truncates the invoice number |
| Assigning the evidence checklist | Reason code maps to a fixed list of documents | None needed |
| Reading a delivery receipt image for exceptions | None; a person must confirm the signature and notes | Extracts signer name, carton count and any handwritten exception for review |
| Classifying a free-text reason in an N9 note | Unrecognised codes route to an exception queue | Proposes the nearest code from past cases; analyst confirms |
| Drafting the dispute letter | Required attachments must be present before sending | Drafts the narrative from case facts; analyst edits and sends |
| Writing off a small balance | Below threshold and past due date, auto-propose write-off | Highlights partners whose small deductions are rising |
Write these rules into the partner mapping specification so the translator, ERP and deductions team share one definition. Our EDI mapping specification guide shows how to record element-level rules and test cases for each transaction set.
Adopting inbound 812 processing without flooding receivables
Turning on 812 processing for every retailer at once creates a queue of cases nobody owns. Start with the two or three partners that send the most deduction value, route only their memos into cases, and expand once the evidence links and partner windows are reliable.
This article focuses on the 812 message and its field-level handling. For the commercial side of promotion billbacks and the warehouse and EDI design that supports them, see the older trade promotion deduction and billback blueprint, which looks at the programme rather than the message.
Scroll horizontally to see all columns.
| Checklist item | What good looks like | How to test it |
|---|---|---|
| Partner guides collected | BCD05 meaning, BCD03 codes and CDD01 list recorded per partner | Reviewer can answer "whose credit is C?" for each partner |
| Amount format verified | N2 amounts mapped with two implied decimals | Send a test memo of 41850 and confirm $418.50 posts |
| Case created on receipt | Every memo opens a deduction case within minutes | Count memos received vs cases opened for one week |
| Remittance link | 820 short payments match a case by invoice or memo number | Unapplied deductions with no case fall below an agreed level |
| Evidence retention | Signed delivery receipts kept longer than the longest window | Retrieve a receipt older than the longest window |
| Due dates from partner terms | Each case shows a dispute deadline from partner data | Change a partner window and confirm new cases update |
| GST credit note control (India) | Credit note raised only after acceptance and ITC reversal check | Sample accepted cases near the 30 November cut-off |
| Reserve true-up | Quarterly entry ties accepted deductions to the reserve | Reconcile reserve movement to closed cases |
For other message and finance guides, browse the Logistics and Supply Chain hub. If you are planning a deductions workflow that ties 812 memos to proof of delivery and receivables, you can outline the scope on our request for proposal page.
Discuss this workflow
Describe your current systems, the recurring exception and the outcome you need. Keep shipment, customer and financial records out of the initial message.
Common operational questions
Practical answers for operations, engineering, and finance teams working on edi 812 credit debit adjustment in logistics & supply chain.
Is an EDI 812 the same as a payment?
Where do I find the deduction reason codes a retailer uses?
Does a short payment always reduce revenue under ASC 606?
Can an Indian retailer's debit note reduce the supplier's GST?
References
Sources checked 13 November 2026. US and India statutory authorities and vendor documentation support platform facts; the worked examples and diagrams are original.
- Defense Commissary Agency - 812 Credit/Debit Adjustment (Report of Discrepancy) implementation convention, X12 version 5010X12 transaction set introduction, BCD and CDD element definitions, N2 amount format, credit/debit flag meanings and reason codes 11, 13, 75, A2, A5 and D4. Accessed 13 November 2026.
- CVS Health - 812 DSD Credit/Debit Adjustment vendor implementation guide, ANSI X12 4010, version 1.1 (February 2026)BCD03 code A, BCD12 CR and DR, CDD10 to CDD13 price comparison (OPP and INV), reason code 02 and the sample interchange. Accessed 13 November 2026.
- FASB and IASB Transition Resource Group - Memo 14, Variable consideration (ASC 606-10-32-5, 32-6, 32-11 with IFRS 15 paragraph equivalents)Reproduces the Codification text and the bracketed IFRS 15 paragraphs 50, 51, 53 and 56 that Ind AS 115 mirrors. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Act, 2017, Section 34 (credit and debit notes)Grounds in sub-section (1), the 30 November declaration limit, the proviso substituted with effect from 1 October 2025, and the Finance Act, 2026 insertion shown as awaiting notification. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Act, 2017, Section 15(3) (value of supply, discounts)Post-supply discount conditions; substitution of clause (b) by the Finance Act, 2026 shown with effective date yet to be notified. Accessed 13 November 2026.
- X12 - Transaction sets list, 812 Credit/Debit Adjustment (X12F Finance)Accessed 13 November 2026. X12's own purpose statement: notifies or requests an adjustment or billback, carries the details and amounts of exceptions, adjustments, credits or debits, and is multidirectional.
- GST Council (PIB release of 3 September 2025) - Recommendations of the 56th Meeting of the GST CouncilAccessed 13 November 2026. Changes in GST rates on services and on goods other than specified tobacco products implemented with effect from 22 September 2025.
- ICAI - Educational Material on Ind AS 115, Revenue from Contracts with CustomersAccessed 13 November 2026. Quotes Ind AS 115 paragraphs 51, 53, 56 and 57 on variable consideration and its constraint, matching the IFRS 15 numbering.
- FMCSA — 49 CFR Part 395 Hours of Service & Electronic Logging Devices (ELD)US federal motor carrier dispatch and driver duty-status compliance mandate.
- ULIP & NIC GST E-Way Bill Portal — Unified Logistics & Rule 138 ComplianceIndian statutory goods-in-transit and multi-modal logistics verification framework.