# Échange de données informatisées pour l'administration, le commerce et le transport

EDIFACT est l'acronyme pour Échange de données informatisées pour l'administration, le commerce et le transport (en anglais, Electronic Data Interchange for Administration, Commerce and Transport), qui est une norme des Nations unies décrivant des modalités techniques pour l'échange de données informatisé (EDI) dans différents secteurs industriels.
EDIFACT définit à la fois une syntaxe et un contenu pour les messages EDI.
La norme générale est adaptée par des organismes de normalisation nationaux et sectoriels, afin de mieux prendre en compte les besoins de chaque branche d'activité. En France on peut en particulier citer les normes GS1 (multi-secteurs), INOVERT (transport), ODETTE (automobile) et ETEBAC (banque).
Au moins deux fois par an, la norme fait l'objet d'une mise à jour globale. L'ensemble de cette mise à jour fait l'objet de la création d'un nouveau répertoire des données et messages. Chaque répertoire est identifié par l'année (sur deux chiffres) ainsi qu'un numéro ou une lettre pour indiquer sa position dans l'année (1 ou 2 pour les anciens répertoires, A, B ou C pour les plus récents). La dernière version à ce jour est la D17A, qui contient 195 messages différents.
L'ISO a adopté EDIFACT par la norme ISO 9735.

## Organisations sectorielles
### Secteur bancaire

Dans le secteur bancaire français, EDIFACT est associé au protocole de transmission ETEBAC 5 (www.etebac.com) pour Échanges Télématiques Banque Client. Cette norme d'échanges est édictée par le Comité Français d’Organisation et de Normalisation Bancaires (CFONB, ) qui dépend de la Fédération Bancaire Française (FBF, )
Les principaux messages EDIFACT standardisés par le CFONB sont :
* PAYORD (répertoire 91.2 ), pour les virements domestiques et les VSOT.
* PAYEXT puis PAYMUL (répertoire 96 A ), pour les virements commerciaux ( VCOM ).
Le CFONB préconise par ailleurs l'utilisation de fichiers de formats fixes qui sont bien plus simples à utiliser. Le format fixe de longueur 320 est désormais utilisable pour toute forme de virement (excepté les virements commerciaux qui sont associés au format fixe de longueur 400).
Dans le secteur bancaire mondial le message PAYMUL du répertoire 96 A est parfois proposé par les banques pour la formalisation des paiements domestiques et internationaux.
Le message FINSTA, destiné au relevés de comptes, est par contre rarement utilisé en raison de sa complexité.

### Secteur agricole

La normalisation de messages dématérialisés s'organise via l'association Agro EDI Europe , fondée en France en 1992.

### Secteur automobile

* Site officiel de ODETTE.

### Secteur aérien

* Site officiel de IATA

## Exemple de données

Ci-dessous un exemple de message EDIFACT utilisé pour répondre à une demande de disponibilité de billet d'avion (message de type FRA-JFK-MIA).
Le segment UNA est optionnel. Il permet de spécifier les caractères servant de séparateurs dans le reste du message. Six caractères sont définis, dans cet ordre
* séparateur de composant (ici :)
* séparateur d'élément (ici +)
* séparateur décimal (ici .)
* caractères d'échappement (ici ?)
* réservé, forcément une espace
* fin de segment (ici ')
À l'exception du séparateur décimal (voir ci-dessous), les caractères spéciaux du segment UNA de cet exemple correspondent aux valeurs par défaut du langage.
Par souci de concision, on utilisera + pour parler du séparateur de composant et :spour le séparateur d'élément.
* + sépare les composants ou structures composites, qui sont au premier niveau, directement contenus dans le segment ;
* : sépare les éléments qui sont à l'intérieur de structures composites.
Les éléments vides ou nuls et les séparateurs qui les suivent sont omis pour réduire la taille du message.
Le fait que le segment UNA soit optionnel combiné au choix de , comme séparateur décimal par défaut est fréquemment source de confusion. Les versions 1 à 3 de la syntaxe ISO 9735 précise la virgule comme le séparateur par défaut ; la version 4 déclare que le paramètre de séparateur décimal dans le segment UNA doit être ignoré, et que la virgule comme le point (.) peuvent être utilisés indifféremment. Le segment UNB indique quelle est la version des règles utilisées.
Le caractère d'échappement est utilisé comme un préfixe pour ôter la sémantique du caractère qui le suit (par exemple pour pouvoir utiliser littéralement un caractère: sans qu'il soit interprété comme séparateur de composant).
La fin de segment sert à terminer un segment.
Note : les retours à la ligne de l'exemple ci-dessus ont été ajoutés pour la lisibilité. Un message EDIFACT typique n'en contient pas.
UNH+1+PAORES:93:1:IA': c'est le segment d'en-tête qui est requis au début de tout message. Celui-ci spécifie qu'il s'agit d'un message PAORES, version 93 , révision 1, tel qu'il a été défini par l'organisation de code IA(l'IATA).
IFT+3+NO MORE FLIGHTS' : C'est un segment de type texte libre (« Interactive Free Text ») contenant le texte « NO MORE FLIGHTS ».
UNT+13+1' - C'est le segment terminal (« trailer ») ; il indique que le message contient normalement 13 segments.

## Exemples de message EDIFACT

* DELFOR – Delivery schedule
* DELJIT – Delivery Just In Time
* DESADV – Despatch Advice
* INVOIC – Invoice – Facture
* INVRPT – Inventory Report
* ORDERS – Order
* ORDCHG – Order Change – Modification de commande
* ORDRSP – Order response
* APERAK – Accusé de réception d'application
* HANMOV – Ordre de prestation logistique
* IFCSUM – Ordre de transport multiple
* IFTSTA – Transport Status Message