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.

RECADV — Receiving Advice Message (D.96A)

Le message RECADV signale au fournisseur la réception physique d'une livraison : quantités effectivement reçues, écarts éventuels par rapport à l'expédition annoncée (DESADV) ou à la commande (ORDERS).

Objet du message

Selon la définition officielle UN/CEFACT, le RECADV « adresse les besoins métier liés à la réception des marchandises. Le message rapporte la réception physique des marchandises et permet de signaler les écarts portant sur les produits, quantités, conditions, emballages, etc. » Le message peut soit confirmer que la livraison reçue correspond exactement à l'expédition annoncée dans le DESADV, soit signaler les écarts par rapport au DESADV, à ORDERS D.96A, DELFOR D.96A ou DELJIT D.96A.

En pratique, RECADV est le pivot du processus « 3-way match » en comptabilité fournisseur (Order ↔ Receipt ↔ Invoice) et le déclencheur de l'auto-facturation (self-billing) chez les retailers et constructeurs automobile.

Structure segmentaire

Contrairement à ORDERS ou INVOIC, le segment table de RECADV D.96A n'a pas de séparation formelle Header / Detail / Summary : pas de UNS, pas de section Detail délimitée. On peut néanmoins le découper en trois zones logiques : en-tête, suivi de groupes de parties / transport, puis le loop emballage SG16 (CPS) qui porte les lignes reçues.

Au niveau du header, les segments mandataires sont : UNH M , BGM M , et DTM M . Le segment ALI C est conditionnel, juste après DTM.

Suivent en zone « tête de message » une longue série de groupes :

  • SG1 RFF+DTM — références (RFF+ON commande, RFF+DQ DESADV...).
  • SG2 DOC + SG3 CDI+INP — documents externes.
  • SG4 NAD+LOC — parties (mandataire dans la spec).
  • SG5 RFF+DTM et SG6 CTA+COM — références et contacts liés à la partie.
  • SG7 TOD et SG8 CDI+INP — termes de livraison et état physique.
  • SG9 LOC+CDI — lieux et états par lieu.
  • SG10 TDT+DTM+CDI — transport.
  • SG11 EQD avec SG12 CDI+INP, SG13 SEL+CDI (scellés), SG14 EQA, SG15 CDI+INP — équipement.

Detail (CPS + LIN reçus)

