Skip to content
EDI 812 — EDI TransactionPublished Jun 21, 2026 · Updated Nov 4, 2026

EDI 812 Credit/Debit Adjustment: Complete Guide

How the EDI 812 Credit/Debit Adjustment works: BCD and CDD segments, reason codes, debit and credit examples, 812 vs 810, 820 and 844, and common errors.

The EDI 812 is how money moves after the invoice. When a buyer counts fewer units than you billed, pays a lower cost than you invoiced, or charges for a missed compliance rule, it can send an 812 debit memo instead of paying the 810 in full. When you owe the buyer, you send an 812 credit memo. Either way, the 812 is the itemized record of why the payment will not match the invoice.

This guide covers what the 812 carries, how a deduction moves through it, two live examples (a retailer debit and a supplier credit), every segment you will map, the reason codes that decide whether a deduction is worth disputing, and the errors that make 812s hard to reconcile.

What Is an EDI 812?

An EDI 812 is the Credit/Debit Adjustment transaction set defined by the ASC X12 standards body, used to notify a trading partner of an adjustment or billback against goods or services already invoiced, or to request one. It is the EDI version of a debit memo or a credit memo, and the X12 definition describes it as multi-directional: either trading partner can send it.

Authoritative references for 812 work:

  • The X12 transaction set catalog lists the 812 alongside the 810, 820 and 824 it works with
  • The Stedi X12 004010 reference for the 812 shows the full segment order, loops and usage, and its element 426 page lists every adjustment reason code
  • Each retailer or distributor publishes its own 812 implementation guide, which narrows the reason codes it uses, the references it sends, and how it expects disputes to be raised

Who sends it? Either side. Retailers and distributors send debit adjustments when they deduct from an invoice. Suppliers send credit adjustments when they owe the buyer money, for example for an authorized return.

When is it sent? After the 810 Invoice, when receiving, invoice matching or a compliance audit finds a difference. Some buyers send it before payment; others send it with or after the remittance.

Why does it matter? Every 812 debit is a short payment against an invoice in your receivables. If nobody reads it, cash application cannot match the payment to the invoice, valid deductions go unrecorded, and invalid ones go undisputed until the buyer's dispute window closes.

Debit, Credit and How the Money Moves

Three elements on the BCD header decide how an 812 should be booked:

ElementWhat it tells youExample
BCD05 Credit/Debit FlagC credit or D debitA retailer deduction is sent as a debit; a supplier refund as a credit
BCD03 Transaction Handling CodeWhat happens to the moneyO deduct from next remittance, L apply on account, H notification only
BCD04 AmountThe net amount of the whole adjustment107152 means $1,071.52, because the element carries two implied decimals

Each CDD line has its own credit/debit flag too, so a single 812 can net a debit on one line against a credit on another. The partner's guide says which direction convention it uses and which handling codes it accepts. Read it before you post the first 812 to your ledger.

How a Deduction Moves Through an 812

A typical retail deduction runs like this:

  1. You invoice. Your 810 bills the PO at the quantities and costs you shipped.
  2. The buyer matches. The retailer's accounts payable system compares the 810 with its receipt and its cost file, and its compliance team checks the shipment against the vendor guide.
  3. Differences become adjustment lines. Each difference gets a reason code, a quantity, a price and an amount: units not received, a cost above the agreed price, a missing ASN.
  4. The buyer sends the 812. The BCD names the invoice and PO, and the CDD loops list each adjustment.
  5. Payment arrives short. The buyer pays the invoice less the 812 total, usually with an 820 remittance advice that references the debit memo number.
  6. You reconcile or dispute. Your team matches the 812 to the invoice, the PO and the proof of delivery, accepts the valid lines and disputes the rest through the buyer's process.

Step 6 is where suppliers lose money. A deduction that sits unmatched in a remittance is easy to write off, and hard to recover once the dispute window has passed.

Interactive Example: Retailer Debit Memo (812, BCD05 D)

A retailer deducts $1,071.52 from invoice INV-88421. Line 1 contests 48 bath towels as not received (reason 06). Line 2 is a pricing error (reason 01): 120 mugs invoiced $0.45 above the $12.80 contract price. Line 3 is a flat $250.00 deduction because no ASN arrived (reason 70), referenced to the bill of lading. BCD03 is O: the amount will come off the next payment.

