Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Enhanced Eligibility Eligibility Requests API
description: 'Enhanced Eligibility provides real-time eligibility verification for medical benefit inquiries and optional Coverage Discovery workflows when additional coverage needs to be researched asynchronously.
Timing guidance:
- Real-Time Eligibility is synchronous, but payer and clearinghouse response time dominate the end-to-end latency.
- The OI Enterprise gateway times out at 110 seconds for this API.
- Request deduplication is customer-configurable and determines whether a request is sent to the clearinghouse or short-circuited by replaying a prior transaction response.
- RTCOB and Coverage Insight also use a separate non-configurable 72-hour request cache. When that cache is hit, the path is marked as skipped instead of creating a new downstream submission.
- Coverage Discovery is asynchronous because some paths involve chained clearinghouse work and additional connected workflow dependencies.
- Most non-Coverage-Insight discovery paths are near real time relative to traditional discovery workflows.
- Customers with strict turnaround sensitivity should evaluate Coverage Insight enrollment carefully.
- Coverage Discovery paths and add-ons are enabled per customer and are not included automatically.
Primary integration patterns:
1. Submit a real-time eligibility request as normalized JSON or as a JSON request body with `x12` set to the X12 270 payload, and receive a normalized JSON response.
2. If enrolled in Coverage Discovery, inspect the real-time response `link` header for related discovery task resources when discovery is automatically triggered from the real-time request/response.
3. For advanced use cases, submit Coverage Discovery requests directly when you already possess a processed canonical eligibility request and, when needed, a processed eligibility response, and want asynchronous follow-up processing using a callback URL or by polling the discovery task resource.
4. When using direct discovery, the X12 workflow is often easier than the canonical JSON workflow because it accepts the processed `x12-270` and `x12-271` rather than requiring mapping into both canonical models.
'
version: v0.2.0
servers:
- url: https://sandbox-apigw.optum.com
description: Sandbox server (uses test data)
- url: https://apigw.optum.com
description: Production server (uses live data)
tags:
- name: Eligibility Requests
description: 'Submit new real-time eligibility transactions. These endpoints accept either a normalized JSON request or a JSON request body with `x12` set to the X12 270 payload, and return a normalized JSON eligibility response. When a customer is enrolled in integrated Coverage Discovery, these operations may also return related discovery task links in the response headers.
'
paths:
/rcm/eligibility/v1:
post:
operationId: postEligibility
tags:
- Eligibility Requests
summary: Submit a new eligibility request
security:
- oAuth:
- create_txn
description: "## Overview\nProvided a valid request, this endpoint submits a new real-time transaction for processing.\nThe submitted provider NPI must be a valid NPI and follow standard NPI validation rules. If no valid NPI is identified for the request, the transaction returns `status.value` of `processing_error` with this message: `No valid NPI identified for this request. Please reach out to the Enhanced Eligibility team if assistance is needed.`\nThe response is JSON and includes the raw `x12-271` response string so clients can extract the payer's original EDI response if needed.\nReal-time response time is driven primarily by payer and clearinghouse latency. The OI Enterprise gateway times out at 110 seconds for this API.\nIf your organization is enrolled in deduplication, that feature is evaluated before clearinghouse submission. Deduplication is customer-configurable, including the lookback window and whether prior-month requests are excluded. When a duplicate is found, the clearinghouse is skipped and the transaction `sourceType` is `duplicate`.\n## Coverage Discovery Integration\nIf you are enrolled in Coverage Discovery at the time of the request and your configured discovery conditions are met, the Coverage Discovery workflow will be started automatically. Common examples include real-time responses with `status.value` of `ineligible` or `patient_unknown`, or response-side HMO plan information that qualifies an HMO discovery path. In this scenario, the response `link` header contains one or more related Coverage Discovery task resource paths, e.g.:\n`</coverage-discovery/0716e3e8-87ee-11ee-b9d1-0242ac120002>; title=\"coverage discovery - Task 1\"; rel=\"related\", </coverage-discovery/0e565a58-87ee-11ee-b9d1-0242ac120002>; title=\"coverage discovery - Task 2\"; rel=\"related\"`\nParse this header as RFC 8288-style link values. When more than one discovery task is created, multiple related links may be returned in the same header.\nWhen discovery is triggered from this JSON real-time endpoint, the submitted request body is used as the `canonicalEligibilityRequest` later referenced by Coverage Discovery. If response-side facts are needed, the normalized real-time response body is used as `canonicalEligibilityResponse`.\nEach related resource can be retrieved through the `/coverage-discovery/{id}` endpoint.\nIf conditions are not met, the `link` response header will not contain any related `/coverage-discovery` references.\n### Callback Solution With Consolidated Real-Time Eligibility and Coverage Discovery Responses\nIf you are enrolled in the consolidated callback capability, you may receive the **Real-Time Eligibility (RTE)** response together with the **Coverage Discovery** response.\nWhen enabled, the abbreviated eligibility transaction will be included in the corresponding Coverage Discovery record.\n\n ⚠️ **Note:** This integrated response is **only available via callback** and **only if your organization is enrolled in this capability**.\n\nRefer to the `/coverage-discovery/{id}` response examples for data model references.\nFor predictable Sandbox canned-response testing, use the Sandbox Mock Scenarios guidance. JSON Sandbox requests continue to use the normal supported Sandbox request values."
parameters:
- $ref: '#/components/parameters/header-correlation-id'
- $ref: '#/components/parameters/header-subtenant-id'
- in: header
name: x-optum-eligibility-disable-value-add
schema:
type: array
items:
type: string
enum:
- deduplication
example: deduplication
example: deduplication
description: (Optional) A comma-delimited list of strings that disable value-added features on a request-by-request basis. `deduplication` disables the customer-configured request deduplication feature for that request only. If you specify a value-added feature that you are not enrolled in, it will be ignored.
requestBody:
$ref: '#/components/requestBodies/EligibilityRequest'
responses:
'200':
$ref: '#/components/responses/EligibilityResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/PermissionDeniedError'
'403':
$ref: '#/components/responses/ForbiddenError'
5XX:
$ref: '#/components/responses/UnexpectedError'
/rcm/eligibility/v1/real-time/x12:
post:
operationId: postEligibilityX12
tags:
- Eligibility Requests
summary: Submit a new X12 270 eligibility request
security:
- oAuth:
- create_txn
description: "## Overview\nProvided a valid request, this endpoint accepts a JSON body whose `x12` field contains the raw EDI X12 270 payload and submits a new real-time transaction for processing.\nThe provider NPI sent in the X12 270 must be a valid NPI and follow standard NPI validation rules. If no valid NPI is identified for the request, the transaction returns `status.value` of `processing_error` with this message: `No valid NPI identified for this request. Please reach out to the Enhanced Eligibility team if assistance is needed.`\nThe response uses the same normalized JSON model returned by the JSON real-time endpoint. Both real-time endpoints return JSON, and that JSON includes the raw `x12-271` response string so clients can extract the payer's original EDI response if needed.\nReal-time response time is driven primarily by payer and clearinghouse latency. The OI Enterprise gateway times out at 110 seconds for this API.\nIf your organization is enrolled in deduplication, that feature is evaluated before clearinghouse submission. Deduplication is customer-configurable, including the lookback window and whether prior-month requests are excluded. When a duplicate is found, the clearinghouse is skipped and the transaction `sourceType` is `duplicate`.\n## Coverage Discovery Integration\nIf you are enrolled in Coverage Discovery at the time of the request and your configured discovery conditions are met, the Coverage Discovery workflow will be started automatically. Common examples include real-time responses with `status.value` of `ineligible` or `patient_unknown`, or response-side HMO plan information parsed from the returned `x12-271`. In this scenario, the response `link` header contains one or more related Coverage Discovery task resource paths, e.g.:\n`</coverage-discovery/0716e3e8-87ee-11ee-b9d1-0242ac120002>; title=\"coverage discovery - Task 1\"; rel=\"related\", </coverage-discovery/0e565a58-87ee-11ee-b9d1-0242ac120002>; title=\"coverage discovery - Task 2\"; rel=\"related\"`\nParse this header as RFC 8288-style link values. When more than one discovery task is created, multiple related links may be returned in the same header.\nWhen discovery is triggered from this X12 real-time endpoint, the submitted `x12` value is used to derive the `canonicalEligibilityRequest` used by Coverage Discovery. If response-side facts are needed, the normalized JSON response and its embedded `x12-271` are used as `canonicalEligibilityResponse`.\nEach related resource can be retrieved through the `/coverage-discovery/{id}` endpoint.\nIf conditions are not met, the `link` response header will not contain any related `/coverage-discovery` references.\n### Callback Solution With Consolidated Real-Time Eligibility and Coverage Discovery Responses\nIf you are enrolled in the consolidated callback capability, you may receive the **Real-Time Eligibility (RTE)** response together with the **Coverage Discovery** response.\nWhen enabled, the abbreviated eligibility transaction will be included in the corresponding Coverage Discovery record.\n\n ⚠️ **Note:** This integrated response is **only available via callback** and **only if your organization is enrolled in this capability**.\n\nRefer to the `/coverage-discovery/{id}` response examples for data model references.\n## Sandbox Mock Testing\nIn the Sandbox environment, you can optionally send `x-optum-rcmelig-mock-scenarios` to trigger a canned X12 mock response. This header is Sandbox-only, the value must be an exact case-sensitive match, and the payer id in `NM1*PR*2 ... PI*` must align to the selected scenario."
parameters:
- $ref: '#/components/parameters/header-correlation-id'
- $ref: '#/components/parameters/header-subtenant-id'
- in: header
name: x-optum-rcmelig-mock-scenarios
required: false
schema:
type: string
description: (Sandbox only) Optional canned-response selector for X12 mock testing. The value must be an exact case-sensitive scenario string.
- in: header
name: x-optum-eligibility-disable-value-add
schema:
type: array
items:
type: string
enum:
- deduplication
example: deduplication
example: deduplication
description: (Optional) A comma-delimited list of strings that disable value-added features on a request-by-request basis. `deduplication` disables the customer-configured request deduplication feature for that request only. If you specify a value-added feature that you are not enrolled in, it will be ignored.
requestBody:
$ref: '#/components/requestBodies/EligibilityRequestX12'
responses:
'200':
$ref: '#/components/responses/EligibilityResponseX12'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/PermissionDeniedError'
'403':
$ref: '#/components/responses/ForbiddenError'
5XX:
$ref: '#/components/responses/UnexpectedError'
components:
schemas:
EligibilityRequest:
type: object
description: Standalone JSON representation of a standard 270 eligibility request. This schema is fully inlined into this spec so the API definition stands on its own.
required:
- subscriber
- encounter
properties:
submitterTransactionIdentifier:
type: string
description: BHT03
controlNumber:
type: string
minLength: 9
maxLength: 9
description: 'Segment: ISA, Element: ISA13, Notes: Optional. If omitted, Enhanced Eligibility generates the Interchange Control Number. When supplied, it must be exactly 9 positive unsigned numeric characters.'
example: '123456789'
tradingPartnerServiceId:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100A Segment: NM1, Element: NM109, Notes: we send this as MN108 as PI'
example: serviceId
tradingPartnerName:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100A, Segment: NM1, Element: NM103, Notes: organizational name'
provider:
type: object
properties:
organizationName:
type: string
minLength: 0
maxLength: 60
description: 'Loop: 2100B Segment: NM1, Element: NM103'
example: provider_name
firstName:
type: string
minLength: 0
maxLength: 35
description: 'Loop: 2100B Segment: NM1, Element: NM104'
lastName:
type: string
minLength: 0
maxLength: 60
description: 'Loop: 2100B Segment: NM1, Element: NM103'
npi:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=XX Centers for Medicare and Medicaid Services National Provider Identifier. The submitted value must be a valid NPI and follow standard NPI validation rules.'
example: '1234567893'
serviceProviderNumber:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=SV Service Provider Number'
example: '54321'
payorId:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=PI Payor Identification'
taxId:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=FI Federal Taxpayer''s Identification Number'
ssn:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=34 Social Security Number'
pharmacyProcessorNumber:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=PP Pharmacy Processor Number'
servicesPlanID:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=XV Centers for Medicare and Medicaid Services PlanID'
employersId:
type: string
minLength: 0
maxLength: 80
description: 'Loop: 2100B Segment: NM1, Element: NM109, Notes: NM108=24 Employer''s Identification Number'
providerCode:
type: string
description: 'Loop: 2100B Segment: PRV, Element: PRV01'
example: AD
enum:
- AD
- AT
- BI
- CO
- CV
- H
- HH
- LA
- OT
- P1
- P2
- PC
- PE
- R
- RF
- SB
- SK
- SU
referenceIdentification:
type: string
description: 'Loop: 2100B Segment: PRV, Element: PRV03'
example: 54321g
providerType:
type: string
description: 'Loop: 2100B Segment: NM1, Element: NM101'
enum:
- payer
- third-party administrator
- employer
- hospital
- facility
- gateway provider
- plan sponsor
- provider
portalUsername:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: User Identification REF01=JD'
portalPassword:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: Personal Identification Number (PIN) REF01=4A'
informationReceiverName:
type: object
properties:
stateLicenceNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=0B State License Number'
medicareProviderNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=1C Medicare Provider Number'
medicaidProviderNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=1D Medicaid Provider Number'
facilityIdNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=1J Facility ID Number'
contactNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=CT Contact Number'
devicePinNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=EL Electronic Device Pin Number'
submitterIdNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=EO Submitter Identification Number'
nationalProviderIdentifier:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=HPI Centers for Medicare and Medicaid Services National Provider Identifier'
providerPlanNetworkIdNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=N5 Provider Plan Network Identification Number'
facilityNetworkIdNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=N7 Facility Network Identification Number'
priorIdentifierNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=Q4 Prior Identifier Number'
socialSecurityNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=SY Social Security Number'
federalTaxpayerIdentificationNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF02, Notes: REF01=TJ Federal Taxpayer''s Identification Number'
informationReceiverAdditionalIdentifierState:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100B, Segment: REF, Element: REF03, Notes: REF01=0B REF02=stateLicenceNumber'
address:
type: object
properties:
address1:
type: string
minLength: 0
maxLength: 55
description: 'Segment: N3, Element: N301, Notes: Required, Address Information'
example: 123 address1
address2:
type: string
minLength: 0
maxLength: 55
description: 'Segment: N3, Element: N302, Notes: Address Information'
city:
type: string
minLength: 0
maxLength: 30
description: 'Segment: N4, Element: N401, Notes: Required, city'
example: city1
state:
type: string
minLength: 0
maxLength: 2
description: 'Segment: N4, Element: N402, Notes: state example: TN, WA'
example: wa
postalCode:
type: string
minLength: 0
maxLength: 15
description: 'Segment: N4, Element: N403'
example: '981010000'
countryCode:
type: string
description: 'Segment: N4, Element: N404'
locationIdentifier:
type: string
description: 'Segment: N4, Element: N406'
countrySubDivisionCode:
type: string
description: 'Segment: N4, Element: N407, Notes: Country SubDivision Code'
subscriber:
type: object
properties:
birthSequenceNumber:
type: string
minLength: 0
maxLength: 9
pattern: ^[0-9]+$
description: 'Loop: 2100C Segment: INS, Element: INS17, Notes: Birth Sequence Number'
caseNumber:
type: string
minLength: 0
maxLength: 50
pattern: ^[A-Za-z0-9]+$
description: 'Loop: 2100C Segment: REF, Element: REF02, Notes: REF01=3H Case Number'
medicaidRecipientIdentificationNumber:
type: string
minLength: 0
maxLength: 80
pattern: ^[A-Za-z0-9]+$
description: 'Loop: 2110C Segment: REF, Element: REF02, Notes: REF01=NQ Medicaid Recipient Identification Number'
spendDownAmount:
type: string
minLength: 0
maxLength: 18
description: 'Loop: 2110C Segment: ATM, Element: ATM02, Notes: ATM01=R Spend Down'
spendDownTotalBilledAmount:
type: string
minLength: 0
maxLength: 18
description: 'Loop: 2110C Segment: ATM, Element: ATM02, Notes: ATM01=PB Billed Amount'
coverageLevelCode:
type: string
minLength: 0
maxLength: 3
description: 'Loop: 2110C Segment: EQ, Element: EQ03, Notes: Retired, Not Used'
memberId:
type: string
minLength: 0
maxLength: 80
pattern: ^[A-Za-z0-9-]+$
description: 'Loop: 2100C and 2100D, Segment: NM1, Element: NM109, Notes: NM108=MI'
example: '0000000000'
firstName:
type: string
minLength: 0
maxLength: 35
description: 'Loop: 2100C and 2100D, Segment: NM1, Element: NM104'
example: johnOne
middleName:
type: string
minLength: 0
maxLength: 25
description: 'Loop: 2100C and 2100D, Segment: NM1, Element: NM105'
lastName:
type: string
minLength: 0
maxLength: 60
description: 'Loop: 2100C and 2100D, Segment: NM1, Element: NM103'
example: doeOne
suffix:
type: string
minLength: 0
maxLength: 10
description: 'Loop: 2100C and 2100D, Segment: NM1, Element: NM107'
gender:
type: string
minLength: 0
maxLength: 1
description: 'Loop: 2100C and 2100D, Segment: DMG, Element: DMG03'
example: M
enum:
- M
- F
dateOfBirth:
type: string
description: 'Loop: 2100C and 2100D, Segment: DMG, Element: DMG02, Notes: date of birth in YYYYMMDD'
example: '18800102'
ssn:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=SY Social Security Number'
groupNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=6P Group Number'
example: '1111111111'
idCard:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=HJ Identity Card Number'
providerCode:
type: string
description: 'Loop: 2100C and 2100D, Segment: PRV, Element: PRV01'
enum:
- AD
- AT
- BI
- CO
- CV
- H
- HH
- LA
- OT
- P1
- P2
- PC
- PE
- R
- RF
- SK
- SU
referenceIdentificationQualifier:
type: string
description: 'Loop: 2100C and 2100D, Segment: PRV, Element: PRV02'
enum:
- 9K
- D3
- EI
- HPI
- PXC
- SY
- TJ
providerIdentifier:
type: string
minLength: 0
maxLength: 50
pattern: ^[A-Za-z0-9]+$
description: 'Loop: 2100C and 2100D, Segment: PRV, Element: PRV03, Notes: Provider Identifier'
beginningCardIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=RD8 Retired'
endCardIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=RD8 Retired'
idCardIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=D8 Retired'
planIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=D8 Retired'
beginningPlanIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=RD8 Retired'
endPlanIssueDate:
type: string
description: 'Loop: 2110C and 2110D, Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=RD8 Retired'
healthCareCodeInformation:
type: array
minItems: 0
maxItems: 8
description: 'Loop: 2100C and 2100D, Segment: HI, Notes: Health Care Diagnosis'
items:
type: object
properties:
diagnosisTypeCode:
type: string
description: 'Loop: 2100C and 2100D, Segment: HI, Element: HI01-1, Notes: Diagnosis Type Code'
enum:
- BK
- ABK
- BF
- ABF
diagnosisCode:
type: string
minLength: 0
maxLength: 30
pattern: ^[A-Za-z0-9]+$
description: 'Loop: 2100C and 2100D, Segment: HI, Element: HI01-2, Notes: Diagnosis Code'
address:
type: object
properties:
address1:
type: string
minLength: 0
maxLength: 55
description: 'Segment: N3, Element: N301, Notes: Required, Address Information'
example: 123 address1
address2:
type: string
minLength: 0
maxLength: 55
description: 'Segment: N3, Element: N302, Notes: Address Information'
city:
type: string
minLength: 0
maxLength: 30
description: 'Segment: N4, Element: N401, Notes: Required, city'
example: city1
state:
type: string
minLength: 0
maxLength: 2
description: 'Segment: N4, Element: N402, Notes: state example: TN, WA'
example: wa
postalCode:
type: string
minLength: 0
maxLength: 15
description: 'Segment: N4, Element: N403'
example: '981010000'
countryCode:
type: string
description: 'Segment: N4, Element: N404'
locationIdentifier:
type: string
description: 'Segment: N4, Element: N406'
countrySubDivisionCode:
type: string
description: 'Segment: N4, Element: N407, Notes: Country SubDivision Code'
additionalIdentification:
type: object
properties:
planNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=18 Plan Number'
policyNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=1L Group or Policy Number'
memberIdentificationNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=1W Member Identification Number'
contractNumber:
type: string
minLength: 0
maxLength: 50
description: 'Loop: 2100C and 2100D, Segment: REF, Element: REF02, Notes: REF01=CT Contract Number'
medicalRecordIdentificationNumber:
type: string
# --- truncated at 32 KB (107 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optum/refs/heads/main/openapi/optum-eligibility-requests-api-openapi.yml