Le cœur métier de RECADV est porté par le loop SG16 (jusqu'à 9 999 occurrences) construit autour de CPS M . Chaque CPS imbrique :

  • SG17 PAC+QVR — emballage et écart éventuel de quantité d'emballage, avec sous-groupes SG18 PCI+RFF, SG19 CDI+INP et SG20 GIN + SG21 CDI+INP pour décrire l'identification colis (SSCC reçus) et leur état.
  • SG22 — le loop article (jusqu'à 9 999) avec LIN M , PIA C , IMD C , QTY C , QVR C , et DTM C .
  • SG23 CDI+INP, SG24 DOC, SG25 CDI+INP — états et documents au niveau ligne.
  • SG26 GIN + SG27 CDI+INP — identifiants ligne (séries, lots).
  • SG28 RFF+DTM — références ligne.
  • SG29 PCI+QTY+QVR + SG30 CDI+INP et SG31 GIN + SG32 CDI+INP — emballage ligne et états.

Trailer

RECADV n'a pas de section Summary formelle : pas de UNS. Après le loop SG16 viennent directement : CNT C , puis UNT M .

Obligatoire / conditionnel

Cinq éléments structurels sont strictement mandataires dans tout RECADV D.96A :

  • UNH — ouvre le message.
  • BGM — précise la fonction (632 = receiving advice) et le numéro.
  • DTM au header — au moins une date (DTM+137 ou DTM+50 date de réception).
  • SG4 avec son NAD — au moins un groupe parties (M dans la spec, 10 occurrences max).
  • UNT — ferme le message.

En pratique métier, il faut aussi : RFF+ON (commande de référence), typiquement RFF+DQ (DESADV de référence), au moins un CPS (SG16) avec dedans au moins un LIN (SG22) et QTY+194 (received quantity). Les écarts sont portés par QVR en SG22 — sans QVR, la réception est implicitement conforme.

Exemple réel

Un avis de réception pour deux références issues d'un DESADV référencé : la première est reçue conforme (2 unités), la seconde présente un écart négatif (4 reçus, 5 annoncés — soit 1 manquant, QVR+1).

edifact recadv-d96a-example.edi
UNB+UNOC:3+5410000000123:14+5410000000456:14+260521:0930+CTRL000030'
UNH+1+RECADV:D:96A:UN:EAN008'
BGM+632+RECADV-2026-0521-001+9'
DTM+137:20260521:102'
DTM+50:202605210900:203'
RFF+ON:ORDER789'
DOC+351:DESADV-2026-0521'
NAD+BY+5410000000123::9'
NAD+SU+5410000000456::9'
NAD+DP+5410000000789::9'
CPS+1'
PAC+10+++:::1 pallet'
PCI+33E'
LIN+1++3520000001234:EN'
QTY+194:2'
LIN+2++3520000005678:EN'
QTY+194:4'
QVR+1:21'
CNT+2:2'
UNT+18+1'
UNZ+1+CTRL000030'
  • BGM+632+RECADV-2026-0521-001+9 — type 632 (Receiving advice), numéro RECADV-2026-0521-001, statut 9 (Original).
  • DTM+137 — date du document. DTM+50 — date/heure de réception physique (qualifier 203 horodaté).
  • RFF+ON:ORDER789 — référence à la commande d'origine.
  • DOC+351:DESADV-2026-0521 — référence au DESADV qui annonçait l'expédition.
  • NAD+BY / NAD+SU / NAD+DP — Buyer, Supplier, Delivery Point.
  • CPS+1 — séquence d'emballage n°1 (la palette reçue).
  • Première ligne : QTY+194:2 — 2 unités reçues, sans QVR (conforme).
  • Seconde ligne : QTY+194:4 + QVR+1:21 — 4 unités reçues, écart court de 1 unité (raison 21 = quantity short shipped).
  • CNT+2:2 — 2 lignes pour 2 articles distincts.
  • UNT+18+1 — 18 segments.

Erreurs fréquentes

  • RFF+DQ ou DOC+351 absent — un RECADV sans référence au DESADV qui l'a déclenché est ingérable côté fournisseur : impossible de rapprocher la réception de l'expédition correspondante.
  • QTY+194 vs QTY+12 — RECADV utilise QTY+194 (received quantity), pas QTY+12 (despatched quantity, qui appartient à DESADV). Beaucoup d'implémentations naïves recopient le QTY du DESADV sans changer le qualifier.
  • Pas de UNS — RECADV n'a pas de segment UNS. L'ajouter par mimétisme avec ORDERS/INVOIC fait planter les validateurs stricts.
  • QVR ambigu — un écart se signale par QVR avec un code raison (élément 4221) clair : 21 short shipped, 22 over shipped, 23 damaged, etc. Sans code raison, le fournisseur ne peut pas qualifier l'écart pour engager un avoir ou un remplacement.
  • NAD oublié — au moins un NAD est mandataire (groupe SG4 est M). Beaucoup de réceptions implicites en EDI court-circuitent ce point, ce qui les rend non-conformes au standard.

Messages liés

RECADV est l'étape acquittement métier 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 recadv-d96a-equivalent.json
{
  "interchange": {
    "controlRef": "CTRL000030",
    "from": { "id": "5410000000123", "qualifier": "14" },
    "to": { "id": "5410000000456", "qualifier": "14" },
    "datetime": "2026-05-21T09:30:00Z",
    "syntax": { "id": "UNOC", "version": "3" }
  },
  "message": {
    "ref": "1",
    "type": "RECADV",
    "version": { "syntax": "D", "release": "96A", "agency": "UN", "association": "EAN008" }
  },
  "receivingAdvice": {
    "number": "RECADV-2026-0521-001",
    "function": "632",
    "status": "9",
    "issueDate": "2026-05-21",
    "receivedAt": "2026-05-21T09:00:00Z",
    "references": {
      "buyerOrder": "ORDER789",
      "despatchAdvice": "DESADV-2026-0521"
    },
    "parties": {
      "buyer": { "gln": "5410000000123" },
      "supplier": { "gln": "5410000000456" },
      "deliveryPoint": { "gln": "5410000000789" }
    },
    "packingSequences": [
      {
        "ref": 1,
        "package": { "type": "pallet", "quantity": 1 },
        "lines": [
          { "ref": 1, "gtin": "3520000001234", "received": 2 },
          { "ref": 2, "gtin": "3520000005678", "received": 4, "variance": { "type": "short", "value": 1 } }
        ]
      }
    ],
    "totals": { "lineCount": 2 }
  }
}