What is a 999?
The X12 999 is the first response to a batch of electronic claims. It says whether the file passed format and implementation guide checks: accepted, accepted with errors, or rejected.
ST*999*0001*005010X231A1~Start of the 999 acknowledgment.AK1*HC*1201*005010X222A1~It answers functional group 1201, a batch of 837P professional claims.AK2*837*0001*005010X222A1~Transaction set 0001 inside that batch.IK3*NM1*12*2010AA*8~Segment 12, an NM1 in loop 2010AA (the billing provider), has data element errors.IK4*8*66*1~Element 8, the ID code qualifier, is required but missing.IK5*R*5~Transaction set rejected: one or more segments in error.AK9*R*1*1*0~Functional group rejected: 1 transaction set sent, 1 received, 0 accepted.SE*8*0001~End of the acknowledgment, 8 segments.When claims leave a billing system they travel as an 837 file. The first thing the clearinghouse or payer sends back is a 999, usually within minutes or hours.
What a 999 checks
A 999 checks the form of the file, not the substance of the claims: the envelope, the syntax, and the rules of the X12 implementation guide, such as required segments and valid code values. It does not tell you whether a claim will be paid, or even whether the payer accepted each claim. That comes next, in the 277CA.
The four answers
- A, accepted: the file is well formed and moves on.
- E, accepted with errors: it moves on, but something should be fixed.
- P, partially accepted: some transaction sets in the group were rejected.
- R, rejected: nothing in the rejected transaction set moves on. Every claim in it has to be fixed and sent again.
Why it matters
A rejected 999 is easy to miss and expensive to ignore. The rejected claims were never received by the payer, so the timely filing clock keeps running while everyone assumes they’re in process. Teams that don’t reconcile every batch against its 999 find these claims months later, often too late to bill.
Run your revenue cycle as workflows.
We are working with a small group of billing and operations teams to shape worklist. Tell us where your work gets stuck, and we'll show you how it would run.