Use the Plain English tab for a readable summary, or click any segment to break it down element by element.

Live exampleRetailerEDI 812

Retailer 812 Debit Adjustment (Deduction)

A retailer's debit memo against invoice INV-88421: a contested quantity on one line (CDD01 06), a cost difference on another (CDD01 01, unit price difference against the contract price) and a flat deduction for a missing ASN (CDD01 70). BCD03 O means it will be deducted from the next payment

Document
812 Credit/Debit Adjustment
From / to
HARBORLANE → PINEHOLLOW
Segments
18
Interchange date
Nov 2, 2026

Raw EDI (X12)

1
ISA*00* *00* *ZZ*HARBORLANE *ZZ*PINEHOLLOW *261102*0930*U*00401*000000812*0*P*:~
2
GS*CD*HARBORLANE*PINEHOLLOW*20261102*0930*812*X*004010~
3
ST*812*0001~
4
BCD*20261102*DM-2026-0457*O*107152*D*20261020*INV-88421**20261005*4500229254~
5
N9*RV*RCV-55102~
6
PER*AP*DEDUCTIONS DESK*TE*6125550147~
7
DTM*050*20261018~
8
N1*BY*HARBOR LANE RETAIL*92*HLR01~
9
N1*SU*PINE HOLLOW HOME GOODS*92*V30130~
10
CDD*06*D**76752***48*EA**UCP*15.99~
11
LIN**UP*012345678905*VN*PH-TWL-BATH~
12
CDD*01*D**5400***120*EA*0.45*CON*12.80~
13
LIN**UP*098765432105*VN*PH-MUG-12~
14
CDD*70*D**25000~
15
N9*BM*BOL-7781203~
16
SE*14*0001~
17
GE*1*812~
18
IEA*1*000000812~

Human-Readable

Interchange

Sender ID(ZZ)HARBORLANE
Receiver ID(ZZ)PINEHOLLOW
Date261102
Time0930
Standards IDU
Version00401
Control Number000000812
Acknowledgment RequestedNo
UsageProduction
Included Groups (IEA01)1

Functional Group

Functional IDCDCD
SenderHARBORLANE
ReceiverPINEHOLLOW
Date20261102
Time0930
Control Number812
Agency CodeX
Version004010
Transactions1
Reported Transaction Count (GE01)1

Transaction 812

Credit/Debit Adjustment
Transaction Type812
Control Number0001
Segments, ST to SE14
Count in SE0114 (matches)

Segment Detail

BCDBeginning Credit/Debit Adjustment
BCD01Adjustment Date20261102
BCD02Credit/Debit Adjustment NumberDM-2026-0457
BCD03Transaction Handling CodeO
BCD04Amount107152
BCD05Credit/Debit Flag CodeD
BCD06Invoice Date20261020
BCD07Invoice NumberINV-88421
BCD09Purchase Order Date20261005
BCD10Purchase Order Number4500229254
N9Reference Identification
N901Reference Identification QualifierRV
N902Reference IdentificationRCV-55102
PERAdministrative Communications Contact
PER01Contact FunctionAP
PER02NameDEDUCTIONS DESK
PER03Comm QualifierTE
PER04Comm Number6125550147
DTMDate/Time Reference
DTM01Date Qualifier050
DTM02Date20261018
N1Party Identification
N101Entity CodeBY
N102NameHARBOR LANE RETAIL
N103ID Qualifier92
N104ID CodeHLR01
N1Party Identification
N101Entity CodeSU
N102NamePINE HOLLOW HOME GOODS
N103ID Qualifier92
N104ID CodeV30130
CDDCredit/Debit Adjustment Detail
CDD01Adjustment Reason Code06
CDD02Credit/Debit Flag CodeD
CDD04Amount76752
CDD07Credit/Debit Quantity48
CDD08Unit of MeasureEA
CDD10Price Identifier CodeUCP
CDD11Unit Price15.99
LINItem Identification
LIN02ID QualifierUP
LIN03Product ID012345678905
LIN04ID QualifierVN
LIN05Product IDPH-TWL-BATH
CDDCredit/Debit Adjustment Detail
CDD01Adjustment Reason Code01
CDD02Credit/Debit Flag CodeD
CDD04Amount5400
CDD07Credit/Debit Quantity120
CDD08Unit of MeasureEA
CDD09Unit Price Difference0.45
CDD10Price Identifier CodeCON
CDD11Unit Price12.80
LINItem Identification
LIN02ID QualifierUP
LIN03Product ID098765432105
LIN04ID QualifierVN
LIN05Product IDPH-MUG-12
CDDCredit/Debit Adjustment Detail
CDD01Adjustment Reason Code70
CDD02Credit/Debit Flag CodeD
CDD04Amount25000
N9Reference Identification
N901Reference Identification QualifierBM
N902Reference IdentificationBOL-7781203
1 functional group1 transactionControl #000000812Valid

