270 outbound — composing a request
Outcome
A 270 eligibility-inquiry transaction goes out cleanly to the right partner, the request asks for exactly the benefit information you need (no more, no less), and the response is correlated back to the originating member + service date.
Prerequisites
| Scope | What it lets you do |
|---|---|
edi.transaction.read | View transactions |
edi.eligibility.run | Originate 270s through the gateway |
A trading partner with 270 outbound and 271 inbound capabilities (see
2.4 — Capabilities). A registered
member with at least one active coverage policy on the date of inquiry.
270 anatomy
Source: packages/x12/src/outbound/eligibility-270.ts. Implementation
convention: 005010X279A1.
ISA → GS → ST*270 → BHT
Loop 2000A — Information Source (the payer)
HL*1**20*1
NM1*PR (payer)
Loop 2000B — Information Receiver (the provider / submitter)
HL*2*1*21*1
NM1*1P (provider)
Loop 2000C — Subscriber
HL*3*2*22*1
NM1*IL (subscriber)
DMG (DOB / gender)
DTP (eligibility date)
Loop 2000D — Dependent (optional)
HL*4*3*23*0
NM1*03 (dependent)
Loop 2110C — Eligibility / Benefit Inquiry
EQ (service type code)
SE → GE → IEA
Service-type codes
The most consequential element is EQ01 — the service type code.
Choosing well makes the 271 response useful; choosing poorly produces
either too little detail or a payer-side rejection.
| Code | Meaning | When to use |
|---|---|---|
30 | Health Benefit Plan Coverage | Default — generic "is this person eligible". Returns active/inactive plus minimal cost-share. |
R | Returns full benefit info | Some payers honor this; others reject as too broad. |
1 | Medical Care | Outpatient medical services. |
35 | Dental Care | |
47 | Hospital | Inpatient. |
48 | Hospital — Inpatient | Specific to admission planning. |
49 | Hospital — Outpatient | |
54 | Long Term Care | |
86 | Emergency Services | |
88 | Pharmacy | |
98 | Professional (Physician) Visit — Office | Office visit. |
BU | Psychiatric — Outpatient | Mental health outpatient. |
BV | Psychiatric — Inpatient | |
MH | Mental Health | Generic mental-health bucket — partner-specific. |
When a single 270 needs multiple service types, repeat the EQ segment
inside loop 2110C. Most partners support up to 99 repeats.
Steps
Trigger an eligibility request through the rcm-app
/eligibilitypage (real-time check) or via a batch sweep. Either flow funnels through the same gateway code path.The gateway composes the 270:
- Resolves the trading partner from the routing rule for
270/ payer / state. - Allocates an ISA / GS / ST control number triple from the control-number-manager.
- Composes the 2000A through 2110C loops from the member record and the requested service date.
- Applies any companion guide bound to
270for this partner. - Submits via the partner's transport.
- Resolves the trading partner from the routing rule for
The transaction record appears at
/transactionswithtx_type = 270, directionoutbound, statussubmitted. Click in to see the segment trace.Wait for the 271 (typically seconds for real-time, minutes for batch). The 271 arrives as a separate inbound transaction with
correlation_idpointing back at the 270's transaction ID.
Reading the segment trace
/transactions/:id opens the segment trace. The 270 trace shows:
| Section | Notable elements |
|---|---|
| ISA | Receiver ID, control number, usageIndicator (P or T). |
| GS | HS functional code, our submitter, 005010X279A1. |
| BHT | BHT02 = 13 (request); BHT06 = RT realtime. |
| 2000A NM1*PR | Payer name + ID. |
| 2000B NM1*1P | Provider NPI. |
| 2000C NM1*IL | Subscriber name + member ID. |
| 2000C DMG | DOB + gender — required for matching. |
| 2000C DTP | The service date the inquiry covers. |
| 2110C EQ | Service type code(s). |
Anything missing from this list is the gateway's responsibility — file an issue if the trace shows a malformed segment.
Common variations
Patient who is not the subscriber
Add the dependent loop 2000D with NM1*03. The 270 then asks the
payer to look the dependent up under the subscriber's policy.
Multi-service type request
Repeat EQ inside 2110C:
EQ*30~
EQ*47~
EQ*BU~
Returns one EB per service type in the 271.
Specific procedure inquiry
Add III (Information) inside 2110C following the EQ:
EQ*30~
III*ZZ*99213~
Asks the payer for benefits specific to procedure 99213.
Validation
| Check | Expected |
|---|---|
Outbound 270 record appears with status submitted | Yes. |
271 arrives with correlation_id matching the 270 | Yes. |
271 carries EB01 = 1 (active coverage) for an enrolled member | Yes. |
Test envelope (ISA15 = T) does not bill the partner | Yes. |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
271 returns AAA*N*…*72*… (subscriber not found) | Member ID typo, DOB mismatch, or coverage not yet effective | Confirm member identifiers; check coverage effective dates. |
Outbound stalls in submitted status | Trading partner real-time endpoint timed out | Confirm partner status; rerun. Real-time partners typically respond within seconds; >30s is a partner-side issue. |
| Multi-service-type 270 returns only one EB | Partner does not honor multiple EQ per request | Split into multiple 270s. |
| 270 routed to wrong partner | Routing rule misconfigured | See Submission routing rules under Claims; the same routing infra carries 270s. |