EDI 850 — Purchase Order
Flxpoint → Supplier · Purchase order from retailer
EDI 850 — Purchase Order
Purpose
Transmit new orders from Retailer (via FLX) to Supplier. Originates with the Retailer, sent to FLX, then FLX sends to Supplier.
In Plain English
The 850 is the order itself — the retailer's commitment to buy, including what, how many, where to ship it, and how fast. Flxpoint generates the 850 from the underlying channel order (Shopify, Amazon, etc.) and drops it in the supplier's inbound SFTP directory. Everything downstream — the 855 acknowledgement, the 856 ship notice, the 810 invoice — is tied back to the PO number assigned on this 850. That is why the PO number, customer order number, and item identifiers on the 850 must be echoed exactly on every follow-up transaction. A single mismatch and the supplier's shipment won't match back to an order on the retailer's side.
Frequency
Hourly recommended, daily minimum. Can arrive at any time of day.
Business Rules
- Customer order number (N9 segment) MUST be printed on the packing slip
- Supplier MUST adhere to the shipping service level in TD5 segment
- Cancel After date (DTM) defaults to 7 days after order date
- PO number and UPC/EAN/SKU must be returned on 856 and 810
- Billing address only included if enabled within Flxpoint
- Order types: Standard B2B/B2C account types are supported in Send FR mapping. Promotion order types are not yet supported as an account type option. Custom order type handling requires Integrations team configuration.
Segment Hierarchy
ISA Interchange Header GS Group Header (GS01 = "PO") ST Transaction Set Header (ST01 = "850") BEG Beginning Segment for Purchase Order CUR Currency REF Reference Identification (Internal Vendor #) PER Administrative Communications Contact (Seller's Phone) DTM Date/Time Reference (Cancel After) TD5 Carrier/Shipment Details N9 Reference Identification (Customer Order #) ┌─ N1 Loop - Ship-To (Mandatory) │ N1 Name (ST = Ship To) │ N3 Address Information │ N4 Geographic Location │ PER Communications Contact └─ ┌─ N1 Loop - Bill-To (Optional) │ N1 Name (BT = Bill To) │ N3 Address Information │ N4 Geographic Location │ PER Communications Contact └─ ┌─ PO1 Loop (repeats per line item) │ PO1 Baseline Item Data │ PID Product/Item Description (title) │ PID Product/Item Description (customizations - optional, multiple) └─ CTT Transaction Set Totals SE Transaction Set Trailer GE Group Trailer IEA Interchange Trailer
Segment Overview
| Segment | Name | FLX Status | Notes |
|---|---|---|---|
| ST | Transaction Set Header | Required | ST01 = 850 |
| BEG | Beginning Segment | Required | Purpose 00, type SA |
| CUR | Currency | Required | Always BY / USD |
| REF | Reference Identification | Required | IA = Internal Vendor # |
| PER | Communications Contact | Situational | Seller phone at heading level |
| DTM | Date/Time Reference | Situational | Cancel After date |
| TD5 | Carrier Details | Required | TD512 service level code is mandatory |
| N9 | Extended Reference | Required | Customer order # — must go on packing slip |
| N1 / N3 / N4 / PER | Ship-To Loop | Required | Ship-to address and contact |
| N2 | Additional Name | Not Used | Generic X12 accepts; FLX ignores this segment entirely |
| N1 / N3 / N4 / PER | Bill-To Loop | Situational | Only included if billing address enabled in FLX |
| PO1 / PID | Line Item Loop | Required | Repeats once per line item |
| CTT | Transaction Totals | Required | Count of PO1 segments |
| SE | Transaction Set Trailer | Required |
Segment Specifications
ST - Transaction Set Header
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| ST01 | Transaction Set ID Code | 3 ID | Required | 850 |
| ST02 | Transaction Set Control Number | 9 N | Required | Unique, incremented by 1 |
BEG - Beginning Segment for Purchase Order
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| BEG01 | Transaction Set Purpose Code | 2 ID | Required | 00 (Original) |
| BEG02 | Purchase Order Type Code | 2 ID | Required | SA (Stand-Alone Order) |
| BEG03 | Purchase Order Number | 22 AN | Required | Unique PO identifier |
| BEG05 | Date | 8 DT | Required | CCYYMMDD format |
CUR - Currency
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| CUR01 | Entity Identifier Code | 3 ID | Required | BY (Buying Party) |
| CUR02 | Currency Code | 3 ID | Required | USD |
REF - Reference Identification
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| REF01 | Reference ID Qualifier | 2 ID | Required | IA (Internal Vendor Number) |
| REF02 | Reference Identification | 30 AN | Required | FLX-assigned vendor number. Max size: 10 |
PER - Administrative Communications Contact (Seller's Phone)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| PER01 | Contact Function Code | 2 ID | Optional | EA (EDI Coordinator) |
| PER03 | Communication Number Qualifier | 2 ID | Optional | TE (Telephone Number) |
| PER04 | Communication Number | 80 AN | Optional | Freeform telephone number |
DTM - Date/Time Reference
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| DTM01 | Date/Time Qualifier | 3 ID | Required | 001 (Cancel After) |
| DTM02 | Date | 8 DT | Required | CCYYMMDD. Default: 7 days after order date |
TD5 - Carrier/Shipment Details
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| TD505 | Routing | 35 AN | Optional | Free-form name of requested carrier. Conform to trading partner's supported options |
| TD512 | Service Level Code | 2 ID | Required | Shipping method the Retailer is requesting |
TD512 Service Level Codes:
| Code | Description |
|---|---|
D3 | 3 Day Select |
ND | Next Day Air Saver |
SC | Second Day Air |
SI | Standard Ground |
SP | SurePost |
These values may vary based on trading partner.
N9 - Reference Identification (Customer Order Number)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| N901 | Reference ID Qualifier | 3 ID | Required | CO (Customer Order Number) |
| N902 | Reference Identification | 30 AN | Required | Customer order number - MUST be put on packing slip |
N1 - Ship-To Name (Mandatory)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| N101 | Entity Identifier Code | 3 ID | Required | ST (Ship To) |
| N102 | Name | 60 AN | Required | Customer name. Display on packing slip. Max 60 chars — exceeding causes hard rejection (FLX-ALL-007) |
N3 - Ship-To Address
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| N301 | Address Information | 55 AN | Required | First address line. Display on package label |
| N302 | Address Information | 55 AN | Optional | Second address line |
N4 - Ship-To Geographic Location
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| N401 | City Name | 30 AN | Required | Ship-To city |
| N402 | State Code | 2 AN | Required | Ship-To state |
| N403 | Postal Code | 15 N | Required | Zip code, no hyphens or blanks |
PER - Ship-To Communications Contact
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| PER01 | Contact Function Code | 2 ID | Optional | NT (Notification Contact) |
| PER03 | Communication Number Qualifier | 2 ID | Optional | TE (Telephone) |
| PER04 | Communication Number | 80 AN | Optional | Phone number |
| PER05 | Communication Number Qualifier | 2 ID | Optional | EM (Email) |
| PER06 | Communication Number | 80 AN | Optional | Email address |
N1 - Bill-To Name (Optional)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| N101 | Entity Identifier Code | 3 ID | Optional | BT (Bill To). Only included if enabled in Flxpoint |
| N102 | Name | 60 AN | Optional | Customer name |
Bill-To loop includes same N3, N4, PER segments as Ship-To.
PO1 - Baseline Item Data (Repeating Loop)
PO1 supports multiple product identifier pairs starting at position 6. Flxpoint reads the first pair (PO106/PO107) as the primary identifier. Additional pairs (PO108–PO117) can carry secondary identifiers like manufacturer codes, alternate UPCs, or buyer part numbers.
| Element | Name | Length | Status | Value/Notes |
|---|---|---|---|---|
| PO101 | Assigned Identification | 20 N | Required | Line item number. Starts at 1, incrementing |
| PO102 | Quantity Ordered | 15 N | Required | Will be 1 or more |
| PO103 | Unit of Measure | 2 ID | Required | EA (Each) always |
| PO104 | Unit Price | 17 N | Required | Expected cost. Format: 99.99 (e.g., 1.5, 150, 0.95) |
| PO106 | Prod/Serv ID Qualifier | 2 ID | Required | Primary ID type: UP (UPC), EN (EAN), or SK (SKU) |
| PO107 | Prod/Serv ID | 48 AN | Required | Primary identifier. Exact size: UPC=12, EAN=13, SKU≤30 |
| PO108 | Prod/Serv ID Qualifier | 2 ID | Situational | Additional type: MG (Manufacturer), BP (Buyer Part #), VN (Vendor #), UP, EN, SK |
| PO109 | Prod/Serv ID | 48 AN | Situational | Value for PO108 qualifier |
| PO110 | Prod/Serv ID Qualifier | 2 ID | Situational | Additional type (third pair) |
| PO111 | Prod/Serv ID | 48 AN | Situational | Value for PO110 qualifier |
| PO112 | Prod/Serv ID Qualifier | 2 ID | Situational | Additional type (fourth pair) |
| PO113 | Prod/Serv ID | 48 AN | Situational | Value for PO112 qualifier |
| PO114–PO117 | Additional ID Pairs | — | Situational | Up to two more pairs (positions 14–17) |
FLX reads up to 6 identifier pairs per line item. Always include at least one of SK, UP, or EN in the first pair. Additional pairs improve matching accuracy but are not required.
PID - Product/Item Description (title)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| PID01 | Item Description Type | 1 ID | Optional | F (Free-form) |
| PID02 | Product Characteristic Code | 2 ID | Optional | 08 (Product) |
| PID05 | Description | 80 AN | Optional | First PID = product title. Text over 80 chars trimmed |
PID - Item Customizations (Optional, Multiple)
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| PID01 | Item Description Type | 1 ID | Optional | F |
| PID02 | Product Characteristic Code | 2 ID | Optional | 08 |
| PID05 | Description | 80 AN | Optional | Key-value format: [key] : [value]. Only for suppliers who need them. 80 char limit, trimmed |
CTT - Transaction Set Totals
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| CTT01 | Number of Line Items | 6 N | Required | Count of PO1 segments |
SE - Transaction Set Trailer
| Element | Name | Length | M/O | Value/Notes |
|---|---|---|---|---|
| SE01 | Number of Included Segments | 6 N | Required | Including ST and SE |
| SE02 | Transaction Set Control Number | 9 N | Required | Must match ST02 |
Validation Notes
FLX-Specific Requirements vs Generic X12
| Field | FLX Spec | Generic 004010 | Impact |
|---|---|---|---|
| PO1 qualifiers | UP, EN, SK | SK primary + BP, MG, VP, UP, EN secondary | Generic X12 allows more qualifier pairs |
| PO1 extra ID pairs | Not used | Up to PO1-17 (6 pairs) | Generic X12 more permissive |
| N1-03/N1-04 | Not in FLX spec | Optional (ZZ qualifier, ID code) | Additional facility/location code |
| N2 segment | Not Used | Optional additional name | FLX ignores N2 entirely — don't include it |
| PER in heading | Only seller phone | EA + NT contact codes | Generic X12 has both EDI coordinator and notification |
What Strict Validators May Flag
- Missing N1-03/N1-04 identification code qualifier pair (optional in both)
- PO1 with only one product identifier pair (generic X12 supports many)
- Missing PER segment (optional)
Example File
ISA*00* *00* *ZZ*FLXPOINT *ZZ*123456 *120111*2309*U*00401*000007607*0*P*>~GS*PO*FLXPOINT*001017078*20180111*2309*7607*X*004010VICS~ST*850*0001~BEG*00*SA*75070461**20180111~CUR*BY*USD~REF*IA*123456~PER*EA**TE*8011234567~DTM*001*20180116~TD5*****UPS******SI~N9*CO*10007241899999~N1*ST*John Smith~N3*1234 E Main Street~N4*City*UT*84003~PER*NT**TE*8011234567*EM*shippingemail@gmail.com~N1*BT*John Smith~N3*1234 E Main Street~N4*City*UT*84003~PER*NT**TE*8011234567*EM*billingemail@gmail.com~PO1*0001*1*EA*14.4**UP*123456789159~PID*F*08***Item Title Here~PID*F*08***Customization Text : Happy Birthday, Gift Recipient!~PID*F*08***Custom Image Link : tinyurl.com/80CharacterLimit.................cutoff~CTT*1~SE*22*0001~ST*850*0002~BEG*00*SA*75070462**20180111~CUR*BY*USD~REF*IA*123456~PER*EA**TE*9999999999~DTM*001*20180112~TD5*****any******ND~N9*CO*10007247199999~N1*ST*Fake Name~N3*456 N 200 S~N4*Nowhereville*UT*84003~PER*NT**TE*(801)123-4567*EM*anothershippingemail@gmail.com~PO1*0001*1*EA*27.5**UP*123456789951~PID*F*08***Item Title Here~PO1*0002*1*EA*27.5**UP*456789111213~PID*F*08***Item Title Here~CTT*2~SE*18*0002~GE*2*7607~IEA*1*000007607~
Notes:
- First transaction includes optional billing address + item customizations (PID key:value)
- Second transaction has no billing address, 2 line items, Next Day Air shipping
Something unclear?
Ask our AI assistant — it knows this spec and can explain any segment, error, or rule in plain English.