START A CONVERSATION

Let’s talk about your next build.

Prepare your brief below, then review and send it in your email app to sales@nextlabsonline.com.

THE FIRST CONVERSATION

Your product idea, AI opportunity or automation challenge—and a useful first milestone.

All fields are required.

A few sentences about the problem, your users and timing are enough.

We’ll use your details to respond to your enquiry. Please don’t include patient records, passwords or confidential information. Privacy Policy · Website Terms.

Logistics & supply chain / EDI & Message Standards

EDI 860 Purchase Order Change: Controlling Late Edits Before Pick

By Vikasraj YadavPublished 8 min read

For edi and integration analysts, it leads at shippers, 3pls and carriers · Understand the problem

EDI 860 Purchase Order Change: Controlling Late Edits Before Pick — Two supply chain IT and finance staff sitting at a wooden table with two side-by-side out-of-focus monitors, two closed laptops, a blank ruled clipboard, and a plain cream folder, overlooking a warehouse floor with pallet racking and an orange forklift.

EDI 860 Purchase Order Change: Controlling Late Edits Before Pick: Illustrative TMS–ERP order and invoice handoff review beside a warehouse floor; not a client facility.

At a glance · Quick answer

Quick answer: edi 860 po change

An EDI 860 is the buyer's X12 request to change a purchase order already sent as an 850. BCH01 code 04 marks a change and 01 a cancellation, BCH05 carries the change sequence, and POC lines carry codes such as QI, QD, PC or DI. Apply it automatically only before wave release, then reply with an 865.

TL;DR — what you’ll learn

  • Key every 860 on BCH03 PO number and BCH05 sequence, and apply only the next sequence; duplicates are logged, older revisions are held, never applied.
  • Set the auto-apply cutoff at wave release minus mapping latency and a 10-15 minute buffer; any line already picked goes to the order desk.
  • Build the 865 from warehouse line status: BCA02 AD with ACK IA when applied, BCA02 RJ with zero lines when picking has started.
  • A 48-case cut caught at the dock cost about $66 or ₹1,956 in the worked example, against about $627 or ₹9,080 when shipped and refused.

Topics: edi 860 po change · edi 860 purchase order change request · edi 865 po change acknowledgment · po change cutoff wave release · bch05 change order sequence number

All quantities, amounts, product codes and events are illustrative teaching examples.

The wave went out at 14:15, pickers finished the order by 14:35, and at 14:40 the customer's EDI 860 landed asking for 72 cases instead of 120. The translator mapped it, the ERP order updated, and nobody told the dock. The trailer left with 120 cases, the buyer received against the changed order, refused 48, and three weeks later a deduction for over-shipment arrived on the remittance.

A purchase order change is easy to receive and hard to apply, because the warehouse has usually started acting on the original order. A clear change cutoff tied to wave release, sequence checks on every 860, and a prompt 865 reply that tells the buyer what was actually accepted turn late edits from silent over-shipments into decisions both sides can see.

  • What this guide covers: the BCH header and POC line segments, how change codes map to warehouse actions, the cutoff against wave release, 865 replies, and sequencing rules.
  • What it adds: a priced late-change example in dollars and rupees, the GST consequence when an e-way bill already exists, an annotated 860 and 865 pair, and onboarding test cases.

What an 860 asks the seller to do, and why it is not a new 850

An 860 is a request against an order that already exists, not a replacement order. X12 defines it as the buyer's way to request a change to a previously submitted purchase order, or to confirm a change the seller proposed, and says the 850 itself should not be used to convey changes.

That distinction drives the whole design. A second 850 with the same PO number looks like a duplicate order to most translators; an 860 carries a purpose code, a reference to the original PO and line-level change codes, so the seller can apply only the delta. The reply goes the other way as an 865, which X12 describes as the seller's acceptance, rejection or modification of the buyer's change.

Scroll horizontally to see all columns.

Purchase order documents in the change cycle and what each one is allowed to do
Transaction setSent byPurpose in the change cycleWarehouse effect
850 Purchase OrderBuyerPlaces the original order; not for changesCreates the outbound order and its lines
855 Purchase Order AcknowledgmentSellerAcknowledges the original orderNone directly; confirms what will ship
860 Purchase Order Change Request - Buyer InitiatedBuyerRequests changes or confirms a seller-proposed changeMay add, reduce, delete or reprice lines if before cutoff
865 Purchase Order Change Acknowledgment/Request - Seller InitiatedSellerAccepts, rejects or modifies the buyer's change, or proposes oneRecords which version of the order will actually ship
997 Functional AcknowledgmentReceiver of any of the aboveConfirms syntax receipt onlyNone; never proof that a change was applied

