What a practice management system sends in an 837P
The practice management system shows the claim as sent. The clearinghouse shows it as rejected. Nothing on the practice management screen says why, and the billing staff asks you to find the file.
The standard
HIPAA adopts the 837 Health Care Claim: Professional, X12N/005010X222, in 45 CFR 162.1102, for claims from January 1, 2012. The CMS booklet on the CMS-1500 and 837P, dated December 2025, calls version 5010A1 the current electronic claim version. It states that X12 sells the implementation guide under license, and that each Medicare Administrative Contractor publishes a companion guide with Medicare-specific content.
Clearinghouses and commercial payers publish companion guides too. Those guides, not the base standard, hold most of the reasons a claim rejects.
The envelope
ISA and GS open the interchange and the functional group. GS08 carries the version string, 005010X222A1, and the receiver checks it. ST opens the transaction set and BHT carries the submitter's batch id. Loop 1000A names the submitter and 1000B the receiver. A CMS presentation on acknowledgments shows a TA1 rejection with note code 006, invalid interchange sender ID, after the ISA sender ID was typed with one extra character.
The loops that matter
The 837P is hierarchical. HL segments nest the billing provider, the subscriber and, when different, the patient. The CMS COBA companion guide documents how Medicare fills each loop on the 837P claims it sends to other payers. It is a precise picture of what a receiver expects. The CORE 277CA data content rule lists the elements a payer must echo back, which tells you which ones the payer keys on.
| Loop | Content | Fields that reject |
|---|---|---|
| 2000A | Billing provider level. HL03 is 20. PRV with PRV01 BI, PRV02 PXC and the taxonomy code. | Taxonomy missing when the payer requires it. |
| 2010AA | Billing provider. NM101 85, NM108 XX, NM109 the NPI. N3 and N4 with a nine-digit ZIP in N403. REF EI with the tax ID. | NPI not enrolled with the payer. Five-digit ZIP. Tax ID that does not match the NPI enrollment. |
| 2000B | Subscriber level. SBR01 payer responsibility sequence, SBR02 18 when the subscriber is the patient, SBR09 claim filing indicator such as CI, MB or MC. | Wrong SBR09 for the payer. Secondary claim without the primary payer's adjudication in 2320. |
| 2010BA | Subscriber. NM101 IL, NM108 MI, NM109 the member ID. N3, N4 and DMG with birth date and gender. | Member ID in the wrong format. Name that differs from the payer's record. |
| 2010BB | Payer. NM101 PR, NM108 PI, NM109 the payer ID. | Payer ID the clearinghouse does not route. |
| 2300 | Claim. CLM01 your patient control number, CLM02 total charge, CLM05 with place of service and frequency code, 1 for original and 7 for replacement. HI with diagnosis codes. REF F8 with the original payer claim control number on a replacement. | Frequency 7 without the original control number. Diagnosis qualifier for the wrong code set. A diagnosis no line points to. |
| 2400 | Service line. LX counter, SV1 with qualifier HC, the CPT or HCPCS code and modifiers, the charge, units and diagnosis pointers. DTP 472 the service date. REF with your line item control number. | Service date outside the claim dates. Pointer to a missing diagnosis. Line charges that do not sum to CLM02. |
Set CLM01 unique per submission. If you resubmit with the same CLM01, the 277CA and the 835 become ambiguous. Set a line item control number on every 2400 REF. The 277CA returns it in 2220D REF02 and the 835 echoes it, so line-level errors and payments map back without guessing.
Reading the 999
The 999 Implementation Acknowledgment, 005010X231, reports syntax and implementation guide errors for a functional group. The CMS presentation describes the Medicare flow. The translator returns a TA1 for a rejected interchange. It returns a 999 with R for a rejected functional group, E for accepted with errors, and A for accepted. Its example of an accepted file with two errors, with the separator changed to *:
AK1*HC*000000001*005010X222~
AK2*837*000000001*005010X222~
IK3*CLM*120**8~
IK4*2*782*I12*92.511~
IK3*N4*127**8~
IK4*3*116*6*90033-2414~
IK5*E~
AK9*A*1*1*1~
AK2 names the transaction set. IK3 names the segment and its position in the file: CLM at position 120, N4 at 127. IK4 names the element position, the data element number, the error code and the bad value. Here CLM02 held 92.511, a charge with three decimals, and N403 held a postal code with a hyphen. IK5 E accepts the transaction set with errors. AK9 A accepts the group, with one transaction set included, one received and one accepted. A 999 R means nothing in the file reached the payer's claim system. Fix the segment IK3 names and resend the whole file.
Reading the 277CA
The 277CA, 005010X214, answers per claim. Medicare returns one for each accepted or rejected claim, and the one for an accepted claim carries the payer's claim number (CMS). The CORE 277CA rule maps your 837 fields to their echo: CLM01 returns in 2200D TRN02, CLM02 in 2200D STC04, the payer claim control number in 2200D REF02, and the line item control number in 2220D REF02.
Status sits in STC01: a category code, a status code and, when relevant, an entity code. The CORE rule defines four rejection scenarios by category, A3 unprocessable, A6 missing information, A7 invalid information and A8 relational field error, and limits the allowed code pairs to a published spreadsheet. The CMS example at provider level:
STC*A8:496:85**U*1000.00~
Category A8, status 496 (submitter not approved for electronic claim submissions on behalf of this entity), entity 85 (billing provider), total charge 1000.00. Look up both codes in the category and status lists; they change several times a year.
What to store
With each outbound file, store ISA13, GS06, ST02 and BHT03. The 999 references them in AK1 and AK2, and the 277CA references the batch in 2200B TRN02. With each claim, store CLM01 and every 2400 line item control number. When the 277CA arrives, store 2200D REF02 as the payer claim control number at once; it is the key for the 276 and for CLP07 in the 835.
When the practice management system says sent and the clearinghouse says rejected, the 999 or the 277CA holds the reason in IK3 and IK4 or in STC. Pull the files by ISA13 or batch id and map them back to the claim.