EDI 856: Advance Ship Notice (ASN)
The EDI 856 is the Advance Ship Notice (ASN): the X12 document a supplier sends a buyer after an order is packed and before it arrives. It describes the shipment as a tree of shipment, order, carton and item, with the carrier, the bill of lading and an SSCC number for each labeled carton or pallet. The buyer uses it to plan the dock and to receive by scanning labels instead of counting.
Reviewed against X12 4010 and 5010
The 856 at a glance
- Code
- X12 856
- Name
- Advance Ship Notice
- Also called
- ASN, Ship Notice/Manifest, advanced shipping notice
- Sent by
- Supplier, or the 3PL warehouse shipping for it
- Sent to
- Buyer: a retailer, distributor or manufacturer
- When
- After the shipment is packed and loaded, before it arrives. Each partner's guide sets the exact deadline.
- Responds to
- 850 Purchase Order
- Acknowledged with
- 997 Functional Acknowledgment
- Related documents
- 850 Purchase Order, 855 Purchase Order Acknowledgment, 810 Invoice, 820 Payment Order/Remittance Advice
- EDIFACT equivalent
- DESADV
Where does the 856 sit in the cycle?
Which segments does an 856 use?
The standard column is what X12 itself requires. Your trading partner's implementation guide will require more, and it wins.
| Segment | Name | Standard | What goes in it |
|---|---|---|---|
| ST | Transaction set header | Mandatory | Starts the ASN and gives it a control number that the SE repeats. |
| BSN | Beginning segment for ship notice | Mandatory | Purpose (original, replace, cancel), your shipment ID, the date and time it was created, and the hierarchy structure the partner's guide asks for. |
| DTM | Date/time reference | Optional | Ship date and often an estimated delivery date. Optional in the standard; nearly every retail guide requires the ship date. |
| HL | Hierarchical level | Mandatory | One per level of the tree: shipment, order, tare (pallet), pack (carton) and item. Each carries its own ID and its parent's ID. |
| TD1 | Carrier details (quantity and weight) | Optional | Package type, count and gross weight. Usually required at the shipment level, and it should match the bill of lading. |
| TD5 | Carrier details (routing) | Optional | Carrier SCAC and transport method. Required when the buyer routes the freight or matches the ASN to a routing request. |
| TD3 | Carrier details (equipment) | Optional | Trailer or container number, mostly for truckload and intermodal. |
| REF | Reference identification | Optional | Bill of lading (BM), carrier PRO number (CN), and partner-specific references such as a load or appointment number. |
| N1 | Name (party) | Optional | Ship-to and ship-from, identified by the codes the buyer assigned. The loop is optional in the standard and required by almost every guide. |
| PRF | Purchase order reference | Optional | The PO number, and usually the PO date, at the order level. |
| MAN | Marks and numbers | Optional | The SSCC-18 printed on the carton or pallet label. Partners differ on whether the leading 00 application identifier is included. |
| LIN | Item identification | Optional | Item IDs in pairs of qualifier and value: UPC or GTIN, your item number, the buyer's item number. The guide says which are required. |
| SN1 | Item detail (shipment) | Optional | Quantity of this item at this level, with the unit of measure. It must be in the unit the 850 used. |
| PO4 | Item physical details | Optional | Pack size, inner pack and carton weight. Some buyers check it against their item setup. |
| PID | Product/item description | Optional | Free-text description. Rarely required. |
| CTT | Transaction totals | Optional | A control count. Many guides want the number of HL segments; some want the number of item lines. |
| SE | Transaction set trailer | Mandatory | Segment count from ST to SE, and the same control number as the ST. |
4010 or 5010?
The 856 segment list is nearly identical in 4010 and 5010. 5010 puts TD3 in a small loop with a new AT9 segment for trailer dimensions and weight, renames a few segments (N1 becomes Party Identification, REF becomes Reference Information), and lets some repeat more often. The envelope changes more than the document: in 5010 the ISA11 field holds a repetition separator instead of the letter U, and the version reads 00501. Two partners on the same release differ far more than one partner's 4010 and 5010 guides.
What does an 856 look like?
ISA*
00* * 00* * ZZ* NORTHFORK * ZZ* BASINHW * 261014* 1530* U* 00401* 000002001* 0* P* >~ Interchange envelope, now from the supplier to the buyer. Same 106-character fixed layout as on the 850.
GS*
SH* NORTHFORK* BASINHW* 20261014* 1530* 2001* X* 004010~ SH marks a group of ship notices.
ST*
856* 0001~ Start of one ship notice.
BSN*
00* NF-SH-88214* 20261014* 1530* 0001~ Original notice (00) for shipment NF-SH-88214, created 3:30 pm on October 14. The final 0001 declares the hierarchy: shipment, then order, then pack, then item.
HL*
1* * S~ Level 1, the shipment. It has no parent, so the second field is empty.
TD1*
CTN25* 3* * * * G* 68* LB~ Three corrugated cartons, 68 lb gross. Count and weight should match the bill of lading.
TD5*
* 2* XMPL* M~ Carrier by SCAC code (XMPL, made up), moving by motor carrier.
REF*
BM* NF-BOL-50931~ Bill of lading number.
REF*
CN* 7720419~ Carrier PRO number. Often not known until pickup, which is why ASNs go out late.
DTM*
011* 20261014~ Ship date.
DTM*
017* 20261017~ Estimated delivery date.
N1*
ST* Basin Hardware DC 2* 92* 0002~ Ship-to, echoing the 0002 code from the 850.
N1*
SF* Northfork Tool Co* 92* NF01~ Ship-from, using the vendor code the buyer assigned.
HL*
2* 1* O~ Level 2, the order. Its parent is level 1.
PRF*
BH2026-04417* * * 20261008~ The PO this shipment fills, with the PO date.
HL*
3* 2* P~ Level 3, the first carton, inside the order.
MAN*
GM* 00006141410000000012~ The carton's SSCC-18, here with the 00 application identifier in front. This number must be on the label stuck to that carton.
HL*
4* 3* I~ Level 4, what is in carton 1.
LIN*
* UP* 614141000012* VN* NT-FH20~ The hammer, by UPC and by your item number.
SN1*
* 12* EA~ 12 each in this carton.
HL*
5* 2* P~ Second carton, another child of the order.
MAN*
GM* 00006141410000000029~ Every carton gets its own SSCC. Reusing one is a common and expensive mistake.
HL*
6* 5* I~ Contents of carton 2.
LIN*
* UP* 614141000012* VN* NT-FH20~ More hammers.
SN1*
* 12* EA~ 12 more, so 24 hammers in all, which matches the 850.
HL*
7* 2* P~ Third carton.
MAN*
GM* 00006141410000000036~ Third SSCC.
HL*
8* 7* I~ Contents of carton 3.
LIN*
* UP* 614141000029* VN* NT-PB24~ The pry bars.
SN1*
* 12* EA~ 12 each, matching line 2 of the 850.
CTT*
8~ A count for checking. Here it is the number of HL segments; some partners count item lines instead.
SE*
30* 0001~ 30 segments from ST to SE.
GE*
1* 2001~ One ship notice in group 2001.
IEA*
1* 000002001~ End of the interchange.
ISA*00* *00* *ZZ*NORTHFORK *ZZ*BASINHW *261014*1530*U*00401*000002001*0*P*>~GS*SH*NORTHFORK*BASINHW*20261014*1530*2001*X*004010~ST*856*0001~BSN*00*NF-SH-88214*20261014*1530*0001~HL*1**S~TD1*CTN25*3****G*68*LB~TD5**2*XMPL*M~REF*BM*NF-BOL-50931~REF*CN*7720419~DTM*011*20261014~DTM*017*20261017~N1*ST*Basin Hardware DC 2*92*0002~N1*SF*Northfork Tool Co*92*NF01~HL*2*1*O~PRF*BH2026-04417***20261008~HL*3*2*P~MAN*GM*00006141410000000012~HL*4*3*I~LIN**UP*614141000012*VN*NT-FH20~SN1**12*EA~HL*5*2*P~MAN*GM*00006141410000000029~HL*6*5*I~LIN**UP*614141000012*VN*NT-FH20~SN1**12*EA~HL*7*2*P~MAN*GM*00006141410000000036~HL*8*7*I~LIN**UP*614141000029*VN*NT-PB24~SN1**12*EA~CTT*8~SE*30*0001~GE*1*2001~IEA*1*000002001~
This is the same 856 as one unbroken line, the way most trading partners send it. The tilde ends each segment; the asterisk separates elements. Both are declared in the ISA, so a partner can pick different ones.
Why do trading partners reject an 856?
A 997 only tells you the file parsed. The real rejections come later, from the receiving dock or a compliance report, sometimes weeks after the truck left. These are the usual causes.
| What went wrong | What the buyer sees | How to prevent it |
|---|---|---|
| The HL tree does not match the physical pack | Scanned cartons do not match the cartons on the ASN, so receiving falls back to hand counts | Build the pack and item levels from what the pack station recorded, not from the sales order lines |
| The SSCC on the label is not the SSCC on the ASN | The label scans as an unknown carton | Print the label and write the ASN from the same carton record. Never generate the number twice |
| The ASN arrives after the truck | Nothing to receive against, often recorded as a late or missing ASN | Send at ship confirm rather than in an overnight batch. Get PRO numbers before pickup if the carrier allows it |
| Quantities disagree with the 850 | An over-shipment is refused or a short ship goes unannounced, and the 810 then fails too | Check shipped quantities against the open PO lines, in the 850’s unit of measure, before sending |
| Missing or wrong carrier details | The ASN cannot be matched to the trailer at the door or to the routing request | Store the SCAC in the carrier record and capture the bill of lading and PRO at the dock |
| The ship-to code is wrong | The ASN posts against the wrong DC or store, or is rejected outright | Keep the 850’s N1 ship-to code on the sales order and echo it unchanged |
| A shipment ID is reused | The ASN is treated as a resend or overwrites the first one | Number shipments from one sequence, and use the BSN purpose code for real corrections |
| One ASN covers several POs when the partner wants one per PO, or the reverse | Rejected by the partner’s validation, often reported back on an 824 | Read the guide’s rule on order levels before building the map |
Most large retailers back these rules with compliance charges taken out of payment. Those charges arrive later on an 820 or an 812, not as an error message, which is why ASN problems can run for months before anyone ties the deduction to its cause.
Where does the 856 data come from in your ERP?
The 856 is the hardest of the core documents because it needs a fact many ERPs never record: what went into which carton.
| Segment | Usually comes from | The usual gap |
|---|---|---|
| BSN | Shipment or pick ticket number and the ship-confirm time | Ship confirm happens at the end of the day, so the ASN goes out late |
| TD1 | The shipping system: carton count and weights | Weights keyed by hand or estimated from the item master |
| TD5, REF BM, REF CN | Carrier record, bill of lading, PRO number | The carrier is stored as a name, not a SCAC. The PRO is not known until pickup |
| N1 ship-to | The sales order’s ship-to | Only the street address was kept, not the partner’s location code |
| PRF | Customer PO number on the sales order | Typed by hand on orders that arrived by email, with typos |
| HL pack levels and MAN | Carton records from the pack station | No carton-level data at all, because packing is done on paper |
| LIN | Item master UPC or GTIN, and a customer item cross-reference | Newer items have no UPC, or the case GTIN and the each UPC get swapped |
| SN1 | Packed quantity per carton | The ERP knows quantity shipped per line, not per carton, or ships in cases when the 850 ordered eaches |
If your ERP has no carton records, the fix is usually a small pack-station app or a shipping system that captures each carton, prints its SSCC label and hands the contents to the EDI map. That is often the real project hiding behind a request to “turn on ASNs.”
How do you get 856s working?
| Route | Fits when | Watch out for |
|---|---|---|
| Managed EDI provider or VAN with a web portal | One or two partners, low volume, nobody in house to own maps | A portal means retyping every shipment and the contents of every carton. At any real volume, that retyping is where the rejections come from |
| Managed EDI or an iPaaS connector wired to your ERP | Your ERP has a supported connector and your partners are large retailers with ready-made maps | The connector maps what the ERP holds. It cannot invent carton contents or SSCCs that were never recorded |
| An in-house translator | Many partners, high volume, or an ERP that no connector supports | You own the maps, the AS2 certificates, the monitoring, and whoever gets called when a 856 fails at night |
Whichever route you choose, plan for partner testing. Most large buyers want a set of test ASNs, and often sample labels, before they switch you to production. Connecting the ERP, the shipping system and the EDI provider so the ASN builds itself is the ERP and EDI integration work we do. If you have one partner and a handful of shipments a week, a web portal is the honest answer and you do not need us.
Questions about the 856
What does ASN stand for?
Advance ship notice, also written advanced shipping notice. In X12 the document is the 856 Ship Notice/Manifest. The EDIFACT equivalent is DESADV.
Is the 856 the same as a packing slip?
No. The packing slip travels with the goods for people to read. The 856 arrives ahead of the goods for the buyer's system, and it carries the carton structure and label numbers that let the dock receive by scanning.
What is an SSCC, and do I need one?
An SSCC is the 18-digit Serial Shipping Container Code that identifies one carton or pallet. It is built from your GS1 company prefix, so you need a prefix to issue them. Partners that receive by scan require it on the label and in the MAN segment of the ASN.
What is the difference between a standard pack and a pick and pack ASN?
In a standard pack ASN every carton of an item holds the same quantity of that one item, so the tree usually runs shipment, order, item, then pack. In pick and pack a carton can hold several items, so each carton is its own level with the items beneath it, as in the sample above. The partner's guide says which structure it accepts.
Do I send an 856 for partial shipments?
Yes, when the partner requires ASNs. Every shipment gets its own ASN, including partials and backorder fills. Whether a line you could not ship appears with a zero quantity or is left out depends on the guide.
Further reading
- Building a single source of truth for operations data
How to bring scale tickets, work orders and loads into one trusted data layer, and build dashboards operators open daily instead of reports nobody reads.
- EDI, APIs and spreadsheets: a practical integration guide for mid-size manufacturers and shippers
How to choose between EDI, APIs, file drops and spreadsheets when connecting customers, carriers and your own systems, with a plain guide to what fits when.
- How to modernize an AS/400 or legacy ERP without stopping operations
A practical guide to replacing or surrounding an AS/400 or legacy ERP in stages, so orders, scale tickets and shipments keep moving while the system changes.
New trading partner asking for the 856?
Send us their implementation guide. We will tell you what your ERP already holds, what is missing, and the shortest path to a test file that passes.