ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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).

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 :

edifact desadv-d96a-example.edi
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 LIN avec 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+BJ portant 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 CPS sans PAC qui le précise, ou un LIN sans CPS parent : la séquence d'emballage doit être strictement hiérarchique.
  • Référence à la commande manquante — pas de RFF+ON dans 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 :

É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.

json desadv-d96a-equivalent.json
{
  "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 }
  }
}