This topic describes the Eligibility response by each JSON object it contains. You can send as little or as much provider and subscriber information as needed to get a successful result. Check Using “Bare Minimum” Eligibility requests if you want to simplify sending Eligibility requests for routine submission work.
The Eligibility response leads off with information from the transaction set header (controlNumber) and identifies the service provider that is submitting the Eligibility request.
The header attributes (controlNumber, `reassociationKey, tradingPartnerServiceId, and submitterTransactionIdentifier) derive from the ISA/IEA envelope and the BHT segment for the transaction. These elements do not have a loop and are required for all Eligibility API transactions.
Change Healthcare Support can use the submitterTransactionIdentifier for troubleshooting purposes.
The provider object describes the submitting provider's information.
The entityIdentifier attribute describes the information receiver that sent the Eligibility request, in this case, a Provider.
They will typically be receiving the patient's insurance information as the response to their request.
The entityType will always be either a Person or a Non-Person entity. In this example, the submitting provider's NPI follows.
📝 The provider object and its accompanying information describe the information receiver in the EDI standard documentation.
Contains the standard identification information and the subscriber's demographic information.
The subscriber object is required when the subscriber is the patient.
The subscriberTraceNumbers link the 271 response to the 270 request.
It is an optional request feature and if used, requires its corresponding use in the 271 response. The trace numbers are used when the 270 request is processed in real time, which is the vast majority of Medical Network API transactions.
Payer object — Identifying the Payer
The Payer object describes the insurance payer (and information source) for the policy. It also describes the payer type that underwrites the policy.
The Payer will typically be a Non-Person entity. If the entityType is a Non-Person entity, the object containing these values does not need the first name. It requires only the Last Name/Organization Name, which the API reports as name for the corporate name of the payer. The API also inserts the payer's payorIdentification as the last field. This element contains the Payer ID value that uniquely denotes each individual payer in the United States healthcare system.
The planDateInformation object describes the insurance coverage dates. It consists of two dates: first, the Plan Begin Date (or the date from the preceding 18 months since the plan took effect, whichever is more recent); the second is the eligibility submission date. You can find out more about this requirement on Page 20 of the ASC X12 Consolidated 270-271 Guide. 📝 The payer object and its accompanying information describe the information source in the 270/271 standard documentation.
After the content describing the subscriber, provider, and payer, the planStatus object describes the core status information for the subscriber’s insurance coverage:
planStatus describes the key details of the patient's insurance coverage. QMB denotes a Qualified Medicare Beneficiary. The main element in Plan Status is a list of codes, called Service Type Codes (serviceTypeCodes). Each code is associated with a medical specialty or service. Under Plan Status, the Service Type Codes list shows the medical services that are covered by the patient's insurance.
benefitsInformation object (see below) separately provides the details of each medical service's coverage.
📝 Many Eligibility responses simply confirm an active insurance policy by sending the only listed "serviceTypeCode 30". Any other listed service type codes are optional for the payer response. The submitter can request more details about other covered benefits.
BenefitsInformation comprises a key part of the Eligibility response. It describes the covered medical benefits, in further detail, to which the patient is entitled. It also includes information about who may be responsible for paying some medical costs, including patient responsibility, and any second or third payers who may be involved. All of this information will be shown for either the subscriber or a dependent of the subscriber. For deeper information on how benefits information is structured, including looping elements, see Page 295 of the ASC X12 Consolidated 270-271 Guide.
You will often see multiple segments under benefitsInformation. Each segment represents a medical coverage benefit.
Example: a chiropractic visit will have a different benefit structure from a Primary Care visit. Each has its own benefits structure and distinct segment in the Eligibility response body. The information receiver decides if they want individual benefits shown in the response.
The first two values in each segment, code and name, identify the top-level benefit information. When you see codes A, B, C, G, J or Y, the current object is describing a patient responsibility (coinsurance, co-payment, deductible and so on).
coverageLevelCode is IND for Individual. For readability, the API's JSON response provides the coverageLevel descriptive value for this code (individual). It shows who is covered by the policy; the entire family (FAM), Employee Only (EMP), or other options.
serviceTypeCodes may list and describe up to 99 individual service benefits for a single inquiry. If the response only gives a confirmation of general coverage benefits (using serviceTypeCode 30), you will see an example similar to this one. Here, a patient's Medicare coverage describes the top-level Medicare payer, with Medicare Part A and Part B as other or additional payers for the subscriber.
insuranceTypeCode is also a code pair with insuranceType in our API. Our API describes the code (such as MA, for Medicare Part A) as a second attribute. It describes the product type of the insurance, such as Medicare Part A/Part B, Long-Term Care, Auto Insurance Policy, and many others.
ServiceTypes also appear in this block of information, showing how benefits coverage applies to each medical service. In this example, the phrase Health Benefit Plan Coverage corresponds to serviceTypeCode 30.
benefitsDateInformation describes the insurance coverage dates. Its data consists of two dates: the first is the Plan Begin Date (or the date from the preceding 18 months from the current submission date, whichever is more recent); the second is the eligibility submission date.
serviceTypeCode 30 is a common value in Eligibility queries. It identifies in-effect coverage for the broad array of typical medical services covered by the plan. In this case, Medicare is the classic broad-coverage payer in the United States. It provides coverage for a large collection of medical services. Payers will often confirm medical insurance coverage by sending a response listing only the 30 value in the benefitsInformation loop.
Insurers/payers can also give more granular information about benefits coverage.
A quick Insurance Type Codes search in the X12 Eligibility Consolidated 270/271 Guide gives you the full serviceTypeCode list, spanning several pages. In order to use this document, you must have an active X12 subscription.
Benefits, Time Periods, and Coverage Amounts
Every Service Type segment has more or less the same format:
Note the repetition of insuranceTypeCode. Here, it is called out to identify the insurance coverage for each individual service. This value can differ from the umbrella insuranceTypeCode value; in this case, the umbrella insurance code is QM for a qualified Medicare beneficiary, and the service's insuranceTypeCode is MA for Medicare Part A.
timeQualifierCode shows the benefit billing period, which is Daily, using 7 as the EDI value (this value does NOT define a weekly time span). Our API provides the timeQualifier description, day, so benefit coverage is tracked daily.
benefitAmount is added based on the timeQualifier, so the daily benefit amount of the Skilled Nursing Care service is $164.50.