Interactive Example: Supplier Credit Memo (812, BCD05 C)

The supplier sends the opposite direction. The retailer returned 12 desk lamps under a returned goods authorization, so the supplier issues a $215.40 credit (BCD05 C) to be applied on account (BCD03 L). The CDD line uses reason 72 (authorized return) and sets CDD05 to Y to mark it as returned goods.

Live exampleSupplierEDI 812

Supplier 812 Credit Memo for an Authorized Return

The supplier credits the retailer for 12 returned lamps under a returned goods authorization: BCD05 C (credit), BCD03 L (apply on account), CDD01 72 authorized return with CDD05 Y marking returned goods

Document
812 Credit/Debit Adjustment
From / to
PINEHOLLOW → HARBORLANE
Segments
12
Interchange date
Nov 4, 2026

Raw EDI (X12)

1
ISA*00* *00* *ZZ*PINEHOLLOW *ZZ*HARBORLANE *261104*1415*U*00401*000000813*0*P*:~
2
GS*CD*PINEHOLLOW*HARBORLANE*20261104*1415*813*X*004010~
3
ST*812*0001~
4
BCD*20261104*CM-2026-0112*L*21540*C*20261020*INV-88421**20261005*4500229254~
5
N9*RZ*RGA-30412~
6
N1*BY*HARBOR LANE RETAIL*92*HLR01~
7
N1*SU*PINE HOLLOW HOME GOODS*92*V30130~
8
CDD*72*C**21540*Y**12*EA**UCP*17.95~
9
LIN**UP*112233445562*VN*PH-LAMP-DSK~
10
SE*8*0001~
11
GE*1*813~
12
IEA*1*000000813~

Human-Readable

Interchange

Sender ID(ZZ)PINEHOLLOW
Receiver ID(ZZ)HARBORLANE
Date261104
Time1415
Standards IDU
Version00401
Control Number000000813
Acknowledgment RequestedNo
UsageProduction
Included Groups (IEA01)1

Functional Group

Functional IDCDCD
SenderPINEHOLLOW
ReceiverHARBORLANE
Date20261104
Time1415
Control Number813
Agency CodeX
Version004010
Transactions1
Reported Transaction Count (GE01)1

Transaction 812

Credit/Debit Adjustment
Transaction Type812
Control Number0001
Segments, ST to SE8
Count in SE018 (matches)

Segment Detail

BCDBeginning Credit/Debit Adjustment
BCD01Adjustment Date20261104
BCD02Credit/Debit Adjustment NumberCM-2026-0112
BCD03Transaction Handling CodeL
BCD04Amount21540
BCD05Credit/Debit Flag CodeC
BCD06Invoice Date20261020
BCD07Invoice NumberINV-88421
BCD09Purchase Order Date20261005
BCD10Purchase Order Number4500229254
N9Reference Identification
N901Reference Identification QualifierRZ
N902Reference IdentificationRGA-30412
N1Party Identification
N101Entity CodeBY
N102NameHARBOR LANE RETAIL
N103ID Qualifier92
N104ID CodeHLR01
N1Party Identification
N101Entity CodeSU
N102NamePINE HOLLOW HOME GOODS
N103ID Qualifier92
N104ID CodeV30130
CDDCredit/Debit Adjustment Detail
CDD01Adjustment Reason Code72
CDD02Credit/Debit Flag CodeC
CDD04Amount21540
CDD05Returned Goods (Y/N)Y
CDD07Credit/Debit Quantity12
CDD08Unit of MeasureEA
CDD10Price Identifier CodeUCP
CDD11Unit Price17.95
LINItem Identification
LIN02ID QualifierUP
LIN03Product ID112233445562
LIN04ID QualifierVN
LIN05Product IDPH-LAMP-DSK
1 functional group1 transactionControl #000000813Valid

