Medicare Beneficiary Identifier (MBI) lookup

A Medicare Beneficiary Identifier (MBI) is a unique, randomly-generated identifier assigned to individuals enrolled in Medicare. You must include the patient's MBI in every eligibility check you submit to the Centers for Medicare and Medicaid Services (payer ID: CMS).

When patients don't know their MBI, you can use Stedi's eligibility APIs to perform an MBI lookup instead of a standard eligibility check. Stedi returns a complete eligibility response containing the patient’s coverage status and their MBI for future reference.

There is an additional cost to perform MBI lookups with Stedi's eligibility check APIs. Visit pricing for details.

Types of MBI lookups

There are two types of MBI lookups you can perform with Stedi. For each, you'll use a special payer ID that tells Stedi to perform an MBI lookup for the patient in addition to a standard eligibility check.

TypeWhat's requiredPayer ID
With SSNfirst name, last name, date of birth, Social Security Number (SSN)MBILU
No SSNfirst name, last name, date of birth, U.S. stateMBILUNOSSN

When running an MBI lookup without SSN using our raw X12 or SOAP endpoints, you must include a city, in addition to a U.S. state, in Loop 2100C N4. You can use a dummy city value, such as DUMMY, if needed. If you omit the city value, you'll receive an X12 validation error.

We recommend running MBI lookups with the patient's SSN whenever possible. When the SSN is present, the MBI lookup has a higher likelihood of successfully returning their MBI. MBI lookups with no SSN are a fallback option when the patient's SSN isn't available.

You don't need to include more patient demographic information than what's required, such as additional address data. It doesn’t improve MBI lookup success rates.

Transaction enrollment

Transaction enrollment is the process of registering a provider to exchange specific healthcare transactions with a payer.

Unlike standard eligibility checks, MBI lookups always require transaction enrollment. This is because MBI lookups involve sending requests to special Stedi payers that tell Stedi to perform the MBI lookup in addition to a standard eligibility check. The provider must be enrolled with Stedi's MBI lookup payers to use these services.

To enroll, complete the following steps:

  1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. Stedi portal | API endpoint

  2. Submit an enrollment request for Real-time eligibility checks. Stedi portal | API endpoint

    Select the payer ID based on the type of MBI lookup you want to perform:

If you want to perform both types of MBI lookups, you must submit separate enrollment requests for each payer ID.

Run MBI lookups

You can run MBI lookups with and without SSN using the following endpoints:

You can also run MBI lookups with and without SSN through the New eligibility check form in the Stedi portal and through bulk CSV uploads.

Request

Construct an eligibility check request that includes the required patient demographic data:

  • With SSN: first name, last name, date of birth, Social Security Number (SSN)
  • No SSN: first name, last name, date of birth, U.S. state

When running an MBI lookup without SSN using our raw X12 or SOAP endpoints, you must include a city, in addition to a U.S. state, in Loop 2100C N4. You can use a dummy city value, such as DUMMY, if needed. If you omit the city value, you'll receive an X12 validation error.

Set the tradingPartnerServiceId to:

  • With SSN: MBILU
  • No SSN: MBILUNOSSN

These are special payer IDs that tell Stedi to perform an MBI lookup for the patient in addition to a standard eligibility check.

You don't need to include other patient information, such as additional address data. It doesn’t improve lookup success rates.

The following sample requests show how to perform an MBI lookup for a patient named Jane Doe.

