ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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.

x12 example-870.x12
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

  • HeaderST, BSR (Beginning Segment for Status Report), REF, DTM.
  • PartiesN1 loop for Vendor (VN), Buyer (BY), Ship From, Ship To.
  • LinesLIN loop with SPI (Specifications Identifier) carrying the status codes, PID, QTY, DTM, REF.
  • SummaryCTT, 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.

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.