X12 997 — Functional Acknowledgment
L'accusé syntaxique historique de X12 : confirme la bonne réception d'un functional group GS/GE, segment par segment, et liste les éventuelles erreurs. Toujours en usage massif sur les releases ≤ 5010.
Objet de la transaction
Le 997 confirme la bonne réception syntaxique d'un functional group X12 : il atteste que le GS/GE a été reçu, que les ST/SE sont cohérents et que la grammaire X12 a été respectée. Il n'est pas un acknowledgment métier : il ne valide pas que le PO contienne des produits réels ou que l'ASN ait du sens — uniquement que le format est syntaxiquement correct.
Enveloppe et structure
Le 997 utilise la triple enveloppe X12 standard avec GS01 = FA
(Functional Acknowledgment). Le 997 lui-même est généralement envoyé dans un
autre functional group que celui qu'il accuse, pour éviter les boucles
infinies. Voici un 997 d'acceptation et un 997 de rejet :
ISA*00* *00* *ZZ*RECEIVER01 *ZZ*SENDER02 *260513*1500*U*00401*000000997*0*P*>~
GS*FA*RECEIVER01*SENDER02*20260513*1500*1*X*004010~
ST*997*0001~
AK1*PO*1~
AK2*850*0001~
AK5*A~
AK9*A*1*1*1~
SE*6*0001~
GE*1*1~
IEA*1*000000997~ ISA*00* *00* *ZZ*RECEIVER01 *ZZ*SENDER02 *260513*1505*U*00401*000000998*0*P*>~
GS*FA*RECEIVER01*SENDER02*20260513*1505*1*X*004010~
ST*997*0001~
AK1*PO*2~
AK2*850*0002~
AK3*N1*5***8~
AK4*1*98*7~
AK5*R*5~
AK9*R*1*1*0~
SE*8*0001~
GE*1*1~
IEA*1*000000998~ Segments courants (concept)
- Header —
AK1Functional Group Response Header référence le functional group accusé (functional ID, control number). - Detail — par transaction reçue :
AK2Transaction Set Response Header identifie ST01 et ST02,AK3Data Segment Note signale une erreur au niveau d'un segment (avec son code d'erreur),AK4Data Element Note précise l'erreur au niveau élément (qualifier, position).AK5Transaction Set Response Trailer porte le verdict (A Accepted, E Accepted with errors, P Partially accepted, R Rejected). - Summary —
AK9Functional Group Response Trailer donne le verdict du functional group (A, E, P, R), le nombre de ST inclus, le nombre accepté, et la liste des erreurs au niveau group.SEferme la transaction.
997 vs 999 — la migration
Le 997 a été conçu en 1991 et n'a pas évolué pour suivre les améliorations syntaxiques des releases X12 récentes : il code mal les erreurs composites, n'a pas de granularité au niveau loop, et son vocabulaire d'erreurs est pauvre. À partir de la release X12 6020 (2008) le standard introduit le 999 Implementation Acknowledgment, plus riche : granularité composite/loop, vocabulaire d'erreur étendu, validation par rapport à l'implementation guide. La HIPAA 5010 impose 999 plutôt que 997 pour les acknowledgments des transactions santé (270/271/276/277/278/834/835/837). Sur les flux supply chain et finance non-HIPAA, le 997 reste massivement déployé et accepté en pratique.
Quand vous la croiserez
Le 997 est encore omniprésent en supply chain retail et manufacturing US : Walmart, Target, Home Depot, Costco, Lowe's, Kohl's, Macy's — tous échangent des 997 par dizaines de millions par jour. Les VANs traditionnelles (OpenText GXS, IBM Sterling, SPS Commerce, TrueCommerce) supportent les deux mais leurs partenaires historiques restent en 4010 + 997.
Transactions liées
- 999 — Implementation Acknowledgment (le successeur). Voir 999 →
- 824 — Application Advice (acknowledgment métier au-delà de la syntaxe).
- TA1 — Interchange Acknowledgment (au niveau ISA/IEA, sous le 997).
- Tous les transaction sets accusés : 210 · 214 · 821 · 823 · 990
Documentation
- x12.org/products/transaction-sets — index public, nom et code 997.
- stedi.com/edi/x12/transaction-set/997 — référence éditoriale publique, exemples.
- Implementation Guide (TR3) — disponible à l'achat sur x12.org ou auprès de DISA.