The last row trips up many integrations. A 997 says the 860 parsed; it says nothing about whether the order changed. Our guide to the 997 functional acknowledgment covers what that receipt proves and how to chase missing ones.

Reading the BCH header: purpose code, PO number and change sequence

The BCH segment tells you what kind of change this is and which version of the order it builds on. Get BCH01 and BCH05 wrong and the rest of the transaction is applied to the wrong state of the order.

  • BCH01 purpose code: in published 4010 guides, code 04 marks a change and code 01 a cancellation.
  • BCH02 order type: the type of PO, for example stand-alone or release against a blanket order.
  • BCH03 PO number: the buyer's PO number, which must match an existing order.
  • BCH04 release number: used when the order is a release against a blanket PO.
  • BCH05 change order sequence number: the buyer's number for this specific revision, up to eight characters in the 4010 element definition.
  • BCH06 purchase order date: the date of the original PO, not the date of the change; the change date sits in BCH11 where the partner uses it.

EDI 860 change processing in the order management module should key every buyer revision on BCH03 purchase order number plus BCH05 change order sequence number, and apply a change only when its sequence is exactly one higher than the last applied revision, so a delayed 860 never overwrites a newer quantity.

An order-level cancellation (BCH01 01) usually carries no POC lines at all. Treat it as a separate path with its own cutoff, because cancelling a whole order after it is loaded is a returns problem, not an order-edit problem.

POC line changes: original quantity, quantity left and the change code

Each POC segment names one line and the kind of change. The quantity fields are the part integrations misread most, because POC03 and POC04 do not mean "old" and "new" in every partner's usage.

In X12's published 865 examples, a POC reads POC*1*QI*25*50*EA*9.5*CT*MG*XYZ-1234, explained as a quantity increase from an original 25 to 50 left to receive. The 4010 syntax note requires that if POC03 quantity ordered is present, POC04 quantity left to receive and POC05 unit of measure must also be present. The quantity left to receive is what your warehouse should still ship, net of anything already received.

Scroll horizontally to see all columns.

POC02 change codes from published 4010 guides and the warehouse action each implies
POC02 codeMeaningWarehouse action before wave releaseWarehouse action after wave release
QIQuantity increaseRaise the open quantity; check allocationUsually a new order line or follow-up shipment
QDQuantity decreaseReduce the open quantity before allocationUnpick or reject; never ship the old quantity silently
DIDelete itemCancel the lineReturn picked units to stock or reject
AIAdd additional itemAdd a line; allocate if stock allowsShip separately or reject
PCPrice changeUpdate the price for invoicingUsually still acceptable; affects the invoice, not the pick
CTChange of datesRe-plan the ship dateDepends on carrier booking

Partners subset this list heavily. One large retailer's drop-ship 860 accepts only DI and treats each POC as cancelling the entire line quantity. Read each partner's guide and store its allowed codes in the partner profile, so an unexpected code is held rather than guessed.

Placing the change cutoff against wave release and the pick face

The cutoff for applying an 860 automatically should be the moment the order's wave is released, minus a short buffer for the message to reach the WMS. Before that point a change is a data edit; after it, a change is physical work that someone must approve.

Many teams set the cutoff by clock time, such as "changes after 13:00 are next-day". That works only if waves release at fixed times. Where waves release on demand, the cutoff must follow the order, not the clock. Our guide to wave release against carrier cutoffs explains how release times are planned; the rule here simply anchors to whatever release time that plan produces.

