EDI 856 Advance Ship Notice (ASN)
The 856 is the most chargeback-prone document in EDI. Suppliers send it to retailers to say "the truck is on the way, here's what's inside, in what cartons, on what pallets." Late, malformed, or content-wrong ASNs are the #1 cause of retailer compliance fees.
What makes 856 different from 850
The 850 is flat — header + line items. The 856 is hierarchical. It uses HL (Hierarchical Level) segments to express shipment → order → tare (pallet) → pack (carton) → item relationships. Most 856 rejections are HL hierarchy mistakes.
The standard hierarchy
HL*1**S (Shipment)
HL*2*1*O (Order — references HL 1)
HL*3*2*T (Tare / pallet — references HL 2)
HL*4*3*P (Pack / carton — references HL 3)
HL*5*4*I (Item — references HL 4)
- Each HL has its own number (HL01) and a parent reference (HL02). Levels can be omitted depending on the partner's pack structure.
- Common partner-supported structures: SOPI (Shipment-Order-Pack-Item), SOTPI (with Tare), STPI, SI (very small).
Required segments
| Segment | Purpose | Required? |
|---|---|---|
| BSN | Beginning segment for ship notice — shipment ID, date, hierarchical structure code | Yes |
| DTM | Ship date, estimated delivery date | Often |
| HL | Hierarchical level — defines shipment / order / pack / item | Yes (multiple) |
| TD1 | Carrier details (weight, packaging type) | Often |
| TD5 | Carrier details (SCAC code, mode) | Often |
| REF | Bill of lading, BOL number, pro number | Often (REF*BM) |
| N1 | Ship-from / ship-to / carrier names and addresses | Often |
| PRF | Purchase order reference inside the order HL | Yes (at order HL) |
| MAN | Marks and numbers — UCC-128 / SSCC-18 carton label | Yes (at pack HL) |
| LIN | Item identification at the item HL | Yes (at item HL) |
| SN1 | Item detail (quantity, unit of measure) | Yes (at item HL) |
| CTT | Total HL count | Yes |
BSN — the ship-notice header
BSN*00*SHIPMENT001*20250506*1200*0001~
- BSN01 — purpose code.
00= original,05= replace. - BSN02 — shipment identification. Often the BOL or a supplier-assigned shipment ID.
- BSN03 / BSN04 — ship date and time.
- BSN05 — hierarchical structure code:
0001= SOPI,0002= SOI,0004= SI.
UCC-128 / SSCC-18 labels (MAN segment)
At the pack HL, you put a MAN segment with the carton's 18- or 20-digit serial shipping container code. This must match the barcode physically printed on the carton.
MAN*GM*00012345678901234560~
- MAN01 — qualifier.
GM= SSCC-18. - MAN02 — the SSCC value. Format: extension digit + GS1 company prefix + serial reference + check digit.
The five most common 856 rejections / chargebacks
- ASN sent late. Retailers commonly require the ASN before the truck arrives at the DC. Late = chargeback (often $200–$500 per shipment).
- Carton barcode doesn't match MAN segment. Operations gets the carton, scans the label, doesn't find the SSCC in the ASN. Chargeback.
- HL hierarchy broken. A pack HL referencing a non-existent order HL. Most parsers reject the entire 856.
- Quantity mismatch between SN1 and physical receipt. ASN says 12 each, dock counts 10. Chargeback.
- Wrong hierarchical structure code. BSN05 = 0001 (SOPI) but the file is actually SOI. Parser rejects.
Validating an 856 in EDI-X12
- Paste the 856 into the validator.
- Click Validate — get the structural report.
- Click Explain with AI to get a tree-view of the HL hierarchy in plain English.
Note: EDI-X12's structural validator confirms the HL parents resolve and the SE count matches. It does not confirm that your hierarchy matches the partner's expected structure code — that requires the partner's implementation guide.
Related
- 850 Purchase Order — what triggers your 856
- 997 — what acknowledgement you'll get back
- Glossary — UCC-128, SSCC, HL, BSN
Paste the ASN plus the chargeback notice. AI cross-references the segments to the issue.
Open the validator