curl --request POST \
  --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3 \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "tradingPartnerServiceId": "MBILU",
  "externalPatientId": "UAA111222333",
  "encounter": {
    "serviceTypeCodes": [
      "30"
    ]
  },
  "provider": {
    "organizationName": "ACME Health Services",
    "npi": "1999999984"
  },
  "subscriber": {
    "dateOfBirth": "19000101",
    "firstName": "Jane",
    "lastName": "Doe",
    "ssn": "123456789"
  }
}'
curl --request POST \
  --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/eligibility/v3 \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "tradingPartnerServiceId": "MBILUNOSSN",
  "externalPatientId": "UAA111222333",
  "encounter": {
    "serviceTypeCodes": [
      "30"
    ]
  },
  "provider": {
    "organizationName": "ACME Health Services",
    "npi": "1999999984"
  },
  "subscriber": {
    "dateOfBirth": "19000101",
    "firstName": "Jane",
    "lastName": "Doe",
    "address": {
      "state": "WV"
    }
  }
}'

Response

Stedi uses the patient’s demographic data and SSN to perform an MBI lookup. If there is a match, Stedi submits an eligibility check to CMS. The response shape is the same for both the SSN and no SSN lookup types.

Stedi returns a complete eligibility response from CMS for the patient and places the patient's MBI in the subscriber.memberId property. Visit Determine patient benefits for details about how you can use the eligibility response to determine a patient's coverage status and benefits.

The following example shows a CMS eligibility response returned from an MBI lookup. In this scenario, the patient's MBI is 1AA2CC3DD45.

