Eligibility Verification 🩻

Getting Started

What is Eligibility Verification?

Eligibility Verification is one of the most important business processes in healthcare, ensuring patients' insurance coverage is confirmed before services are provided.

This process is crucial for smooth provider reimbursement and reducing billing surprises for patients, ultimately enhancing their access to care. It's a key step in delivering efficient, accessible healthcare services.

What information does it provide?

  • Coverage Status: Confirms whether the patient's insurance is currently active or inactive.

  • Benefit Details: Outlines specific benefits covered under the patient's insurance plan, including types of services (e.g., outpatient, inpatient, laboratory services).

  • Deductible Information: Details about the patient's deductible, including how much has been met and the remaining amount.

  • Co-pay Amounts: Information on required co-pay amounts for different services (e.g., specialist visits, emergency room visits).

  • Co-insurance Rates: Percentage of costs that the patient is responsible for after the deductible is met.

  • Out-of-Pocket Maximums: The maximum amount the patient is required to pay out-of-pocket during a policy period.

  • Prior Authorization Requirements: Indicates if certain services require prior authorization from the insurance provider.

  • Service Limitations: Information on any limits to services, such as a cap on the number of visits or specific exclusions.

  • Network Status: Confirmation of whether a provider or service is in-network or out-of-network, which affects the patient's costs.

Prerequisites

Ready to get started? There are a few requirements to be able to use eligibility successfully.

Note: Eligibility verification is a paid add-on feature. Please ensure that you have the appropriate subscription plan to access this functionality.

Integration

UI Widgets

For easy integration of the eligibility feature, developers can utilize our UI widgets. The React component and mobile SDKs provide straightforward methods to perform eligibility checks alongside the insurance card scanning process.

To trigger an eligibility request using our UI widgets, simply pass in the eligibility request payload as described below. The payload must include subscriber and dependent demographics, as well as provider details, including a National Provider Identifier (NPI). This information is crucial for accurately verifying insurance eligibility.

Sample Request Payload:

{
    subscriber: {
      firstName: "Joe",
      lastName: "Doe",
      dateOfBirth: "18020101",
    },
    provider: {
      firstName: "John",
      lastName: "Doe",
      npi: "0123456789",
    }
}

You can locate a providers NPI on the NPPES NPI Registry search page.

Date of birth is required to be in theYYYYMMDDformat.

Callbacks

Our UI widgets provide two additional callbacks for handling eligibility verification results. Developers can implement onEligibilitySuccess and onEligibilityError to receive notifications when an eligibility check is successful or encounters an error, respectively.

React Example:

import { CardScanView } from "@cardscan.ai/insurance-cardscan-react";

function EligibilityApp({ apiKey, ...props }) {

  const eligibility = {
    subscriber: {
      firstName: "Joe",
      lastName: "Doe",
      dateOfBirth: "18020101",
    },
    provider: {
      firstName: "John",
      lastName: "Doe",
      npi: "0123456789",
    },
  };

  function cardScanSuccess(card) {
    console.log(card);
  }

  function cardScanCancel() {
    setShowScanView(false);
  }

  function cardScanError(error) {
    console.log("Error Callback: ", error);
  }

  function eligibilitySuccess(eligibility) {
    console.log(eligibility);
  }

  function eligibilityError(error) {
    console.log(error);
  }

  return (
    <div className="App">
      <header className="App-header">
        <CardScanView
          sessionToken={'<YOUR SESSION TOKEN>'}
          onSuccess={cardScanSuccess}
          onCancel={cardScanCancel}
          onError={cardScanError}
          eligibility={eligibility}
          backsideSupport={true}
          onEligibilitySuccess={eligibilitySuccess}
          onEligibilityError={eligibilityError}
        />
      </header>
    </div>
  );
}

export default EligibilityApp;

API Integration

For custom integrations, our Eligibility Verification Endpoints are designed to work in tandem with our Insurance Card Scanning Endpoints. By creating a new eligibility request, users can initiate an asynchronous process that verifies insurance coverage and benefits.

Sample Request Payload

To initiate an eligibility request through our API endpoints, two key pieces of information are required:

  1. Eligibility Request Payload: This includes subscriber and dependent demographics, along with provider details, including a National Provider Identifier (NPI).

  2. Card ID: The ID of a card in the completed state must also be provided to ensure the request is linked to the correct insurance card information.

If you would like to use the API directly without first having scanned an insurance card, please reach out to support.

{
    "card_id": "cdeef0bd-f170-44fb-95a4-8d4dfb45bdfc",
    "eligibility": {
        "subscriber": {
            "firstName": "John",
            "lastName": "Doe",
            "dateOfBirth": "18020101"
        },
        "provider": {
            "firstName": "John",
            "lastName": "Doe",
            "npi": "0123456789"
        }
    }
}

You can locate a providers NPI on the NPPES NPI Registry search page.

