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.

ORDRSP — Purchase Order Response Message (D.96A)

Le message ORDRSP transmet la réponse du vendeur à une commande reçue : confirmation complète, modification partielle, refus, contre-proposition.

Objet du message

Selon la définition officielle UN/CEFACT, ORDRSP « a pour but de spécifier les détails relatifs aux biens ou services commandés sous des conditions convenues entre le vendeur et l'acheteur » et de notifier l'acheteur des actions du vendeur. Le message couvre les quatre cas : acceptation pure, acceptation avec modification (date livraison, quantité, prix), rejet partiel ou rejet total. Le code de fonction porté par BGM[1] (231 = réponse à commande, 232 = confirmation…) précise l'intention.

Structure segmentaire

Un message ORDRSP D.96A se découpe en trois sections : Header, Detail (groupe SG26 répétable, jusqu'à 200 000 lignes par interchange), et Summary. La structure miroir celle d'ORDERS, enrichie du segment AJT (Adjustment Details) pour expliciter les écarts.

Au niveau du header, les segments mandataires sont : UNH M , BGM M , et DTM M . Les autres segments de tête sont conditionnels : PAI C , ALI C , IMD C , FTX C .

Suivent les groupes de segments SG1 à SG25 du header, dans cet ordre précis : SG1 RFF+DTM (références — c'est ici qu'on rappelle le numéro de commande d'origine), SG2 AJT+FTX (motif d'ajustement), SG3 NAD+LOC+FII (parties), SG4 RFF+DTM, SG5 DOC+DTM, SG6 CTA+COM, SG7 TAX+MOA+LOC, SG8 CUX+PCD+DTM (devises), SG9 PAT+DTM+PCD+MOA (termes de paiement), SG10 TDT (transport), SG11 LOC+DTM, SG12 TOD+LOC, SG13 PAC+MEA, SG14 PCI+RFF+DTM+GIN, SG15 EQD+HAN+MEA+FTX, SG16 SCC+FTX+RFF, SG17 QTY+DTM, SG18 APR+DTM+RNG, SG19 ALC+ALI+DTM et ses sous-groupes SG20-SG24 (QTY+RNG, PCD+RNG, MOA+RNG, RTE+RNG, TAX+MOA), SG25 RCS+RFF+DTM+FTX.

Detail (ligne d'article)

La section Detail est entièrement encapsulée dans SG26, un loop construit autour du segment LIN M . Chaque ligne peut porter PIA , IMD , MEA , QTY , PCD , ALI , DTM , MOA , GIN , GIR , QVR , DOC , PAI , et FTX .

Au-delà du LIN lui-même, 30 groupes nichés permettent de décrire à la maille ligne : classifications (SG27 CCI+CAV+MEA), termes de paiement spécifiques (SG28 PAT+DTM+PCD+MOA), motif d'ajustement (SG29 AJT+FTX), prix (SG30 PRI+CUX+APR+RNG+DTM), références (SG31 RFF+DTM), emballage (SG32 PAC+MEA+QTY+DTM) et son sous-groupe SG33-SG34 (RFF+DTM, PCI+RFF+DTM+GIN), lieux et quantités par site (SG35 LOC+QTY+DTM), taxes ligne (SG36 TAX+MOA+LOC), parties spécifiques à la ligne (SG37 NAD+LOC) et leurs sous-groupes SG38-SG40 (RFF+DTM, DOC+DTM, CTA+COM), allowances/charges ligne (SG41 ALC+ALI+DTM) et leurs sous-groupes SG42-SG46 (QTY+RNG, PCD+RNG, MOA+RNG, RTE+RNG, TAX+MOA), transport ligne (SG47 TDT) et SG48 LOC+DTM, SG49 TOD+LOC, équipement ligne (SG50 EQD+HAN+MEA+FTX), scheduling (SG51 SCC+FTX+RFF) et SG52 QTY+DTM, requirements ligne (SG53 RCS+RFF+DTM+FTX), étapes de fabrication (SG54 STG) et SG55 QTY+MOA.

La spécification autorise jusqu'à 200 000 répétitions du loop SG26 par interchange.

Summary

La section Summary contient : UNS M , MOA , CNT , puis un groupe SG56 ( ALC + ALI + MOA ) pour les allowances/charges globales, et enfin UNT M .

Obligatoire / conditionnel

Quatre segments sont strictement mandataires dans tout ORDRSP D.96A :

  • UNH — ouvre le message, porte l'identifiant et la version.
  • BGM — précise le code de fonction (231 = réponse à commande, 232 = confirmation), le numéro de réponse, et le statut du document.
  • UNS+S — délimite le passage du Detail au Summary.
  • UNT — ferme le message, déclare le nombre de segments et l'identifiant de référence.

À cela il faut au moins un DTM dans le header (date du document) et au moins une référence RFF+ON pour rappeler le numéro de commande de l'acheteur. Le segment QTY en ligne est techniquement conditionnel, mais en pratique chaque ligne en porte au moins deux occurrences — quantité commandée (qualifier 21) et quantité confirmée (qualifier 185 ou similaire).

Exemple réel

Une réponse de commande typique en retail : confirmation complète, sans écart sur les deux lignes commandées via le message ORDERS de référence :

edifact ordrsp-d96a-example.edi
UNB+UNOC:3+5410000000456:14+5410000000123:14+260514:0915+CTRL000002'
UNH+1+ORDRSP:D:96A:UN:EAN008'
BGM+231+RESP-ORDER789+4'
DTM+137:20260514:102'
DTM+171:20260520:102'
RFF+ON:ORDER789'
NAD+SU+5410000000456::9'
NAD+BY+5410000000123::9'
LIN+1++3520000001234:EN'
QTY+21:2'
QTY+185:2'
PRI+AAA:849.00'
LIN+2++3520000005678:EN'
QTY+21:5'
QTY+185:5'
PRI+AAA:19.50'
UNS+S'
MOA+128:1795.50'
CNT+2:2'
UNT+18+1'
UNZ+1+CTRL000002'
  • BGM+231+RESP-ORDER789+4 — type 231 (réponse à commande), numéro de réponse, statut 4 (Original avec acceptation).
  • DTM+137 — date du document. DTM+171 — date de livraison confirmée.
  • RFF+ON:ORDER789 — rappel obligatoire du numéro de commande acheteur (ON = Order Number).
  • NAD+SU / NAD+BY — Supplier et Buyer, identifiés par GLN.
  • Deux LIN avec leur QTY+21 (commandée) et QTY+185 (déjà reçue / confirmée).
  • MOA+128 — montant total facturable de la commande confirmée.
  • UNT+18+1 — 18 segments dans le message, référence « 1 » en cohérence avec UNH.

Erreurs fréquentes

  • Absence de référence à la commande d'origine — un ORDRSP doit obligatoirement référencer la commande qu'il acquitte via RFF+ON dans le header. Sans cette référence, l'acheteur ne peut pas matcher la réponse avec son flux de commandes.
  • Confusion entre QTY+21 et QTY+185 — la quantité commandée (21) doit rester égale à celle de l'ORDERS reçu. Seule la quantité confirmée (185, 21 ré-utilisé selon convention) ou la variance (QVR) doit varier en cas d'écart.
  • Code de fonction BGM erroné — 231 = response to order, 232 = order confirmation, 230 = delivery order response. Choisir le mauvais code crée un mismatch sémantique côté ERP acheteur.
  • UNT segment count erroné — la valeur après UNT+ doit inclure UNH et UNT eux-mêmes.
  • Date de livraison incompatibleDTM+171 (delivery date confirmed) ne doit pas précéder la date du document DTM+137.

Messages liés

ORDRSP fait partie 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 ordrsp-d96a-equivalent.json
{
  "interchange": {
    "controlRef": "CTRL000002",
    "from": { "id": "5410000000456", "qualifier": "14" },
    "to": { "id": "5410000000123", "qualifier": "14" },
    "datetime": "2026-05-14T09:15:00Z",
    "syntax": { "id": "UNOC", "version": "3" }
  },
  "message": {
    "ref": "1",
    "type": "ORDRSP",
    "version": { "syntax": "D", "release": "96A", "agency": "UN", "association": "EAN008" }
  },
  "orderResponse": {
    "number": "RESP-ORDER789",
    "function": "231",
    "status": "4",
    "responseDate": "2026-05-14",
    "confirmedDelivery": "2026-05-20",
    "references": { "buyerOrder": "ORDER789" },
    "parties": {
      "supplier": { "gln": "5410000000456" },
      "buyer": { "gln": "5410000000123" }
    },
    "lines": [
      { "ref": 1, "gtin": "3520000001234", "quantity": { "ordered": 2, "confirmed": 2 }, "price": { "net": 849.00 } },
      { "ref": 2, "gtin": "3520000005678", "quantity": { "ordered": 5, "confirmed": 5 }, "price": { "net": 19.50 } }
    ],
    "totals": { "lineCount": 2, "totalNet": 1795.50 }
  }
}