EDI 810: Invoice

The EDI 810 is the X12 invoice. A supplier sends it to the buyer after goods ship, to request payment for what actually shipped. It carries the invoice number, the PO it bills, line items with quantities and prices, terms, allowances and charges, and the total. The buyer's accounts payable matches it against the 850 and the receipt, then pays, often with an 820 that lists any deductions.

Request a 30-minute call

Reviewed against X12 4010 and 5010

The 810 at a glance

Code
X12 810
Name
Invoice
Sent by
Supplier
Sent to
Buyer's accounts payable
When
After the goods ship, and after the ASN when the partner requires one. One invoice per shipment or per PO, as the partner's guide says.
Responds to
850 Purchase Order, 856 Ship Notice/Manifest (ASN)
Acknowledged with
997 Functional Acknowledgment
Related documents
850 Purchase Order, 855 Purchase Order Acknowledgment, 856 Ship Notice/Manifest (ASN), 820 Payment Order/Remittance Advice
EDIFACT equivalent
INVOIC

Where does the 810 sit in the cycle?

BuyerSupplier850Purchase order855Acknowledgment856Ship notice810Invoice820RemittanceBuyerSupplier850 Purchase order855 Acknowledgment856 Ship notice810 Invoice820 Remittance
Each document is usually answered by a 997 functional acknowledgment, which only confirms it arrived and parsed.

Which segments does an 810 use?

The standard column is what X12 itself requires. Your trading partner's implementation guide will require more, and it wins.

SegmentNameStandardWhat goes in it
STTransaction set headerMandatoryStarts the invoice and gives it a control number that the SE repeats.
BIGBeginning segment for invoiceMandatoryInvoice date and number, PO date and number, and on some partners a code that marks a credit or debit memo.
NTENote/special instructionOptionalFree text. Most partners ignore it.
CURCurrencyOptionalOnly when the invoice is not in the currency both sides assume.
REFReference identificationOptionalVendor number, bill of lading, department, and sometimes the ASN's shipment ID if the buyer matches on it.
N1Name (party)OptionalRemit-to, bill-to, ship-to, by codes the buyer assigned. The loop is optional in the standard; remit-to and ship-to are required by most guides.
ITDTerms of saleOptionalBasis date, discount percent and days, net days. Should match the terms on the PO.
DTMDate/time referenceOptionalShip date, the one most guides ask for.
FOBF.O.B. related instructionsOptionalFreight terms. Use it only when they differ from the PO, or the partner asks.
IT1Baseline item data (invoice)OptionalOne per line: quantity invoiced, unit, unit price and item IDs. Optional in the standard because an 810 can bill services; merchandise invoices always use it.
PIDProduct/item descriptionOptionalFree-text description.
SACService, promotion, allowance or chargeOptionalFreight, handling or allowances, at the line or invoice level, using the partner's codes.
TXITax informationOptionalSales or other tax, when the buyer is not exempt.
TDSTotal monetary value summaryMandatoryInvoice total with two implied decimals: 57660 means 576.60. It must equal the lines plus charges, minus allowances.
CADCarrier detailOptionalCarrier and routing, when the partner wants it on the invoice.
ISSInvoice shipment summaryOptionalTotal units and weight shipped.
CTTTransaction totalsOptionalNumber of IT1 lines.
SETransaction set trailerMandatorySegment count from ST to SE, and the same control number as the ST.

4010 or 5010?

The 810 keeps its shape between 4010 and 5010. 5010 adds a CRC condition indicator to the heading, gives the TXI under each SAC a small loop of its own with a date, and renames segments such as N1 (Party Identification) and REF (Reference Information). TDS is mandatory in both releases and the IT1 loop is optional in both. Partner guides differ more than the releases: some want the ISS, some refuse an invoice without the ASN shipment ID.

What does an 810 look like?

Sample with made-up data. X12 4010. Every company, number and address is invented.

  1. ISA*00* *00* *ZZ*NORTHFORK *ZZ*BASINHW *261014*1610*U*00401*000003001*0*P*>~

    Interchange envelope from the supplier, sent 40 minutes after the ASN. Order matters: many buyers hold an invoice that arrives before its ASN.

  2. GS*IN*NORTHFORK*BASINHW*20261014*1610*3001*X*004010~

    IN marks a group of invoices.

  3. ST*810*0001~

    Start of one invoice.

  4. BIG*20261014*NF-INV-30418*20261008*BH2026-04417~

    Invoice date, invoice number, PO date and PO number. The invoice number must never repeat for this buyer.

  5. REF*BM*NF-BOL-50931~

    The bill of lading from the ASN, so accounts payable can tie the invoice to the receipt.

  6. N1*RE*Northfork Tool Co*92*NF01~

    Remit-to party: where the money goes, under the vendor code the buyer assigned.

  7. N3*PO Box 9999~

    Remit-to address.

  8. N4*Logan*UT*84321~

    Remit-to city, state and ZIP.

  9. N1*ST*Basin Hardware DC 2*92*0002~

    Ship-to, the same 0002 as the PO and the ASN.

  10. ITD*01*3*2**10**30~

    Terms: 2% off if paid within 10 days of the invoice date, net due in 30.

  11. DTM*011*20261014~

    Ship date.

  12. IT1*1*24*EA*18.4**UP*614141000012*VN*NT-FH20~

    Line 1: 24 hammers at $18.40, the quantity shipped and the price from the PO.

  13. PID*F****Framing hammer, 20 oz~

    Description for line 1.

  14. IT1*2*12*EA*11.25**UP*614141000029*VN*NT-PB24~

    Line 2: 12 pry bars at $11.25.

  15. PID*F****Pry bar, 24 in~

    Description for line 2.

  16. TDS*57660~

    Invoice total with an implied decimal: 57660 means $576.60, which is 441.60 plus 135.00.

  17. CTT*2~

    Two invoice lines.

  18. SE*16*0001~

    16 segments from ST to SE.

  19. GE*1*3001~

    One invoice in group 3001.

  20. IEA*1*000003001~

    End of the interchange.

