X12 870 — Order Status Report
The 870 is the answer. The supplier publishes the state of one or more orders, in response to an 869 or proactively to pre-empt buyer questions.
Purpose
The 870 answers an 869 by publishing the current state of the queried order(s): for
each line, the SPI (Specifications Identifier) segment or equivalent
loops carry a status code (In Process, Picked, Backorder, Cancelled, Shipped…)
and the associated forecast or actual dates. The 870 can also be sent proactively at
a defined frequency, as a periodic status.
The 870 closes the conversation opened by the 869. Once the shipment has actually left, the 856 takes over — the 870 is useful between the 855 and the 856. In some profiles, the 870 carries enough information to replace the 855 (initial ack), notably when a supplier prefers to answer with a detailed status directly.
Envelope structure
The 870 travels in an RO functional group (Order Status Report). Below
is a didactic 870 responding to the inquiry on PO78901: one line is being prepared,
the second is partially on backorder.
ISA*00* *00* *ZZ*ACMEVENDOR *ZZ*ACMERETAIL *260518*1500*U*00401*000001301*0*P*>~
GS*RO*ACMEVENDOR*ACMERETAIL*20260518*1500*1*X*004010~
ST*870*0001~
BSR*00*L*RPT-2026-552*20260518~
N1*VN*ACME VENDOR INC*92*VEND001~
N1*BY*ACME RETAIL CO*92*0001~
REF*PO*PO78901~
DTM*004*20260513~
LIN*1*UP*012345678905~
SPI*IP*2*EA**20260520~
LIN*2*UP*012345678912~
SPI*IP*4*EA**20260520~
SPI*BO*1*EA**20260605~
CTT*2~
SE*12*0001~
GE*1*1~
IEA*1*000001301~
The BSR (Beginning Segment for Status Report) opens the transaction:
function code, level code (L = Line, O = Order), report reference, date. Each
LIN is followed by one or more SPI segments carrying a
status code (IP = In Process, SH = Shipped, BO = Backorder, CA = Cancelled, RJ =
Rejected…), the quantity concerned, and the forecast date.
Common segments
- Header —
ST,BSR(Beginning Segment for Status Report),REF,DTM. - Parties —
N1loop for Vendor (VN), Buyer (BY), Ship From, Ship To. - Lines —
LINloop withSPI(Specifications Identifier) carrying the status codes,PID,QTY,DTM,REF. - Summary —
CTT,SE.
When you'll see it
- Retail — paired with the 869 for pre-shipment monitoring of seasonal and promo programs.
- Wholesale distribution — automated response to a B2B e-commerce inquiry system.
- Manufacturing — shared visibility for long-lead-time orders.
Related transactions
- 869 — Order Status Inquiry
- 855 — Purchase Order Acknowledgment
- 856 — Ship Notice/Manifest
- 865 — Purchase Order Change Acknowledgment
Documentation
The code 870 and the name Order Status Report are public
and listed on
x12.org/products/transaction-sets.
The SPI01 status codes, loops and exact structure belong to the
proprietary Implementation Guides (TR3); ediverse.io does not redistribute them.