EDI 860 handling: from received change to an 865 that matches the dock Step 1, Receive 860: Match PO and change sequence. BCH03 must match an open PO; BCH05 must be last applied + 1; Duplicates logged, not applied. Step 2, Cutoff test: Compare with wave release. Receipt + latency before release; Buffer of 10-15 minutes; Code in partner's allowed list. Step 3, Apply or hold: Edit open lines or alert order desk. OPEN or ALLOCATED: auto-apply; PICKED or later: supervisor decides; India: e-way bill task if needed. Step 4, Reply 865: Answer from WMS line status. AD with ACK IA when applied; RJ with zero lines when picked; Cite BCA05 sequence. EDI 860 handling: from received change to an 865 that matches the dock Sequence check, cutoff test against wave release, apply or hold, then reply from warehouse line status 1 · RECEIVE 860 Match PO and change sequence • BCH03 must match an open PO • BCH05 must be last applied + 1 • Duplicates logged, not applied 2 · CUTOFF TEST Compare with wave release • Receipt + latency before release • Buffer of 10-15 minutes • Code in partner's allowed list 3 · APPLY OR HOLD Edit open lines or alert order desk • OPEN or ALLOCATED: auto-apply • PICKED or later: supervisor decides • India: e-way bill task if needed 4 · REPLY 865 Answer from WMS line status • AD with ACK IA when applied • RJ with zero lines when picked • Cite BCA05 sequence
Auto-apply predicate for an inbound 860 line (evaluate per POC)

apply_auto = (T_recv + L_map <= T_release - B)
             AND (S_new = S_last + 1)
             AND (code IN partner.allowed_codes)
             AND (status IN ('OPEN','ALLOCATED'))

T_recv     time the 860 interchange was received by the translator
L_map      measured mapping and posting latency to the WMS (e.g. 4 min, p95)
T_release  planned or actual wave release time for the order
B          safety buffer, typically 10-15 min
S_new      BCH05 of this 860;  S_last = last applied sequence for BCH03
status     WMS line status; PICKED, PACKED, LOADED never auto-apply

If apply_auto is false and status is OPEN or ALLOCATED: queue for review.
If status is PICKED or later: hold, notify the order desk, reply with 865.

The latency term matters more than it looks. If mapping and posting take four minutes at the 95th percentile and the buffer is ten, any 860 received within fourteen minutes of release goes to a person. That is the window where most "it arrived before the wave" disputes come from.

Replying with an 865: acknowledgment types and line status codes

The 865 is how the buyer learns what will actually ship. Send one for every 860 your partner expects to be acknowledged, and make the header code and the line codes agree with what the WMS did, not with what the 860 asked.

X12's aerospace examples show the patterns. BCA01 11 marks a response. BCA02 AD means acknowledged with detail and no change; AC means acknowledged with detail and changes proposed; RJ means rejected without detail, with no POC loop and CTT showing zero lines; RD means rejected with detail. BCA05 carries the change order sequence number being answered, which ties the reply to one specific 860.

  • IA item accepted: the line change was applied as requested.
  • IQ and IP: item accepted with a quantity change or a price change from the seller.
  • DR date rescheduled: accepted with a new date, carried in the ACK date fields.
  • IS substitution made: a different part number is offered in place of the ordered one.
  • AC item accepted and shipped: used in X12's example when goods have already left.

Seller replies to an EDI 860 should be generated from the warehouse management system's line status, not the ERP order: an X12 865 with BCA02 AD and ACK IA lines for changes applied before wave release, and BCA02 RJ referencing the same BCA05 sequence when picking has started, sent within 4 business hours.

The four-hour reply target in the capsule is an internal service level, not an X12 rule. Partners often state their own acknowledgment windows in their guides; where they do, the partner's figure wins.

Sequence gaps, duplicates and 860s that arrive before their 850

Change messages arrive out of order more often than teams expect, because buyers resend, VANs retry and mailbox polling batches files. A small set of sequence rules prevents an older change from overwriting a newer one.

  • Duplicate sequence: if BCH05 equals the last applied sequence for that PO, log it, send the usual 997, and do not re-apply.
  • Older sequence: if BCH05 is lower than the last applied, hold and alert; never apply it on top of newer data.
  • Gap in sequence: if BCH05 jumps by more than one, hold for a set period, such as 30 minutes, waiting for the missing revision, then escalate.
  • Change before order: if no 850 exists for BCH03, park the 860 and retry when the 850 posts; reject only after a partner-agreed wait.
  • Missing sequence number: if the partner leaves BCH05 empty, fall back to interchange date and control number, and agree that rule in writing at onboarding.

These are the same idempotency ideas that govern shipping orders and their confirmations. The 940-to-945 reconciliation and idempotency rules article applies them to the warehouse order and its shipping advice; this article applies them one step earlier, where the buyer's order itself changes.

