Distribution
ERP
Order Management
Supply Chain Collaboration
Supply Chain Management
EDI 850 Purchase Order: What Suppliers Need to Receive and Process It in Their ERP

Last updated: October 7, 2026 · Independent buyer’s guide · We do not sell rankings or coverage.
The EDI 850 purchase order is the X12 transaction a retailer or distributor sends to tell you what it wants to buy: the PO number, items, quantities, prices, ship-to locations and the dates the goods must ship or arrive. Your EDI provider translates the file, your ERP matches the buyer’s item numbers and locations to your records and creates sales orders, and you return an 855 acknowledgment if the customer requires one. Most 850 problems start in that matching step or in ship windows that nobody enforces.
Key takeaways
- The header (BEG, DTM, N1) carries the PO number, order type, dates and ship-to. Each PO1 line carries quantity, price and the buyer’s product identifiers.
- Date qualifiers differ by retailer. Zappos uses “Requested Ship” for its earliest delivery date, so map dates from each partner’s guide.
- Your ERP needs a customer item cross-reference and a ship-to location table before an 850 can become a clean sales order.
- The 997 confirms receipt. The 855 accepts, changes, backorders or rejects each line, often within 24 to 48 hours.
- Changes arrive in an 860, which should update the existing sales order.
What the 850 transaction set is
X12 defines the 850 as the transaction set that “contains the format and establishes the data contents of the Purchase Order Transaction Set (850)” (X12, no date shown). Retailer guides repeat the note that it “should not be used to convey purchase order changes or purchase order acknowledgment information.” Zappos states this in its 850 guide, which uses X12 version 004010 (Zappos 850 guide, last updated August 3, 2026), and Walmart’s drop ship vendor guide carries the same note and handles changes in a separate 860 change request (Walmart Developer, 850 for drop ship vendors, last modified April 12, 2026).
In a typical cycle, the customer sends the 850, you return a 997 and often an 855, the customer may send 860 changes, and you ship with an 856 and bill with an 810. Our guide to the EDI 856 advance ship notice covers the shipping half of that cycle.
The structure and key segments
An 850 has a header for the whole order, one PO1 loop per line, and a summary. The Stedi reference for X12 release 3050 lists more than a dozen header segments, including ITD for terms, DTM for dates and SAC for allowances, and up to 100,000 PO1 loops (Stedi X12 850 reference, release 3050). Each retailer’s guide tells you which subset it uses.
| 850 segment | What it carries | Sales order field it maps to | What usually goes wrong |
|---|---|---|---|
| BEG | Purpose, PO type (such as SA stand-alone, DS drop ship), PO number, date | Customer PO number, order date, order type | Duplicate orders when a file is resent |
| DTM | Ship and delivery dates, cancel date | Requested ship date, cancel date, promised date | Cancel date stored as a comment |
| N1 loop (ST, BY, BT) | Ship-to store or DC code, buyer, bill-to | Customer, ship-to, one order per location | New store code missing from your table |
| PO1 (with PID, PO4) | Quantity, unit, price, buyer item, UPC, vendor item, pack | Item, quantity, UOM, price | Unknown UPC, eaches versus cases, price mismatch |
| CTT | Line count and quantity hash total | Control check only | Lines dropped without anyone checking |
Zappos defines CTT01 as the number of PO1 segments and CTT02 as the sum of quantities ordered (Zappos, August 3, 2026). Comparing both to the sales order your ERP created catches lines lost in mapping.
PO1 identifies the product with qualifier and value pairs. Walmart’s drop ship 850 uses BP for the Walmart item, UP for the UPC and VP for your part number (Walmart Developer, April 12, 2026). Zappos uses PI for its item code, VA for your style, VE for color, IZ for size and UP for UPC (Zappos, August 3, 2026), so an apparel supplier must resolve style, color and size to one variant.
Ship windows: read each partner’s date codes
The DTM segment holds the dates you are scheduled against. A generic retailer specification published by TrueCommerce, an EDI vendor, lists qualifiers 001 Cancel After, 002 Delivery Requested, 010 Requested Ship, 037 Ship Not Before and 038 Ship No Later, plus week-of codes 087 and 077 (TrueCommerce retailer specification, April 26, 2023). A 037 and 038 pair gives you a ship window, and a 001 date tells you when the buyer may cancel unshipped goods.
The same code can mean different things. Zappos sends only 001 and 010, defining Cancel After as the latest and Requested Ship as the earliest date it expects delivery to its fulfillment center (Zappos, August 3, 2026). That 010 date is a delivery date, so you subtract transit time to find your ship date. Walmart’s drop ship guide uses 010 for expected ship date (Walmart Developer, April 12, 2026).
Cin7, which sells inventory software, states that each ship-to-store shipment must arrive on or after the start date and on or before the cancel date (Cin7 Omni help center, no date shown). Missing the window often leads to fines, covered in our guide to retail chargebacks. Store the window in real date fields on the sales order so allocation and pick release can use them.
Turning the 850 into a sales order
Inbound processing has four steps. The translator validates the file and returns a 997. The integration looks up the customer, ship-to locations and items. The ERP creates sales orders. Exceptions go to a person before release.
For NetSuite, Orderful, an EDI vendor, maps the BEG PO number to the customer PO field, maps price to the line rate only “if EDI pricing is enabled,” and resolves the ship-to as an address or a distribution center ID (Orderful 850 to NetSuite mapping, no date shown). Celigo, an integration vendor, says its flow looks up items by UPC by default, creates orders as pending approval, and can split a PO into one sales order per store when that option is enabled (Celigo, no date shown).
Item cross-references
Item lookup fails more often than any other step, because retailers order by their own item number or UPC and pack sizes often share a description but not a GTIN. Microsoft Dynamics 365 Business Central handles this natively with item references for customers and vendors, so the customer’s “item description, unit of measure, or variant code is automatically inserted” on the document (Microsoft Learn, last updated May 2, 2025). The unit of measure matters: a retailer ordering 24 “CA” expects 24 cases.
Keep one cross-reference per trading partner with buyer item, GTIN, your item, unit of measure and pack. Send lines that fail the lookup to an exception queue rather than a default item.
Price and duplicate checks
Decide whether the PO price or your price list wins, and flag differences before shipment, because your 810 usually has to match the PO price. Also block a second sales order for the same customer PO number, so a resent 850 does not double the shipment.
The 855 acknowledgment and the 860 change
The 997 confirms only that a valid file arrived. SPS Commerce, an EDI vendor, describes the 855 as the vendor’s reply that confirms the order, adjusts for discrepancies or shortages, or declines it, and says it is often due within 24 to 48 hours of the original PO (SPS Commerce, last modified December 6, 2024). Dot Foods, a food redistributor, requires the 855 within 24 hours and updated 855s if the order changes before shipment (Dot Foods 855 guide, no date shown).
In the header, BAK02 AD means acknowledged with no change and AC means acknowledged with change (Dot Foods, no date shown; TrueCommerce, April 26, 2023). Each ACK line carries a status such as IA (accepted), IB (backordered) or IR (rejected) (TrueCommerce, April 26, 2023). Walmart’s drop ship 855 also uses R2 for an invalid item, R4 for backordered and AR for released for shipment, with IA sent before AR (Walmart Developer, 855 for drop ship vendors, last modified April 12, 2026).
Your ERP must produce these statuses from what the order desk decided, so each sales order line needs a status the 855 map can read. The acknowledged ship date should come from allocation or available-to-promise, not be copied from the 850. An 860 should update the existing order and trigger a new 855 where required.
Worked example: one PO, three lines, two problems
Illustration: all figures in this section are constructed for this example. A housewares supplier receives an 850 for one distribution center, with 037 Ship Not Before November 2, 2026 and 038 Ship No Later November 6, 2026.
- Line 1: 240 units of UPC A at $4.50, which equals $1,080. Everything matches.
- Line 2: 120 units of UPC B at $12.00, which equals $1,440. Your price list shows $12.40, a $48 difference.
- Line 3: 96 units of UPC C at $7.25, which equals $696. UPC C is a new 12-pack GTIN missing from the cross-reference.
The PO totals $3,216, and CTT should show 3 lines and 456 units. A clean integration creates a sales order with lines 1 and 2, holds it for review, and sends line 3 to the exception queue. The order desk adds the new GTIN and reprocesses the line, and sales confirms the $12.00 price with the buyer.
The 855 then goes out with BAK02 AD, all lines IA and a ship date of 3 November. If only 72 units of line 3 were available, it would use AC and show 24 units as backordered or rejected, depending on the retailer’s rules. An order picked on 7 November would miss the window, which is why release rules should read the 038 date.
Software options for receiving the 850
Most suppliers use an EDI provider or connector for translation and partner maps, while the ERP holds cross-references, creates the sales order and supplies the 855 data.
| Option | How the 850 reaches the ERP | Published pricing |
|---|---|---|
| Oracle NetSuite with SPS Commerce, Orderful or Celigo | Partner integration creates sales orders; Celigo’s flow defaults to UPC lookup and pending approval status | Orderful: integrated plans from $399 per month (Orderful, no date shown); SPS: not published |
| Microsoft Dynamics 365 Business Central with EDI 365 | Marketplace app by WebSan Solutions lists the 850, 855, 856 and 810 (Microsoft Marketplace, no date shown); item references are native | Not published on the listing |
| Acumatica with SPS Commerce | Embedded solution lists 850 and 875 orders, PO acknowledgments, 856 and 810/880 (Acumatica Marketplace, no date shown) | Not published |
| Epicor (Kinetic, Prophet 21, Eclipse) | Epicor EDI, self-managed or as a managed service (Epicor, no date shown) | Not published |
Orderful also lists web EDI at $189 per month per trading partner (Orderful, no date shown), and Zenbridge lists $450 per month for 1,000 transactions and three partners (Zenbridge, no date shown). All of these companies sell the products described, and their pages say little about exception handling.
Our independent take
The connector matters less than the master data behind it. Suppliers that struggle with 850s usually have incomplete item cross-references, ship-to codes in a spreadsheet and ship windows stored as text. Before you sign, ask the provider to load a real 850 from each large partner into a test copy of your ERP and show the sales order, the exception queue for an unknown UPC, and the 855 after you change a quantity. We do not name a winner, because the right connector depends on your ERP and partners.
Three buyer scenarios
A $20 million consumer products supplier on NetSuite with six retail partners and frequent new UPCs. Use a NetSuite integration, make one person own the cross-reference, and add new GTINs before the first PO. Use pending approval to review price differences.
A $45 million apparel wholesaler on Business Central receiving style, color and size. Map style and size codes to variants with item references, test multi-store 850s, and confirm 855 line statuses come from your order lines.
A specialty food producer selling to two distributors that require an 855 within 24 hours. A web EDI plan may be enough at low volume. Move to an integrated plan once order entry takes hours each week.
When you do not need dedicated software for this
You may not need an integrated connection if you receive a handful of POs a month from one or two partners. A web EDI portal lets you read the 850, key the order into your ERP and send the 855 from a form. The risk is retyping errors, and the labor grows with every partner.
How we researched this
We read the X12 transaction set list, the Stedi 850 reference, 850 and 855 guides from Zappos, Walmart and Dot Foods, and a TrueCommerce retailer specification. We reviewed integration documentation from Orderful, Celigo and Cin7, Microsoft documentation, marketplace listings and pricing pages, and the top search results for “EDI 850 purchase order” from SPS Commerce, Flxpoint and Stedi. For a wider view of supplier systems, see our overview of the key features of distribution software.
Related guides
- EDI 810 Invoice: Requirements, Common Rejections and ERP Setup
- EDI 940 and 945: How Brands and 3PLs Exchange Warehouse Orders
Frequently asked questions
What is the difference between a 997 and an 855?
A 997 confirms only that the file was received and passed syntax checks. An 855 tells the buyer whether you accept, change, backorder or reject each line.
How fast do I have to send the 855?
It depends on the partner. SPS Commerce says it is often due within 24 to 48 hours, and Dot Foods requires the initial 855 within 24 hours of receiving the PO.
What do DTM 037 and 038 mean on an 850?
037 is Ship Not Before and 038 is Ship No Later, which together form your ship window. Some retailers use 010 and 001 instead and define them as delivery dates.
What happens if the UPC on the 850 is not in my system?
The line cannot map to an item and should go to an exception queue. Add the GTIN to your cross-reference, reprocess the line and acknowledge it in the 855.
Can a retailer change a PO by sending a new 850?
Normally no. Changes come in an 860 Purchase Order Change Request, which should update the existing sales order.
Sources
- X12, Transaction sets, no date shown. x12.org
- Stedi (EDI vendor), X12 850 Purchase Order reference, release 3050 (released 1995). stedi.com
- Zappos, 850 Purchase Order guide (X12 004010), last updated August 3, 2026. vendorresources.zappos.com
- Walmart Developer, 850 Purchase Order for drop ship vendors, last modified April 12, 2026. developer.walmart.com
- Walmart Developer, 855 Purchase Order Acknowledgement for drop ship vendors, last modified April 12, 2026. developer.walmart.com
- Dot Foods, Supplier 855 Purchase Order Acknowledgment guide (X12 004010), no date shown. dotfoods.com
- TrueCommerce (EDI vendor), retailer implementation specification, April 26, 2023. truecommerce.com
- SPS Commerce (EDI vendor), EDI 855 Purchase Order Acknowledgment, last modified December 6, 2024. spscommerce.com
- Orderful (EDI vendor), 850 Purchase Order to NetSuite sales order mapping, no date shown. docs.orderful.com
- Orderful (EDI vendor), Pricing, no date shown. orderful.com
- Celigo (integration vendor), Orderful 850 to NetSuite sales order flow, no date shown. docs.celigo.com
- Cin7 (inventory software vendor), EDI workflow: ship to store, no date shown. help.omni.cin7.com
- Microsoft Learn, Use item references in Business Central, last updated May 2, 2025. learn.microsoft.com
- Microsoft Marketplace, EDI 365 for Business Central, no date shown. marketplace.microsoft.com
- Acumatica Marketplace, SPS Commerce EDI for Acumatica, no date shown. acumatica.com
- Epicor, EDI integrations, no date shown. epicor.com
- Zenbridge (EDI vendor), EDI pricing, no date shown. zenbridge.io