{
  "meta": {
    "senderId": "STEDI",
    "submitterId": "117151744",
    "applicationMode": "production",
    "traceId": "11112222333344445555666677",
    "outboundTraceId": "11112222333344445555666677"
  },
  "controlNumber": "112233445",
  "id": "ec_01234567-89ab-cdef-0123-456789abcdef",
  "reassociationKey": "112233445",
  "tradingPartnerServiceId": "CMS",
  "provider": {
    "providerName": "ACME HEALTH SERVICES",
    "entityIdentifier": "Provider",
    "entityType": "Non-Person Entity",
    "npi": "1999999984"
  },
  "subscriber": {
    "memberId": "1AA2CC3DD45",
    "firstName": "JANE",
    "lastName": "DOE",
    "middleName": "A",
    "gender": "F",
    "entityIdentifier": "Insured or Subscriber",
    "entityType": "Person",
    "dateOfBirth": "19000101",
    "address": {
      "address1": "1234 FIRST ST",
      "city": "NEW YORK",
      "state": "WV",
      "postalCode": "123451111"
    }
  },
  "payer": {
    "entityIdentifier": "Payer",
    "entityType": "Non-Person Entity",
    "name": "CMS",
    "payorIdentification": "CMS"
  },
  "planDateInformation": {
    "eligibility": "20241025"
  },
  "planStatus": [
    {
      "statusCode": "1",
      "status": "Active Coverage",
      "serviceTypeCodes": ["88"]
    },
    {
      "statusCode": "1",
      "status": "Active Coverage",
      "serviceTypeCodes": [
        "30",
        "42",
        "45",
        "48",
        "49",
        "69",
        "76",
        "83",
        "A5",
        "A7",
        "AG",
        "BT",
        "BU",
        "BV"
      ]
    },
    {
      "statusCode": "1",
      "status": "Active Coverage",
      "serviceTypeCodes": [
        "30",
        "2",
        "23",
        "24",
        "25",
        "26",
        "27",
        "28",
        "3",
        "33",
        "36",
        "37",
        "38",
        "39",
        "40",
        "42",
        "50",
        "51",
        "52",
        "53",
        "67",
        "69",
        "73",
        "76",
        "83",
        "86",
        "98",
        "A4",
        "A6",
        "A8",
        "AI",
        "AJ",
        "AK",
        "AL",
        "BT",
        "BU",
        "BV",
        "DM",
        "UC"
      ]
    }
  ],
  "benefitsInformation": [
    {
      "code": "I",
      "name": "Non-Covered",
      "serviceTypeCodes": ["41", "54"],
      "serviceTypes": ["Routine (Preventive) Dental", "Long Term Care"],
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable"
    },
    {
      "code": "1",
      "name": "Active Coverage",
      "serviceTypeCodes": ["88"],
      "serviceTypes": ["Pharmacy"],
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable"
    },
    {
      "code": "R",
      "name": "Other or Additional Payor",
      "insuranceTypeCode": "QM",
      "insuranceType": "Qualified Medicare Beneficiary",
      "planCoverage": "CA QMB Plan",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "coordinationOfBenefits": "20230101"
      }
    },
    {
      "code": "1",
      "name": "Active Coverage",
      "serviceTypeCodes": [
        "30",
        "42",
        "45",
        "48",
        "49",
        "69",
        "76",
        "83",
        "A5",
        "A7",
        "AG",
        "BT",
        "BU",
        "BV"
      ],
      "serviceTypes": [
        "Health Benefit Plan Coverage",
        "Home Health Care",
        "Hospice",
        "Hospital - Inpatient",
        "Hospital - Room and Board",
        "Maternity",
        "Dialysis",
        "Infertility",
        "Psychiatric - Room and Board",
        "Psychiatric - Inpatient",
        "Skilled Nursing Care",
        "Gynecological",
        "Obstetrical",
        "Obstetrical/Gynecological"
      ],
      "insuranceTypeCode": "MA",
      "insuranceType": "Medicare Part A",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "plan": "20190101"
      },
      "additionalInformation": [
        {
          "description": "0-Beneficiary insured due to age OASI"
        }
      ]
    },
    {
      "code": "C",
      "name": "Deductible",
      "serviceTypeCodes": ["30"],
      "serviceTypes": ["Health Benefit Plan Coverage"],
      "insuranceTypeCode": "QM",
      "insuranceType": "Qualified Medicare Beneficiary",
      "planCoverage": "Medicare Part A",
      "timeQualifierCode": "26",
      "timeQualifier": "Episode",
      "benefitAmount": "0",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "plan": "20240101-20241231"
      }
    },
    {
      "code": "1",
      "name": "Active Coverage",
      "serviceTypeCodes": [
        "30",
        "2",
        "23",
        "24",
        "25",
        "26",
        "27",
        "28",
        "3",
        "33",
        "36",
        "37",
        "38",
        "39",
        "40",
        "42",
        "50",
        "51",
        "52",
        "53",
        "67",
        "69",
        "73",
        "76",
        "83",
        "86",
        "98",
        "A4",
        "A6",
        "A8",
        "AI",
        "AJ",
        "AK",
        "AL",
        "BT",
        "BU",
        "BV",
        "DM",
        "UC"
      ],
      "serviceTypes": [
        "Health Benefit Plan Coverage",
        "Surgical",
        "Diagnostic Dental",
        "Periodontics",
        "Restorative",
        "Endodontics",
        "Maxillofacial Prosthetics",
        "Adjunctive Dental Services",
        "Consultation",
        "Chiropractic",
        "Dental Crowns",
        "Dental Accident",
        "Orthodontics",
        "Prosthodontics",
        "Oral Surgery",
        "Home Health Care",
        "Hospital - Outpatient",
        "Hospital - Emergency Accident",
        "Hospital - Emergency Medical",
        "Hospital - Ambulatory Surgical",
        "Smoking Cessation",
        "Maternity",
        "Diagnostic Medical",
        "Dialysis",
        "Infertility",
        "Emergency Services",
        "Professional (Physician) Visit - Office",
        "Psychiatric",
        "Psychotherapy",
        "Psychiatric - Outpatient",
        "Substance Abuse",
        "Alcoholism",
        "Drug Addiction",
        "Vision (Optometry)",
        "Gynecological",
        "Obstetrical",
        "Obstetrical/Gynecological",
        "Durable Medical Equipment",
        "Urgent Care"
      ],
      "insuranceTypeCode": "MB",
      "insuranceType": "Medicare Part B",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "plan": "20190101"
      },
      "additionalInformation": [
        {
          "description": "0-Beneficiary insured due to age OASI"
        }
      ]
    },
    {
      "code": "C",
      "name": "Deductible",
      "serviceTypeCodes": ["30"],
      "serviceTypes": ["Health Benefit Plan Coverage"],
      "insuranceTypeCode": "QM",
      "insuranceType": "Qualified Medicare Beneficiary",
      "planCoverage": "Medicare Part B",
      "timeQualifierCode": "23",
      "timeQualifier": "Calendar Year",
      "benefitAmount": "0",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "plan": "20240101-20241231"
      }
    },
    {
      "code": "A",
      "name": "Co-Insurance",
      "serviceTypeCodes": ["30"],
      "serviceTypes": ["Health Benefit Plan Coverage"],
      "insuranceTypeCode": "QM",
      "insuranceType": "Qualified Medicare Beneficiary",
      "planCoverage": "Medicare Part B",
      "timeQualifierCode": "27",
      "timeQualifier": "Visit",
      "benefitPercent": "0",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsDateInformation": {
        "plan": "20240101-20241231"
      }
    },
    {
      "code": "R",
      "name": "Other or Additional Payor",
      "serviceTypeCodes": ["88"],
      "serviceTypes": ["Pharmacy"],
      "insuranceTypeCode": "OT",
      "insuranceType": "Other",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsAdditionalInformation": {
        "planNumber": "A0505",
        "planNetworkIdNumber": "555"
      },
      "benefitsDateInformation": {
        "benefit": "20230101"
      },
      "benefitsRelatedEntity": {
        "entityIdentifier": "Payer",
        "entityType": "Non-Person Entity",
        "entityName": "UHC OF CALIFORNIA",
        "address": {
          "address1": "202 Main St",
          "city": "Sacramento",
          "state": "CA",
          "postalCode": "94203"
        },
        "contactInformation": {
          "contacts": [
            {
              "communicationMode": "Telephone",
              "communicationNumber": "8006446644"
            },
            {
              "communicationMode": "Uniform Resource Locator (URL)",
              "communicationNumber": "UHC.com/Medicare"
            }
          ]
        }
      },
      "benefitsRelatedEntities": [
        {
          "entityIdentifier": "Payer",
          "entityType": "Non-Person Entity",
          "entityName": "UHC OF CALIFORNIA",
          "address": {
            "address1": "202 Main St",
            "city": "Sacramento",
            "state": "CA",
            "postalCode": "94203"
          },
          "contactInformation": {
            "contacts": [
              {
                "communicationMode": "Telephone",
                "communicationNumber": "8006446644"
              },
              {
                "communicationMode": "Uniform Resource Locator (URL)",
                "communicationNumber": "UHC.com/Medicare"
              }
            ]
          }
        }
      ]
    },
    {
      "code": "U",
      "name": "Contact Following Entity for Eligibility or Benefit Information",
      "serviceTypeCodes": ["30"],
      "serviceTypes": ["Health Benefit Plan Coverage"],
      "insuranceTypeCode": "HN",
      "insuranceType": "Health Maintenance Organization (HMO) - Medicare Risk",
      "inPlanNetworkIndicatorCode": "W",
      "inPlanNetworkIndicator": "Not Applicable",
      "benefitsAdditionalInformation": {
        "planNumber": "A0505",
        "planNetworkIdNumber": "555"
      },
      "benefitsDateInformation": {
        "coordinationOfBenefits": "20230101"
      },
      "benefitsRelatedEntity": {
        "entityIdentifier": "Primary Payer",
        "entityType": "Non-Person Entity",
        "entityName": "UHC OF CALIFORNIA",
        "address": {
          "address1": "202 Main St",
          "city": "Sacramento",
          "state": "CA",
          "postalCode": "94203"
        },
        "contactInformation": {
          "contacts": [
            {
              "communicationMode": "Telephone",
              "communicationNumber": "8006446644"
            },
            {
              "communicationMode": "Uniform Resource Locator (URL)",
              "communicationNumber": "UHC.com/Medicare"
            }
          ]
        }
      },
      "benefitsRelatedEntities": [
        {
          "entityIdentifier": "Primary Payer",
          "entityType": "Non-Person Entity",
          "entityName": "UHC OF CALIFORNIA",
          "address": {
            "address1": "202 Main St",
            "city": "Sacramento",
            "state": "CA",
            "postalCode": "94203"
          },
          "contactInformation": {
            "contacts": [
              {
                "communicationMode": "Telephone",
                "communicationNumber": "8006446644"
              },
              {
                "communicationMode": "Uniform Resource Locator (URL)",
                "communicationNumber": "UHC.com/Medicare"
              }
            ]
          }
        }
      ],
      "additionalInformation": [
        {
          "description": "MA Bill Option Code - A"
        }
      ]
    }
  ],
  "errors": [],
  "x12": ""
}

