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:
| Element | Common values | Meaning |
|---|---|---|
EB01 | 1 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 Payor | The benefit info code. |
EB02 | IND Individual, FAM Family | Coverage level. |
EB03 | Service type (echoes EQ01) | What benefit this EB covers. |
EB04 | 12 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. |
EB05 | Plan name | Free text. |
EB06 | 7 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 Year | Time period. |
EB07 | Amount | Cost share or limit. |
EB08 | Percent | Coinsurance percent. |
EB09 | Quantity qualifier | When EB10 carries a count. |
EB10 | Quantity | E.g. visits remaining. |
EB11 | Y In-network, N Out-of-network | Authorization required indicator. |
EB12 | Y In-Plan Network, N Out-of-Plan Network, U Unknown, W Not Applicable | In-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).
AAA01 | Meaning |
|---|---|
Y | Valid request — the segment is informational. |
N | Invalid — see AAA03. |
AAA03 (Reject Reason Code) | Meaning |
|---|---|
15 | Required application data missing |
41 | Authorization / Access Restrictions |
42 | Unable to Respond at Current Time |
43 | Invalid / Missing Provider Identification |
44 | Invalid / Missing Provider Name |
45 | Invalid / Missing Provider Specialty |
46 | Invalid / Missing Provider Phone Number |
47 | Invalid / Missing Provider State |
48 | Invalid / Missing Referring Provider Identification Number |
49 | Provider is Not Primary Care Physician |
50 | Provider Ineligible for Inquiries |
51 | Provider Not on File |
52 | Service Dates Not Within Provider Plan Enrollment |
53 | Inquired Benefit Inconsistent with Provider Type |
56 | Inappropriate Date |
57 | Invalid / Missing Date(s) of Service |
58 | Invalid / Missing Date-of-Birth |
60 | Date of Birth Follows Date(s) of Service |
61 | Date of Death Precedes Date(s) of Service |
62 | Date of Service Not Within Allowable Inquiry Period |
63 | Date of Service in Future |
64 | Coverage Tier (Subscription) Not Found |
65 | Cannot Identify Member |
66 | Cannot Identify Subscriber |
67 | Cannot Identify Patient |
68 | Cannot Identify Insured |
69 | Subscriber Not in Group / Plan |
70 | Inappropriate Inquiry |
71 | Inappropriate Patient Identification Number |
72 | Invalid / Missing Subscriber / Insured ID |
73 | Invalid / Missing Subscriber / Insured Name |
74 | Invalid / Missing Subscriber / Insured Gender |
75 | Subscriber / Insured Not Found |
76 | Duplicate Subscriber / Insured ID |
77 | Subscriber Found, Patient Not Found |
78 | Subscriber / Insured Not in Plan or Group |
79 | Invalid Participant Identification |
AAA04 is the follow-up action code — telling you how to retry:
AAA04 | Meaning |
|---|---|
C | Please correct and resubmit |
N | Resubmission Not Allowed |
P | Please resubmit original transaction |
R | Resubmission allowed |
S | Do not resubmit; we will hold your request and respond again shortly |
W | Please wait 30 days and resubmit |
X | Please wait 10 days and resubmit |
Y | Do 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
| Check | Expected |
|---|---|
271 arrives with correlation_id to the 270 | Yes. |
EB01 = 1 for a known-active member | Yes. |
| AAA rejections surface as a structured error on the originating 270 | Yes — visible on the rcm-app /eligibility page that triggered the request. |
| Multi-service-type 271 carries one EB per service type | Yes (when the partner honors multi-EQ requests). |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| 271 parsed but cost-share fields are empty | Generic 270 (EQ*30) did not request cost-share specifically | Re-run with a service-type-specific 270. |
Plan name not in EB05 | Some payers omit it | Read REF segments for the plan ID; cross-reference against your payer aliases. |
EB01 = 4 "Active — Pending Investigation" | Coverage exists but payer is verifying enrollment | Wait the period named in any MSG text and re-run. |
| Multi-EB 271 has confusing overlapping limits | Per-service-type EBs can repeat with different time periods | Read EB06 time-period qualifier carefully; lifetime vs YTD vs visit-based limits do not aggregate. |