X12 transaction guide · Ordering

EDI 870 Order Status Report

The X12 document a supplier sends to report the current status of purchase orders or order lines, such as in process, back-ordered or shipped.

Sent by
Supplier or vendor
Received by
Buyer or customer
Standard
ANSI ASC X12

What is an EDI 870?

The EDI 870 Order Status Report is the ANSI X12 transaction set used to report the current status of orders. It can cover a whole purchase order, selected lines or products, or all of a customer's open orders, and it can explain the reasons for a status. Suppliers can also use it to update the scheduled ship or delivery dates of orders already acknowledged.

An 870 can answer an 869 order status inquiry or follow a prearranged schedule, for example a weekly report on all open orders. Buyers use it to see back orders and delays early, without contacting the supplier, and to keep expected delivery dates in their planning systems current.

How the EDI 870 worksDiagram of the EDI 870 Order Status Report. Supplier or vendor sends it to buyer or customer. It usually follows 850 and 869. It is usually followed by 997. Inside the ISA, GS and ST envelopes, X12 release 004010 requires, in the heading: BSR (Beginning Segment for Order Status Report) and detail: the required HL loop with HL (Hierarchical Level). 8 optional loops are listed by their first segment.How the EDI 870 worksOrder Status Report: who sends it, where it fits and what the standard marks required1 WHERE IT FITSUSUALLY FOLLOWS850Purchase Order869Order Status InquiryEDI 870SENDERSupplier or vendorRECEIVERBuyer or customer997 or 999 acknowledgment back, if the partners agreeUSUALLY FOLLOWED BY997FunctionalAcknowledgment2 WHAT X12 RELEASE 004010 REQUIRESInterchange: sender and receiver IDsISA … IEAFunctional group, ID code RSGS … GETransaction set 870ST … SEHEADINGBSRBeginning Segment for Order Status Report+ 3 optional loops, starting with:REFN1LMDETAILRequired loop HL · repeats up to 1,000HLHierarchical Level+ 5 optional loops, starting with:ISRREFN1LMPO1Blue box: required loop. Optional loops are listed by the segment that starts them; when a loop is used, that first segment is required. Optional segmentsoutside loops are not drawn.Structure: required segments and loops in the X12 004010 listing for the 870. Your trading partner's implementation guide adds its own requirements.
How the EDI 870 worksDiagram of the EDI 870 Order Status Report. Supplier or vendor sends it to buyer or customer. It usually follows 850 and 869. It is usually followed by 997. Inside the ISA, GS and ST envelopes, X12 release 004010 requires, in the heading: BSR (Beginning Segment for Order Status Report) and detail: the required HL loop with HL (Hierarchical Level). 8 optional loops are listed by their first segment.How the EDI 870 worksOrder Status Report: who sends it, where it fitsand what the standard marks required1 WHERE IT FITSUSUALLY FOLLOWS850Purchase Order869Order Status InquiryEDI 870SENDERSupplier orvendorRECEIVERBuyer orcustomer997 or 999 acknowledgment back, if the partnersagreeUSUALLY FOLLOWED BY997Functional Acknowledgment2 WHAT X12 RELEASE 004010 REQUIRESInterchange: sender and receiver IDs (ISA… IEA)Functional group, ID code RS (GS … GE)Transaction set 870 (ST … SE)HEADINGBSRBeginning Segment for OrderStatus Report+ 3 optional loops, starting with:REFN1LMDETAILRequired loop HL · repeats up to1,000HLHierarchical Level+ 5 optional loops, starting with:ISRREFN1LMPO1Blue box: required loop. Optional loops are listedby the segment that starts them; when a loop isused, that first segment is required. Optionalsegments outside loops are not drawn.Structure: required segments and loops in the X12004010 listing for the 870. Your trading partner'simplementation guide adds its own requirements.

How to read this diagram: the top row shows who sends the 870, to whom, and which documents usually come before and after it. The lower part shows what X12 release 004010 itself requires: the envelopes around the 870 and the segments and loops the standard marks as required, area by area. Optional loops are listed by the segment that starts them rather than drawn in full. This is the standard's minimum, not a trading partner's requirement: each partner's implementation guide usually makes some optional loops mandatory, restricts the codes and may use a different release.

Expand diagram Download SVG

When it is used

  • Weekly or daily status of all open purchase orders
  • Reporting back orders and revised ship dates
  • Answering a customer's 869 order status inquiry
  • Updating scheduled delivery dates for critical lines

Where it fits in the document flow

This document 870 Order Status Report
Usually followed by 997 Functional Acknowledgment

Structure

Key segments in the 870

The segments most implementations use, described in plain language. The last column shows what X12 release 004010 itself requires: "Required" marks a segment the standard requires in every 870; "Optional, common" marks a segment the standard leaves optional, or that sits in an optional loop, but that implementations often use. This is the standard's requirement, not your trading partner's: each partner's implementation guide names the release it uses, makes some optional segments mandatory and restricts the values, and requirements can differ between releases. The requirement status comes from one published X12 reference listing and has not been checked against a second source.