Concurrency limit

MBI lookups you perform using real-time eligibility check endpoints (JSON and Raw X12) share a concurrency pool with other real-time healthcare APIs. For more information, visit Concurrency limits.

MBI lookups you perform using the Batch Eligibility Check endpoint don't count toward your Stedi account concurrency limit.

Mock request

When you submit the following mock MBI lookup request to the Real-Time Eligibility Check endpoint with a test API key, Stedi returns mock benefits data you can use for testing.

This mock request is for an MBI lookup with SSN.

Mock requests are free for testing purposes and won't incur any charges in your Stedi account.

Request Notes:

  • encounter: Only service type code 30 is supported.
  • provider: You can use any organization name and any NPI, as long as it passes check digit validation. To generate a dummy NPI, you can use this free tool.
  • subscriber: You must use the exact values in the test request. Other birth dates, first names, last names, and Social Security Numbers return errors.

Health Insurance Claim Number (HICN)

Some payers return the patient's MBI in one of the following properties of the standard eligibility response:

If the value in either of these properties matches the format specified in the Medicare Beneficiary Identifier documentation, the number is likely an MBI. In these cases, you don't need to perform an MBI lookup - you can use this value in a standard eligibility check to CMS.

You're most likely to receive an MBI in eligibility responses from commercial Medicare Advantage plans, but they can also be present in responses from Medicaid plans for dual-eligible patients.

