EDI X12 Parser
Parse and extract structured data from EDI X12 transaction sets.
Supported Transaction Sets
- 810 -- Invoice
- 850 -- Purchase Order
- 856 -- Advance Ship Notice (ASN)
Parsing Approach
EDI files use ~ as segment terminator, * as element separator, and > or : as sub-element separator (check ISA-16).
Envelope Structure
ISA*QQ*SenderID*RR*ReceiverID*Date*Time*:*Version*Control#*AckReq*Mode*SubSep~
GS*FuncCode*SenderCode*ReceiverCode*Date*Time*GroupControl*Standard*Version~
ST*TransactionSet*Control#~
... segments ...
SE*SegmentCount*Control#~
GE*TransactionCount*GroupControl~
IEA*GroupCount*InterchangeControl~
Key ISA Fields (1-indexed)
- ISA-05: Sender qualifier (
12=UCS, ZZ=mutually defined, 08=UCC)
- ISA-06: Sender ID (left-padded to 15 chars)
- ISA-07: Receiver qualifier
- ISA-08: Receiver ID
850 Purchase Order
| Segment |
Key Fields |
| BEG |
BEG-03=PO Number, BEG-05=PO Date |
| DTM |
DTM-01=Qualifier (002=Delivery, 010=Requested Ship), DTM-02=Date |
| N1 |
N1-01=Entity (ST=Ship-To, BY=Buyer, SF=Ship-From), N1-02=Name |
| PO1 |
PO1-02=Qty, PO1-04=Unit Price, PO1-07=UPC/SKU |
| PID |
PID-05=Description |
810 Invoice
| Segment |
Key Fields |
| BIG |
BIG-01=Invoice Date, BIG-02=Invoice#, BIG-04=PO# |
| REF |
REF-01=Qualifier (IA=Vendor#, BM=BOL#), REF-02=Value |
| N1 |
N1-01=Entity (ST=Ship-To, RE=Remit-To) |
| IT1 |
IT1-02=Qty, IT1-04=Unit Price, IT1-07=UPC |
| TDS |
TDS-01=Total invoice amount (cents, divide by 100) |
856 ASN
| Segment |
Key Fields |
| BSN |
BSN-02=Shipment ID, BSN-03=Date |
| HL |
HL-03=Level (S=Shipment, O=Order, P=Pack, I=Item) |
| REF |
REF-01=Qualifier (BM=BOL, IA=Vendor#, LO=Load#, AO=Appointment) |
| PRF |
PRF-01=PO Number |
| MAN |
MAN-02=SSCC-18 barcode |
| LIN |
LIN-03=UPC |
| SN1 |
SN1-02=Qty Shipped, SN1-03=UOM |
Walmart-Specific Notes
- Walmart ISA receiver: qualifier
08, ID 925485US00
- REF*IA = Walmart vendor number (required on 856)
- REF*LO = Load number (new requirement)
- N1*ST with
UL qualifier = GLN for ship-to location
- MAN*GM = SSCC-18 (required per pallet on 856)
Output Format
When parsing, output a clean table:
| Field | Value |
|-------|-------|
| Transaction | 856 ASN |
| ISA Sender | 12 / 1234567890 |
| ISA Receiver | 08 / 925485US00 |
| PO# | 0123456789 |
| Ship Date | 2026-02-16 |
| Items | 16 line items |
For bulk parsing, output CSV with one row per line item.
1---2name: edi-parser3description: Parse EDI X12 files (810 Invoice, 850 Purchase Order, 856 ASN). Extract structured data from ISA/GS envelopes, transaction sets, and segments. Use when working with EDI files, Walmart/retail supplier compliance, or extracting PO, invoice, and shipment data from X12 format.4---56# EDI X12 Parser78Parse and extract structured data from EDI X12 transaction sets.910## Supported Transaction Sets1112- **810** -- Invoice13- **850** -- Purchase Order14- **856** -- Advance Ship Notice (ASN)1516## Parsing Approach1718EDI files use `~` as segment terminator, `*` as element separator, and `>` or `:` as sub-element separator (check ISA-16).1920### Envelope Structure2122```23ISA*QQ*SenderID*RR*ReceiverID*Date*Time*:*Version*Control#*AckReq*Mode*SubSep~24 GS*FuncCode*SenderCode*ReceiverCode*Date*Time*GroupControl*Standard*Version~25 ST*TransactionSet*Control#~26 ... segments ...27 SE*SegmentCount*Control#~28 GE*TransactionCount*GroupControl~29IEA*GroupCount*InterchangeControl~30```3132### Key ISA Fields (1-indexed)33- ISA-05: Sender qualifier (`12`=UCS, `ZZ`=mutually defined, `08`=UCC)34- ISA-06: Sender ID (left-padded to 15 chars)35- ISA-07: Receiver qualifier36- ISA-08: Receiver ID3738### 850 Purchase Order39| Segment | Key Fields |40|---------|-----------|41| BEG | BEG-03=PO Number, BEG-05=PO Date |42| DTM | DTM-01=Qualifier (002=Delivery, 010=Requested Ship), DTM-02=Date |43| N1 | N1-01=Entity (ST=Ship-To, BY=Buyer, SF=Ship-From), N1-02=Name |44| PO1 | PO1-02=Qty, PO1-04=Unit Price, PO1-07=UPC/SKU |45| PID | PID-05=Description |4647### 810 Invoice48| Segment | Key Fields |49|---------|-----------|50| BIG | BIG-01=Invoice Date, BIG-02=Invoice#, BIG-04=PO# |51| REF | REF-01=Qualifier (IA=Vendor#, BM=BOL#), REF-02=Value |52| N1 | N1-01=Entity (ST=Ship-To, RE=Remit-To) |53| IT1 | IT1-02=Qty, IT1-04=Unit Price, IT1-07=UPC |54| TDS | TDS-01=Total invoice amount (cents, divide by 100) |5556### 856 ASN57| Segment | Key Fields |58|---------|-----------|59| BSN | BSN-02=Shipment ID, BSN-03=Date |60| HL | HL-03=Level (S=Shipment, O=Order, P=Pack, I=Item) |61| REF | REF-01=Qualifier (BM=BOL, IA=Vendor#, LO=Load#, AO=Appointment) |62| PRF | PRF-01=PO Number |63| MAN | MAN-02=SSCC-18 barcode |64| LIN | LIN-03=UPC |65| SN1 | SN1-02=Qty Shipped, SN1-03=UOM |6667## Walmart-Specific Notes6869- Walmart ISA receiver: qualifier `08`, ID `925485US00`70- REF*IA = Walmart vendor number (required on 856)71- REF*LO = Load number (new requirement)72- N1*ST with `UL` qualifier = GLN for ship-to location73- MAN*GM = SSCC-18 (required per pallet on 856)7475## Output Format7677When parsing, output a clean table:7879```80| Field | Value |81|-------|-------|82| Transaction | 856 ASN |83| ISA Sender | 12 / 1234567890 |84| ISA Receiver | 08 / 925485US00 |85| PO# | 0123456789 |86| Ship Date | 2026-02-16 |87| Items | 16 line items |88```8990For bulk parsing, output CSV with one row per line item.