812 Structure at a Glance

The 004010 812 has a header with a mandatory party loop, an optional detail loop per adjustment, and no summary segments beyond SE.

AreaSegmentNameUsageNotes
HeaderSTTransaction Set HeaderMandatoryST01 = 812
HeaderBCDBeginning Credit/Debit AdjustmentMandatoryDate, memo number, handling, amount, flag, invoice and PO
HeaderCURCurrencyOptionalWhen not in US dollars
HeaderN9Reference IdentificationOptional, repeatsReceiving number, bill of lading, other references
HeaderPERAdministrative ContactOptionalWho to contact about the adjustment
HeaderDTMDate/Time ReferenceOptionalDates such as when goods were received
HeaderSACAllowance or ChargeOptionalHeader-level allowances or charges
N1 loopN1 to N4, N9, PERParty identificationMandatory loopBuyer, supplier, bill-to, remit-to
CDD loopCDDCredit/Debit Adjustment DetailOptional, repeatsOne per adjustment: reason, flag, amount, quantity, prices
CDD loopLINItem IdentificationOptionalThe item the line adjusts
CDD loopPO4Item Physical DetailsOptionalPack and size, when relevant to the adjustment
CDD loopSACAllowance or ChargeOptionalLine-level allowance or charge detail
CDD loopN9, DTMReference, DateOptionalLine references such as a bill of lading or RGA number
CDD loopN11 loopStore NumberOptionalStore-level split of the adjustment
TrailerSETransaction Set TrailerMandatorySegment count and control number

Two things often surprise people coming from the 810. The 004010 812 has no REF segment in its header (references go in N9 or in the BCD itself), and it has no TDS-style total segment: the total is BCD04. Partner guides built on other X12 releases can differ, so map from the version in your partner's guide.

Key Segments Explained

BCD: Beginning Credit/Debit Adjustment

BCD*20261102*DM-2026-0457*O*107152*D*20261020*INV-88421**20261005*4500229254~
ElementNameExampleWhat it means
BCD01Date20261102Date of the adjustment
BCD02Credit/Debit Adjustment NumberDM-2026-0457The memo number. The remittance will reference it
BCD03Transaction Handling CodeOWhat happens to the money (see below)
BCD04Amount107152Net amount of the adjustment, two implied decimals ($1,071.52)
BCD05Credit/Debit Flag CodeDC credit, D debit
BCD06Date20261020Invoice date
BCD07Invoice NumberINV-88421The invoice being adjusted
BCD08Vendor Order NumberYour sales order number, when the buyer has it
BCD09Date20261005Purchase order date
BCD10Purchase Order Number4500229254The buyer's PO
BCD11Transaction Set Purpose CodeOptional. Limited to 00, 05, 06, 07 and 15 in 004010
BCD13, BCD14Reference Qualifier and NumberAnother reference, used when the invoice or PO number is not in BCD07 or BCD10

At least one of BCD07, BCD10 or BCD14 must be present, so every 812 points back to an invoice, a PO or another document.

Common BCD03 handling codes:

CodeMeaning
AOff invoice (deduction from the original invoice)
HNotification only
JPayment requested (adjustment to account)
KReimbursement to follow
LApply on account
ODeduct from next remittance
TAdjustment requested

The code list for element 305 has more values. Your partner's guide names the ones it sends.

CDD: Credit/Debit Adjustment Detail

Each CDD opens one adjustment line.

