In short: an ASN (advance shipping notice) is an electronic despatch advice that tells the retailer exactly what is on its way, how it is packed and which pallet label carries each part of the order. In EDIFACT it is the DESADV message, in Tradacoms the DELHDR/DELDET delivery notification, and in ANSI X12 the 856. Retailers use it to book goods in by scanning the pallet, so an ASN that is late, wrong or missing turns a ten-second receipt into a manual check, a fine or a refused delivery.
What an ASN actually is
An ASN is a structured message sent by a supplier to a retailer after the goods have been picked and packed, but before the lorry arrives. It is the electronic twin of the paper delivery note, with one crucial difference: it describes the physical packaging hierarchy of the load as well as the products in it.
A good ASN answers four questions for the receiving depot:
- Which order is this for? The retailer’s purchase order number, and often the order date and the retailer’s depot code.
- When will it arrive? The despatch date and the booked delivery slot.
- What is in it, and how much? Product identifiers (GTINs and the retailer’s own product codes), quantities, and where relevant batch numbers and best-before dates.
- How is it packed? Which items are in which cases, which cases are on which pallet, and the serial number printed on each pallet label.
The last point is what separates an ASN from a delivery note. Because the depot knows in advance which SSCC sits on which pallet, the receiving clerk can scan the barcode on the pallet and the system already knows what should be on it.
Why retailers demand it
UK grocers moved to ASN-driven receiving in the 2000s for one reason: it is dramatically faster at the inbound dock. A depot receiving hundreds of vehicles a day cannot afford to count cases. Scanning a pallet against an ASN takes seconds; counting a mixed pallet takes minutes and still produces errors.
The consequences for suppliers are practical:
| Retailer behaviour | What it means for you |
|---|---|
| Goods received against the ASN, not the delivery note | If the ASN is wrong, the retailer’s stock is wrong, and so is your invoice match |
| ASN must arrive before the vehicle | A late ASN can mean a “no ASN” fine or the load being turned away |
| Pallet SSCCs must match the labels | A relabelled or reprinted pallet without a matching ASN update will not scan |
| ASN quantities drive invoice matching | Short-shipping without updating the ASN causes invoice queries and delayed payment |
Tesco, Sainsbury’s, Lidl, Morrisons, Asda, Boots and Amazon all mandate ASNs for most ambient, chilled and frozen categories, and all of them attach financial penalties or compliance scores to non-conformance.
The structure: shipment, pallet, case, item
Every ASN standard models the same four-level hierarchy. The names differ; the shape does not.
Shipment (one ASN, one vehicle, one order or several)
└── Pallet (SSCC on the GS1-128 label)
└── Case (GTIN of the outer, quantity of cases)
└── Item (GTIN of the consumer unit, batch, best-before)
Shipment level
The header carries the despatch advice number (your delivery note number), the despatch date and time, the buyer and supplier identifiers (GLNs in EDIFACT, ANA codes in Tradacoms), the ship-to depot and the purchase order reference. Some retailers, notably Lidl and Aldi, also want the booking reference and the number of pallets in the header so it can be checked against the transport booking.
Pallet level
Each pallet is one packaging unit with its own SSCC (Serial Shipping Container Code): an 18-digit number that is globally unique to that physical pallet on that journey. In EDIFACT this is a CPS segment followed by a PAC and a PCI/GIN pair carrying the SSCC. In X12 it is an HL loop with level code T (tare) or P (pack) and a MAN segment.
Case and item level
Under each pallet you list the products. For a homogeneous pallet that is a single line: GTIN, quantity of cases, units per case. For a mixed pallet you list each product in turn. Chilled and short-life suppliers must also provide batch/lot numbers and best-before dates at this level, because the retailer uses them for traceability and rotation.
The SSCC
The SSCC is the glue between the ASN and the physical world. It has a fixed structure:
| Part | Length | Notes |
|---|---|---|
| Extension digit | 1 | Any digit 0–9; used to extend the serial range |
| GS1 company prefix | 7–10 | Your prefix from GS1 UK |
| Serial reference | 6–9 | Sequential, never reused |
| Check digit | 1 | Modulo-10 |
Two rules cause most of the pain:
- Never reuse an SSCC. GS1 says an SSCC must not be reissued for at least a year; most retailers simply reject a duplicate outright. If your label printer is fed from a spreadsheet that starts at 000001 every Monday, you will hit this.
- The SSCC on the label must be the SSCC in the ASN. If a pallet is damaged and rewrapped with a new label, the ASN must be re-sent with the new serial. Reprinting the same label is fine; printing a new serial without updating the ASN is not.
Timing rules
Every retailer defines when the ASN must arrive. The common patterns:
- Before the vehicle arrives at the gate. The minimum everywhere. Tesco and Sainsbury’s check for the ASN at the gatehouse; no ASN usually means a fine and a manual receipt.
- Within a fixed window after despatch. Lidl expects the DESADV within 30 minutes of the lorry leaving your site. Amazon expects the 856 before the carrier’s first scan.
- One ASN per delivery, not per order. If a vehicle carries three purchase orders for one depot, most retailers want one ASN listing three orders, or three ASNs that all reference the same booking. Get this wrong and the depot sees three deliveries booked against one slot.
A practical rule: generate the ASN from the same event that closes the pick in your warehouse, and send it automatically. ASNs that depend on someone remembering to click a button are the ones that arrive late.
Common rejections and how to avoid them
| Rejection | Cause | Fix |
|---|---|---|
| Duplicate SSCC | Serial reused or two pallets given the same label | Central serial allocation; never generate SSCCs in the warehouse spreadsheet |
| Unknown GTIN | Product not set up on the retailer’s system, or outer vs inner GTIN mixed up | Validate every GTIN against the order before sending; the ASN should never introduce a product the order did not contain |
| Quantity exceeds order | Over-shipping, or unit-of-measure confusion (cases vs units) | Check line quantities against the PO in the same unit the PO used |
| Missing best-before | Chilled category without expiry at item level | Make batch and BBE mandatory in your pick confirmation for those categories |
| Wrong ship-to | Depot GLN copied from a previous order | Always take the ship-to from the purchase order |
| ASN after arrival | Manual step, batch job timing, or SFTP failure | Trigger on pick completion; monitor delivery acknowledgements |
| Invalid structure | Missing CPS for a pallet, or item lines outside a pallet | Use a generator that enforces the hierarchy rather than hand-built mapping |
Most of these are caught by validating the ASN against the original purchase order and the retailer’s rules before it leaves your system. Retailers rarely tell you why an ASN failed in plain English, so it is far cheaper to catch the problem before sending than to decode a CONTRL or a compliance report afterwards.
The ASN and the invoice
A final point that is often missed: the retailer’s invoice matching starts from the ASN, not the order. If you ship 96 cases against an order for 100, the ASN must say 96 and the invoice must say 96. An invoice built from the order will be for 100, will not match, and will be queried or short-paid. Building the invoice from what was actually despatched is the single biggest step you can take towards being paid on time.
How FTP EDI helps
FTP EDI builds the ASN for you from your warehouse’s pick confirmation, in whichever standard the retailer wants. Every ASN is checked against the original order and the retailer’s rules (GTINs, quantities, mandatory batch and best-before fields, SSCC uniqueness, timing) before it is sent, and the matching GS1-128 pallet labels are generated from the same data so the label and the message can never disagree. We then watch for the acknowledgement and alert you if anything is rejected.
- See how the platform handles orders, ASNs and invoices end to end on the product tour.
- Read more about ASNs and GS1-128 labels or connecting your warehouse.
- Retailer specifics: Tesco, Sainsbury’s, Lidl, Amazon UK.