Understanding 835 ERA Files: A Complete Guide for Billers
The 835 ERA lands in your inbox. The payment doesn’t match what you expected. Here’s how to go line by line and find out exactly why.
The term “835 ERA file” gets used interchangeably by billers, RCM teams, and clearinghouses — and for good reason. The 835 is the HIPAA X12 transaction standard. The ERA (Electronic Remittance Advice) is what that transaction represents: a payer’s formal explanation of how they processed your claims.
This guide goes deeper than a segment overview. You’ll see how the pieces connect — from the check-level payment down to the individual procedure code adjustment — and why certain patterns in an 835 ERA file almost always mean the same thing.
What Makes an 835 ERA Different from an EOB?
An Explanation of Benefits (EOB) is a paper (or PDF) document mailed to patients and providers. It’s human-readable, formatted for readability, and typically covers a single claim.
An 835 ERA file is:
- Machine-readable — a flat text file with fields separated by
*and segments ending in~ - Batch-oriented — one file can contain hundreds of claim payments
- Provider-facing — sent to the billing provider or their clearinghouse, not the patient
- Actionable — structured so your practice management software can auto-post payments
The same payment event generates both. The EOB goes to the patient. The 835 ERA goes to you.
The 835 ERA File Structure: Top to Bottom
Every 835 ERA file follows the same hierarchical structure. Understanding the layers is key to navigating it.
ISA ~ (Interchange envelope - sender/receiver)
GS ~ (Functional group header)
ST*835 ~ (Transaction set - start of ERA)
BPR ~ (Financial information - the check)
TRN ~ (Trace number - check/EFT reference)
REF ~ (Reference numbers)
DTM ~ (Production date)
N1*PR ~ (Payer name and ID)
N1*PE ~ (Payee - your practice)
LOOP 2000 - HEADER (one per check)
CLP ~ (Claim payment - one per claim)
CAS ~ (Claim-level adjustments)
NM1*QC ~ (Patient name)
NM1*74 ~ (Corrected insured)
MIA/MOA ~ (Medicare inpatient/outpatient adjudication)
REF ~ (Reference numbers - group, prior auth, etc.)
DTM ~ (Claim dates)
LOOP 2110 - SERVICE (one per procedure code)
SVC ~ (Service payment - line-level)
DTM ~ (Service dates)
CAS ~ (Service-level adjustments)
REF ~ (Line-level references)
AMT ~ (Additional amounts)
LQ ~ (Health care remark codes)
PLB ~ (Provider-level adjustments - offset, recoupment)
SE ~ (Transaction set trailer)
GE ~ (Functional group trailer)
IEA ~ (Interchange trailer)
Let’s unpack each layer.
BPR: The Check Segment
The BPR segment is the financial summary for the entire ERA. It appears once per transaction set and tells you how much money is actually moving.
BPR*I*4217.50*C*ACH*CCP*01*011000138*DA*1234567890*1234567890***01*021000021*DA*9876543210*20260414~
| Position | Value | Meaning |
|---|---|---|
| BPR01 | I | Transaction handling code: I = Information (payment info) |
| BPR02 | 4217.50 | Total payment amount |
| BPR03 | C | Credit (C = payment to provider; D = debit/recoupment) |
| BPR04 | ACH | Payment method: ACH (electronic) or CHK (paper check) |
| BPR16 | 20260414 | Effective payment date (YYYYMMDD) |
BPR02 is the number your bank reconciliation depends on. If your EFT deposit doesn’t match BPR02, there’s a discrepancy between what the payer sent and what posted.
TRN: The Trace Number
TRN*1*12345678901*1234567890~
| Position | Value | Meaning |
|---|---|---|
| TRN01 | 1 | Trace type: 1 = current transaction (most common) |
| TRN02 | 12345678901 | Check/EFT number — use this for bank reconciliation |
| TRN03 | 1234567890 | Payer’s NPI or tax ID |
When a payment is missing or you need to trace an EFT, TRN02 is the reference number to give your bank or the payer’s provider relations team.
CLP: Where Each Claim Lives
After the header segments, the real content begins. Each CLP segment opens a claim-level loop that contains everything about one claim’s adjudication.
CLP*ACC-00123*1*850.00*750.00**MC*9876543210*11*1~
| Position | Value | Meaning |
|---|---|---|
| CLP01 | ACC-00123 | Your patient account number (what you submitted) |
| CLP02 | 1 | Claim status code (see below) |
| CLP03 | 850.00 | Total charge amount (what you billed) |
| CLP04 | 750.00 | Amount paid |
| CLP05 | (blank) | Patient responsibility amount |
| CLP06 | MC | Claim filing indicator (MC = Medicare Part B, CI = commercial) |
| CLP07 | 9876543210 | Payer’s internal claim control number (ICN/DCN) |
CLP02 Claim Status Codes
This is the first thing you check. It tells you whether the claim was paid, denied, or something in between.
| Code | Meaning |
|---|---|
1 | Processed as Primary |
2 | Processed as Secondary |
3 | Processed as Tertiary |
4 | Denied |
19 | Processed as Primary, Forwarded to Additional Payer |
20 | Processed as Secondary, Forwarded to Additional Payer |
22 | Reversal of Prior Payment |
23 | Not Our Claim — Forwarded to Another Payer |
Status 4 (Denied) in CLP02 doesn’t always mean zero payment. You might still see a partial payment at the line level. Always check the SVC segments.
CAS: Adjustment Segments — The Most Important Part
CAS segments explain why the paid amount (CLP04) is less than the billed amount (CLP03). This is where billers spend most of their time.
CAS*CO*45*85.00*1~
CAS*PR*1*15.00~
Each CAS segment has three repeating elements: Group Code, Reason Code, and Amount.
Adjustment Group Codes
| Code | Full Name | What It Means |
|---|---|---|
CO | Contractual Obligation | Payer/provider contract write-off. You agreed to this. Do NOT bill the patient. |
PR | Patient Responsibility | Amount the patient owes (copay, deductible, coinsurance). Bill the patient. |
OA | Other Adjustment | Miscellaneous adjustments — coordination of benefits, Medicare sequestration, etc. |
PI | Payer Initiated | Payer adjusted the claim for reasons unrelated to contractual rates. |
CR | Correction and Reversal | Used in reversals and reprocessed claims. |
High-Value Adjustment Reason Codes
There are over 300 CARC codes. These are the ones that drive the most revenue impact:
| Code | Meaning | Action |
|---|---|---|
1 | Deductible | Bill patient for PR amount |
2 | Coinsurance | Bill patient for PR amount |
3 | Co-payment | Bill patient for PR amount |
4 | Late filing | Appeal if timely filing was met — get your proof of timely submission |
18 | Duplicate claim | Check submission history; if truly a duplicate, no action. If resubmission was needed, appeal with LOA |
22 | Coordination of Benefits | Verify COB order and other insurance info |
27 | Expenses incurred after coverage terminated | Verify eligibility on date of service |
45 | Charge exceeds fee schedule | Standard contractual write-off (CO group) |
96 | Non-covered charge | Document medical necessity; appeal if it should be covered |
97 | Payment included in another service | Bundling — check if unbundling is appropriate with modifier |
109 | Claim not covered by this payer | Verify and resubmit to correct payer |
119 | Benefit maximum for this time period | Patient has hit their annual benefit cap |
197 | Precertification/prior auth required | Appeal with proof of auth, or appeal based on medical necessity |
Tip: A CASCO45 adjustment is almost always a contractual write-off. A CAS*PR adjustment always means money you can collect from the patient. Never write off PR adjustments.
SVC: Line-Level Service Payments
While CLP covers the whole claim, SVC covers each individual procedure line.
SVC*HC:99213*125.00*110.00**1~
| Position | Value | Meaning |
|---|---|---|
| SVC01 | HC:99213 | Procedure code submitted (HC = HCPCS/CPT qualifier) |
| SVC02 | 125.00 | Submitted charge for this procedure |
| SVC03 | 110.00 | Paid amount for this procedure |
| SVC04 | (blank) | National drug code (if applicable) |
| SVC05 | 1 | Units |
After each SVC segment, look for associated CAS segments. These are the line-level adjustments — the specific reason that procedure was reduced or denied.
Important: Line-level CAS codes take precedence over claim-level CAS codes for understanding why a specific service wasn’t paid.
LQ: Remittance Remark Codes
LQ segments attach Health Care Remark Codes (HCRCs) or Remittance Advice Remark Codes (RARCs) to a service line. They often provide the human-readable explanation that the CARC alone doesn’t give.
LQ*HE*MA130~
LQ*HE*N432~
| Code | Meaning |
|---|---|
MA130 | Your claim contains incomplete and/or invalid information |
N130 | Consult our contractual agreement for restrictions/billing guidelines |
N432 | Adjustment based on a Recovery Audit |
N519 | Invalid combination of HCPCS modifiers |
M86 | Service denied because payment already made for same/similar procedure |
When a denial reason code alone isn’t enough, LQ gives the supporting context. Always read LQ codes alongside the CAS reason code on the same SVC loop.
PLB: Provider-Level Adjustments
PLB segments appear near the end of the ERA, after all the claim loops. They represent adjustments to the total check amount that aren’t tied to any single claim — think overpayment recoupment, prior period credits, or interest.
PLB*1234567890*20260414*72:OVERPAY-2025Q4*-412.50~
| Position | Value | Meaning |
|---|---|---|
| PLB01 | 1234567890 | Provider NPI |
| PLB02 | 20260414 | Fiscal period date |
| PLB03 | 72:OVERPAY-2025Q4 | Adjustment reason (72 = recoupment) + reference |
| PLB04 | -412.50 | Amount (negative = deducted from payment) |
Common PLB reason codes:
| Code | Meaning |
|---|---|
50 | Late charge |
51 | Interest penalty |
72 | Authorized return (recoupment) |
WO | Withholding |
L6 | Interest owed |
A PLB with a large negative amount is often a recoupment — the payer is clawing back an overpayment from a prior period. This will reduce your deposit below what the sum of CLP payments suggests. If you see an unexpected PLB, contact provider relations to get the original claim detail.
Putting It Together: Reading an ERA End to End
Here’s the practical workflow when a new 835 ERA file arrives:
Step 1 — Match the deposit
Find BPR02 and confirm it matches your bank EFT or check amount. If it doesn’t match, investigate before posting anything.
Step 2 — Scan for PLB segments Before diving into claims, check if the check amount was reduced by recoupments or offsets. Know your real starting number.
Step 3 — Work claim by claim (CLP loops) For each CLP:
- CLP02 =
4means denied. Jump straight to the CAS and LQ codes to understand why. - CLP02 =
1or2means paid (possibly with adjustments). - Compare CLP03 (billed) to CLP04 (paid). Any gap needs explanation via CAS.
Step 4 — Check SVC lines for partial payments A claim can be “paid” at the CLP level but have individual service lines denied. The CLP payment amount reflects only what was paid at the line level. Don’t assume all services were paid just because the claim status is 1.
Step 5 — Categorize adjustments
COadjustments → contractual write-offs (no patient billing)PRadjustments → post to patient balance- Denials → route to your denial management workflow
Step 6 — Flag unusual patterns
CAS*CO*4(late filing) on multiple claims → audit your submission timingCAS*CO*97(bundling) → review modifier strategy- Multiple
PLB*72entries → confirm recoupment amounts with payer
When the 835 ERA File Is Unreadable
Raw 835 ERA files look like this in a text editor:
ISA*00* *00* *ZZ*PAYERID *ZZ*PROVIDERID *260414*1200*^*00501*000000001*0*P*:~GS*HP*PAYERID*PROVIDERID*20260414*1200*1*X*005010X221A1~ST*835*0001~BPR*I*4217.50*C*ACH...
Parsing that manually is brutal — especially when you need to cross-reference CARC codes or match claim numbers to your practice management system.
EDI Paisan parses and visualizes 835 ERA files for free — no signup required. Drop in a file and get a structured, color-coded view of every CLP, CAS, and SVC segment, with reason code descriptions inline. It’s the fastest way to answer “why didn’t I get paid for this claim?” without chasing cryptic segment references.
Quick Reference: 835 ERA File Segments
| Segment | Level | Key Data |
|---|---|---|
BPR | Transaction | Total payment amount, payment method, effective date |
TRN | Transaction | Check/EFT trace number |
N1*PR | Transaction | Payer name and ID |
N1*PE | Transaction | Payee (provider) name and NPI |
CLP | Claim | Claim status, billed vs. paid, ICN |
CAS | Claim or Service | Adjustment group code, reason code, amount |
NM1*QC | Claim | Patient name |
SVC | Service | Procedure code, billed, paid |
LQ | Service | Remark codes (RARC/CARC context) |
DTM | Claim or Service | Dates (service, claim received, etc.) |
REF | Claim or Service | Reference IDs (group, auth, ICN) |
PLB | Transaction | Provider-level offset or recoupment |
Understanding 835 ERA files isn’t just a technical skill — it’s a revenue protection skill. Every unread PLB segment is a potential surprise deduction. Every misclassified PR adjustment that gets written off is money left on the table. Every CO*4 (late filing) that doesn’t trigger an appeal is a preventable loss.
The file is dense, but the logic is consistent. Once you know the structure, the 835 tells you everything.