HIPAA 835 File Format Example: Sample ERA (X12 835) with Segments and Loops Explained
Overview of X12 835 Transaction Set
The HIPAA 835 transaction is the Electronic Remittance Advice (ERA) that payers use to explain how they adjudicated and paid claims. It conveys payment order transactions and the detailed reasons for differences between billed and paid amounts, enabling automated posting and reconciliation in your revenue cycle.
An 835 file sits inside an interchange (ISA/IEA) and a functional group (GS/GE). Within that group, each remittance is a transaction set identified as 835 and structured into loops and segments. Companion Guides for 835 from individual payers refine how elements and loops are used, so you should always align your parser and posting rules with those instructions.
At-a-glance sample ERA snippet
ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *251107*1200*^*00501*000000905*1*T*:~
GS*HP*SENDER*RECEIVER*20251107*1200*1*X*005010X221A1~
ST*835*000000001*005010X221A1~
BPR*I*150.00*C*ACH*CCP*01*123456789*DA*9876543210*1512345678**01*987654321*DA*1234509876*20251107~
TRN*1*1512345678*9876543210~
N1*PR*PAYER NAME*XV*12345~
N1*PE*PAYEE CLINIC*XX*1234567893~
CLP*PCN12345*1*500.00*150.00*350.00*MC*PAYERCTRL987*11*1~
CAS*CO*45*350.00~
CAS*PR*2*20.00~
SE*12*000000001~
GE*1*1~
IEA*1*000000905~
This miniature example shows the flow from the transaction set header to payment information (BPR), claim details (CLP), and adjustments (CAS), using typical segment terminator characters and separators.
Transaction Set Header (ST) Segment
The ST segment opens a single 835 transaction set and identifies its payload for validation and control. It also carries the Transaction Set Control Number used to match the closing SE segment.
ST*835*000000001*005010X221A1~
- ST01: “835” indicates the transaction set for remittance advice.
- ST02: Transaction Set Control Number (for example, 000000001). This must exactly match SE02 at the end of the set.
- ST03: Implementation convention reference (commonly 005010X221A1) that anchors the rules your parser should apply.
The set closes with SE, which contains the segment count and the same control number as ST02.
SE*12*000000001~
Always validate that ST02 equals SE02 and that the SE segment count includes both ST and SE; this protects you from truncated or concatenated files.
Beginning Segment for Payment Order/Remittance Advice (BPR)
The BPR segment ties the ERA to the movement of funds, indicating whether the file is payment plus remittance, remittance only, or notification. It is the anchor for payment order transactions and EFT matching.
BPR*I*150.00*C*ACH*CCP*01*123456789*DA*9876543210*1512345678**01*987654321*DA*1234509876*20251107~
- BPR01: Transaction handling code (e.g., I = remittance information only, C/H when payment accompanies the ERA).
- BPR02: Payment amount for the remittance.
- BPR03: Credit/Debit flag (C or D).
- BPR04/BPR05: Payment method and format (e.g., ACH with CCP/CTX).
- BPR06–BPR09 and BPR12–BPR15: Originating and receiving bank identifiers and account numbers (with qualifiers such as 01 for ABA and DA for demand account).
- BPR16: Payment date.
Traceability with TRN
Immediately after BPR, the TRN segment supplies a trace number that you use to tie the ERA to the EFT entry in your bank statement.
TRN*1*1512345678*9876543210~
Store the TRN reference in your cash posting workflow to reconcile deposits and ERA-level totals efficiently.
Claim Level Data (CLP) Segment
The CLP segment begins claim-level payment details within loop 2100. It reports billed amount, paid amount, patient responsibility, and the claim’s adjudication status so your system can post the outcome to the right account.
CLP*PCN12345*1*500.00*150.00*350.00*MC*PAYERCTRL987*11*1~
- CLP01: Patient Control Number from your claim—your primary key for posting.
- CLP02: Claim status code (e.g., 1 = processed as primary, 2 = secondary, 3 = tertiary, 4 = denied).
- CLP03: Total claim charge amount.
- CLP04: Total claim payment amount.
- CLP05: Patient responsibility amount (e.g., deductible, coinsurance, copay to be billed to the patient).
- CLP07: Payer Claim Control Number for cross-reference.
- CLP06 and CLP08–CLP12: Additional classification details (such as filing indicator, facility type, frequency); usage varies by Companion Guides for 835.
Balancing at the claim level
For each claim, CLP03 (billed) equals CLP04 (paid to you) plus CLP05 (patient responsibility) plus the sum of adjustment amounts reported in one or more CAS segments.
Ready to simplify HIPAA compliance?
Join thousands of organizations that trust Accountable to manage their compliance needs.
Claims Adjustment (CAS) Segment
CAS segments explain why the payer did not pay the full billed amount. They use group codes, Adjustment Reason Codes, amounts, and optional quantities. Multiple reason-code “triples” can appear within a single CAS, and you can receive more than one CAS per claim and per service line.
CAS*CO*45*350.00~
CAS*PR*2*20.00*1~
CAS*OA*94*5.00~
- Group codes: CO (Contractual Obligation), PR (Patient Responsibility), PI (Payer Initiated), OA (Other Adjustment).
- Reason codes: industry-standard numeric codes that specify the adjustment cause (e.g., 45 = charge exceeds fee schedule/maximum allowable).
- Triples repeat as needed: Group, Reason, Amount, and optionally Quantity.
Reconciling totals
Sum all CAS amounts at the claim level, add CLP05 (patient responsibility), and you should reconcile to CLP03 minus CLP04. Service-level adjustments (within loop 2110) roll up to the claim totals in the same manner.
Loops and Hierarchical Looping Structure
The 835 uses a hierarchical looping structure defined by the implementation guide. Each loop has a Hierarchical Loop ID (e.g., 1000A, 2100, 2110) that signals the context for the segments that follow.
- Loop 1000A – Payer Name (N1 and related name/address segments).
- Loop 1000B – Payee Name (provider/clinic receiving payment).
- Loop 2000 – Header-level controls (e.g., LX, optional TS3/TS2 for summary reporting).
- Loop 2100 – Claim Payment Information: CLP, CAS, REF, DTM, AMT, and related identifiers.
- Loop 2110 – Service Payment Information: SVC, CAS, REF, DTM, AMT at the line-item level.
Unlike claim submission transactions, you do not typically see an HL segment in the 835; instead, the loop context is implied by sequence and the loop IDs. Your parser should switch logic based on loop entry segments (e.g., CLP for 2100, SVC for 2110).
Minimal skeleton for orientation
1000A (Payer)
1000B (Payee)
2000 (Header)
2100 Claim
2110 Service Line (repeats as needed)
2100 Claim (repeats)
When in doubt, consult the applicable Companion Guides for 835 to confirm which loops and segments a payer requires, and in what order.
Segment Terminators and Data Element Separators
Correct parsing depends on recognizing the delimiters declared in the ISA header. These characters can vary by sender, so never hardcode them; read them from the file.
ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *251107*1200*^*00501*000000905*1*T*:~
- Data element separator: the character immediately following “ISA” (often an asterisk “*”).
- Repetition separator: ISA11 (often a caret “^”).
- Component (sub-element) separator: ISA16 (often a colon “:”).
- Segment terminator character: appears at the end of each segment (often a tilde “~”).
Parsing tips
- Normalize whitespace but preserve every separator as-is; a single missing tilde or stray asterisk can shift element positions.
- Validate counts and control numbers (ISA13/IEA02, GS06/GE02, ST02/SE02) before posting.
- Log the exact delimiters you detected so downstream tools interpret Segment Terminator Characters consistently.
Summary
The X12 835 ERA pairs payment order transactions with detailed claim and service-level explanations. By honoring the Transaction Set Control Number, reading loop contexts, and interpreting CAS Adjustment Reason Codes with the correct delimiters, you can automate accurate cash posting and reconciliation across payers and Companion Guides for 835.
FAQs.
What is the purpose of the HIPAA 835 transaction?
The 835 delivers an Electronic Remittance Advice that tells you what was paid, what was not, and why. It ties to your EFT or check and provides the amounts and adjustment reasons needed to post payments and reconcile accounts automatically.
How are loops structured in the X12 835 file?
Loops are organized hierarchically with IDs such as 1000A (Payer), 1000B (Payee), 2000 (Header), 2100 (Claim Payment), and 2110 (Service Payment). Each loop starts when its defining segment appears (e.g., CLP for 2100, SVC for 2110) and continues until the next peer loop begins.
What information does the CLP segment contain?
CLP provides claim-level adjudication results: your patient control number, claim status, total charges, payment amount, patient responsibility, and the payer’s claim control number, with additional classification fields that can vary by payer guidance.
What is the role of the BPR segment in the 835 file?
BPR communicates the payment order details: whether the ERA accompanies a payment, the amount, method (ACH/check), bank routing and account qualifiers, and the payment date. Together with TRN, it lets you match the remittance to the actual funds movement.
Table of Contents
Ready to simplify HIPAA compliance?
Join thousands of organizations that trust Accountable to manage their compliance needs.