Why do buyers reject an 810?

An 810 is checked twice. The translator checks syntax and sends back a 997. Then accounts payable matches the invoice against the PO and the receipt, and that is where most invoices stall. A failed match rarely produces an error file. It produces a late payment or a deduction.

Problem What happens Fix
The price is not the PO price Held, or paid at the PO price with the difference deducted Invoice at the PO price unless the 855 or a written change agreed otherwise. Fix the price list, not the invoice
More invoiced than received Short payment, often with a deduction on the 820 or an 812 Invoice what the ASN says shipped, never what was ordered
The invoice arrives before the ASN, or without one Held until the receipt posts, sometimes rejected Send the 810 after the 856, built from the same shipment record
The PO number is missing or mistyped No match, so the invoice drops into a manual queue Take the PO number from the sales order’s customer PO field. Never retype it
An invoice number repeats Rejected as a duplicate, or paid twice and clawed back later One numbering sequence per company, and a separate one for credit memos
TDS does not equal lines plus charges Rejected on validation Compute the total from the same rounded line amounts you send, and remember the two implied decimals
Charges the PO did not allow Freight or handling deducted Bill charges only when the PO terms or FOB allow them, using the partner’s SAC codes
Wrong remit-to or vendor number Payment delayed or sent to the wrong place Send both exactly as the partner set you up, and update them when your bank details change

Where does the 810 data come from in your ERP?

Segment Usually comes from The usual gap
BIG The invoice record and the sales order’s customer PO The PO number lives in a note field, or invoices and credit memos share one number range
REF Vendor number, bill of lading and department from the order The department was never stored when the 850 loaded
N1 remit-to, ship-to Company record and the order’s ship-to code The remit-to is set up per partner in the EDI tool and forgotten when the bank changes
ITD Payment terms record Terms stored as text (“2% 10, net 30”) instead of the separate values the ITD needs
IT1 Invoice lines: shipped quantity, price, item The ERP holds its own item number; the partner wants its own number or the UPC back
SAC Freight and other charge lines Freight entered as an item line instead of a charge
TDS Invoice total Rounding: the ERP prices at four decimals, the invoice at two

How do you get 810s working?

Route Fits when Watch out for
Managed EDI provider or VAN with a web portal One or two partners, low volume, nobody in house to own maps Invoices are retyped from the ERP. Every retyped price and quantity is a chance to fail the buyer’s match
Managed EDI or an iPaaS connector wired to your ERP Your ERP has a supported connector and your partners are large retailers with ready-made maps The connector sends what the invoice record holds. If the PO number, line references or partner item IDs were dropped when the 850 loaded, they are missing here too
An in-house translator Many partners, high volume, or an ERP that no connector supports You own the maps, the AS2 certificates, the monitoring, and whoever gets called when a 810 fails at night

The 810 is usually the quickest of the three to build once the 850 and 856 are right, because it reuses their data. When it is the only document a partner asks for (some want invoices and nothing else), check first that your ERP keeps the customer PO number and line references. Wiring that through is the ERP and EDI integration work we do.

Questions about the 810

Does the 810 replace the paper invoice?

For a partner that has you on EDI, usually yes. The 810 is the invoice of record, and paper copies are often refused or ignored. The vendor agreement says so explicitly.

How do I send a credit memo by EDI?

Many partners accept an 810 flagged as a credit memo by a transaction type code in the BIG segment. Others want credits on an 812, or do not accept supplier credits at all and take deductions instead. The guide decides.

My 810 got a 997. Does that mean it was approved?

No. The 997 means the file arrived and parsed. Approval, holds and deductions show up later, on an 820 remittance, an 812, or the partner's supplier portal.

Why does the TDS have no decimal point?

TDS is a numeric field with two implied decimal places, so 57660 means 576.60. Sending 576.60 is a syntax error, and it is one of the most common mistakes on a first 810.

One invoice per shipment or one per PO?

The partner's guide decides. Many retail guides want one invoice per PO per shipment, so a PO that ships in two loads gets two invoices, each matching its own ASN.

Further reading

New trading partner asking for the 810?

Send us their implementation guide. We will tell you what your ERP already holds, what is missing, and the shortest path to a test file that passes.