EDI 812 EDI TransactionPublished Jun 22, 2026 · Updated Aug 4, 2026

EDI 812 Credit/Debit Adjustment: Complete Guide

How the EDI 812 Credit/Debit Adjustment works: deductions and chargebacks, key segments (BCD, CDD, AMT), reason codes, a real example, and how to reconcile 812s against your 810 and 850.

The EDI 812 is how money gets clawed back after the invoice. When a buyer receives less than they ordered, finds a price that does not match the agreement, or charges a compliance penalty, they send an 812 Credit/Debit Adjustment instead of paying the 810 in full. For suppliers, an unread or unreconciled 812 is revenue that quietly disappears.

This guide explains what the 812 carries, the segments you will work with, the reason codes that drive deductions, a real example you can open in our renderer, and how to match each adjustment back to its original invoice and purchase order.

What Is an EDI 812?

An EDI 812 is the Credit/Debit Adjustment transaction defined by the ASC X12 standards body, used to notify a trading partner of a financial adjustment against a prior invoice, such as a deduction for a shortage, damage, pricing error, or compliance chargeback. It is the EDI equivalent of a credit memo or a debit note, sent so both sides can reconcile what is actually owed.

Authoritative references for 812 implementation:

  • The X12.org Transaction Sets reference defines the BCD, CDD, and AMT segment structure used in 812 implementations
  • Retailer and distributor compliance guides specify the deduction reason codes and documentation each partner uses, which extend the base spec

Who sends it? Either side. A buyer sends a debit adjustment to short-pay an invoice; a supplier sends a credit adjustment to issue a credit.

When is it sent? After an 810 Invoice, usually during the payment and reconciliation cycle when a discrepancy is found.

Why does it matter? Deductions are one of the largest sources of silent margin loss for suppliers. Without systematic 812 reconciliation, invalid chargebacks go undisputed and valid ones go unrecorded, so the cash applied never matches the books.

Debit vs Credit, and Why Reason Codes Matter

The 812 carries a handful of facts that decide how it should be booked:

  • Direction. A debit adjustment reduces what the buyer will pay. A credit adjustment is money the supplier owes back. The BCD segment carries this along with the adjustment amount.
  • Reason. Each adjustment line carries a reason code: shortage, damaged goods, price discrepancy, unauthorized substitution, late shipment, or a compliance penalty. The reason code is what lets you decide whether the deduction is valid or worth disputing.
  • References. A well-formed 812 points back to the original 810 invoice and the original 850 purchase order, so you can match the deduction to the exact line it came from.

Key Segments Explained

Here are the segments you will work with in an 812 transaction set:

SegmentNamePurpose
STTransaction Set HeaderIdentifies the start of the 812 and assigns a control number
BCDBeginning Credit/Debit AdjustmentAdjustment date, number, debit or credit flag, total amount, and the invoice it adjusts
REFReference IdentificationCarries the original invoice (IV) and purchase order (PO) numbers for matching
N1NameIdentifies the parties: bill-to (BT) and supplier (SU)
CDDCredit/Debit Adjustment DetailOne per adjustment line: reason code, quantity, unit price, and the adjustment amount
AMTMonetary AmountSummary amounts, including the total adjustment
SETransaction Set TrailerCloses the transaction and counts the segments

A Real EDI 812 Example

The example below is an inbound 812 from a distributor that is deducting for both a short shipment and a price discrepancy, each referencing the original 810 invoice and 850 purchase order. Open it in the renderer to see the parsed structure and plain-English view.

Live exampleDistributorEDI 812

Distributor 812 Credit/Debit Adjustment

Inbound 812 deducting for a short shipment and a price discrepancy against a prior 810 invoice, with reason codes and the original PO reference

Transaction Type
812 Credit/Debit Adjustment
Trading Partners
DISTRIBUTOR → SUPPLIER30130
Segments
16 segments
Validation
All checks passed
/ search navigateesc close

Raw EDI (X12)

