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.

DELFOR — Delivery Schedule Message (D.96A)

Le message DELFOR transmet d'un acheteur vers son fournisseur un programme de livraison — court terme ferme, moyen et long terme prévisionnel — selon les conditions d'un contrat-cadre.

Objet du message

Selon la définition officielle UN/CEFACT, DELFOR est « un message de l'acheteur vers le fournisseur transmettant les besoins en produits — instructions de livraison à court terme et/ou prévisions produit/service à moyen et long terme à des fins de planification — selon les conditions fixées dans un contrat ou une commande. Le message peut être utilisé pour autoriser l'engagement de ressources de main-d'œuvre et de matières ».

En pratique, DELFOR est le pilier du flux « appels de livraison » en automotive et en industrie sur contrat-cadre. Il combine un horizon ferme (les semaines à venir, qui autorisent la production) avec un horizon prévisionnel (planification capacitaire). Le DELFOR remplace progressivement le passage d'ORDERS ponctuels sur les références récurrentes.

Structure segmentaire

Un message DELFOR D.96A se découpe en trois sections : Header, Detail, et Summary. Le Detail contient un loop maître SG4 (parties — typiquement Ship-To) qui imbrique un loop article SG8 (le LIN) répétable jusqu'à 9 999 occurrences, puis un loop quantité programmée SG12.

Au niveau du header, les segments mandataires sont : UNH M , BGM M , et DTM M .

Suivent les groupes de segments : SG1 RFF+DTM (références — typiquement le numéro de contrat), SG2 NAD+LOC avec son sous-groupe SG3 CTA+COM (parties et contacts au niveau message).

Detail (programme de livraison)

La section Detail s'ouvre par un UNS M obligatoire (qualifier D).