Medicare Advantage plans

A Medicare Advantage plan (also known as Medicare Part C) is a type of health insurance plan offered by private companies that contract with Medicare to provide all of a patient's Part A (hospital insurance) and Part B (medical insurance) benefits.

Medicare Advantage plans have their own unique member ID, which isn't returned in the MBI lookup response. You also shouldn't submit eligibility checks for Medicare Advantage plans to CMS (HETS) - you should submit them to the actual Medicare Advantage plan payer instead.

However, you can use MBI lookups to determine a patient's Medicare Advantage payer. If available, the MBI lookup response will include the patient's Medicare Advantage plan name in the benefitsInformation.benefitsRelatedEntities.entityName property.

Many Medicare Advantage plans allow you to submit eligibility checks with just the patient's name and date of birth. However, if that approach is unsuccessful and you don't have the patient's member ID, you can use Insurance Discovery to retrieve benefits information with the patient's demographic information instead.

Outdated MBI error

Stedi's MBI lookup may rarely retrieve an outdated MBI for a patient. CMS may rotate an MBI for a member for various reasons at any time, such as to help protect against identity theft.

In these cases, the response will contain an AAA error with code 72 (Invalid/Missing Subscriber/Insured ID) and return the subscriber.memberId containing the outdated MBI.

{
  "warnings": [
    {
      "code": "request::270::member_id_required",
      "description": "This payer requires the patient's member ID to be included in eligibility requests."
    }
  ],
  "errors": [
    {
      "code": "72",
      "description": "Invalid/Missing Subscriber/Insured ID",
      "field": "AAA",
      "followupAction": "Please Correct and Resubmit",
      "location": "2100C",
      "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n• Check the `subscriber.memberId`.\n• Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n• If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead."
    }
  ],
  "subscriber": {
    "aaaErrors": [
        {
          "code": "72",
          "followupAction": "Please Correct and Resubmit",
          "description": "Invalid/Missing Subscriber/Insured ID",
          "possibleResolutions": "The subscriber's member ID is either missing or invalid.\n• Check the `subscriber.memberId`.\n• Ensure the member ID doesn't include the [Card Issuer Identifier](https://www.stedi.com/docs/healthcare/eligibility-troubleshooting#card-issuer-identifier-80840).\n• If you can't locate the correct member ID, try running an [insurance discovery check](https://www.stedi.com/docs/healthcare/insurance-discovery) to retrieve the patient's benefits information instead.",
          "location": "Loop 2100C",
          "field": "AAA"
        }
    ],
    "memberId": "1AA2CC3DD45", // Outdated MBI
    "firstName": "JANE",
    "lastName": "DOE",
      ...
  },
  ...
}