The trace below shows the opening incident with times and document numbers, first as it failed and then with the controls in place.

  1. 14:15, wave W-1187 released: PO 4500098812 line 2 (120 cases, SKU 30-4471) allocated and pick tasks sent to handhelds.
  2. 14:40, 860 received: ISA control 000004417, BCH05 = 3, POC*2*QD*120*72*CA; ERP order updates to 72 cases; WMS tasks unchanged because they were already released.
  3. 16:05, trailer loaded: 120 cases ship on BOL 7700231; ASN reports 120; no 865 sent because the ERP shows the change as applied.
  4. Controlled version, 14:40: predicate fails on status PICKED; order desk alerted; buyer called and confirms 72 is firm; 48 cases unpicked by 15:10.
  5. Controlled version, 15:20: 865 sent with BCA05 = 3 and line 2 accepted; ASN at dispatch reports 72; invoice matches the changed PO.

Pricing one late quantity cut in dollars and in rupees

A late quantity decrease costs little if it is caught before loading and a lot if it is not. The worked figures below compare both outcomes for the same 48-case reduction at a US distribution centre and an Indian one. All rates are illustrative.

Scroll horizontally to see all columns.

Cost of a 48-case quantity decrease received after picking, caught at the dock versus shipped anyway
Cost elementUS DC, caught before load ($)US DC, shipped and refused ($)India DC, caught before load (₹)India DC, shipped and refused (₹)
Unpick and restock 48 cases48 x 0.85 = 40.80048 x 22 = 1,0560
Relabel and re-ASN the order25.0006000
Return freight for refused cases0310.0006,500
Receiving and restock of returns048 x 1.40 = 67.20048 x 35 = 1,680
Buyer compliance deduction0250.000Per contract; often none
Tax document rework0Credit memo onlyCancel e-way bill within 24 hours and regenerate: about 300 of staff timeCredit note under CGST Section 34 for the 48 cases: about 900 of staff time
Total for one incident65.80627.201,9569,080 plus any deduction

The Indian columns carry a tax step the US columns do not. If an e-way bill was generated for 120 cases and the load changes to 72, Rule 138(9) of the CGST Rules allows the e-way bill to be cancelled within 24 hours when goods are not transported as declared, unless it was already verified in transit. If the invoice for 120 cases has already been issued and the buyer accepts only 72, the correction is a credit note under Section 34, declared within that section's time limits.

Which 860 decisions a rule engine owns and where an analyst steps in

Most 860 handling is mechanical and should never reach a person. The exceptions that do reach a person need context the message does not carry: whether goods are already on a trailer, whether the buyer will accept a split shipment, and whether a price change is commercially valid.

Scroll horizontally to see all columns.

EDI 860 handling tasks split between fixed rules and analyst decisions supported by software
TaskWho handles itReason
Matching BCH03 to an open order and rejecting unknown PO numbers after the agreed waitRuleExact key match; no judgement
Checking BCH05 against the last applied sequenceRuleInteger comparison per PO
Applying QD, QI or DI to lines still OPEN or ALLOCATED before cutoffRulePredicate on status, time and allowed codes
Building the 865 from WMS line statusRuleStatus-to-code table agreed at onboarding
Summarising a free-text MSG or NTE note on a change into a short instructionSoftware drafts, analyst confirmsText can contradict the coded change
Proposing a substitute part for an IS replySoftware suggests, buyer-facing rep approvesSubstitution changes what the buyer agreed to buy
Deciding to unpick, ship and credit, or call the buyer on a post-pick changeOrder desk supervisorDepends on trailer status, buyer terms and cost
Accepting a PC price change outside contract toleranceCommercial managerPricing authority sits outside operations

Order desk exception queues for X12 860 changes received after wave release should show the WMS line status, trailer and bill of lading status, and the buyer's acknowledgment window on one screen, so a supervisor can decide within 15 minutes whether to unpick, ship and credit, or reject with an 865.

Onboarding a partner's 860 feed: test cases and ownership

An 860 integration is ready when its failure paths have been tested, not when a happy-path change posts. Agree ownership of each decision with the partner and inside your own teams, then run every test below against the partner's real data patterns.

Scroll horizontally to see all columns.

Who owns each 860 and 865 decision in a seller's organisation
Decision or recordOwnerSigns off
Allowed POC02 codes and BCH01 values per partnerEDI analystCustomer service lead
Change cutoff buffer and latency measurementWMS administratorDC operations manager
Status-to-865 code mappingEDI analystCustomer service lead
Post-release change decisionsOrder desk supervisorDC operations manager
Price change toleranceCommercial managerFinance controller
E-way bill and invoice corrections in IndiaBilling teamIndirect tax manager

