DESADV — Despatch Advice Message (D.96A)
The DESADV message — Despatch Advice, or ASN (Advanced Shipping Notice) — tells the buyer what's in a shipment, how it's packed, and when it leaves.
Purpose
Per the official UN/CEFACT definition, DESADV is "intended to specify details for goods despatched or ready for despatch under agreed conditions". In practice, DESADV is the backbone of cross-docking and automated warehouse reception: it carries the SSCC codes (Serial Shipping Container Code) that identify every pallet, carton or logistic unit, and lets the buyer pre-allocate destinations before the trailer hits the dock.
Segment structure
A D.96A DESADV message has three sections: a Header, a Detail (repeatable SG10 group — Consignment Packing Sequence — up to 9,999 occurrences), and a Summary. DESADV's signature feature versus ORDERS/INVOIC: the nested packing hierarchy via groups SG11 → SG13 → SG15 (pallet → carton → item).
Header
At the header, the only segment mandatory besides UNH is:
BGM M .
Note: unlike ORDERS/INVOIC, DTM is conditional at the
DESADV header level (status C in the spec). Industry conventions (EANCOM, Odette)
always mandate at least one DTM+137 (document date) in practice. Other header
segments are:
ALI C ,
MEA C ,
MOA C .
Then segment groups SG1 through SG9, in this exact order: SG1 RFF+DTM
(references — including the order number), SG2 NAD+LOC (parties —
supplier, buyer, ship-to), SG3 RFF+DTM (references attached to a party),
SG4 CTA+COM (contacts), SG5 TOD+LOC+FTX (delivery/transport
terms), SG6 TDT+PCD (transport details), SG7 LOC+DTM
(locations and dates), SG8 EQD+MEA+SEL+EQA (equipment, seals), SG9
HAN+FTX (handling instructions).
Detail (CPS + LIN)
The Detail section sits entirely inside SG10, a loop built around the CPS M segment with its optional FTX C .
Inside each CPS, two families of nested groups are interleaved: the packing hierarchy (SG11 → SG13) and the line item list (SG15).
SG11 PAC+MEA+QTY (Package — type, measurements, packing unit quantity)
contains SG12 HAN+FTX (package handling), then SG13
PCI+RFF+DTM+GIN (Package Identification — carries the SSCC
via GIN+BJ) containing SG14 GIN+DLM (other identifiers).
SG15 LIN+PIA+IMD+MEA+QTY+ALI+GIN+GIR+DLM+DTM+FTX+MOA lists the line items
inside the current CPS with their despatched quantity (QTY+12). SG15
contains SG16 RFF+DTM (line references), SG17 DGS+QTY+FTX
(dangerous goods), SG18 LOC+NAD+DTM+QTY (line locations and parties),
SG19 SGP+QTY (Split Goods Placement — split across multiple equipments),
SG20 PCI+DTM+MEA+QTY with its nested SG21 GIN+DLM, SG22
HAN+FTX+GIN (line handling), SG23 QVR+DTM (quantity
variances — to flag differences vs the order).
The spec permits up to 9,999 repetitions of the SG10 loop per interchange, which covers the largest realistic shipments.
Summary
The DESADV Summary section is minimal:
CNT , and
UNT M .
There is no UNS segment in DESADV — the Summary section starts directly
with CNT.
Mandatory / conditional
Only three segments are strictly mandatory in every D.96A DESADV:
UNH— opens the message, carries the reference and the version.BGM— gives the function code (351 = despatch advice, also commonly mapped to ASN 856 in X12), the advice number, and the document status.UNT— closes the message, declares the segment count.
To produce a DESADV that actually works in a warehouse, you need: one DTM
(despatch date), one RFF+ON (reference to the order), at least one
CPS (packing sequence), at least one LIN inside SG15
(despatched item), and ideally one GIN+BJ SSCC inside SG13 — that SSCC is
what enables scan-based reception in an automated DC.
Real-world example
A typical retail ASN for the delivery of a single pallet carrying both items from the reference ORDERS message:
UNB+UNOC:3+5410000000456:14+5410000000123:14+260520:1400+CTRL000004'
UNH+1+DESADV:D:96A:UN:EAN008'
BGM+351+DESADV-2026-0521+9'
DTM+137:20260520:102'
DTM+11:20260520:102'
RFF+ON:ORDER789'
NAD+SU+5410000000456::9'
NAD+BY+5410000000123::9'
NAD+DP+5410000000789::9'
CPS+1'
PAC+10+++:::1 pallet'
PCI+33E'
GIN+BJ:380011223344556677'
LIN+1++3520000001234:EN'
QTY+12:2'
LIN+2++3520000005678:EN'
QTY+12:5'
CNT+2:2'
UNT+16+1'
UNZ+1+CTRL000004' BGM+351+DESADV-2026-0521+9— type 351 (despatch advice), number DESADV-2026-0521, status 9 (Original).DTM+137— document date.DTM+11— actual despatch date.RFF+ON:ORDER789— reference to the original order.NAD+SU/NAD+BY/NAD+DP— Supplier, Buyer, Delivery Point (3 distinct GLNs).CPS+1— start of packing sequence #1 (the pallet).PAC+10++:::1 pallet— 1 packing unit of type "pallet".PCI+33E+GIN+BJ:380011223344556677— package identification (18-digit SSCC).- Two
LINwith their QTY+12 (despatched quantity). CNT+2:2— control: 2 lines for 2 distinct items.UNT+16+1— 16 segments in the message.
Common errors
- Missing or invalid SSCC — a DESADV without a
GIN+BJ18-digit SSCC cannot be auto-received. Top complaint of retail platforms (Carrefour, Auchan, Tesco) against bad DESADVs. - Inconsistent packing hierarchy — a
CPSwith noPACqualifier, or aLINwith noCPSparent: the packing sequence must be strictly hierarchical. - Missing order reference — no
RFF+ONin the header: the DESADV cannot be matched back to the buyer's ORDERS pipeline. - QTY+12 vs QTY+21 — DESADV uses QTY+12 (despatched), not QTY+21 (ordered). A DESADV with QTY+21 on the LIN signals confusion between order and shipment.
- No UNS — unlike ORDERS, INVOIC, ORDRSP, DESADV has no UNS+S segment. Many naive generators add one out of habit, which trips strict validators.
Related messages
DESADV is the logistics step in the order-to-cash cycle:
- ORDERS D.96A — the order, referenced via RFF+ON.
- ORDRSP D.96A — the order confirmation.
- RECADV D.96A — the buyer's goods receipt advice (business ack).
- INVOIC D.96A — the invoice, which references DESADV via RFF+DQ.
- IFTMIN D.96A — the firm booking to the carrier.
- CONTRL D.96A — the automatic syntactic acknowledgment.
JSON equivalent
JSON projection that matches the example above. This mapping is not normative — it's an ediverse convention to ease integration in TypeScript / Python environments.
{
"interchange": {
"controlRef": "CTRL000004",
"from": { "id": "5410000000456", "qualifier": "14" },
"to": { "id": "5410000000123", "qualifier": "14" },
"datetime": "2026-05-20T14:00:00Z",
"syntax": { "id": "UNOC", "version": "3" }
},
"message": {
"ref": "1",
"type": "DESADV",
"version": { "syntax": "D", "release": "96A", "agency": "UN", "association": "EAN008" }
},
"despatchAdvice": {
"number": "DESADV-2026-0521",
"function": "351",
"status": "9",
"issueDate": "2026-05-20",
"despatchDate": "2026-05-20",
"references": { "buyerOrder": "ORDER789" },
"parties": {
"supplier": { "gln": "5410000000456" },
"buyer": { "gln": "5410000000123" },
"deliveryPoint": { "gln": "5410000000789" }
},
"packingSequence": [
{
"ref": 1,
"package": { "type": "pallet", "quantity": 1 },
"sscc": "380011223344556677",
"lines": [
{ "ref": 1, "gtin": "3520000001234", "quantity": { "despatched": 2 } },
{ "ref": 2, "gtin": "3520000005678", "quantity": { "despatched": 5 } }
]
}
],
"totals": { "lineCount": 2 }
}
}