The X12 850 purchase order (PO) request payload sends a PO request to your system, such as your eCommerce platform or ERP system. For standard integrations that receive EDI payloads, the TradeCentric platform transforms the buyer's PO into our standard EDI format. Then, our platform delivers the payload to your system so that you can process the PO and create a sales order. Delivery methods vary by integration, but we support methods such as AS2, HTTP, and SFTP.
To receive POs as expected, your system must accept our standard EDI format. This article describes the standard EDI request format.
Jump to:
Request payload (from TradeCentric)
The code block below shows an example PO request payload in our standard EDI format:
ISA*00* *00* *ZZ*BUYER1234567890*ZZ*SUPPLIER1234567*221118*1057*U*00401*000000001*0*P*>~
GS*PO*BUYER1234567890*SUPPLIER1234567*20221118*1057*1*X*004010~
ST*850*0001~
BEG*00*NE*PO-123**20221118~
REF*ZZ*93369535150910.10.57.136~
SAC*C*D240***1009****06*1~
DTM*002*20221225~
N1*BY*TEST_CORP~
N1*SU*SUPPLIER_INC~
N1*ST*Test Corp. - Nashville Branch~
N3*123 Test St.; Suite A~
N4*Nashville*TN*37011*US~
PER*CN*Contact Name*TE*8885559876*EM*contact@buyer.com~
N1*BT*Test Corp. - Nashville Branch~
N3*123 Test St.; Suite A~
N4*Nashville*TN*37011*US~
PER*CN*Contact Name*TE*8885559876*EM*contact@buyer.com~
PER*BD*Contact Name*TE*8885551234*EM*contact@buyer.com~
PO1*101*3*EA*41.15**BP*45L017*VP*CART12-ITEM123~
PID*F****Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow R~
TXI*ST*8.64~
CTT*1*3~
SE*21*0001~
GE*1*1~
IEA*1*000000001~
Back to top
Request segment details
A standard PO request EDI payload has envelope, heading, detail, and summary sections. The subsections explain the segments and fields in each payload section.
String and number types: ID = standard EDI code, AN = alphanumeric text, N0 = whole number, N2 = decimal number without decimal point, R = decimal number with decimal point
Envelope
Contains the entire payload and provides the general identifying information described in the subsections below
ISA - Interchange control header
Provides identifying information about the payload
Example
ISA*00* *00* *ZZ*BUYER1234567890*ZZ*SUPPLIER1234567*221118*1057*U*00401*000000001*0*P*>~
ISA field breakdown
-
ISA-01
Authorization information qualifier
Type: String (ID)Length: 2
Specifies the type of authorization information included
Example: 00 = no authorization information is included
-
ISA-02
Authorization information
Type: String (AN)Length: 10
Provides the authorization value when authorization information is included
Example: = 10 spaces to indicate that the authorization information is blank
-
ISA-03
Security information qualifier
Type: String (ID)Length: 2
Specifies whether security information is included
Example: 00 = no security information is included
-
ISA-04
Security information
Type: String (AN)Length: 10
Provides the security value when security information is included
Example: = 10 spaces to indicate that the security information is blank
-
ISA-05
Sender qualifier
Type: String (ID)Length: 2
Specifies the type of sender identifier provided
Example: ZZ = mutually defined by buyer and supplier
-
ISA-06
Sender identifier
Type: String (AN)Length: 15
Provides the sender identifier
Example: BUYER1234567890
-
ISA-07
Receiver qualifier
Type: String (ID)Length: 2
Specifies the type of receiver identifier provided
Example: ZZ = mutually defined by buyer and supplier
-
ISA-08
Receiver identifier
Type: String (AN)Length: 15
Provides the receiver identifier
Example: SUPPLIER1234567
-
ISA-09
Interchange date
Format: YYMMDD
Provides the date when the payload was created
Example: 221118 = November 18, 2022
-
ISA-10
Interchange time
Format: HHMM
Provides the time when the payload was created
Example: 1057 = 10:57
-
ISA-11
Interchange control standards identifier
Type: String (ID)Length: 1
Specifies the standards organization that defines the format used for the payload
Example: U = U.S. EDI Community of ASC X12, TDCC, and UCS
-
ISA-12
Interchange control version code
Type: String (ID)Length: 5
Specifies the X12 version used for the payload
Example: 00401
-
ISA-13
Interchange control number
Type: Numeric (N0)Length: 9
Provides a unique control number for the payload
Example: 000000001
-
ISA-14
Acknowledgment requested code
Type: String (ID)Length: 1
Specifies whether the buyer requests an acknowledgment that your organization received the document
Values: 0 = no acknowledgment requested, 1 = acknowledgment requested
-
ISA-15
Interchange usage indicator code
Type: String (ID)Length: 1
Indicates how the receiver should process the payload
Example: P = production data
Other codes: T = test data, I = informational data
-
ISA-16
Component element separator
Type: DelimiterLength: 1
Specifies the unique character used to separate multiple values within a field
Example: >
GS - Functional group header
Assigns a functional group to the PO in the payload
Example
GS*PO*BUYER1234567890*SUPPLIER1234567*20221118*1057*1*X*004010~
GS field breakdown
-
GS-01
Functional identifier code
Type: String (ID)Length: 2
Specifies the transaction type for the group
Will be PO
-
GS-02
Application sender's code
Type: String (AN)Length: 2-15
Provides the sender code for the group
Example: BUYER1234567890
-
GS-03
Application receiver's code
Type: String (AN)Length: 2-15
Provides the receiver code for the group
Example: SUPPLIER1234567
-
GS-04
Group date
Format: YYYYMMDD
Provides the date when the group was created
Example: 20221118 = November 18, 2022
-
GS-05
Group time
Format: HHMM
Provides the time when the group was created
Example: 1057 = 10:57
-
GS-06
Group control number
Type: Numeric (N0)Length: 1-9
Provides the control number that the buyer generated for the group
Example: 1
-
GS-07
Responsible agency code
Type: String (ID)Length: 1
Specifies the standards agency
Will be X
-
GS-08
Version or release code
Type: String (AN)Length: 1-12
Provides the X12 version used for the group
Example: 004010
Back to top
Heading
Starts the PO and provides the identifying information, reference information, and contact details described in the subsections below
ST - Transaction set header
Start of the PO document
ST field breakdown
-
ST-01
Transaction set identifier code
Type: String (ID)Length: 3
Specifies the transaction type
Will be 850
-
ST-02
Transaction set control number
Type: String (AN)Length: 4-9
Provides the control number that the buyer generated for the transaction set
Example: 0001
BEG - Beginning segment for PO
Provides identifying information about the PO
Example
BEG*00*NE*PO-123**20221118~
BEG field breakdown
-
BEG-01
Transaction set purpose code
Type: String (ID)Length: 2
Specifies the purpose of the transaction set
Example: 00 = original document
Other common codes: 01 = cancellation, 05 = replacement, 07 = duplicate
-
BEG-02
PO type code
Type: String (ID)Length: 2
Specifies the type of transaction
Example: NE = new order
Other common codes: SA = one-time standalone order, BK = long-term blanket agreement
-
BEG-03
Buyer PO identifier
Type: String (AN)Length: 1-22
Provides the PO identifier that the buyer generated, which you'll need to include in the invoice request payload if you create an invoice for this PO
Example: PO-123
-
BEG-04
Release number
Type: String (AN)Length: 1-30
Provides the release number if the PO is associated with a release
Example: blank in this payload
-
BEG-05
PO date
Format: YYYYMMDD
Provides the date when the PO was created
Example: 20221118 = November 18, 2022
REF - Reference information
Provides additional reference information, which may vary depending on the integration's requirements
Example
REF*ZZ*93369535150910.10.57.136~
REF field breakdown
-
REF-01
Reference identification qualifier
Type: String (ID)Length: 2-3
Specifies the type of reference value provided
Example: ZZ = mutually defined by buyer and supplier
Other common codes: DP = department number, IA = buyer's internal vendor number
-
REF-02
Reference identification
Type: String (AN)Length: 1-30
Provides the reference value
Example: 93369535150910.10.57.136 = payload identifier
SAC - Service, promotion, allowance, or charge information
Provides an allowance or charge that applies to the PO
Example
SAC*C*D240***1009****06*1~
SAC field breakdown
-
SAC-01
Allowance or charge indicator code
Type: String (ID)Length: 1
Specifies whether the value provided is an allowance or a charge
Example: C = charge
Other common codes: A = allowance, P = promotion, S = service
-
SAC-02
Service, promotion, allowance, or charge code
Type: String (ID)Length: 4
Specifies the type of allowance or charge provided
Example: D240 = freight charge
Other common codes: C000 = defective allowance for damage, C310 = general discount, D270 = fuel surcharge
-
SAC-05
Amount
Type: Numeric (N2)
Provides the allowance or charge amount
Example: 1009 = 10.09
-
SAC-09
Unit or basis for measurement code
Type: String (ID)Length: 2
Specifies the unit for the allowance or charge quantity
Example: 06 = digits
Other common codes: EA = each item, LB = pounds
-
SAC-10
Quantity
Type: Decimal number (R)
Provides the quantity of the allowance or charge in the specified unit
Example: 1
DTM - Date and time reference
Provides a relevant date for the PO
Example
DTM*002*20221225~
DTM field breakdown
-
DTM-01
Date or time qualifier
Type: String (ID)Length: 3
Specifies the type of date or time value provided
Example: 002 = delivery requested on date
Other common codes: 001 = cancel after date, 010 = shipping requested on date, 106 = required by date
-
DTM-02
Date
Format: YYYYMMDD
Provides the date
Example: 20221225 = December 25, 2022
N1 loop - Parties, addresses, and contacts
Provides the organizations, addresses, and contact details for the PO
Note: We'll repeat this loop for each organization or address involved in the transaction. For example, if the billing address is different from the buyer's address, we may include a segment for the buyer and a separate segment for billing. Addresses may come from the buyer’s PO, a data store that we manage, or address values set for your integration.
Example
N1*BY*TEST_CORP~
N1*SU*SUPPLIER_INC~
N1*ST*Test Corp. - Nashville Branch~
N3*123 Test St.; Suite A~
N4*Nashville*TN*37011*US~
PER*CN*Contact Name*TE*8885559876*EM*contact@buyer.com~
N1*BT*Test Corp. - Nashville Branch~
N3*123 Test St.; Suite A~
N4*Nashville*TN*37011*US~
PER*CN*Contact Name*TE*8885559876*EM*contact@buyer.com~
PER*BD*Contact Name*TE*8885551234*EM*contact@buyer.com~
N1 loop breakdown
-
N1
Name
Identifies the organization or location and provides its name
N1-01 Entity identifier code
Type: String (ID)Length: 2-3
Specifies the type of organization or location provided
Example: BY = buyer
Other common codes: SU = supplier, ST = ship to, BT = bill to
N1-02 Name
Type: String (AN)Length: 1-60
Provides the name of the organization or location
Example: TEST_CORP
Example: N1*BY*TEST_CORP~
-
N3
Address information
Provides street address details for the organization or location
N3-01 Address information
Type: String (AN)Length: 1-55
Provides the first line of the street address
Example: 123 Test St.; Suite A
N3-02 Address information
Type: String (AN)Length: 1-55
Provides the second line of the street address
Example: blank in this payload
Example: N3*123 Test St.; Suite A~
-
N4
Geographic location
Provides city, region, postal code, and country details for the organization or location
N4-01 City name
Type: String (AN)Length: 2-30
Provides the city
Example: Nashville
N4-02 State or province code
Type: String (ID)Length: 2
Provides the state, province, or region code
Example: TN
N4-03 Postal code
Type: String (ID)Length: 3-15
Provides the postal code
Example: 37011
N4-04 Country code
Type: String (ID)Length: 2-3
Provides the country code
Example: US
Example: N4*Nashville*TN*37011*US~
-
PER
Administrative communications contact
Provides contact details for the organization or location
PER-01 Contact function code
Type: String (ID)Length: 2
Specifies the type of contact provided
Example: CN = general contact
Other common codes: BD = buyer contact, DC = delivery contact
PER-02 Name
Type: String (AN)Length: 1-60
Provides the contact name
Example: Contact Name
PER-03 / PER-04 Communication number
Provides a communication method for the contact
PER-03 Communication number qualifier
Type: String (ID)Length: 2
Specifies the type of communication method provided
Example: TE = telephone number
Other common codes: EM = email, FX = fax
PER-04 Communication number
Type: String (AN)Length: 1-256
Provides the value for the communication method
Example: 8885559876
PER-05 / PER-06 Additional communication number
Optional
Provides an additional communication method for the contact
PER-05 Communication number qualifier
Type: String (ID)Length: 2
Specifies the type of communication method provided
Example: EM = email
Other common codes: TE = telephone number, FX = fax
PER-06 Communication number
Type: String (AN)Length: 1-256
Provides the value for the communication method
Example: contact@buyer.com
Example: PER*CN*Contact Name*TE*8885559876*EM*contact@buyer.com~
Back to top
Detail
Provides the PO item details, which are described in the subsections below
Note: We'll repeat these segments for each line item, starting with PO1. Some fields are specified as “Required” or “Typically required” to indicate the minimum requirements across most TradeCentric integrations. Your integration may have additional required fields depending on the needs of your organization and your buyer.
PO1 - Baseline item data
Provides the main details about each line item
Example
PO1*101*3*EA*41.15**BP*45L017*VP*CART12-ITEM123~
PO1 field breakdown
-
PO1-01
Assigned identification
RequiredType: String (AN)Length: 1-20
Provides the line item identifier, which is often the line number
Example: 101
-
PO1-02
Quantity ordered
RequiredType: Decimal number (R)
Provides the quantity of the line item
Example: 3
-
PO1-03
Unit of measure
Typically requiredType: String (ID)Length: 2
Specifies the unit of measure for the quantity
Example: EA = each
-
PO1-04
Unit price
Typically not required but includedType: Decimal number (R)
Provides the price of one unit
Example: 41.15
-
PO1-06 / PO1-07
Product or service identifier
Required
Provides an item identifier, such as a part number or Stock Keeping Unit (SKU)
PO1-06 Identifier qualifier
Type: String (ID)Length: 2
Specifies the type of item identifier provided
Example: BP = buyer's part number
PO1-07 Identifier
Type: String (AN)Length: 1-80
Provides the identifier
Example: 45L017
Example: BP*45L017
-
PO1-08 / PO1-09
Additional product or service identifier
Required for PO conversion
Provides an additional item identifier, such as to indicate a specific color or packaging option
PO1-08 Identifier qualifier
Type: String (ID)Length: 2
Specifies the type of additional item identifier provided
Example: VP = vendor's part number
PO1-09 Identifier
Type: String (AN)Length: 1-80
Provides the identifier
Example: CART12-ITEM123
Example: VP*CART12-ITEM123
PID - Product or item description
Provides a description for each line item
Example
PID*F****Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow R~
PID field breakdown
-
PID-01
Item description type code
Type: String (ID)Length: 1
Specifies the description format used
Will be F, indicating free-form text
-
PID-05
Description
Typically requiredType: String (AN)Length: 1-80
Provides the item description text
Example: Low Arc Kitchen Faucet: Dominion Faucets, Silver, Chrome Finish, 1.75 gpm Flow R
TXI - Tax information
Provides tax information for each line item
TXI field breakdown
-
TXI-01
Tax type code
Type: String (ID)Length: 2
Specifies the type of tax provided
Example: ST = state sales tax
Other common codes: GS = goods and services tax, SU = sales and use tax, VA = value added tax
-
TXI-02
Monetary amount
Type: Decimal number (R)
Provides the tax value
Example: 8.64
Back to top
Summary
Ends the PO, any PO groups, and the payload using the summary details described in the subsections below
CTT - Transaction totals
Provides totals for the PO
CTT field breakdown
-
CTT-01
Number of line items
Type: Numeric (N0)Length: 1-6
Provides the total number of PO1 segments in the transaction set
Example: 1
-
CTT-02
Hash total
Type: Decimal number (R)Length: 1-10
Provides the total quantity of items ordered
Example: 3
SE - Transaction set trailer
Ends the PO
SE field breakdown
-
SE-01
Number of included segments
Type: Numeric (N0)Min value: 1
Provides the total number of segments from ST through SE
Example: 21
-
SE-02
Transaction set control number
Type: String (AN)Length: 4-9
Provides the same control number as ST-02
Example: 0001
GE - Functional group trailer
Ends the functional group that contains the PO
GE field breakdown
-
GE-01
Number of transaction sets included
Type: Numeric (N0)
Provides the total number of POs in the group
Value: 1
-
GE-02
Group control number
Type: Numeric (N0)Length: 1-9
Provides the same control number as GS-06
Example: 1
IEA - Interchange control trailer
Ends the payload
IEA field breakdown
-
IEA-01
Number of included functional groups
Type: Numeric (N0)
Provides the total number of functional groups in the payload
Value: 1
-
IEA-02
Interchange control number
Type: Numeric (N0)Length: 9
Provides the same control number as ISA-13
Example: 000000001
Back to top