Date of birth is required to be in theYYYYMMDDformat.

Eligibility Response

The eligibility response consists of two parts:

  1. Clearing House Response: This is a full pass-through of the clearinghouse's response. The format may vary depending on the clearinghouse.

  2. Eligibility Summarized Response: This is our normalized response, which extracts key details for easy interpretation. It includes information such as subscriber and payer details, plan specifics, and coverage summaries for various services like chiropractic, emergency room, office visits, urgent care, and hospital outpatient services.

The eligibility_summarized_response provides a structured overview of the eligibility data, making it simpler to access and use the relevant information.

{
  "subscriber_details": {
    "member_id": "27312103",
    "firstname": "Joshua",
    "lastname": "Marshall",
    "middlename": "Jennifer",
    "gender": "M",
    "address": {
      "address1": "391 John Spur Apt. 163",
      "city": "Lake Garrett",
      "state": "MD",
      "postalCode": "26540"
    },
    "dob": "2006-05-17"
  },
  "payer_details": {
    "payer_name": "Aetna",
    "address": {
      "address1": "PO Box 14079",
      "city": "Lexington",
      "state": "KY",
      "postalCode": "40512"
    }
  },
  "plan_details": {
    "plan_number": "2675107",
    "group_name": "Harris Ltd",
    "group_number": "137409668",
    "plan_start_date": "2022-12-01",
    "plan_eligibility_start_date": "2022-01-01",
    "plan_name": "Open Access Elect Choice",
    "plan_active": true
  },
  "coverage_summary": {
    "individual_deductible_in_network": {
      "total_amount": "$3500",
      "remaining_amount": "$2533.86"
    },
    "individual_oop_in_network": {
      "total_amount": "$6350",
      "remaining_amount": "$5383.86"
    },
    "family_deductible_in_network": {
      "total_amount": "$7000",
      "remaining_amount": "$5040.17"
    },
    "family_oop_in_network": {
      "total_amount": "$12700",
      "remaining_amount": "$10740.17"
    }
  },
  "chiropractic": {
    "co_insurance_in_network": {
      "amount": "20%"
    },
    "co_payment_in_network": {
      "amount": "$0"
    },
    "service_code": "33"
  },
  "emergency_room": {
    "co_insurance_in_network": {
      "amount": "20%"
    },
    "co_payment_in_network": {
      "amount": "$0"
    },
    "service_code": "86"
  },
  "office_visit": {
    "co_insurance_in_network": {
      "amount": "20%"
    },
    "co_payment_in_network": {
      "amount": "$0"
    },
    "service_code": "98"
  },
  "urgent_care": {
    "co_insurance_in_network": {
      "amount": "20%"
    },
    "co_payment_in_network": {
      "amount": "$0"
    },
    "service_code": "UC"
  },
  "hospital_outpatient": {
    "co_insurance_in_network": {
      "amount": "20%"
    },
    "co_payment_in_network": {
      "amount": "$0"
    },
    "service_code": "50"
  }
}

Testing

To facilitate easier testing, our sandbox environment is configured to trigger specific errors based on certain input values:

  • Invalid NPI Error: Use a provider NPI value of 12345678 to simulate an "Invalid NPI" error.

  • Mismatched DOB Error: Use a subscriber date of birth (DOB) value of 19020402 to simulate a "Mismatched DOB" error.

  • Name Misspelled Error: Use a subscriber first name of Walt and last name of Witman to simulate a "Name Misspelled" error.

Troubleshooting and Support

Encountering issues while using the Eligibility Verification feature is not uncommon. Below are some common errors you might face, along with guidance on how to resolve them:

InvalidNPIException

  • Cause: This exception occurs when the NPI (National Provider Identifier) provided is either incorrect, not found in the NPI database, or not registered with the payer.

  • Resolution: Double-check the NPI number for accuracy. Ensure that it is correctly registered in the NPI database. You can verify NPI numbers using the official NPI Registry.

MismatchedDOBException

  • Cause: This exception is triggered when the patient's Date of Birth (DOB) does not match the records or is formatted incorrectly.

  • Resolution: Verify that the patient's DOB is correct and formatted in the YYMMDD format. Cross-reference with patient records for accuracy.

NameMisspelledException

  • Cause: A common issue where the patient's name might be misspelled or entered incorrectly.

  • Resolution: Check for any common misspellings, swapping of first/last names, or typographical errors in the patient's name. Correct the name and try again.

General Tips

  • API Response Timeouts: If you encounter timeouts, check your network connection and server status. If the issue persists, contact our support team.

  • Data Format Errors: Ensure all data sent in API requests adhere to the specified format guidelines in our documentation.

Support Contact

If you continue to experience issues or have specific queries, our support team is here to help:

  • Email Support: Reach out to us at support@cardscan.ai with detailed information about your issue.

Last updated