DESADV — Despatch Advice Message (D.96A)
Le message DESADV — Avis d'Expédition, ou ASN (Advanced Shipping Notice) — informe l'acheteur du contenu, de la séquence d'emballage et du moment d'une expédition de biens.
Objet du message
Selon la définition officielle UN/CEFACT, DESADV « a pour but de spécifier les détails relatifs aux biens expédiés ou prêts à être expédiés selon les termes et conditions convenues entre le vendeur et l'acheteur ». En pratique, DESADV est l'épine dorsale du cross-docking et de la réception automatisée en entrepôt : il porte les SSCC (Serial Shipping Container Code) qui identifient chaque palette, carton ou unité logistique, et permet à l'acheteur de pré-allouer les destinations avant l'arrivée physique.
Structure segmentaire
Un message DESADV D.96A se découpe en trois sections : Header, Detail (groupe SG10 répétable — Consignment Packing Sequence — jusqu'à 9 999 occurrences), et Summary. La spécificité de DESADV par rapport à ORDERS/INVOIC : la hiérarchie d'emballage imbriquée via les groupes SG11 → SG13 → SG15 (palette → carton → article).
Header
Au niveau du header, le seul segment mandataire en plus de UNH est :
BGM M .
Note : contrairement à ORDERS/INVOIC, DTM est conditionnel
au niveau du header DESADV (statut C dans la spec). En pratique, les conventions
sectorielles (EANCOM, Odette) imposent toujours au moins un DTM+137 (date du document).
Les autres segments de tête sont :
ALI C ,
MEA C ,
MOA C .
Suivent les groupes de segments SG1 à SG9 du header, dans cet ordre
précis : SG1 RFF+DTM (références — c'est ici qu'on rappelle le
numéro de commande), SG2 NAD+LOC (parties — vendeur, acheteur, livré-à),
SG3 RFF+DTM (références liées à une partie), SG4 CTA+COM
(contacts), SG5 TOD+LOC+FTX (conditions de livraison/transport), SG6
TDT+PCD (détails de transport), SG7 LOC+DTM (lieux et
dates), SG8 EQD+MEA+SEL+EQA (équipement, scellés), SG9
HAN+FTX (instructions de manutention).
Detail (CPS + LIN)
Le Detail est entièrement encapsulé dans SG10, un loop construit autour du segment CPS M avec son FTX C optionnel.
À l'intérieur de chaque CPS, on imbrique deux familles de groupes : la hiérarchie d'emballage (SG11 → SG13) et la liste d'articles (SG15).
SG11 PAC+MEA+QTY (Package — type, mesures, quantité d'unités d'emballage)
contient SG12 HAN+FTX (instructions colis), puis SG13 PCI+RFF+DTM+GIN
(Package Identification — porte le SSCC via GIN+BJ)
contenant SG14 GIN+DLM (autres identifiants).
SG15 LIN+PIA+IMD+MEA+QTY+ALI+GIN+GIR+DLM+DTM+FTX+MOA liste les articles
contenus dans la CPS courante, avec leur quantité expédiée (QTY+12).
SG15 contient SG16 RFF+DTM (références ligne), SG17 DGS+QTY+FTX
(marchandises dangereuses), SG18 LOC+NAD+DTM+QTY (lieux et parties
ligne), SG19 SGP+QTY (Split Goods Placement — répartition entre
plusieurs équipements), SG20 PCI+DTM+MEA+QTY et son sous-groupe SG21
GIN+DLM, SG22 HAN+FTX+GIN (instructions de manutention
ligne), SG23 QVR+DTM (variances de quantité — pour signaler les
différences avec la commande).
La spécification autorise jusqu'à 9 999 répétitions du loop SG10 par interchange, ce qui couvre les cargaisons les plus volumineuses.
Summary
La section Summary du DESADV est minimaliste :
CNT , et
UNT M .
Il n'y a pas de segment UNS dans DESADV — la section Summary commence
directement par CNT.
Obligatoire / conditionnel
Trois segments seulement sont strictement mandataires dans tout DESADV D.96A :
UNH— ouvre le message, porte l'identifiant et la version.BGM— précise le code de fonction (351 = avis d'expédition, 856 = ASN US, 856 = shipping notification), le numéro d'avis, et le statut du document.UNT— ferme le message, déclare le nombre de segments.
Pour produire un DESADV utile en réception entrepôt, il faut en pratique : un
DTM (date d'expédition), un RFF+ON (référence à la
commande), au moins un CPS (séquence d'emballage), au moins un
LIN dans SG15 (article expédié), et idéalement un GIN+BJ
portant le SSCC dans SG13 — c'est ce SSCC qui permet la réception scan-based en
entrepôt automatisé.
Exemple réel
Un avis d'expédition retail typique pour la livraison d'une palette portant les deux articles commandés via le message ORDERS de référence :
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 (avis d'expédition), numéro DESADV-2026-0521, statut 9 (Original).DTM+137— date du document.DTM+11— date d'expédition effective.RFF+ON:ORDER789— référence à la commande d'origine.NAD+SU/NAD+BY/NAD+DP— Supplier, Buyer, Delivery Point (3 GLN distincts).CPS+1— début de la séquence d'emballage n°1 (la palette).PAC+10++:::1 pallet— 1 unité d'emballage de type « palette ».PCI+33E+GIN+BJ:380011223344556677— identification du colis (SSCC à 18 chiffres).- Deux
LINavec leur QTY+12 (despatched quantity). CNT+2:2— contrôle : 2 lignes pour 2 articles distincts.UNT+16+1— 16 segments dans le message.
Erreurs fréquentes
- SSCC absent ou invalide — un DESADV sans
GIN+BJportant un SSCC valide à 18 chiffres ne peut pas être traité en réception automatisée. C'est le grief #1 des plateformes retail (Carrefour, Auchan, Tesco) contre les DESADV mal formés. - Hiérarchie d'emballage incohérente — un
CPSsansPACqui le précise, ou unLINsansCPSparent : la séquence d'emballage doit être strictement hiérarchique. - Référence à la commande manquante — pas de
RFF+ONdans le header : impossible de matcher le DESADV avec la commande ORDERS dans l'ERP acheteur. - QTY+12 vs QTY+21 — DESADV utilise QTY+12 (despatched quantity), pas QTY+21 (ordered quantity). Un DESADV avec QTY+21 sur les LIN signale une confusion entre commande et expédition.
- Pas de UNS — contrairement à ORDERS, INVOIC, ORDRSP, DESADV n'a pas de segment UNS+S. Beaucoup de générateurs naïfs en ajoutent un par mimétisme, ce qui fait planter les validateurs stricts.
Messages liés
DESADV est l'étape logistique du cycle order-to-cash :
- ORDERS D.96A — la commande, référencée via RFF+ON.
- ORDRSP D.96A — la confirmation de commande.
- RECADV D.96A — l'avis de réception côté acheteur (acquittement métier).
- INVOIC D.96A — la facture, qui référence le DESADV via RFF+DQ.
- IFTMIN D.96A — l'instruction transport au transporteur.
- CONTRL D.96A — l'accusé syntaxique automatique.
Équivalent JSON
Projection JSON correspondant à l'exemple ci-dessus. Ce mapping n'est pas normatif : c'est une convention ediverse pour faciliter l'intégration en TypeScript / Python.
{
"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 }
}
}