Monday, January 26, 2026

ANSI X12 860 – Purchase Order Change Request (Buyer Initiated)

 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:

SegmentPurpose
STTransaction Set Header
BCHBeginning Segment for PO Change
REFPO number / Change ID
DTMChange effective date
POCLine item change details
CTTTransaction totals
SETransaction trailer

🔹 Example BCH Segment

BCH*01*SA*4500001234**20260126~
  • 01 → Change order

  • SA → Standalone change

  • PO Number referenced


🔹 Example POC Segment (Quantity Change)

POC*01*120*EA*25.00**IN*ABC123~
  • 01 → Change

  • 120 → New quantity


🔹 How Is X12 860 Sent to Supplier?

🚚 Transmission Methods

  • AS2 (most common)

  • SFTP

  • VAN (SPS, OpenText, TrueCommerce)


🔁 Supplier Response After 860

ResponseMeaning
855Accept / Reject PO change
997Technical acknowledgment
856Shipment (if accepted)

🔹 Important Business Rules

⚠️ 860 vs 850

ScenarioDocument
New PO850
Modify existing PO860
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