The 810 invoice is where EDI stops being an integration exercise and starts being about money. It's also where small format misunderstandings turn into deductions, short-pays, and quarter-end arguments.
ST*810*0001~
BIG*20260801*INV-88214*20260715*4500123456~
N1*BT*ACME DISTRIBUTION*92*0042~
N1*RE*SUPPLIER CO*92*VEND-991~
ITD*01*3*2**10**30~
DTM*011*20260801~
IT1*1*48*CA*18.5000**UP*012345678905~
PID*F****STAINLESS CLEANER 32OZ~
IT1*2*12*CA*24.7500**UP*012345678912~
SAC*C*D240***4500~
TDS*137700~
CTT*2~
SE*13*0001~
BIG*20260801*INV-88214*20260715*4500123456~
BIG01 = 20260801 — invoice date.BIG02 = INV-88214 — your invoice number.BIG03 = 20260715 — the purchase order date.BIG04 = 4500123456 — the PO number this invoices against.Note the ordering: invoice date, invoice number, then PO date, PO number. Reversing the two pairs is a common mapper bug, and it produces an invoice that references itself and matches nothing.
ITD*01*3*2**10**30~
This encodes 2% 10 net 30: a 2 percent discount if paid within 10 days, otherwise the full amount at 30 days. ITD03 is the discount percent, ITD05 the discount days, ITD07 the net days.
Terms mismatches between the 850 and the 810 are one of the most common causes of automated short-pay. If the buyer's PO said net 45 and your invoice says net 30, some AP systems simply pay on their own terms and deduct.
TDS*137700~
That is $1,377.00, not $137,700.
TDS01 carries an implied two-decimal place. There is no decimal point in the data. A mapper that writes 1377.00 into TDS01 is stating an invoice total of $13.77, and a mapper that writes 137700.00 is claiming $1,377,000.00.
This is the single highest-consequence formatting rule in the 810, and it is invisible when reading raw text — the number looks plausible either way.
SAC*C*D240***4500~
SAC01 = C — this is a charge. A would be an allowance (a deduction), N neither.SAC02 = D240 — the code identifying it. D240 is freight.SAC05 = 4500 — the amount, also implied two decimals: $45.00.Getting SAC01 backwards flips a $45 freight charge into a $45 credit. The invoice remains perfectly valid X12 and simply arrives wrong.
The 810's line item segment is IT1, not PO1. The element layout is deliberately parallel — quantity, unit of measure, unit price, then product ID qualifier/value pairs — which makes it easy to map from the original order.
Quantities should match what actually shipped, not what was ordered. Invoicing the ordered quantity when you shipped short is a reliable way to generate a deduction.
TDS01 equals the sum of extended line amounts plus charges minus allowances — in implied-decimal form.CTT01 equals the number of IT1 segments.BIG04 matches a real PO number from a BEG03 you received.ITD match the terms on the order.SE01 counts every segment from ST through SE.Related: the 850 this invoice answers.