Scroll horizontally to see all columns.

Test cases to pass before a trading partner's 860 feed goes live
Test caseExpected result
QD on an OPEN line, sequence 1, well before releaseLine reduced; 865 with BCA02 AD and ACK IA
Same 860 sent twiceSecond copy logged, 997 sent, no second change
Sequence 3 arrives before sequence 2Held; applied in order once 2 arrives; escalated after the wait
860 for a PO with no 850 yetParked, then applied after the 850 posts
QD on a line already PICKEDHeld; order desk alerted; no silent ERP update
BCH01 01 cancellation on a LOADED orderRejected with 865 BCA02 RJ and CTT zero
POC02 code not in the partner's allowed listHeld for analyst review
PC price change beyond toleranceHeld for commercial approval; invoice not repriced
Indian order with e-way bill generated, quantity reducedBilling task created to cancel and regenerate within 24 hours

An annotated pair makes the agreement concrete. This example applies a quantity decrease and a price change before release and answers it; the second reply shows the rejection used when picking has started.

ST*860*0101~
BCH*04*SA*4500098812**3*20261102~     change, stand-alone PO, sequence 3, PO dated 2 Nov 2026
POC*2*QD*120*72*CA*18.40*CT*BP*30-4471~
POC*4*PC*60*60*CA*21.15*CT*BP*30-4490~
CTT*2~
SE*6*0101~

ST*865*0201~                          reply before wave release
BCA*11*AD*4500098812**3*20261102~
POC*2*QD*120*72*CA*18.40*CT*BP*30-4471~
ACK*IA~
POC*4*PC*60*60*CA*21.15*CT*BP*30-4490~
ACK*IA~
CTT*2~
SE*8*0201~

ST*865*0202~                          reply when line 2 is already picked
BCA*11*RJ*4500098812**3*20261102~
CTT*0~
SE*4*0202~

Element values above are illustrative and follow the 4010 layouts in published guides; confirm each element against your partner's implementation guide, since partners differ on which BCH and POC elements they send.

More EDI and warehouse integration guides are collected in the logistics and supply chain library. If you are specifying change-order handling for a new WMS or EDI platform and want these rules written into requirements, share your partner list and wave design in an RFP and we will map them to a delivery plan.

Discuss this workflow

Describe your current systems, the recurring exception and the outcome you need. Keep shipment, customer and financial records out of the initial message.

START A CONVERSATION

Let’s talk about your next build.

Prepare your brief below, then review and send it in your email app to sales@nextlabsonline.com.

SELECTED INDUSTRYLogistics & supply chain

Article: EDI 860 Purchase Order Change: Controlling Late Edits Before Pick · EDI & Message Standards

THE FIRST CONVERSATION

Your product idea, AI opportunity or automation challenge—and a useful first milestone.

All fields are required.

A few sentences about the problem, your users and timing are enough.

We’ll use your details to respond to your enquiry. Please don’t include patient records, passwords or confidential information. Privacy Policy · Website Terms.

Common operational questions

Practical answers for operations, engineering, and finance teams working on edi 860 po change in logistics & supply chain.

What is the difference between an EDI 860 and an EDI 865?
The 860 comes from the buyer and requests a change to a purchase order already sent, or confirms a change the seller proposed. The 865 comes from the seller and accepts, rejects or modifies that change, or starts a seller-initiated change. Each 865 should cite the 860's change sequence number in BCA05.
Should a seller apply an 860 after the order has been picked?
Not automatically. Once a wave is released, pick tasks are already on handhelds and an ERP-only update will not stop them. Hold the change, alert the order desk, decide whether to unpick or ship and credit, and send an 865 that reflects what will actually ship.
What does BCH05 do in an EDI 860?
BCH05 is the change order sequence number, assigned by the buyer to identify a specific revision of the order. Store the last applied value for each PO number in BCH03, apply only the next number, log duplicates without reapplying them, and hold any 860 that arrives out of order.
What GST step follows a late 860 quantity cut in India?
If an e-way bill already exists for the original quantity, CGST Rule 138(9) allows cancellation within 24 hours of generation when goods are not transported as declared, unless verified in transit. If the invoice has already been issued, a credit note under CGST Section 34 corrects the value and tax.

References

Sources checked 13 November 2026. US and India statutory authorities and vendor documentation support platform facts; the worked examples and diagrams are original.

About the author

Vikasraj Yadav writes about operational decisions, software and automation for NextEdge Labs.