Parse Health Care Remittance EDI (X12 835)
Skill: Convert an X12 835 remittance advice into postable A/R data
Region: United States
Category: Health Care EDI (HIPAA X12 5010)
Does: Takes a payer's ASC X12N 835 Health Care Claim Payment/Advice (ERA) and parses it into structured, postable accounts-receivable data — what the payer paid per claim and service line, why amounts were adjusted, and how the electronic payment reconciles.
Spec: ASC X12 005010 — 835 005010X221A1
The 835 is the HIPAA-mandated electronic remittance advice (ERA) that pairs with the 837 claim; it is governed by its X12 TR3. The 835 is read/parsed (payer→provider), not authored by the provider. Adjustment meaning comes from the CARC/RARC code lists (Claim Adjustment Reason Codes / Remittance Advice Remark Codes) maintained by the X12 code-list committees — always resolve codes against the current lists.
Transaction envelope
ISA / GS (FG = HP, version 005010X221A1) / ST (835)
BPR Financial information (payment method, amount, ACH/CCP+ trace)
TRN Reassociation Trace Number (links the EFT to this 835)
... payer / payee / claim / service loops ...
SE / GE / IEA
BPR + TRN let the provider reassociate the 835 with the actual ACH/EFT deposit (the TRN02 trace number appears in the bank's CCD+ addenda).
Loop / segment structure
1000A Payer Identification (N1·PR, N3/N4, PER contacts)
1000B Payee Identification (N1·PE, REF payee NPI/TIN)
2000 Header Number / provider summary (LX, TS3/TS2 provider totals)
2100 CLAIM PAYMENT INFO (CLP) — one per claim
CLP claim status, charge, paid, patient responsibility, payer claim control no.
NM1 patient / insured / corrected
CAS CLAIM-LEVEL ADJUSTMENTS (group code + CARC + amount[+quantity]…)
REF other claim identifiers
DTP claim dates
2110 SERVICE PAYMENT INFO (SVC) — one per service line
SVC procedure (CPT/HCPCS), line charge, line paid, units
CAS SERVICE-LEVEL ADJUSTMENTS (group code + CARC + amount)
AMT allowed / other amounts
LQ remark codes (RARC)
PLB Provider-Level Adjustments (after all claims — e.g. withholding, interest, refunds)
Key segments
| Segment | Carries |
|---|---|
BPR |
total payment amount, method (ACH, CHK, NON), effective date, receiver bank routing/account |
TRN |
reassociation trace number (matches the EFT) |
CLP |
per-claim: submitted charge, paid amount, patient responsibility, claim status code, payer claim control number |
CAS |
adjustments: group code (CO/PR/OA/PI/CR) + CARC + amount (+ quantity), repeatable |
SVC |
per-line: procedure, line charge, line paid, revenue/units |
AMT |
allowed amount and other named amounts |
LQ |
RARC remark codes (explanatory) |
PLB |
provider-level adjustments not tied to one claim |
Reconciliation rules
- Per service line:
line charge = line paid + Σ line CAS adjustments. EachCAStriple is group code + reason code (CARC) + amount. - Group codes assign responsibility: CO = contractual obligation (provider write-off), PR = patient responsibility (bill the patient), OA = other adjustment, PI = payer initiated, CR = correction/reversal.
- Per claim: the
CLPpaid amount + patient responsibility + claim-level adjustments should reconcile to the submitted charge; service-line totals roll up to the claim. - Whole remittance:
BPR02total payment = Σ claim paid amounts − ΣPLBprovider-level adjustments. TheTRN02trace must match the EFT addenda for auto-posting. - CARC/RARC codes drive A/R logic — e.g. CO-45 (charge exceeds fee schedule → write-off), PR-1 (deductible → patient), PR-2 (coinsurance), PR-3 (copay).
Worked example (one claim, one line — parsed)
BPR*I*100.00*C*ACH*CCP*...*20250531~ Total EFT $100.00 via ACH
TRN*1*1234567890*1999999999~ Trace number for reassociation
CLP*PATCTL001*1*125*100*25*12*PAYERCTL55*11~ Charge 125, paid 100, patient resp 25, status 1 (processed as primary)
CAS*PR*1*25~ $25 → patient responsibility (deductible, CARC 1)
SVC*HC:99213*125*100**1~ CPT 99213: charge 125, paid 100
CAS*CO*45*0~ (contractual; example shows allowed = charge)
AMT*B6*100~ Allowed amount 100
Parsed result → post $100 payment to claim PATCTL001, bill patient $25 (PR-1 deductible), payer claim control PAYERCTL55; reassociate via trace 1234567890 against the $100 ACH deposit.
Validation / posting checklist
-
ISA/GS/STenvelope parsed; version005010X221A1confirmed;SEsegment count consistent -
BPRpayment amount and method captured;TRNtrace stored for EFT reassociation - Each
CLPmapped to the original claim by payer claim control number / patient control number -
CASadjustments split by group code (CO write-off vs PR patient-billable) and CARC resolved - Per line: charge = paid + Σ adjustments; per claim totals roll up; remittance ties to
BPR02−PLB - CARC/RARC codes resolved against the current code lists; secondary-payer balances routed for COB
-
PLBprovider-level adjustments posted separately (not against a single claim) - Trace number matched to the bank EFT before auto-posting
Last updated: 2026-05-31 — verify segment usage against the current ASC X12 005010X221A1 (835) TR3, and resolve all adjustments against the current CARC/RARC code lists, before posting.