Puis vient le loop SG4 (jusqu'à 500 occurrences) construit autour de NAD M + LOC C + FTX C . Chaque SG4 décrit typiquement un point de livraison (NAD+CN Consignee) et contient :

  • SG5 DOC+DTM — documents/messages liés à la partie.
  • SG6 CTA+COM — contacts spécifiques.
  • SG7 TDT+DTM — détails de transport au niveau du point de livraison.
  • SG8 — le loop article (jusqu'à 9 999 occurrences) avec LIN M , PIA C , IMD C , MEA C , ALI C , GIN C , GIR C , LOC C , DTM C et FTX C .
  • SG9 CTA+COM, SG10 RFF+DTM, SG11 TDT+DTM, SG13 RFF+DTM — au niveau ligne article.

À l'intérieur de SG8, le cœur métier de DELFOR : le loop SG12 (jusqu'à 200 occurrences) avec QTY M + SCC C + DTM C . C'est ici que l'acheteur exprime, ligne par ligne, son besoin : tant d'unités à telle date, avec tel statut (ferme/prévisionnel).

Suivent dans SG8 les sous-groupes PAC+MEA+QTY+DTM (SG14), PCI+GIN (SG15) et QVR+DTM (SG16) pour les variances de quantité.

SG17 RFF+DTM clôt le loop SG4. Le groupe SG18 (en dehors de SG4, jusqu'à 9 999 occurrences) reprend une structure article (LIN + sous-groupes SG19 à SG31) pour les appels de livraison sans rattachement explicite à un point de livraison.

Summary

La section Summary contient : UNS M , CNT , FTX , puis UNT M .

Obligatoire / conditionnel

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

  • UNH — ouvre le message.
  • BGM — précise la fonction (241 = Delivery schedule), le numéro et le statut.
  • DTM au header — au moins une date (la date du document, DTM+137).
  • UNS+D — délimiteur Header → Detail.
  • UNS+S — délimiteur Detail → Summary, suivi de UNT.

En pratique métier, il faut aussi : au moins une partie acheteur/fournisseur en header (NAD via SG2), au moins un LIN (via SG8 ou SG18), et au moins un QTY+SCC+DTM dans le loop SG12 par ligne — c'est l'unité de besoin élémentaire d'un programme de livraison.

Exemple réel

Un programme de livraison hebdomadaire envoyé par un constructeur à son fournisseur de rang 1, pour deux références : un échelonnement en trois lots fermes sur juin pour la première, un lot unique pour la seconde.

edifact delfor-d96a-example.edi
UNB+UNOC:3+5410000000123:14+5410000000456:14+260513:1430+CTRL000010'
UNH+1+DELFOR:D:96A:UN:EAN008'
BGM+241+DELFOR-2026-W20+9'
DTM+137:20260513:102'
DTM+157:20260601:102'
DTM+158:20260831:102'
NAD+BY+5410000000123::9'
NAD+SU+5410000000456::9'
UNS+D'
NAD+CN+5410000000789::9'
LIN+1++3520000001234:EN'
QTY+1:500'
SCC+1'
DTM+2:20260602:102'
QTY+1:500'
SCC+1'
DTM+2:20260616:102'
QTY+1:500'
SCC+1'
DTM+2:20260630:102'
LIN+2++3520000005678:EN'
QTY+1:2000'
SCC+1'
DTM+2:20260601:102'
UNS+S'
CNT+2:2'
UNT+25+1'
UNZ+1+CTRL000010'
  • BGM+241+DELFOR-2026-W20+9 — type 241 (Delivery schedule), numéro DELFOR-2026-W20, statut 9 (Original).
  • DTM+137 — date du document. DTM+157 / DTM+158 — début et fin de l'horizon couvert.
  • NAD+BY / NAD+SU — Buyer et Supplier en header.
  • UNS+D — bascule en section Detail.
  • NAD+CN — Consignee (point de livraison) au niveau Detail (SG4).
  • Première ligne : trois QTY+1 (500 unités) avec SCC+1 (ferme) et DTM+2 (date de livraison demandée) — l'échelonnement.
  • Seconde ligne : un seul créneau pour 2 000 unités.
  • UNS+S + CNT+2:2 — Summary : 2 lignes.
  • UNT+25+1 — 25 segments, référence « 1 » cohérente avec UNH.

Erreurs fréquentes

  • UNS manquants ou inversés — DELFOR a deux UNS (un UNS+D et un UNS+S), contrairement à ORDERS qui n'en a qu'un. Beaucoup de générateurs naïfs oublient le UNS+D, ce qui invalide la séparation Header/Detail.
  • SCC oublié sur QTY — sans SCC (Scheduling Conditions), le fournisseur ne sait pas si la quantité est ferme, prévisionnelle ou indicative. Tous les ERP automotive sérieux exigent SCC sur chaque QTY+SCC+DTM.
  • Confusion DELFOR vs DELJIT — DELFOR adresse l'horizon hebdomadaire et au-delà ; pour des séquences précises à l'heure ou à la minute (24h, JIT pur), utilisez DELJIT D.96A qui porte un segment SEQ dédié.
  • QTY+1 vs QTY+21 — DELFOR utilise QTY+1 (discrete quantity) pour les quantités programmées, pas QTY+21 (ordered quantity) qui est spécifique à ORDERS.
  • Date formatDTM+2 attend un format conforme au qualifier du composant 3 (102 = CCYYMMDD). Une date ISO sera rejetée.

Messages liés

DELFOR s'inscrit dans un flux contrat-cadre + appels de livraison :

  • ORDERS D.96A — la commande ferme initiale ou le contrat-cadre référencé via RFF+CT.
  • DELJIT D.96A — l'appel JIT plus fin (séquence horaire) qui complète DELFOR.
  • DESADV D.96A — l'avis d'expédition envoyé en réponse à chaque appel.
  • RECADV D.96A — l'avis de réception côté acheteur.
  • INVRPT D.96A — le rapport d'inventaire que le fournisseur peut renvoyer en parallèle.
  • 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.

json delfor-d96a-equivalent.json
{
  "interchange": {
    "controlRef": "CTRL000010",
    "from": { "id": "5410000000123", "qualifier": "14" },
    "to": { "id": "5410000000456", "qualifier": "14" },
    "datetime": "2026-05-13T14:30:00Z",
    "syntax": { "id": "UNOC", "version": "3" }
  },
  "message": {
    "ref": "1",
    "type": "DELFOR",
    "version": { "syntax": "D", "release": "96A", "agency": "UN", "association": "EAN008" }
  },
  "deliverySchedule": {
    "number": "DELFOR-2026-W20",
    "function": "241",
    "status": "9",
    "issueDate": "2026-05-13",
    "horizon": { "start": "2026-06-01", "end": "2026-08-31" },
    "parties": {
      "buyer": { "gln": "5410000000123" },
      "supplier": { "gln": "5410000000456" },
      "consignee": { "gln": "5410000000789" }
    },
    "lines": [
      {
        "ref": 1,
        "gtin": "3520000001234",
        "schedule": [
          { "quantity": 500, "deliveryDate": "2026-06-02" },
          { "quantity": 500, "deliveryDate": "2026-06-16" },
          { "quantity": 500, "deliveryDate": "2026-06-30" }
        ]
      },
      {
        "ref": 2,
        "gtin": "3520000005678",
        "schedule": [{ "quantity": 2000, "deliveryDate": "2026-06-01" }]
      }
    ],
    "totals": { "lineCount": 2 }
  }
}