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.
Header
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, SG10RFF+DTM, SG11TDT+DTM, SG13RFF+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.DTMau header — au moins une date (la date du document, DTM+137).UNS+D— délimiteur Header → Detail.UNS+S— délimiteur Detail → Summary, suivi deUNT.
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.
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) avecSCC+1(ferme) etDTM+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+Det unUNS+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 format —
DTM+2attend 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.
{
"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 }
}
}