Implementing the right retry strategy for eligibility check failures saves a lot of time and money.

At a minimum, we strongly recommend automatically retrying every request that fails due to payer connectivity issues. Automatic retries resolve a significant portion of these types of failures without manual intervention. Visit Retry strategy for details.

CMS traceability requirements

All parties involved in HETS eligibility transactions must comply with the HETS Rules of Behavior. Compliance is also required under our terms. Review the Rules of Behavior before sending eligibility checks to CMS.

Starting November 8, 2025, the Centers for Medicare & Medicaid Services (CMS) requires submitters to include the entire chain of network hops for every eligibility request sent to CMS's eligibility system, HETS.

Specifically, requests must include a standard X-Forwarded-For HTTP header containing the network IP addresses from the point of origin through receipt by the HETS system. CMS expects X-Forwarded-For to list each IP, comma-separated, starting with the originating system and continuing through every intermediary.

To comply with this requirement:

  • You must collect all IP addresses for upstream requests and pass them in the standard X-Forwarded-For header when calling Stedi's API. If you are yourself an intermediary – for example, an RCM, EHR, or PMS system – you'll need to coordinate with your providers and any third-party organizations to ensure they include the Network IP details as part of the X-Forwarded-For header. This enables CMS to receive a complete list of all IPs, including the original initiator of the request (typically, the provider).
  • Stedi records the IP address you use when you call our API, as well as all the IP addresses listed in the X-Forwarded-For header. We include these IP addresses in the list submitted to CMS.

You only need to include the X-Forwarded-For header in eligibility requests when there are upstream IP addresses.

The following examples illustrate when and how to include the header:

ScenarioX-Forwarded-For required?Result
A provider (IP 2.2.2.2) connects directly to Stedi without intermediaries.No.CMS ultimately receives X-Forwarded-For: 2.2.2.2
A provider (IP 2.2.2.2) routes through an RCM platform's transactional system (IP 3.3.3.3) that calls Stedi's API using a separate integration backend (IP 4.4.4.4).Yes. The RCM platform sets X-Forwarded-For: 2.2.2.2, 3.3.3.3. Stedi records the IP address of the API caller (4.4.4.4 ) and sends it to CMS.CMS ultimately receives X-Forwarded-For: 2.2.2.2, 3.3.3.3, 4.4.4.4.
A provider network (IP 2.2.2.2) passes through an office firewall (IP 4.4.4.4) and then an RCM platform (IP 3.3.3.3), which calls Stedi's API.Yes. The RCM platform sets X-Forwarded-For: 2.2.2.2, 4.4.4.4. Stedi records the IP address of the API caller (3.3.3.3) and sends it to CMS.CMS ultimately receives X-Forwarded-For: 2.2.2.2, 4.4.4.4, 3.3.3.3.