X12 880 — Grocery Products Invoice
The 880 is the grocery- and CPG-specific invoice. More compact than the generic 810, it reflects the pricing practices typical of mass-consumer finished goods.
Purpose
The 880 serves the US grocery sector: it bills finished products delivered to a retailer
or wholesaler in a historically more condensed formalism than the 810 (generic invoice).
Where the 810 is full of generic loops (PID, ITD, IT3), the 880 uses grocery-specific
G02, G34, G31 segments that compress lines,
prices, and totals.
In practice, many US chains have migrated to the standard 810 with a grocery variant on promotional allowance codes. The 880 still shows up at long-standing CPGs and certain grocery cooperatives.
Envelope structure
The 880 travels in a functional group GP (Grocery Products). Didactic
example in release 004010:
ISA*00* *00* *ZZ*ACMECPG *ZZ*ACMERETAIL *260514*1100*U*00401*000000880*0*P*>~
GS*GP*ACMECPG*ACMERETAIL*20260514*1100*1*X*004010~
ST*880*0001~
G01*INV-2026-880-007*20260513*PO78901~
N1*BY*ACME RETAIL CO*92*0001~
N1*VN*ACME CPG INC*92*V-9087~
N1*ST*ACME RETAIL DC 5*92*DC-005~
G02*5*EA*012345678905*RETAIL CHIPS 12X1OZ*48~
G34*48*EA*1.99*012345678905~
G31*95.52*30*60~
SE*8*0001~
GE*1*1~
IEA*1*000000880~
The G01 (Invoice Identification) opens with: invoice number, date, related
PO. The N1 segments name buyer, vendor and ship-to. The G02
segments are item lines; G34 carries price detail per UPC;
G31 totals.
Common segments
- Header —
ST,G01(Invoice Identification),DTM. - Parties —
N1loop (BY, VN, ST, RI). - Lines —
G02(Beginning Segment for Grocery Products Invoice),G34(Line Item Detail),G69(Item Description). - Allowances —
G72(Allowance or Charge) at line or document level. - Summary —
G31(Invoice Summary),SE.
Common pitfalls
- UPC required:
G3404must carry the GS1 UPC of the product; a vendor-only SKU is rejected on the retailer side. - Trade promotions and allowances: specific
G72codes (off-invoice allowance, slotting fee); check that the retailer accepts the chosen code. - Substitution with the 810: when a retailer accepts both, prefer the 810 for portability and use the 880 only when explicitly required.
Related transactions
- 810 — Invoice (generic equivalent)
- 850 — Purchase Order
- 855 — Purchase Order Acknowledgment
- 894 — Delivery/Return Base Record
- X12 — Hub
Documentation
The code 880 and the name Grocery Products Invoice are public and listed on x12.org/products/transaction-sets. GS1 US and FMI / GMA conventions frame the 880 in grocery.