X12 879 — Price Information
The 879 transmits a price update — wholesale, retail, promotional — from a manufacturer to retailers, with effective dates and restrictions.
Purpose
The 879 documents a targeted price change: new wholesale, new suggested retail (MSRP), temporary promotional price (TPR), allowances. It targets granular changes without emitting a 832 (full catalog).
It is used for intermediate pricing cycles (monthly, weekly). Acknowledged by 997. Lighter than the 832 but often used as a complement.
Envelope structure
The 879 travels within the three X12 envelope levels (ISA/IEA,
GS/GE with functional group PI, and ST/SE).
Didactic example in release 004010:
ISA*00* *00* *ZZ*MFR *ZZ*RETAILER *260515*1000*U*00401*000000879*0*P*>~
GS*PI*MFR*RETAILER*20260515*1000*1*X*004010~
ST*879*0001~
BCH*00*PI-2026-3300*20260515~
N1*MF*ACME FOODS INC*92*MFR-001~
LX*1~
LIN*1*UP*012345678905~
CTP*WS**3.75~
CTP*RS**5.99~
DTM*090*20260601~
SE*9*0001~
GE*1*1~
IEA*1*000000879~ Common segments
- Header —
ST,BCH(Beginning Segment for Catalog or Price Change). - Manufacturer —
N1*MF. - Item / price —
LXloop:LIN*UP,CTP*WS(Wholesale),CTP*RS(Retail Suggested),DTM*090(effective). - Summary —
SE.
Common pitfalls
- Currency: a 879 without explicit currency defaults to USD; bad for CA / MX partners who see wrong prices.
- MAP (Minimum Advertised Price): a MAP must transit in a distinct
CTPwith a dedicated qualifier, otherwise the retailer confuses it with MSRP and risks an FTC violation. - Effective date lag: a retailer pricing system needs 24-48 h lag; a same-day-effective 879 races the rate plans.
Related transactions
Documentation
The code 879 and the name Price Information are public and listed on x12.org/products/transaction-sets. The complete structure of loops, qualifiers and code lists is distributed by DISA via the proprietary Implementation Guides (TR3). ediverse.io covers only public concepts, the envelope and didactic examples.