ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

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:

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 (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 LIN with 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+BJ 18-digit SSCC cannot be auto-received. Top complaint of retail platforms (Carrefour, Auchan, Tesco) against bad DESADVs.
  • Inconsistent packing hierarchy — a CPS with no PAC qualifier, or a LIN with no CPS parent: the packing sequence must be strictly hierarchical.
  • Missing order reference — no RFF+ON in 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.

DESADV is the logistics step in the order-to-cash cycle:

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.

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 }
  }
}