Skip to main content

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

ScopeWhat it lets you do
edi.transaction.readView transactions
edi.eligibility.runOriginate 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.

CodeMeaningWhen to use
30Health Benefit Plan CoverageDefault — generic "is this person eligible". Returns active/inactive plus minimal cost-share.
RReturns full benefit infoSome payers honor this; others reject as too broad.
1Medical CareOutpatient medical services.
35Dental Care
47HospitalInpatient.
48Hospital — InpatientSpecific to admission planning.
49Hospital — Outpatient
54Long Term Care
86Emergency Services
88Pharmacy
98Professional (Physician) Visit — OfficeOffice visit.
BUPsychiatric — OutpatientMental health outpatient.
BVPsychiatric — Inpatient
MHMental HealthGeneric 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

  1. Trigger an eligibility request through the rcm-app /eligibility page (real-time check) or via a batch sweep. Either flow funnels through the same gateway code path.

  2. 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 270 for this partner.
    • Submits via the partner's transport.
  3. The transaction record appears at /transactions with tx_type = 270, direction outbound, status submitted. Click in to see the segment trace.

  4. Wait for the 271 (typically seconds for real-time, minutes for batch). The 271 arrives as a separate inbound transaction with correlation_id pointing back at the 270's transaction ID.

Reading the segment trace

/transactions/:id opens the segment trace. The 270 trace shows:

SectionNotable elements
ISAReceiver ID, control number, usageIndicator (P or T).
GSHS functional code, our submitter, 005010X279A1.
BHTBHT02 = 13 (request); BHT06 = RT realtime.
2000A NM1*PRPayer name + ID.
2000B NM1*1PProvider NPI.
2000C NM1*ILSubscriber name + member ID.
2000C DMGDOB + gender — required for matching.
2000C DTPThe service date the inquiry covers.
2110C EQService 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

CheckExpected
Outbound 270 record appears with status submittedYes.
271 arrives with correlation_id matching the 270Yes.
271 carries EB01 = 1 (active coverage) for an enrolled memberYes.
Test envelope (ISA15 = T) does not bill the partnerYes.

Troubleshooting

SymptomCauseFix
271 returns AAA*N*…*72*… (subscriber not found)Member ID typo, DOB mismatch, or coverage not yet effectiveConfirm member identifiers; check coverage effective dates.
Outbound stalls in submitted statusTrading partner real-time endpoint timed outConfirm partner status; rerun. Real-time partners typically respond within seconds; >30s is a partner-side issue.
Multi-service-type 270 returns only one EBPartner does not honor multiple EQ per requestSplit into multiple 270s.
270 routed to wrong partnerRouting rule misconfiguredSee Submission routing rules under Claims; the same routing infra carries 270s.

Next

4.2 — 271 inbound — parsing the response