Automatic 997s now check the envelope
Adrian Duyzer
Automatic 997 acknowledgments now validate the inbound envelope and report
accepted, accepted with errors, or rejected instead of always accepted.
Impact: partners configured for automatic 997s who send invalid X12 will start
receiving 997s that name the problems. Nothing changes for partners whose
envelopes are clean, and on clean traffic the new 997 is byte-identical to the
old one. If you are not sure whether the files you receive are valid, run one
through the EDI Inspector.
The checks that run on every inbound file:
- The ST and SE control numbers agree, and the segment count declared in SE01
matches the segments actually present (AK502 codes 3 and 4). - The GS and GE control numbers agree, and the transaction set count declared
in GE01 matches the transaction sets actually present (AK905 codes 4 and 5). - Every transaction set has its SE trailer and every group has its GE trailer
(AK502 code 2, AK905 code 3). - The X12 release is one of the seven we support, 003060 through 008010 (AK905
code 2). - Each transaction set is one the partner relationship was built to receive
(AK502 code 1).
A transaction set whose SE trailer miscounts its segments comes back like this,
where E means accepted with errors and 4 is the X12 code for a segment count
that does not match:
AK1*PO*1000
AK2*850*0001
AK5*E*4
AK9*E*1*1*1
Notes and limits:
- We send
AK5*E, accepted with errors, for anything the pipeline can still
process and deliver. We only sendR, rejected, when processing genuinely
will not happen: an X12 release we do not support (AK905 code 2), or a
transaction set the partner relationship is not configured for (AK502
code 1). - The “not configured” check reads the settings the flow was built with rather
than your live partner configuration, so a transaction setting you have added
but not built cannot cause a reject. - The 997 no longer depends on the parse. A file the parser cannot read still
gets acknowledged, as long as its ISA and GS headers are readable. A file
with neither readable still gets no 997, because there is no addressable
envelope to send one to, and we now log that case. - Control numbers are compared numerically when both sides are digits, so a
partner who pads ST02 and SE02 differently is not flagged for it. - There is no segment-level or element-level detail (
AK3andAK4) yet, and
the HIPAA 999 is not supported. - Flows built before this change keep the old always-accept behavior until they
are rebuilt. Click Rebuild on the partner page to move a flow onto the new
acknowledgment.
The full list of checks is in the partner docs.
This update was written with AI assistance. It has been reviewed and edited by a human.