EDI documents
EDI 860 Purchase Order Change Request
The EDI 860 is how a buyer changes a purchase order that is already open: a quantity, a price, a date, a line added or a line cancelled. This page covers the BCH and POC segments with their change codes, a sample that lowers one line from 16 to 12 units, the envelope, how three retailers use the same document differently, and what the change does to your sales order.
Updated
What is an EDI 860?
The EDI 860 is the X12 Purchase Order Change Request - Buyer Initiated. A buyer sends it to change a purchase order it already sent as an 850: add a line, delete a line, change a quantity, a price or a date, or cancel the order. X12 gives it a second use: the buyer can send it to confirm a change the seller initiated. The EDIFACT message for the same purpose is ORDCHG, purchase order change request.
The 860 refers back to the original order by PO number and line number, and it carries only what changes. That makes it smaller than the 850 and harder to process: the change only makes sense against the order it changes, and that order has to be found, still be open and not yet shipped.
850 vs 860, and where the 860 sits
| Step | Document | Direction | What happens to the order |
|---|---|---|---|
| 1 | 850 purchase order | Buyer to supplier | Order created |
| 2 | 855 acknowledgment | Supplier to buyer | Order confirmed, changed or rejected by the supplier |
| 3 | 860 change request | Buyer to supplier | Order changed by the buyer |
| 4 | 865 change acknowledgment | Supplier to buyer | Change accepted or rejected, where the partner asks for it |
| 5 | 856 ship notice | Supplier to buyer | Ships the order as changed |
The 850 must not carry changes: the X12 purpose statement of the 850 says it "should not be used to convey purchase order changes". A buyer that resends the full order as a new 850 with the same PO number breaks that rule, and an integration that does not check the PO number creates a duplicate. The 860 exists so the change arrives as a change. Its functional identifier is PC; the 865's is CA.
The segments of an 860
The X12 004010 860 lists 189 segment positions, most of them copies of 850 segments for the parts that can change. Retail guides use a handful.
| Segment | Name | What it carries | What goes wrong |
|---|---|---|---|
| BCH | Beginning Segment for Purchase Order Change | BCH01 purpose, BCH02 PO type, BCH03 original PO number, BCH05 change sequence, BCH06 PO date, BCH11 change request date | A PO number that matches no open order |
| REF | Reference Identification | Department, vendor number | A vendor number for another division |
| DTM | Date/Time Reference | New delivery window, such as 071 requested for delivery and 038 deliver no later | A new date stored on the order but not passed to the warehouse |
| N1 | Name | ST ship to, BT bill to | A changed ship-to location ignored |
| POC | Line Item Change | POC01 line number, POC02 change code, POC03 quantity, POC04 quantity left to receive, POC05 unit, POC06 price, item IDs | The wrong line changed because line numbers were renumbered |
| PID | Product/Item Description | Item text for an added line | An added item with no master data at the supplier |
| CTT | Transaction Totals | CTT01 number of POC segments, optional hash total | A count mismatch rejects the set |
BCH01 and POC02 codes
| Where | Code | Meaning |
|---|---|---|
| BCH01 | 00 | Original |
| BCH01 | 01 | Cancellation |
| BCH01 | 04 | Change |
| BCH01 | 05 | Replace |
| POC02 | AI | Add additional item(s) |
| POC02 | DI | Delete item(s) |
| POC02 | QD, QI | Quantity decrease, quantity increase |
| POC02 | PC | Price change |
| POC02 | CT | Change of dates |
| POC02 | CA | Changes to line items |
| POC02 | RZ | Replace all values |
X12 004010 defines 29 change codes for POC02. RZ is the one with a rule in the standard: the receiver replaces the values in the original order line with the values in the 860. With QD or QI the change is relative, and the guides do not agree on which element holds what, as the retailer table below shows.
A sample 860, with delimiters
PO 4500018236 from the 850 sample ordered 24 units on line 1 and 16 on line 2. The supplier's 855 confirmed 24 and 12. On 30 September the buyer accepts the lower quantity with an 860.
ST*860*0001~
BCH*04*SA*4500018236**001*20260928*****20260930~
POC*2*QD*12*12*EA*8.75**UP*614141104994*VP*10499~
CTT*1*12~
SE*5*0001~
BCH01 is 04, change. BCH03 repeats the PO number and BCH06 the original PO date of 28 September; BCH05 is 001, the first change, and BCH11, after four empty elements, the date of the change request. POC01 is 2, the line number from PO101 of the 850. POC02 is QD, quantity decrease. In this sample POC03 is the new ordered quantity, 12, and POC04 the quantity still to receive, also 12, since nothing has shipped. The order was 24 plus 16, which is 40 units and 300.00 plus 140.00 is 440.00. After the change it is 24 plus 12, which is 36 units and 300.00 plus 105.00 is 405.00, the merchandise total the 810 invoice bills later. There is 1 POC segment, so CTT01 is 1, and CTT02, the hash total of POC03, is 12. There are 5 segments from ST to SE, so SE01 is 5.
The envelope around it
ISA*00* *00* *01*123456789 *ZZ*NORTHFIELD *260930*0835*U*00401*000001219*0*P*>~
GS*PC*123456789*NORTHFIELD*20260930*0835*1219*X*004010~
ST*860*0001~
SE*5*0001~
GE*1*1219~
IEA*1*000001219~
The 860 comes from the buyer, so the sender ID in ISA06 and GS02 is the same as on the 850, and the control numbers continue the buyer's sequence: 1203 on the 850, 1219 here. GS01 is PC. ISA13 has to equal IEA02, GS06 GE02, ST02 SE02, and SE01 has to be the real count of 5. ISA15 is P for production and T for test. A translator that routes inbound files by GS01 sends PC groups to the change map; a group sent with the wrong code goes to the wrong map. Best Buy's own 860 sample carries GS01 PO, the 850's code, which a strict translator would reject or misroute.
Who sends the 860, and how they differ
Three published guides, checked on 3 October 2026, use the same transaction set three ways.
| Rule | Walmart drop ship (004010) | Best Buy Ltd (004010, 2014) | Army and Air Force Exchange Service (005010, 2010) |
|---|---|---|---|
| What it changes | Cancels lines only | Replaces whole lines | Adds, deletes, changes quantity, price and terms |
| BCH01 | 00, with BCH06 as the date of the cancel request | 04, which the guide calls "Original", or 01 | 01 entire order cancelled, or 04 change |
| POC02 | DI only; the whole line quantity is cancelled | RZ only | AI, CA, CC, CE, CG, DI, PC, QD, QI |
| Quantities | Not sent | POC03 and POC04 with the full line, 0 in the guide's sample | POC03 the quantity before the change, POC04 the amount to add or subtract |
| Line reference | POC08 PL with the PO101 line number | POC01 line number, item by SKU, UPC and vendor part | POC01 line number; a replacement item is a cancel plus a new line |
The same intent, line 2 down from 16 to 12, is POC*2*QD*12*12*EA in the sample above, POC*2*QD*16*4*EA under the Exchange's rule, a POC*2*RZ*12... with the full line for Best Buy, and not possible at Walmart, whose 860 only cancels whole lines. A mapping that reads POC03 as the new quantity at the Exchange would set the line to 16 and ship 4 too many. Walmart's guide is public on its developer portal; the program is described under EDI with Walmart.
What goes wrong with changes
- The change arrives after the pick. An 860 that lowers a line after the warehouse picked it needs the pick reversed, or an 865 that rejects the change. Applied to the sales order alone, it leaves the 856 shipping more than the order says.
- An 860 booked as an 850. The PO number already exists, so the order is created twice. The rule is simple and has to be in the integration: an 860 never creates an order.
- Relative and absolute quantities mixed up. QD with 4 read as "set to 4" turns 16 into 4 instead of 12, as the Exchange's convention shows.
- Cancel codes. BCH01 01 cancels the whole order; POC02 DI cancels one line. Applying a line cancel to the order, or the reverse, cancels the wrong amount.
- Change sequence. Two 860s for the same PO processed in the wrong order leave the older change in place. BCH05 and BCH11 set the order.
Handling the 860 on the ERP side
The 860 changes the sales order that the 850 created. The order is found by the customer's PO number, the line by the buyer's line number, which has to be stored on each sales order line when the 850 is booked.
| 860 content | ERP action | Check before applying |
|---|---|---|
| BCH01 01 | Cancel the sales order | Nothing shipped or invoiced yet |
| POC02 DI | Close or delete the line | Line not picked |
| POC02 QD, QI | Change the line quantity | Pick status; available stock for an increase |
| POC02 PC | Change the line price | Price agreed; margin |
| POC02 AI | Add a line | Item known, unit of measure mapped |
| DTM 071, 038 | Change the delivery window | Warehouse and carrier booking |
Every applied change also needs to reach the documents that follow: the pick list, the 856 and the 810. A change that cannot be applied, because the goods already left, is held and reported, and where the partner uses the 865 it is rejected there.
We build the 860 as part of an EDI integration: changes matched to the order and line, applied according to each partner's convention for quantities and codes, checked against pick status and stock, and held in the dashboard when they arrive too late. The order flow stays the same for orders from your webshop and from EDI. Tell us which partners change orders by 860.
Frequently asked questions
What is the difference between an EDI 850 and an 860?
The 850 creates a purchase order; the 860 changes one that exists. X12 says the 850 should not be used to convey purchase order changes. An 860 carries the original PO number in BCH03 and only the lines that change, each with a change code in POC02. An integration that books an 860 as a new 850 creates a second sales order.
Which document answers an EDI 860?
The 865, Purchase Order Change Acknowledgment/Request - Seller Initiated. It accepts or rejects the buyer's change, with acknowledgment codes in BCA02 such as AT accepted or RJ rejected, and line codes in ACK. Not every partner asks for it: Walmart's drop-ship set has no 865, and a 997 is the only answer there.
Can an 860 cancel a whole purchase order?
Yes. BCH01 code 01 is cancellation, and the Army and Air Force Exchange Service guide defines it as "entire order cancelled". Walmart's drop-ship program cancels line by line instead, with POC02 DI on each line and BCH01 00.
What is the EDIFACT equivalent of the 860?
EDIFACT has a separate purchase order change request message, ORDCHG, from the buyer to the seller. As with all X12 to EDIFACT pairs, no official crosswalk exists; the match is by purpose.
Is a supplier-initiated change also an 860?
No. A change the supplier proposes goes in an 855 with changed lines, or in an 865 when it changes an order after acknowledgment. The 860 can then be the buyer's confirmation: X12 allows it "to confirm acceptance of a purchase order change initiated by the seller".
Tell us what you need
Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.
- You know the price and the timeline before you commit to anything
- We work out the connection that takes the work off your hands
- We handle the build, hosting, monitoring and maintenance
- Your team has less information to retype and fewer discrepancies to chase