{"skill":{"slug":"edi-parser","displayName":"Edi Parser","summary":"Parse EDI X12 files (810 Invoice, 850 Purchase Order, 856 ASN). Extract structured data from ISA/GS envelopes, transaction sets, and segments. Use when worki...","description":"---\nname: edi-parser\ndescription: 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.\n---\n\n# EDI X12 Parser\n\nParse and extract structured data from EDI X12 transaction sets.\n\n## Supported Transaction Sets\n\n- **810** -- Invoice\n- **850** -- Purchase Order\n- **856** -- Advance Ship Notice (ASN)\n\n## Parsing Approach\n\nEDI files use `~` as segment terminator, `*` as element separator, and `>` or `:` as sub-element separator (check ISA-16).\n\n### Envelope Structure\n\n```\nISA*QQ*SenderID*RR*ReceiverID*Date*Time*:*Version*Control#*AckReq*Mode*SubSep~\n  GS*FuncCode*SenderCode*ReceiverCode*Date*Time*GroupControl*Standard*Version~\n    ST*TransactionSet*Control#~\n      ... segments ...\n    SE*SegmentCount*Control#~\n  GE*TransactionCount*GroupControl~\nIEA*GroupCount*InterchangeControl~\n```\n\n### Key ISA Fields (1-indexed)\n- ISA-05: Sender qualifier (`12`=UCS, `ZZ`=mutually defined, `08`=UCC)\n- ISA-06: Sender ID (left-padded to 15 chars)\n- ISA-07: Receiver qualifier\n- ISA-08: Receiver ID\n\n### 850 Purchase Order\n| Segment | Key Fields |\n|---------|-----------|\n| BEG | BEG-03=PO Number, BEG-05=PO Date |\n| DTM | DTM-01=Qualifier (002=Delivery, 010=Requested Ship), DTM-02=Date |\n| N1 | N1-01=Entity (ST=Ship-To, BY=Buyer, SF=Ship-From), N1-02=Name |\n| PO1 | PO1-02=Qty, PO1-04=Unit Price, PO1-07=UPC/SKU |\n| PID | PID-05=Description |\n\n### 810 Invoice\n| Segment | Key Fields |\n|---------|-----------|\n| BIG | BIG-01=Invoice Date, BIG-02=Invoice#, BIG-04=PO# |\n| REF | REF-01=Qualifier (IA=Vendor#, BM=BOL#), REF-02=Value |\n| N1 | N1-01=Entity (ST=Ship-To, RE=Remit-To) |\n| IT1 | IT1-02=Qty, IT1-04=Unit Price, IT1-07=UPC |\n| TDS | TDS-01=Total invoice amount (cents, divide by 100) |\n\n### 856 ASN\n| Segment | Key Fields |\n|---------|-----------|\n| BSN | BSN-02=Shipment ID, BSN-03=Date |\n| HL | HL-03=Level (S=Shipment, O=Order, P=Pack, I=Item) |\n| REF | REF-01=Qualifier (BM=BOL, IA=Vendor#, LO=Load#, AO=Appointment) |\n| PRF | PRF-01=PO Number |\n| MAN | MAN-02=SSCC-18 barcode |\n| LIN | LIN-03=UPC |\n| SN1 | SN1-02=Qty Shipped, SN1-03=UOM |\n\n## Walmart-Specific Notes\n\n- Walmart ISA receiver: qualifier `08`, ID `925485US00`\n- REF*IA = Walmart vendor number (required on 856)\n- REF*LO = Load number (new requirement)\n- N1*ST with `UL` qualifier = GLN for ship-to location\n- MAN*GM = SSCC-18 (required per pallet on 856)\n\n## Output Format\n\nWhen parsing, output a clean table:\n\n```\n| Field | Value |\n|-------|-------|\n| Transaction | 856 ASN |\n| ISA Sender | 12 / 1234567890 |\n| ISA Receiver | 08 / 925485US00 |\n| PO# | 0123456789 |\n| Ship Date | 2026-02-16 |\n| Items | 16 line items |\n```\n\nFor bulk parsing, output CSV with one row per line item.\n","tags":{"latest":"1.0.1","edi":"1.0.0","supply-chain":"1.0.0","walmart":"1.0.0","x12":"1.0.0"},"stats":{"comments":0,"downloads":612,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1772263553276,"updatedAt":1778491667475},"latestVersion":{"version":"1.0.1","createdAt":1772273953514,"changelog":"- Updated the sample output table to use generic example values for ISA Sender, PO#, etc.\n- No changes to parsing logic or supported features.","license":null},"metadata":null,"owner":{"handle":"npfaerber","userId":"s176sgjghrx7ngyf2vswm6qe0188459t","displayName":"npfaerber","image":"https://avatars.githubusercontent.com/u/258851131?v=4"},"moderation":null}