The ANSI X12 860 – Purchase Order Change Request (Buyer Initiated) is generated when a buyer needs to modify an already-sent Purchase Order (X12 850) and must formally notify the supplier of those changes.
Below is a clear, real-world explanation of how and when the 860 is generated and sent, from both ERP and EDI perspectives.
🔹 When is X12 860 Generated?
An 860 is generated ONLY AFTER an 850 has already been sent and acknowledged.
Typical business triggers include:
1️⃣ Buyer Changes Order Details
Any change to an existing PO may trigger an 860:
Quantity increase/decrease
Price change
Delivery date change
Item substitution
Cancel or re-open PO lines
Add or delete line items
⚠️ If the buyer wants to cancel the entire PO, some trading partners require 860, others accept 855 with rejection.
2️⃣ ERP Event Trigger (System-Driven)
The 860 is usually triggered when:
Buyer updates PO in ERP (SAP / Oracle / NetSuite / JD Edwards)
Change status moves to “PO Change”
System compares Original PO vs Changed PO
Delta (difference) is identified
➡️ That delta is converted into X12 860
3️⃣ Supplier Has Not Yet Shipped
Most suppliers expect:
860 BEFORE shipment
If shipment already occurred → 860 may be rejected
🔹 How X12 860 is Generated (Step-by-Step Flow)
🧩 End-to-End Flow
Buyer ERP
↓
PO Change Event
↓
ERP generates PO Change ID
↓
EDI Translator maps changes → X12 860
↓
EDI VAN / AS2 / SFTP
↓
Supplier EDI System
🔹 Step 1: Original PO Exists (850)
Buyer already sent X12 850
Supplier acknowledged via 855
🔹 Step 2: PO Change Happens in ERP
Example:
Qty changed from 100 → 120
Delivery date changed
ERP marks:
Change Version / Revision Number
Change Reason (optional)
🔹 Step 3: ERP → EDI Mapping Logic
EDI mapping:
Compares Old PO vs New PO
Identifies:
Changed lines
Added lines
Deleted lines
🔹 Step 4: X12 860 Creation
Key segments used:
| Segment | Purpose |
|---|---|
| ST | Transaction Set Header |
| BCH | Beginning Segment for PO Change |
| REF | PO number / Change ID |
| DTM | Change effective date |
| POC | Line item change details |
| CTT | Transaction totals |
| SE | Transaction trailer |
🔹 Example BCH Segment
BCH*01*SA*4500001234**20260126~
01→ Change orderSA→ Standalone changePO Number referenced
🔹 Example POC Segment (Quantity Change)
POC*01*120*EA*25.00**IN*ABC123~
01→ Change120→ New quantity
🔹 How Is X12 860 Sent to Supplier?
🚚 Transmission Methods
AS2 (most common)
SFTP
VAN (SPS, OpenText, TrueCommerce)
🔁 Supplier Response After 860
| Response | Meaning |
|---|---|
| 855 | Accept / Reject PO change |
| 997 | Technical acknowledgment |
| 856 | Shipment (if accepted) |
🔹 Important Business Rules
⚠️ 860 vs 850
| Scenario | Document |
|---|---|
| New PO | 850 |
| Modify existing PO | 860 |
| Cancel PO (partner-dependent) | 860 or 855 |
⚠️ Partial Acceptance
Supplier may accept some lines and reject others
Reflected in 855 response
🔹 Real-World Example
Retail Buyer (Walmart / Target / Amazon)
Buyer sends 850
Inventory changes
Buyer updates ERP
860 generated automatically
Supplier confirms via 855
Shipment continues with 856
🔹 Common Rejection Reasons
PO already shipped
Invalid line reference
Price change not allowed
Change window expired
🔹 Summary
✅ X12 860 is generated ONLY after an 850 exists
✅ Triggered by PO change in buyer ERP
✅ Contains only the changed lines (delta)
✅ Sent before shipment
✅ Supplier responds with 855