CDD*01*D**5400***120*EA*0.45*CON*12.80~
ElementNameExampleWhat it means
CDD01Adjustment Reason Code01Why the line exists. 01 = pricing error
CDD02Credit/Debit Flag CodeDDirection of this line
CDD03Assigned IdentificationOptional line number
CDD04Amount5400Line amount, two implied decimals ($54.00)
CDD05Yes/No ConditionY when the adjustment is for returned goods
CDD06Price Bracket IdentifierRarely used
CDD07Credit/Debit Quantity120Units affected
CDD08Unit of MeasureEAUnit for that quantity
CDD09Unit Price Difference0.45Difference per unit, for price adjustments
CDD10Price Identifier CodeCONWhat kind of price follows. CON = contract price, UCP = unit cost price
CDD11Unit Price12.80The price the buyer applied
CDD12, CDD13Price Identifier and Unit PriceA second price, for comparison pricing

The syntax rules matter when you build or validate one. A CDD needs an amount (CDD04) or a quantity (CDD07). A quantity needs its unit (CDD08) and a unit price (CDD11), and a unit price needs its price identifier (CDD10).

Adjustment Reason Codes (CDD01)

Element 426 has several hundred codes, many of them for insurance or freight. These are the ones that show up most on retail and distribution 812s:

CodeMeaningTypical cause
01Pricing ErrorInvoice cost above the buyer's cost file or contract
02Allowance/Charge ErrorAllowance missing or charge not agreed
03Extension ErrorQuantity times price does not equal the line amount
04Item Not Accepted, DamagedGoods refused or written off as damaged
06Quantity ContestedFewer units received than invoiced
07Incorrect ProductWrong item shipped
19Duplicate BillingThe same goods invoiced twice
54Freight DeductedFreight taken off the payment
59Item Not ReceivedLine on the invoice never arrived
70Advanced Ship Notice Not ReceivedNo 856 before the shipment arrived
72Authorized ReturnCredit for goods returned with authorization
99Late Shipment of GoodsShipped outside the PO window
A5OverageMore received than ordered
A6Packing ViolationsCartons or labels not to the vendor guide
L3PenaltyA penalty the partner's guide defines

Partners use different codes for the same problem, and some send mutually defined codes. The reason code is a starting point for the dispute, not the whole story: the proof is in your bill of lading, proof of delivery, ASN and price agreement.

LIN, N9 and N1

LIN inside a CDD loop identifies the item, with the same qualifier pairs as the 810 (UP for UPC, VN for vendor item number, IN for buyer item number). N9 carries references: RV receiving number, BM bill of lading, RZ returned goods authorization, IV invoice. The N1 loop is mandatory in the 004010 812 and usually names the buyer and supplier, sometimes with a remit-to or bill-to.

EDI 812 vs 810, 820, 824 and 844

DocumentSent byPurposeRelationship to the 812
810 InvoiceSupplierBills for goods shippedThe document the 812 adjusts
812 Credit/Debit AdjustmentEither partyItemizes a credit or debit against an invoice
820 Payment Order/RemittanceBuyerSays what was paid and what was deductedOften references the 812 memo number in its adjustment detail
824 Application AdviceEither partyAccepts or rejects a document for business reasonsRejects an invoice outright; the 812 adjusts one that was accepted
844 Product Transfer Account AdjustmentDistributorClaims contract chargebacks against a manufacturerA separate process for contract pricing support, answered by an 849
997 Functional AcknowledgmentReceiverConfirms the 812 arrived and was valid X12Says nothing about whether the adjustment is accepted

The short version: the 810 bills, the 812 adjusts, the 820 pays. Contract pricing claims between distributors and manufacturers run on the 844 and 849 instead, often against prices set on an 845 Price Authorization.

Where the 812 Sits in the Order Lifecycle

  1. 850 Purchase Order: the buyer orders at an agreed cost
  2. 855 Purchase Order Acknowledgment: you confirm quantities, prices and dates
  3. 856 Ship Notice/ASN: you describe what shipped
  4. 810 Invoice: you bill
  5. 812 Credit/Debit Adjustment: the buyer debits, or you credit, against that invoice
  6. 820 Remittance: the buyer pays the invoice net of the adjustment

Most debit reasons trace back to an earlier document: a cost on the 850 that never reached your price list, an 856 that went out late or not at all, a quantity on the 810 that did not match what shipped. Clean upstream documents are the cheapest way to get fewer 812s.

Common 812 Errors and How to Prevent Them

