Skip to main content

271 inbound — parsing the response

Outcome

A 271 response is parsed into structured eligibility data, the EB segments are interpreted correctly, AAA rejections are surfaced clearly, and the result is correlated to the originating 270 + member.

Prerequisites

The 270 was sent successfully (4.1 — 270 outbound). A registered partner with 271 inbound capability.

271 anatomy

Source: packages/x12/src/inbound/eligibility-271.ts. Implementation convention: 005010X279A1.

ISA → GS → ST*271 → BHT
Loop 2000A — Information Source (echoes 270)
HL*1**20*1
NM1*PR
Loop 2000B — Information Receiver (echoes 270)
HL*2*1*21*1
NM1*1P
Loop 2000C — Subscriber
HL*3*2*22*1
NM1*IL (with payer's verified data)
[REF] (additional identifiers)
DMG (verified)
DTP (effective dates of coverage)
Loop 2110C — Eligibility / Benefit Information
EB (one per benefit info)
[REF] (plan / group identifiers)
[DTP] (per-benefit dates)
[AAA] (per-benefit error)
[MSG] (free text)
SE → GE → IEA

Reading EB segments

The EB is the heart of the 271. One EB per benefit fact:

ElementCommon valuesMeaning
EB011 Active, 2 Active — Full Risk Capitation, 3 Active — Services Capitated, 4 Active — Pending Investigation, 5 Active — Pending Eligibility, 6 Inactive, 7 Inactive — Pending Eligibility, 8 Inactive — Pending Investigation, A Co-insurance, B Co-payment, C Deductible, D Benefit Description, F Limitations, G Out of Pocket (Stop Loss), I Non-Covered, R Other or Additional PayorThe benefit info code.
EB02IND Individual, FAM FamilyCoverage level.
EB03Service type (echoes EQ01)What benefit this EB covers.
EB0412 PPO, 13 POS, 14 EPO, HM HMO, IP Indemnity, MD Medicare Part D, MA Medicare Part A, MB Medicare Part B, MC Medicaid, etc.Insurance type.
EB05Plan nameFree text.
EB067 Day, 21 Year-to-date, 22 Contract, 23 Years, 24 Episode, 25 Visit, 26 Outlier, 27 Remaining, 28 Exceeded, 29 Not Exceeded, 30 Lifetime, 31 Lifetime Remaining, 32 Interim, 33 Lifetime Maximum, 34 Lifetime — Calendar YearTime period.
EB07AmountCost share or limit.
EB08PercentCoinsurance percent.
EB09Quantity qualifierWhen EB10 carries a count.
EB10QuantityE.g. visits remaining.
EB11Y In-network, N Out-of-networkAuthorization required indicator.
EB12Y In-Plan Network, N Out-of-Plan Network, U Unknown, W Not ApplicableIn-plan network indicator.

Reading them in practice

EB*1*IND*30**HMO*Aetna PPO Plus~

→ Active coverage, individual, service type 30 (general health benefit plan), HMO insurance type, plan name "Aetna PPO Plus".

EB*C*IND*30****500.00~

→ Deductible, individual, service type 30, $500 deductible amount.

EB*B*IND*30****20.00~

→ Copayment, individual, service type 30, $20 copay.

EB*A*IND*30*****20~

→ Coinsurance, individual, service type 30, 20% coinsurance.

EB*F*IND*30*****20**VS*5~

→ Limitation, individual, service type 30, 20% coinsurance, Visit unit qualifier VS, 5 visits.

AAA — request rejections

AAA segments report errors. They can appear at the 2000C subscriber loop level (whole-request rejection) or inside an EB (per-benefit rejection).

AAA01Meaning
YValid request — the segment is informational.
NInvalid — see AAA03.
AAA03 (Reject Reason Code)Meaning
15Required application data missing
41Authorization / Access Restrictions
42Unable to Respond at Current Time
43Invalid / Missing Provider Identification
44Invalid / Missing Provider Name
45Invalid / Missing Provider Specialty
46Invalid / Missing Provider Phone Number
47Invalid / Missing Provider State
48Invalid / Missing Referring Provider Identification Number
49Provider is Not Primary Care Physician
50Provider Ineligible for Inquiries
51Provider Not on File
52Service Dates Not Within Provider Plan Enrollment
53Inquired Benefit Inconsistent with Provider Type
56Inappropriate Date
57Invalid / Missing Date(s) of Service
58Invalid / Missing Date-of-Birth
60Date of Birth Follows Date(s) of Service
61Date of Death Precedes Date(s) of Service
62Date of Service Not Within Allowable Inquiry Period
63Date of Service in Future
64Coverage Tier (Subscription) Not Found
65Cannot Identify Member
66Cannot Identify Subscriber
67Cannot Identify Patient
68Cannot Identify Insured
69Subscriber Not in Group / Plan
70Inappropriate Inquiry
71Inappropriate Patient Identification Number
72Invalid / Missing Subscriber / Insured ID
73Invalid / Missing Subscriber / Insured Name
74Invalid / Missing Subscriber / Insured Gender
75Subscriber / Insured Not Found
76Duplicate Subscriber / Insured ID
77Subscriber Found, Patient Not Found
78Subscriber / Insured Not in Plan or Group
79Invalid Participant Identification

AAA04 is the follow-up action code — telling you how to retry:

AAA04Meaning
CPlease correct and resubmit
NResubmission Not Allowed
PPlease resubmit original transaction
RResubmission allowed
SDo not resubmit; we will hold your request and respond again shortly
WPlease wait 30 days and resubmit
XPlease wait 10 days and resubmit
YDo not resubmit; inquiry initiated to a third party

Reading the segment trace

/transactions/:id for a 271 shows the full envelope and per-loop breakdown. The page also exposes a Parsed result tab with the structured ParsedEligibility object the gateway derived — a JSON-shaped view of parseEligibility271().

Validation

CheckExpected
271 arrives with correlation_id to the 270Yes.
EB01 = 1 for a known-active memberYes.
AAA rejections surface as a structured error on the originating 270Yes — visible on the rcm-app /eligibility page that triggered the request.
Multi-service-type 271 carries one EB per service typeYes (when the partner honors multi-EQ requests).

Troubleshooting

SymptomCauseFix
271 parsed but cost-share fields are emptyGeneric 270 (EQ*30) did not request cost-share specificallyRe-run with a service-type-specific 270.
Plan name not in EB05Some payers omit itRead REF segments for the plan ID; cross-reference against your payer aliases.
EB01 = 4 "Active — Pending Investigation"Coverage exists but payer is verifying enrollmentWait the period named in any MSG text and re-run.
Multi-EB 271 has confusing overlapping limitsPer-service-type EBs can repeat with different time periodsRead EB06 time-period qualifier carefully; lifetime vs YTD vs visit-based limits do not aggregate.

Next

4.3 — Batch eligibility sweeps