SegmentNameWhat it carriesIn X12 004010
BSRBeginning Segment for Order Status ReportWhy the report is sent (inquiry response or schedule), which orders and items it covers, a report number and date.Required
HL loopHierarchical LevelBuilds the report structure, for example an order level with item levels beneath it.Required
PRFPurchase Order ReferenceThe purchase order the status applies to.Optional, common
PO1Baseline Item DataThe order line being reported, with quantity, unit, price and product identifiers.Optional, common
ISRItem Status ReportThe status code for the order or line, an associated date and a status reason.Optional, common

Example

Sample EDI 870

A scheduled report (BSR01 2) on selected lines of one order (PP). Line 1 is back-ordered (BO); line 2 is in process and scheduled to ship on 27 October (PS). HL levels group the item lines under the order.

Illustrative data only, not tied to one X12 release or trading partner. The interchange (ISA/IEA) and functional group (GS/GE) envelopes are omitted for readability.

ST*870*0001~
BSR*2*PP*OSR5531*20261022~
HL*1**O~
PRF*PO45001~
HL*2*1*I~
PO1*1*36*EA*12.50**UP*012345678905~
ISR*BO~
HL*3*1*I~
PO1*2*12*EA*8.00**UP*012345678912~
ISR*PS*20261027~
SE*11*0001~
Reading a sample EDI 870, line by lineAnnotated sample EDI 870 with 11 lines. Notes explain the ST, BSR, HL, PRF, PO1, ISR and SE segments.Reading a sample EDI 870, line by lineEach numbered note explains the segment on that line. The data is illustrative.ST*870*0001~11Transaction Set Header. Opens the 870 and gives it a controlnumber, which SE repeats.BSR*2*PP*OSR5531*20261022~22Beginning Segment for Order Status Report. Why the report issent (inquiry response or schedule), which orders and items itcovers, a report number and date.HL*1**O~33Hierarchical Level. Builds the report structure, for example anorder level with item levels beneath it.PRF*PO45001~44Purchase Order Reference. The purchase order the status appliesto.HL*2*1*I~PO1*1*36*EA*12.50**UP*012345678905~55Baseline Item Data. The order line being reported, with quantity,unit, price and product identifiers.ISR*BO~66Item Status Report. The status code for the order or line, anassociated date and a status reason.HL*3*1*I~PO1*2*12*EA*8.00**UP*012345678912~ISR*PS*20261027~SE*11*0001~77Transaction Set Trailer. Closes the set with the number ofsegments, including ST and SE, and the same control number.Illustrative data only, not tied to one trading partner. Envelopes (ISA/GS) are omitted for readability.
Reading a sample EDI 870, line by lineAnnotated sample EDI 870 with 11 lines. Notes explain the ST, BSR, HL, PRF, PO1, ISR and SE segments.Reading a sample EDI 870, lineby lineEach numbered note explains the segment onthat line. The data is illustrative.ST*870*0001~Transaction Set Header. Opens the 870 andgives it a control number, which SE repeats.BSR*2*PP*OSR5531*20261022~Beginning Segment for Order Status Report.Why the report is sent (inquiry response orschedule), which orders and items it covers, areport number and date.HL*1**O~Hierarchical Level. Builds the report structure,for example an order level with item levelsbeneath it.PRF*PO45001~Purchase Order Reference. The purchase orderthe status applies to.HL*2*1*I~PO1*1*36*EA*12.50**UP*012345678905~Baseline Item Data. The order line beingreported, with quantity, unit, price and productidentifiers.ISR*BO~Item Status Report. The status code for theorder or line, an associated date and a statusreason.HL*3*1*I~PO1*2*12*EA*8.00**UP*012345678912~ISR*PS*20261027~SE*11*0001~Transaction Set Trailer. Closes the set withthe number of segments, including ST and SE,and the same control number.Illustrative data only, not tied to one trading partner.Envelopes (ISA/GS) are omitted for readability.

The sample is the same one shown above, with a note beside each segment the first time it appears. Segment IDs are highlighted at the start of each line; the fields after them are separated by asterisks, and each segment ends with a tilde.

Expand diagram Download SVG

Avoid problems

Common 870 errors and how to prevent them

Status codes the buyer does not use

Buyers act on a small set of status codes. Agree the codes and reasons in advance, and map internal order statuses to them consistently.

Reports that contradict the ship notice

An 870 that shows an order as open after the 856 says it shipped confuses planners. Generate status from the same data that drives shipping.

Dates without status

A revised date means little without the status and reason. Send both, so the buyer knows whether a delay is a back order, a production issue or a carrier delay.

EDI 870 FAQs

How is the 870 different from the 855?

The 855 acknowledges a new order once. The 870 reports the status of orders over time, such as back orders or revised ship dates after the order was accepted.

What is the 869?

The 869 is the order status inquiry a buyer can send to ask for status. The supplier answers it with an 870.

Do retailers require the 870?

Some do, especially for drop-ship and special orders where the buyer must update consumers. Many others rely on the 855 and 856 alone.

Need help with the EDI 870?

ECOM maps, tests and monitors X12 documents for your trading partners and integrates them with your ERP.