1
ISA*00* *00* *ZZ*DISTRIBUTOR *ZZ*SUPPLIER30130 *260615*0930*U*00401*000000041*0*P*:~
2
GS*CD*DISTRIBUTOR*SUPPLIER30130*20260615*0930*41*X*004010~
3
ST*812*0041~
4
BCD*20260615*ADJ-2026-3391*DR*4326.70*C*20260601*INV-88421*CR~
5
REF*IV*INV-88421~
6
REF*PO*4500229254~
7
N1*BT*DISTRIBUTOR HOLDINGS*92*DIST001~
8
N1*SU*SUPPLIER INDUSTRIES INC*92*30130~
9
CDD*D2*01**D7*48*EA**15.99*767.52~
10
REF*PO*4500229254~
11
CDD*D9*60**D8***892.18~
12
REF*IV*INV-88421~
13
AMT*TP*4326.70~
14
SE*12*0041~
15
GE*1*41~
16
IEA*1*000000041~

Human-Readable

Interchange

Sender ID(ZZ)DISTRIBUTOR
Receiver ID(ZZ)SUPPLIER30130
Date260615
Time0930
Standards IDU
Version00401
Control Number000000041
Acknowledgment RequestedNo
UsageProduction
Included Groups (IEA01)1

Functional Group

Functional IDCDCD
SenderDISTRIBUTOR
ReceiverSUPPLIER30130
Date20260615
Time0930
Control Number41
Agency CodeX
Version004010
Transactions1
Reported Transaction Count (GE01)1

Transaction 812

Credit/Debit Adjustment
Transaction Type812
Control Number0041
Segments10
Reported Segment Count (SE01)12

Segment Detail

BCD
BCD0120260615
BCD02ADJ-2026-3391
BCD03DR
BCD044326.70
BCD05C
BCD0620260601
BCD07INV-88421
BCD08CR
REFReference Identification
REF01QualifierIV
REF02Reference IDINV-88421
REFReference Identification
REF01QualifierPO
REF02Reference ID4500229254
N1Party Identification
N101Entity CodeBT
N102NameDISTRIBUTOR HOLDINGS
N103ID Qualifier92
N104ID CodeDIST001
N1Party Identification
N101Entity CodeSU
N102NameSUPPLIER INDUSTRIES INC
N103ID Qualifier92
N104ID Code30130
CDD
CDD01D2
CDD0201
CDD04D7
CDD0548
CDD06EA
CDD0815.99
CDD09767.52
REFReference Identification
REF01QualifierPO
REF02Reference ID4500229254
CDD
CDD01D9
CDD0260
CDD04D8
CDD07892.18
REFReference Identification
REF01QualifierIV
REF02Reference IDINV-88421
AMTMonetary Amount Identification
AMT01Amount QualifierTP
AMT02Amount4326.70
1 functional group1 transactionControl #000000041Valid

Where the 812 Sits in the Order Lifecycle

The 812 lands at the end of the cycle, against documents you have already sent:

  1. 850 Purchase Order - Buyer orders
  2. 855 Purchase Order Acknowledgment - Supplier confirms
  3. 856 Ship Notice / ASN - Supplier ships
  4. 810 Invoice - Supplier bills
  5. 812 Credit/Debit Adjustment - Buyer deducts or supplier credits against that invoice

Because the 812 references the 810 and 850, clean upstream documents make downstream deductions far easier to validate or dispute.

How to Reconcile 812s Without an ERP

Deduction management is usually framed as an ERP or accounting-system problem, which leaves smaller suppliers either paying for integration they do not want or eating chargebacks by hand. There is a lighter path.

OrderSync ingests inbound 812s (and arbitrary-format deduction notices like PDF debit memos and emailed remittance detail), matches each adjustment to the original 810 invoice and 850 purchase order, and flags discrepancies for review so nothing slips through. The output is valid X12 that drops into the EDI client or folder your trading partner already polls, with no ERP read or write required to start.

See EDI without ERP integration for the full approach, or try the free EDI inspector to upload one of your own 812s and see it parsed.

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 deduction (debit) the buyer applies for a discrepancy, or a credit the supplier issues. The 812 references the 810 it adjusts.

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 and distribution chargebacks are typically delivered as 812 debit adjustments.

How do I dispute an invalid 812 deduction?

Match the adjustment to its reason code and the original 810 and 850, confirm whether the deduction is valid, and respond to the trading partner with documentation. Systematic matching is what makes disputes fast; OrderSync surfaces each adjustment with its source references attached.

Can a supplier process an 812 without an ERP?

Yes. An 812 can be parsed, matched to its source invoice and PO, and reviewed without writing into an ERP. OrderSync reads 812s and other formats, reconciles them, and outputs valid X12 to your existing EDI client.

James Darby
Last updated: 8/4/2026

Related Resources