The EDI 850 is the X12 transaction set for electronic purchase orders. It is how retailers, distributors and manufacturers tell their suppliers what to ship, where, when and at what price. Almost every EDI order cycle in retail, grocery and distribution starts with an inbound 850, and every later document (the acknowledgment, the ship notice, the invoice) points back to its PO number.
This guide covers what the 850 carries, the segments you will map, four live examples (a Walmart-style replenishment order, a drop-ship order, an Amazon Vendor Central order, and an order with a ship window and terms), how the 850 connects to the documents that follow it, and the errors that cause rejections and short-pays.
What is an EDI 850?
An EDI 850 Purchase Order is the transaction set defined by the ASC X12 standards body that a buyer uses to order goods or services from a supplier. It carries everything a supplier needs to fulfill the order (PO number, ship-to, line items, prices, dates and terms) in a fixed format that the supplier's ERP can load without anyone retyping it. It travels in functional group PO (the GS01 value), and most retail partners still use release 004010.
Authoritative references for 850 work:
- The X12 transaction set catalog defines the 850 and its segment order. The Stedi 004010 850 reference lists every segment and element in that release
- GS1 US standards govern the UPC and GTIN identifiers carried in
PO1product ID pairs, and the Global Location Numbers some buyers use for ship-to locations - Each large buyer publishes its own 850 implementation guide, which sets the segments it sends, the qualifiers it uses, and the response it expects
Who sends it? The buyer: a retailer, distributor, manufacturer or marketplace.
Who receives it? The supplier, usually through a VAN, AS2 or SFTP connection into its EDI translator.
When is it sent? Whenever the buyer places a new order. Changes to an order already sent normally come as an 860 Purchase Order Change, not a second 850.
Why does it matter? The 850 is the source of truth for the rest of the cycle. The buyer checks your 855 acknowledgment, 856 ship notice and 810 invoice against it. An order loaded with the wrong ship-to, unit or price becomes a wrong shipment and a deduction weeks later.
What's in an 850
An 850 contains everything a supplier needs to fulfill an order:
| Field | Where it lives | Example |
|---|---|---|
| Order number | BEG03 | 4500123456 |
| Order date | BEG05 | 20231120 (CCYYMMDD) |
| Order type | BEG02 | SA stand-alone, DS drop ship |
| Ship-to address | N1*ST + N3 + N4 | A store or distribution center |
| Bill-to address | N1*BT + N3 + N4 | The buyer's accounts payable address |
| Line items | PO1 (plus PID for the description) | Qty, unit, unit price, vendor item, UPC |
| Requested delivery date | DTM*002 | 20231123 |
| Ship window | DTM*037 / DTM*038 | Ship not before / ship no later |
| Payment terms | ITD | 2% 10, net 30 |
| References | REF | Department (DP), customer order (CO) |
| Totals check | CTT | Number of PO1 lines and an optional hash total |
Interactive example: Walmart 850
This is a Walmart-style replenishment order with fictional data: an original stand-alone PO (BEG*00*SA), a department reference, a requested delivery date, store ship-to and corporate bill-to, and three lines identified by vendor item number and UPC. Use the Plain English tab for a readable translation, the Split View to see raw and parsed side by side, or click any segment to break it down element by element.
Walmart 850 Purchase Order (Basic)
A basic Walmart purchase order with multiple line items
- Document
- 850 Purchase Order
- From / to
- WALMART → VENDOR123
- Lines
- 3 items
- Total
- 5,096.50
- Ship To
- WALMART STORE 001
- 123 MAIN STREET, BENTONVILLE, AR, 72712
- Bill To
- WALMART INC
- 702 SW 8TH STREET, BENTONVILLE, AR, 72716
- Interchange date
- Nov 20, 2023
- Order date
- Nov 20, 2023
- Delivery date
- Nov 23, 2023
Raw EDI (X12)
Human-Readable
Interchange
Functional Group
Transaction 850
Purchase OrderOrder Information
References
Parties
Dates
Line Items (3)
Walmart's own requirements are in its supplier implementation guides. Our Walmart EDI compliance page summarizes what suppliers usually need to set up.
850 Structure at a Glance
The 850 has a heading (order-level data), a detail area (one PO1 loop per line) and a short summary. The table lists the segments most suppliers see in release 004010. The standard defines many more optional segments; your partner's guide says which it sends.
| Area | Segment | Name | Usage in 004010 | Notes |
|---|---|---|---|---|
| Heading | ST | Transaction Set Header | Mandatory | ST01 = 850 |
| Heading | BEG | Beginning Segment for Purchase Order | Mandatory | Purpose, PO type, PO number, date |
| Heading | CUR | Currency | Optional | Used on cross-border orders |
| Heading | REF | Reference Identification | Optional, repeats | Department, customer order, promotion numbers |
| Heading | PER | Administrative Communications Contact | Optional | Buyer contact |
| Heading | FOB | F.O.B. Related Instructions | Optional | Freight payment method and title transfer |
| Heading | SAC | Service, Promotion, Allowance, or Charge | Optional loop | Order-level allowances or charges |
| Heading | ITD | Terms of Sale | Optional | Payment terms |
| Heading | DTM | Date/Time Reference | Optional, up to 10 | Delivery date, ship window, cancel date |
| Heading | TD5 | Carrier Details (Routing) | Optional | Requested carrier or routing |
| Heading | N1 loop | Name, with N2, N3, N4, REF, PER | Optional, repeats | Buyer, ship-to, bill-to, vendor |
| Detail | PO1 | Baseline Item Data | Mandatory loop | One per line: quantity, unit, price, product IDs |
| Detail | PID | Product/Item Description | Optional | Free-text description |
| Detail | PO4 | Item Physical Details | Optional | Pack and inner pack |
| Detail | SAC, DTM, SDQ, N1 | Line-level allowances, dates, store distribution, ship-to | Optional | Used when a line differs from the header |
| Summary | CTT | Transaction Totals | Optional | Line count, optional hash total |
| Summary | SE | Transaction Set Trailer | Mandatory | Segment count and control number |
"Optional" in the standard often means "required" in a retailer's guide. Build your map from the partner's guide, not from the standard alone.
Key segments explained
BEG: Beginning segment
The header that opens every 850.
BEG*00*SA*4500123456**20231120~
| Element | Name | Example | What it means |
|---|---|---|---|
| BEG01 | Transaction Set Purpose Code | 00 | 00 original. Some buyers also send 01 cancellation, 05 replace or 07 duplicate; most send changes as an 860 |
| BEG02 | Purchase Order Type Code | SA | SA stand-alone, DS dropship, NE new order, BK blanket order, RL release against a blanket |
| BEG03 | Purchase Order Number | 4500123456 | The buyer's PO number. You echo it on the 855, 856 and 810 |
| BEG04 | Release Number | Used for releases against a blanket order | |
| BEG05 | Date | 20231120 | The PO date in CCYYMMDD |
PO1: Line item baseline
One PO1 loop per ordered line.
PO1*001*100*EA*15.99*PE*VN*PROD-12345*UP*012345678905~
| Element | Name | Example | What it means |
|---|---|---|---|
| PO101 | Assigned Identification | 001 | The buyer's line number. Echo it on the 855 and, where asked, the 856 and 810 |
| PO102 | Quantity Ordered | 100 | How many units of PO103 |
| PO103 | Unit or Basis for Measurement Code | EA | EA each, CA case, and other codes the buyer allows |
| PO104 | Unit Price | 15.99 | Price per unit. This element carries an explicit decimal point |
| PO105 | Basis of Unit Price Code | PE | PE price per each, PC price per case, and similar |
| PO106 / PO107 | Product/Service ID Qualifier and ID | VN / PROD-12345 | VN is the vendor's item number |
| PO108 / PO109 | Second qualifier and ID | UP / 012345678905 | UP is the 12-digit U.P.C. consumer package code |
More pairs can follow (PO110 onward). Common qualifiers are VN vendor item, UP U.P.C., EN EAN, UK 14-digit GTIN shipping container code, BP buyer's part number and IN buyer's item number. A PID*F segment usually follows each PO1 with the free-text description.
The unit and the price have to agree with each other. A case price on an each line, or the reverse, multiplies the error by the pack size, and it carries straight through to your invoice. The UOM codes reference lists the X12 unit codes.
N1: Name segments
Each N1 loop identifies a party. The code in N101 says which one, and N103/N104 carry an ID.
N1*ST*WALMART STORE 001*92*001~
N3*123 MAIN STREET~
N4*BENTONVILLE*AR*72712~
| Code in N101 | Party |
|---|---|
ST | Ship-to: the store, DC or consumer address |
BT | Bill-to |
BY | Buying party |
SE | Selling party |
VN | Vendor |
SF | Ship-from |
N103 is the ID qualifier: 92 means assigned by the buyer (a store or DC number), 1 is a D-U-N-S number, and UL is a 13-digit Global Location Number. Load ship-to locations by that code, not by name. Names change; store numbers rarely do.
DTM: Date/time references
| Code in DTM01 | Meaning in X12 |
|---|---|
002 | Delivery Requested |
010 | Requested Ship |
037 | Ship Not Before |
038 | Ship No Later |
063 | Do Not Deliver After |
064 | Do Not Deliver Before |
001 | Cancel After |
A ship window is usually 037 plus 038, and a delivery window 064 plus 063. Read which pair your partner sends: shipping on the last day of a delivery window is late.
ITD: Terms of sale
ITD*01*3*2**10**30~
ITD01 is the terms type (01 basic), ITD02 the date the terms count from (3 invoice date), ITD03 the discount percent, ITD05 the discount days and ITD07 the net days. This one reads "2% 10, net 30". The 810 guide covers ITD element by element, because the invoice is where terms are applied.
CTT: Transaction totals
CTT01 is the number of PO1 lines. CTT02, when sent, is a hash total, usually the sum of the PO102 quantities. Check both when you load the order: a mismatch means lines were lost or duplicated in transit or in your translator.
Interactive example: ship window, terms and a DC ship-to
A home goods retailer orders three items for its Columbus distribution center. The order carries 2% 10, net 30 terms in ITD, a ship window from November 9 to 13 in DTM*037 and DTM*038, and a CTT with three lines and a hash total of 46 units. All parties and IDs are fictional.
850 Purchase Order: Ship Window, Terms and Three Lines
Harbor Home PO 4500091150 to Cedarline Home: stand-alone order (BEG02 SA), 2% 10 net 30 terms in ITD, a ship window in DTM 037 (ship not before) and 038 (ship no later), a DC ship-to, and three lines identified by UPC and vendor item number. Fictional parties
- Document
- 850 Purchase Order
- From / to
- HARBORHOME → CEDARLINE
- Lines
- 3 items
- Total
- 1,765.00
- Buyer
- HARBOR HOME INC
- Ship To
- HARBOR HOME DC 02
- 4400 RIVERGATE PKWY, COLUMBUS, OH, 43217
- Interchange date
- Nov 2, 2026
- Order date
- Nov 2, 2026
Raw EDI (X12)
Human-Readable
Interchange
Functional Group
Transaction 850
Purchase OrderOrder Information
References
Parties
Dates
Line Items (3)
Additional Segments (1)
Three real-world variants
The 850 is a flexible spec, and every buyer uses it a little differently. These are the three patterns that cover most of the volume in B2B retail.
1. Retail replenishment (Walmart, Target, Kroger)
Store or DC replenishment orders in case-pack quantities, to a requested date or window. The Walmart-style example above is the typical shape.
What to expect:
- Ship-to locations identified by a buyer-assigned store or DC number (
N103=92) - A department number in
REF*DP - Product IDs by U.P.C. or GTIN plus your vendor item number
- A routing guide that sits outside the 850 and governs how you ship. On collect freight, routing often runs through a 753 request and 754 routing instructions
2. Drop-ship orders (Target, Amazon, Wayfair)
The retailer takes the consumer's order, then sends you an 850 to ship directly to the consumer. The N1*ST becomes a residential address.
Target 850 Purchase Order (Drop Ship)
Target drop ship order with ship-to consumer address
- Document
- 850 Purchase Order
- From / to
- TARGET → SUPPLIER456
- Lines
- 2 items
- Total
- 99.98
- Ship To
- JOHN DOE
- 456 ELM AVENUE APT 2B, MINNEAPOLIS, MN, 55401
- Interchange date
- Nov 20, 2023
- Order date
- Nov 20, 2023
- Delivery date
- Nov 25, 2023
Raw EDI (X12)
Human-Readable
Interchange
Functional Group
Transaction 850
Purchase OrderOrder Information
References
Parties
Dates
Line Items (2)
What changes from a replenishment 850:
BEG02isDS(dropship)N1*STcarries the consumer's name and address instead of a location code- A
REF*CO(customer order number) usually carries the consumer-facing order ID, which you echo on the ship notice and invoice - Quantities are usually small, often one per line
Our EDI for ecommerce guide covers drop-ship flows in more depth.
3. Amazon Vendor Central
Amazon's 850 follows the same X12 structure with its own conventions, which are set out in its Vendor Central EDI guides.
Amazon 850 Purchase Order (Vendor Central)
Amazon Vendor Central purchase order for FC replenishment
- Document
- 850 Purchase Order
- From / to
- AMAZON → VENDOR789
- Lines
- 3 items
- Total
- 19,737.00
- Ship To
- AMAZON.COM DEDC LLC
- 24208 SAN MICHELE ROAD, MORENO VALLEY, CA, 92551
- Buyer
- AMAZON.COM LLC
- Interchange date
- Nov 20, 2023
- Order date
- Nov 20, 2023
Raw EDI (X12)
Human-Readable
Interchange
Functional Group
Transaction 850
Purchase OrderOrder Information
References
Parties
Dates
Line Items (3)
What this example shows:
- The ship-to is a fulfillment center, identified by its FC code (
ONT8here) - Items carry the ASIN as a buyer's part number (
BP) next to your vendor item number (VN). An ASIN is Amazon's catalog ID, not a GTIN BEG02isNE(new order)- Requested dates are in
DTM. Check which date codes Amazon's current guide uses for the delivery window before you map them
Our Amazon EDI compliance page and Target page summarize each retailer's setup.
How the 850 Relates to Other EDI Documents
The 850 is the first document in the order cycle, and the documents that follow all reference it.
| Document | What it communicates | Direction | Timing |
|---|---|---|---|
| 850 Purchase Order | What the buyer wants to buy | Buyer to supplier | Order placed |
| 997 / 999 | The 850 arrived and passed syntax checks | Supplier to buyer | Shortly after receipt |
| 855 PO Acknowledgment | Whether the supplier accepts, changes or rejects each line | Supplier to buyer | Within the partner's window |
| 860 PO Change | A buyer change to an existing 850 | Buyer to supplier | Before fulfillment |
| 869 / 870 | Status inquiry and report on open orders | Buyer asks, supplier answers | While the order is open |
| 856 Ship Notice (ASN) | What physically shipped and how it is packed | Supplier to buyer | At shipment |
| 810 Invoice | The amount owed for what shipped | Supplier to buyer | After shipment |
| 820 Remittance | What was paid and deducted | Buyer to supplier | After the invoice is approved |
Every one of these carries the original PO number from BEG03, which is how buyer and supplier systems tie the cycle together. The EDI order lifecycle guide walks through the whole sequence.
850 vs 875 vs 860
| 850 Purchase Order | 875 Grocery Products PO | 860 PO Change | |
|---|---|---|---|
| Purpose | Place a new order | Place a new order (grocery UCS format) | Change an order already sent |
| Header segment | BEG | G50 | BCH |
| Line segment | PO1 | G68 | POC |
| Functional group | PO | OG | PC |
| Who uses it | Retail, distribution, manufacturing | Some grocery retailers, wholesalers and foodservice distributors | Any buyer that sends 850s |
Implementation best practices
Validate before you acknowledge
Don't send an 855 accepting the order until you've checked the 850 against your own data:
- UPC/GTIN check: Confirm each U.P.C. is 12 digits with a valid check digit and maps to a live item. The check digit calculator verifies one by hand.
- Vendor item resolves: Verify the
VNitem maps to an active SKU in your item master, not a discontinued or unmapped record. - Unit and price agree: Compare
PO103andPO104with your price list for that customer. A price difference is cheaper to raise on the 855 than to argue after the invoice. - Quantity sanity: Flag zero quantities, or fractional quantities on an each unit, as likely mapping errors.
- Achievable dates: Compare the requested delivery date or ship window with your lead time and cutoffs.
- Complete ship-to: Flag an order whose
N1*SThas no location code and no fullN3/N4address.
Respond on time
After an 850 arrives, the buyer usually expects:
| Response | Purpose |
|---|---|
| 997 Functional Acknowledgment | "The 850 arrived and parsed" |
| 855 PO Acknowledgment | "Here is what we will ship, line by line" |
| 856 ASN | "Here is what is on the truck and how it is packed" |
| 810 Invoice | "Here is what you owe for what shipped" |
The deadline for each one is in the partner's guide or vendor agreement. Some buyers do not use the 855 at all; others treat a late or missing one as a compliance failure.
Common 850 errors and how to prevent them
| Error | What happens | Prevention |
|---|---|---|
| Ship window codes misread | Goods ship outside the window and arrive late or early | Map 037/038 (ship) and 064/063 (deliver) separately; never treat 010 or 002 as a window |
| Unit of measure mismatch | Cases shipped against an each order, or the reverse | Map PO103 to your selling unit explicitly for each partner |
| Unknown ship-to code | Order loads with no address, or the wrong DC | Keep a location table from the partner's store and DC list; fail the order if the code is missing |
| Item not found | Line skipped or loaded as a placeholder | Match on both the buyer's ID and your vendor item; route misses to a person, not a default SKU |
| Price not on your list | Invoice price differs, buyer short-pays | Check PO104 on receipt and raise it on the 855 |
| Duplicate PO loaded | Goods shipped twice | Reject a second 850 with the same BEG03 unless BEG01 says it is a replacement |
| Change sent as a new 850 | Old and new versions both live | Agree with the buyer whether changes come as 860s, and handle BEG01 codes they send |
| Lines lost in translation | Short shipment, then a fill-rate complaint | Check CTT01 against the number of PO1 loops you loaded |
| Date format errors | Translator rejects the segment | X12 dates are CCYYMMDD, with no separators |
Most of these surface later as EDI chargebacks or deductions on an 812 or 820, far from the order that caused them.
850 implementation checklist
Before your first live 850 with a new partner:
- Get the partner's 850 implementation guide and its
GS08version - List the
BEG02order types it sends and how each one is fulfilled - Load its store and DC location codes for
N1*ST - Confirm which product ID qualifiers it sends, and map each to your item master
- Confirm units, pack sizes and price basis for every item
- Confirm which date codes it uses for delivery dates and windows
- Confirm whether it sends changes as 860s or replacement 850s
- Confirm which responses it expects (997, 855, 856, 810) and their deadlines
- Test an original, a drop-ship (if used), a multi-line order and a change
- Watch your 997s and rejections closely for the first weeks of production
If you are new to retail EDI, our EDI compliance guide and EDI document types reference show how the 850 fits with the other documents your partners may require.
Test your own 850s
Paste an 850 into our free EDI inspector to see every segment parsed and labelled, with a plain-English summary of the order. The inspector also explains structural rejections. To see what an 855 or 856 response would look like for the same order, the EDI response builder drafts one from the 850.
Turning 850s Into Orders With OrderSync
The 850 is one of several ways orders arrive. The same customers may also send PDFs, emails and spreadsheets, and grocery buyers may send 875s.
OrderSync reads inbound orders in all of those formats, matches customers, ship-to locations, items and units to your catalog, and outputs clean data to your ERP or valid X12. Read more about purchase order automation and multi-format order processing, or book a 15-minute walkthrough to see your own orders processed.
Related transaction sets
- 855 Purchase Order Acknowledgment: your response to the 850
- 860 Purchase Order Change: when buyers modify an existing 850
- 856 Ship Notice (ASN): advance ship notification
- 810 Invoice: request for payment
- 997 Functional Acknowledgment: receipt confirmation
- 875 Grocery Products Purchase Order: the grocery UCS order
- EDIFACT ORDERS: the EDIFACT equivalent of the 850, used by UK and European partners
Frequently Asked Questions
What is the difference between an EDI 850 and an EDI 875?
The 850 is the general-purpose X12 purchase order used across retail, distribution and manufacturing. The 875 is the grocery purchase order from the UCS family, with G-prefixed segments: G50 for the header and G68 for each line. Which one you receive depends on the buyer, so check its implementation guide.
Does an 850 have to be acknowledged?
Almost always with a 997 Functional Acknowledgment, which confirms the 850 arrived and passed syntax checks. Many buyers also require an 855 Purchase Order Acknowledgment, which says line by line what you will ship. The deadlines for both are set in the buyer's guide or vendor agreement.
What's the difference between BEG02 = "SA" and BEG02 = "DS"?
BEG02 is the purchase order type. SA is a stand-alone order, the normal stocking order to a store or DC. DS is a dropship order, shipped directly to the buyer's customer. NE (new order) and BK (blanket order) are also common. The type changes how you fulfill the order and what the ship-to looks like.
How do I match line items between an 850 and an 856 ASN?
Carry the same product IDs through. The qualifier and ID pairs from PO106 onward on the 850 reappear on the 856 LIN segment (LIN02 and LIN03, then LIN04 and LIN05), and many buyers also want the original PO1 line number in LIN01. If your item numbers or UPCs drift between the 850 and 856, receiving cannot match them.
Why does an 850 sometimes have more than one ship-to?
Because one PO can supply several locations. In 004010 the buyer can put an N1 loop inside each PO1 loop to give that line its own ship-to, or use SDQ segments to split a line's quantity across store numbers. If your import keeps only the header ship-to, goods go to the wrong place.
What is the difference between EDI 810 and 850?
The 850 is the purchase order and the 810 is the invoice. The buyer sends the 850 to start the order, stating what it wants and the price it expects. The supplier sends the 810 after shipment to bill for what shipped, with the original PO number in BIG04 so the buyer can match the bill to the order.
What is the difference between EDI 850 and 860?
The 850 creates a new purchase order; the 860 changes one that already exists. To adjust quantities, add or remove lines, move a date or cancel an order already sent as an 850, the buyer sends an 860 Purchase Order Change that references the original PO number, so the supplier updates the order instead of creating a duplicate.
Does the 850 exist outside X12?
Yes, under different names. European partners send an EDIFACT ORDERS message, and buyers on the Peppol network send a UBL Order. It is the same business document in a different syntax. Our UBL vs X12 vs EDIFACT mapping lines the three up field by field.