ErrorWhat happensPrevention
Implied decimal misread in BCD04 or CDD04$1,071.52 posted as $107,152Treat element 610 amounts as two implied decimals unless the partner's guide says otherwise
Lines do not add up to BCD04Cash application cannot balance the memoSum the CDD amounts by flag and compare to the header on receipt
No invoice referenceDeduction cannot be matched to an open itemRequire BCD07 or an N9*IV; chase the buyer when it is missing
Debit and credit direction misreadCredits booked as deductions, or the reverseMap BCD05 and CDD02 explicitly; do not infer from the sign of the amount
Reason code mapped to "other"Disputes and root-cause reports lose their detailKeep the raw CDD01 code alongside your internal reason
812 never matched to the 820Short payment sits unappliedMatch on the memo number in BCD02 when the remittance arrives
Dispute window missedInvalid deductions become permanentLog every 812 on receipt with the buyer's dispute deadline

For the wider picture on retail deductions, see EDI chargebacks and our glossary entry on retail chargebacks.

812 Implementation Checklist

Before you take 812s from a new partner:

  • Get its 812 guide, and confirm the X12 version it uses
  • Confirm the BCD05 direction convention and the BCD03 handling codes it sends
  • Get its list of CDD01 reason codes and what proof it accepts for each
  • Confirm whether amounts use implied decimals (107152) as element 610 defines
  • Confirm which references it sends: invoice, PO, receiving number, bill of lading
  • Map the memo number so it can be matched to the 820 remittance
  • Agree how disputes are raised and the window for raising them
  • Test with a debit, a credit and a multi-line memo before going live

To check a file before you map it, paste it into the free EDI inspector, or use the EDI remittance reader for the 820 that follows it.

Handling 812s With OrderSync

Most deductions are the last link in a chain that starts with the order: a PO keyed with the wrong cost, a unit of measure mixed up, a ship-to that did not match. OrderSync works at the start of that chain. It reads incoming orders in any format, from EDI 850s and 875s to emails, PDFs and spreadsheets, matches customers, items and units to your catalog, and outputs valid X12 or clean data for your ERP.

For the 812 itself, paste any file into the free EDI inspector to see it parsed segment by segment with a plain-English summary of every adjustment line. If you are weighing how much of your EDI needs to touch the ERP, see EDI without ERP integration, or book a 15-minute walkthrough to see your own orders processed.

Frequently Asked Questions

What is the difference between EDI 812 and EDI 810?

The 810 is the invoice that bills for goods shipped. The 812 is the adjustment against that invoice: a debit the buyer applies for a shortage, price difference or compliance failure, or a credit the supplier issues. The 812 points back to the 810 through the invoice number in BCD07.

Is an EDI 812 the same as a chargeback?

A chargeback is one common type of 812. The 812 carries any credit or debit adjustment, including shortages, damages, pricing errors, and compliance penalties. Retail compliance chargebacks are often delivered as 812 debit adjustments. Distributor contract chargebacks, where a distributor claims back the difference between its cost and a contract price, use a different document: the EDI 844 Product Transfer Account Adjustment.

What does the BCD segment contain in an EDI 812?

BCD is the 812 header. It carries the adjustment date, the memo number, a transaction handling code saying what happens to the money, the net amount with two implied decimals, the credit or debit flag, and the invoice and purchase order the adjustment applies to.

What are EDI 812 adjustment reason codes?

They are the codes in CDD01, from X12 element 426, that say why each line exists. Common ones are 01 pricing error, 06 quantity contested, 04 item not accepted as damaged, 59 item not received, 70 advance ship notice not received and 72 authorized return. Each partner's guide lists the codes it uses.

How do I dispute an invalid 812 deduction?

Match each CDD line to its reason code and to the original 810, PO, bill of lading and proof of delivery. Accept the valid lines and send the buyer your evidence for the rest through the dispute process in its vendor guide, before its dispute window closes.

Does the 812 replace the 820 remittance advice?

No. The 812 itemizes the adjustment; the 820 reports the payment. A buyer that deducts usually sends both, and the 820 references the 812 memo number so you can match the short payment to the debit.

Does the 812 flow back into an ERP?

It can. Each 812 becomes a credit or debit memo against an open invoice in accounts receivable, coded by reason. Whether you post it automatically or review it first depends on your volume and how often the deductions are wrong.

James Darby
Last updated: 11/4/2026

Related Resources