Understanding 835 ERA Files: A Complete Guide for Billers

April 14, 2026 · EDI Paisan Team
835 ERA remittance advice healthcare EDI medical billing denial management 835 ERA file

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~
PositionValueMeaning
BPR01ITransaction handling code: I = Information (payment info)
BPR024217.50Total payment amount
BPR03CCredit (C = payment to provider; D = debit/recoupment)
BPR04ACHPayment method: ACH (electronic) or CHK (paper check)
BPR1620260414Effective 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~
PositionValueMeaning
TRN011Trace type: 1 = current transaction (most common)
TRN0212345678901Check/EFT number — use this for bank reconciliation
TRN031234567890Payer’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~
PositionValueMeaning
CLP01ACC-00123Your patient account number (what you submitted)
CLP021Claim status code (see below)
CLP03850.00Total charge amount (what you billed)
CLP04750.00Amount paid
CLP05(blank)Patient responsibility amount
CLP06MCClaim filing indicator (MC = Medicare Part B, CI = commercial)
CLP079876543210Payer’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.

CodeMeaning
1Processed as Primary
2Processed as Secondary
3Processed as Tertiary
4Denied
19Processed as Primary, Forwarded to Additional Payer
20Processed as Secondary, Forwarded to Additional Payer
22Reversal of Prior Payment
23Not 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

CodeFull NameWhat It Means
COContractual ObligationPayer/provider contract write-off. You agreed to this. Do NOT bill the patient.
PRPatient ResponsibilityAmount the patient owes (copay, deductible, coinsurance). Bill the patient.
OAOther AdjustmentMiscellaneous adjustments — coordination of benefits, Medicare sequestration, etc.
PIPayer InitiatedPayer adjusted the claim for reasons unrelated to contractual rates.
CRCorrection and ReversalUsed 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:

CodeMeaningAction
1DeductibleBill patient for PR amount
2CoinsuranceBill patient for PR amount
3Co-paymentBill patient for PR amount
4Late filingAppeal if timely filing was met — get your proof of timely submission
18Duplicate claimCheck submission history; if truly a duplicate, no action. If resubmission was needed, appeal with LOA
22Coordination of BenefitsVerify COB order and other insurance info
27Expenses incurred after coverage terminatedVerify eligibility on date of service
45Charge exceeds fee scheduleStandard contractual write-off (CO group)
96Non-covered chargeDocument medical necessity; appeal if it should be covered
97Payment included in another serviceBundling — check if unbundling is appropriate with modifier
109Claim not covered by this payerVerify and resubmit to correct payer
119Benefit maximum for this time periodPatient has hit their annual benefit cap
197Precertification/prior auth requiredAppeal 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~
PositionValueMeaning
SVC01HC:99213Procedure code submitted (HC = HCPCS/CPT qualifier)
SVC02125.00Submitted charge for this procedure
SVC03110.00Paid amount for this procedure
SVC04(blank)National drug code (if applicable)
SVC051Units

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~
CodeMeaning
MA130Your claim contains incomplete and/or invalid information
N130Consult our contractual agreement for restrictions/billing guidelines
N432Adjustment based on a Recovery Audit
N519Invalid combination of HCPCS modifiers
M86Service 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~
PositionValueMeaning
PLB011234567890Provider NPI
PLB0220260414Fiscal period date
PLB0372:OVERPAY-2025Q4Adjustment reason (72 = recoupment) + reference
PLB04-412.50Amount (negative = deducted from payment)

Common PLB reason codes:

CodeMeaning
50Late charge
51Interest penalty
72Authorized return (recoupment)
WOWithholding
L6Interest 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 = 4 means denied. Jump straight to the CAS and LQ codes to understand why.
  • CLP02 = 1 or 2 means 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

  • CO adjustments → contractual write-offs (no patient billing)
  • PR adjustments → 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 timing
  • CAS*CO*97 (bundling) → review modifier strategy
  • Multiple PLB*72 entries → 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

SegmentLevelKey Data
BPRTransactionTotal payment amount, payment method, effective date
TRNTransactionCheck/EFT trace number
N1*PRTransactionPayer name and ID
N1*PETransactionPayee (provider) name and NPI
CLPClaimClaim status, billed vs. paid, ICN
CASClaim or ServiceAdjustment group code, reason code, amount
NM1*QCClaimPatient name
SVCServiceProcedure code, billed, paid
LQServiceRemark codes (RARC/CARC context)
DTMClaim or ServiceDates (service, claim received, etc.)
REFClaim or ServiceReference IDs (group, auth, ICN)
PLBTransactionProvider-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.