EDI X12 850 Purchase Order Parser & JSON Converter
B2B supply chain EDI parser converting retail and enterprise ANSI X12 850 purchase orders into structured JSON.
Quick Technical Summary: B2B supply chain EDI parser converting retail and enterprise ANSI X12 850 purchase orders into structured JSON. Implementation conforms to ANSI ASC X12 Standards (005010).
Specification & Structural Breakdown
The ANSI X12 850 Purchase Order transaction set is the cornerstone of electronic B2B commerce used by Amazon, Walmart, Target, and major distributors.
Parses BEG segments containing PO number, order date, and release numbers.
Extracts PO1 line item loops with SKU, UPC, GTIN, quantity ordered, unit of measure, unit price, and SAC promotional allowances/charges.
| Segment | Description | Key Elements Extracted | Usage |
|---|---|---|---|
| BEG | Beginning Segment for PO | BEG01 (00=Original), BEG02 (SA=Stand Alone, DS=Drop Ship), BEG03 (PO #) | Order header |
| N1 | Name and Address Loop | N101 (BT=Bill To, ST=Ship To, VN=Vendor), N104 (GLN/DUNS ID) | Party routing |
| PO1 | Purchase Order Baseline Item Data | PO102 (Quantity), PO103 (UOM: EA/CA), PO104 (Unit Price), PO107 (UPC/SKU) | Line items |
| CTT | Transaction Totals | CTT01 (Total Line Items), CTT02 (Hash Total Quantity) | Validation integrity |
Test EDI X12 850 Purchase Order Parser & JSON Converter Live
Paste raw inputs up to 32KB and inspect deterministic parsed JSON in real-time across 330+ Cloudflare edge locations. Pure compute, zero cold-starts.
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON with zero cold starts:
{
"transactionSet": "850",
"purchaseOrderNumber": "PO-991823",
"orderDate": "20260830",
"shipTo": {
"name": "DISTRIBUTION CENTER 4",
"address": "100 LOGISTICS WAY",
"city": "CHICAGO",
"state": "IL"
},
"lineItems": [
{
"lineNumber": "1",
"quantity": 500,
"uom": "EA",
"unitPrice": 12.5,
"upc": "012345678905",
"sku": "SKU-A99"
}
]
}
Copy-Paste Integration Code
Integrate this validator directly into your application using your production API key:
curl --request POST \
--url "https://healthcare-edi-ansi-x12-parser-837p-835-271.stanzaapi.com/api/v1/x12/parse" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
}'
const response = await fetch("https://healthcare-edi-ansi-x12-parser-837p-835-271.stanzaapi.com/api/v1/x12/parse", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
})
});
const data = await response.json();
console.log(data);
import requests
import json
url = "https://healthcare-edi-ansi-x12-parser-837p-835-271.stanzaapi.com/api/v1/x12/parse"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://healthcare-edi-ansi-x12-parser-837p-835-271.stanzaapi.com/api/v1/x12/parse"
payload := []byte(`{"raw":"ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Frequently Asked Questions & Technical Notes
Yes. Drop-ship addresses in N1/N3/N4 segments are cleanly separated from billing entities.
Related Healthcare EDI ANSI X12 Parser API Formats
Explore sibling specifications and standards in the same developer cluster:
EDI X12 837P Professional Health Care Claim Parser & Validator
Instant sub-5ms parsing of ANSI X12 837P (5010X222A1) professional medical claims into structured JSON with full Hierarchical Loop (HL) resolution.
View Format →EDI X12 837I Institutional Health Care Claim Parser & Validator
Automated institutional claim parser for hospital inpatient and outpatient EDI 837I files with UB-04 revenue code mapping.
View Format →ANSI 835 EDI Remittance Advice (ERA) Parser & Payment Engine
High-speed ANSI 835 ERA parser extracting payer payments, deductible/coinsurance CAS adjustments, CARC/RARC codes, and PLB provider adjustments.
View Format →EDI X12 270 Health Care Eligibility & Benefit Inquiry Parser
Parse inbound real-time and batch HIPAA 270 eligibility check requests into structured JSON payloads in under 3ms.
View Format →