Introducing Insurance Discovery
Apr 10, 2025
Healthcare
Without accurate insurance details, providers can’t run an eligibility check to verify patient benefits. Without a successful eligibility check, patients are often told they’ll need to pay out of pocket, causing them to cancel or never schedule services at all. Uncertainty about coverage status can also cause billing surprises, denied claims, and delayed payments to providers down the line – especially in urgent care scenarios when patients can’t communicate insurance details before receiving care.
Unfortunately, patients often have trouble providing accurate information about their insurance. They make mistakes on online or in-person intake forms, come to appointments without their insurance cards, or forget to mention that their coverage changed since the last visit.
With Stedi’s Insurance Discovery, you can use an API or user-friendly form to find a patient’s active coverage in minutes with only their demographic data, like name, date of birth, and address. Insurance discovery checks replace standard eligibility checks when you don’t know the payer or the full patient details because they return benefits information for each active health plan found.
Improve eligibility and claims processing workflows
Insurance Discovery augments your existing eligibility workflow to help you reliably verify benefits, even when the patient can’t provide accurate insurance information. We recommend using Insurance Discovery for:
Eligibility troubleshooting. When eligibility checks fail with a Subscriber/Insured Not Found error, run an insurance discovery check instead of manually following up with the patient.
Walk-in or urgent care visits. Run an insurance discovery check when patients show up without their insurance card.
Virtual care and telehealth appointments. Simplify intake by letting patients schedule without insurance details. Then, run an insurance discovery check to verify their coverage before the visit.
Insurance Discovery can also help optimize claims processing. First, you can run insurance discovery checks to retroactively find active coverage for denied claims. Then, you can use the results to run a coordination of benefits (COB) check to identify any overlapping coverage and determine which payer is responsible for paying claims (primacy).
Find active coverage in minutes without knowing the payer
Here’s how Insurance Discovery works:
Enroll one or more provider NPIs with Stedi for Insurance Discovery. You can submit a request and get approval in less than two minutes.
Once the enrollment is live, you can either submit requests programmatically through our Insurance Discovery API or manually through the Create insurance discovery check form. At a minimum, you must provide the patient’s first name, last name, and date of birth (DOB), but we strongly recommend providing additional details like the patient's Social Security Number (SSN), gender, or full address to maximize the chances of finding matching coverage. You’ll also include information like the provider’s NPI and the service dates, similar to a standard eligibility check.
Stedi determines if the patient has active coverage with one or more payers. This process involves demographic lookups to enrich partial patient details, comparisons across third-party data sources to determine member IDs, and submitting real-time eligibility checks to payers to detect coverage.
Stedi returns an array of potential active coverages, along with subscriber details and benefits information.
You should always review the results to ensure the returned subscriber information for each active health plan matches the patient's demographic information. Once you confirm matching coverage, you can use the benefits information to determine the patient’s eligibility for services.
The following example shows an insurance discovery request for a fictional patient named Jane Doe.
curl --request POST \
--url https://healthcare.us.stedi.com/2024-04-01/insurance-discovery/check/v1 \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"provider": {
"organizationName": "THE DOCTORS OFFICE",
"npi": "1234567891"
},
"encounter": {
"beginningDateOfService": "20250326",
"endDateOfService": "20250328"
},
"controlNumber": "123456789",
"subscriber": {
"dateOfBirth": "20010925",
"firstName": "Jane",
"lastName": "Doe",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
}
}'
In the following example response, Stedi found one instance of potential matching coverage for Jane Doe. The information is available in the items
array.
The
payer
is Aetna.The patient in the request, Jane, is a dependent on the Aetna plan because her demographic information appears in the
dependent
object in the response.The
confidence.level
is marked asREVIEW_NEEDED
, because the dependent’s last name is slightly different from the patient’s last name in the insurance discovery request. However, all of the other demographic details in the dependent object – first name, date of birth, address – match the patient from the request. The two-part last name, Smith Doe, appears to be the complete version of the last name in the request, Doe. Based on this information, we can confirm that this is active coverage for the patient.The
benefitsInformation
object (truncated to keep this post concise) contains the patient’s benefits details. For example, the patient has active medical coverage under their health plan for the service dates in the request. Visit Determine patient benefits to learn more about interpreting the benefits information in the insurance discovery check response.
{
"coveragesFound": 1,
"discoveryId": "e856b480-0b41-11f0-aee6-fc0434004bca",
"items": [
{
"provider": {
"providerName": "THE DOCTORS OFFICE",
"entityType": "Non-Person Entity",
"npi": "1234567891"
},
"subscriber": {
"memberId": "J9606211996",
"firstName": "JOHN",
"lastName": "DOE",
"groupNumber": "012345607890008",
"groupDescription": "SAMPLE HEALTH GROUP",
"insuredIndicator": "Y"
},
"dependent": {
"firstName": "JANE",
"lastName": "SMITH DOE",
"gender": "F",
"dateOfBirth": "20010925",
"planNumber": "0123654",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
},
"payer": {
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"lastName": "Aetna",
"name": "Aetna",
"payorIdentification": "100003"
},
"planInformation": {
"planNumber": "0123654"
},
"planDateInformation": {
"planBegin": "2025-01-01",
"eligibilityBegin": "2025-01-01",
"service": "2025-03-27"
},
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"coverageLevelCode": "FAM",
"coverageLevel": "Family",
"serviceTypeCodes": [
"30"
],
"serviceTypes": [
"Health Benefit Plan Coverage"
],
"insuranceTypeCode": "PS",
"insuranceType": "Point of Service (POS)",
"planCoverage": "Aetna Choice POS II",
"inPlanNetworkIndicatorCode": "W",
"inPlanNetworkIndicator": "Not Applicable"
},
.... truncated to preserve space
{
"code": "W",
"name": "Other Source of Data",
"benefitsRelatedEntities": [
{
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"entityName": "AETNA",
"address": {
"address1": "PO BOX 981106",
"city": "EL PASO",
"state": "TX",
"postalCode": "79998"
}
}
]
}
],
"confidence": {
"level": "REVIEW_NEEDED",
"reason": "This record was identified as a low confidence match due to a last name mismatch."
}
}
],
"meta": {
"applicationMode": "production",
"traceId": "1-67e5a730-75011daa6caebf3c6595bf7c"
},
"status": "COMPLETE"
}
Visit our Insurance Discovery docs for complete details and API references.
Try Insurance Discovery today
Contact our team for pricing and to learn more about how Stedi can automate and streamline your eligibility and claims processing workflows.
Without accurate insurance details, providers can’t run an eligibility check to verify patient benefits. Without a successful eligibility check, patients are often told they’ll need to pay out of pocket, causing them to cancel or never schedule services at all. Uncertainty about coverage status can also cause billing surprises, denied claims, and delayed payments to providers down the line – especially in urgent care scenarios when patients can’t communicate insurance details before receiving care.
Unfortunately, patients often have trouble providing accurate information about their insurance. They make mistakes on online or in-person intake forms, come to appointments without their insurance cards, or forget to mention that their coverage changed since the last visit.
With Stedi’s Insurance Discovery, you can use an API or user-friendly form to find a patient’s active coverage in minutes with only their demographic data, like name, date of birth, and address. Insurance discovery checks replace standard eligibility checks when you don’t know the payer or the full patient details because they return benefits information for each active health plan found.
Improve eligibility and claims processing workflows
Insurance Discovery augments your existing eligibility workflow to help you reliably verify benefits, even when the patient can’t provide accurate insurance information. We recommend using Insurance Discovery for:
Eligibility troubleshooting. When eligibility checks fail with a Subscriber/Insured Not Found error, run an insurance discovery check instead of manually following up with the patient.
Walk-in or urgent care visits. Run an insurance discovery check when patients show up without their insurance card.
Virtual care and telehealth appointments. Simplify intake by letting patients schedule without insurance details. Then, run an insurance discovery check to verify their coverage before the visit.
Insurance Discovery can also help optimize claims processing. First, you can run insurance discovery checks to retroactively find active coverage for denied claims. Then, you can use the results to run a coordination of benefits (COB) check to identify any overlapping coverage and determine which payer is responsible for paying claims (primacy).
Find active coverage in minutes without knowing the payer
Here’s how Insurance Discovery works:
Enroll one or more provider NPIs with Stedi for Insurance Discovery. You can submit a request and get approval in less than two minutes.
Once the enrollment is live, you can either submit requests programmatically through our Insurance Discovery API or manually through the Create insurance discovery check form. At a minimum, you must provide the patient’s first name, last name, and date of birth (DOB), but we strongly recommend providing additional details like the patient's Social Security Number (SSN), gender, or full address to maximize the chances of finding matching coverage. You’ll also include information like the provider’s NPI and the service dates, similar to a standard eligibility check.
Stedi determines if the patient has active coverage with one or more payers. This process involves demographic lookups to enrich partial patient details, comparisons across third-party data sources to determine member IDs, and submitting real-time eligibility checks to payers to detect coverage.
Stedi returns an array of potential active coverages, along with subscriber details and benefits information.
You should always review the results to ensure the returned subscriber information for each active health plan matches the patient's demographic information. Once you confirm matching coverage, you can use the benefits information to determine the patient’s eligibility for services.
The following example shows an insurance discovery request for a fictional patient named Jane Doe.
curl --request POST \
--url https://healthcare.us.stedi.com/2024-04-01/insurance-discovery/check/v1 \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"provider": {
"organizationName": "THE DOCTORS OFFICE",
"npi": "1234567891"
},
"encounter": {
"beginningDateOfService": "20250326",
"endDateOfService": "20250328"
},
"controlNumber": "123456789",
"subscriber": {
"dateOfBirth": "20010925",
"firstName": "Jane",
"lastName": "Doe",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
}
}'
In the following example response, Stedi found one instance of potential matching coverage for Jane Doe. The information is available in the items
array.
The
payer
is Aetna.The patient in the request, Jane, is a dependent on the Aetna plan because her demographic information appears in the
dependent
object in the response.The
confidence.level
is marked asREVIEW_NEEDED
, because the dependent’s last name is slightly different from the patient’s last name in the insurance discovery request. However, all of the other demographic details in the dependent object – first name, date of birth, address – match the patient from the request. The two-part last name, Smith Doe, appears to be the complete version of the last name in the request, Doe. Based on this information, we can confirm that this is active coverage for the patient.The
benefitsInformation
object (truncated to keep this post concise) contains the patient’s benefits details. For example, the patient has active medical coverage under their health plan for the service dates in the request. Visit Determine patient benefits to learn more about interpreting the benefits information in the insurance discovery check response.
{
"coveragesFound": 1,
"discoveryId": "e856b480-0b41-11f0-aee6-fc0434004bca",
"items": [
{
"provider": {
"providerName": "THE DOCTORS OFFICE",
"entityType": "Non-Person Entity",
"npi": "1234567891"
},
"subscriber": {
"memberId": "J9606211996",
"firstName": "JOHN",
"lastName": "DOE",
"groupNumber": "012345607890008",
"groupDescription": "SAMPLE HEALTH GROUP",
"insuredIndicator": "Y"
},
"dependent": {
"firstName": "JANE",
"lastName": "SMITH DOE",
"gender": "F",
"dateOfBirth": "20010925",
"planNumber": "0123654",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
},
"payer": {
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"lastName": "Aetna",
"name": "Aetna",
"payorIdentification": "100003"
},
"planInformation": {
"planNumber": "0123654"
},
"planDateInformation": {
"planBegin": "2025-01-01",
"eligibilityBegin": "2025-01-01",
"service": "2025-03-27"
},
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"coverageLevelCode": "FAM",
"coverageLevel": "Family",
"serviceTypeCodes": [
"30"
],
"serviceTypes": [
"Health Benefit Plan Coverage"
],
"insuranceTypeCode": "PS",
"insuranceType": "Point of Service (POS)",
"planCoverage": "Aetna Choice POS II",
"inPlanNetworkIndicatorCode": "W",
"inPlanNetworkIndicator": "Not Applicable"
},
.... truncated to preserve space
{
"code": "W",
"name": "Other Source of Data",
"benefitsRelatedEntities": [
{
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"entityName": "AETNA",
"address": {
"address1": "PO BOX 981106",
"city": "EL PASO",
"state": "TX",
"postalCode": "79998"
}
}
]
}
],
"confidence": {
"level": "REVIEW_NEEDED",
"reason": "This record was identified as a low confidence match due to a last name mismatch."
}
}
],
"meta": {
"applicationMode": "production",
"traceId": "1-67e5a730-75011daa6caebf3c6595bf7c"
},
"status": "COMPLETE"
}
Visit our Insurance Discovery docs for complete details and API references.
Try Insurance Discovery today
Contact our team for pricing and to learn more about how Stedi can automate and streamline your eligibility and claims processing workflows.
Without accurate insurance details, providers can’t run an eligibility check to verify patient benefits. Without a successful eligibility check, patients are often told they’ll need to pay out of pocket, causing them to cancel or never schedule services at all. Uncertainty about coverage status can also cause billing surprises, denied claims, and delayed payments to providers down the line – especially in urgent care scenarios when patients can’t communicate insurance details before receiving care.
Unfortunately, patients often have trouble providing accurate information about their insurance. They make mistakes on online or in-person intake forms, come to appointments without their insurance cards, or forget to mention that their coverage changed since the last visit.
With Stedi’s Insurance Discovery, you can use an API or user-friendly form to find a patient’s active coverage in minutes with only their demographic data, like name, date of birth, and address. Insurance discovery checks replace standard eligibility checks when you don’t know the payer or the full patient details because they return benefits information for each active health plan found.
Improve eligibility and claims processing workflows
Insurance Discovery augments your existing eligibility workflow to help you reliably verify benefits, even when the patient can’t provide accurate insurance information. We recommend using Insurance Discovery for:
Eligibility troubleshooting. When eligibility checks fail with a Subscriber/Insured Not Found error, run an insurance discovery check instead of manually following up with the patient.
Walk-in or urgent care visits. Run an insurance discovery check when patients show up without their insurance card.
Virtual care and telehealth appointments. Simplify intake by letting patients schedule without insurance details. Then, run an insurance discovery check to verify their coverage before the visit.
Insurance Discovery can also help optimize claims processing. First, you can run insurance discovery checks to retroactively find active coverage for denied claims. Then, you can use the results to run a coordination of benefits (COB) check to identify any overlapping coverage and determine which payer is responsible for paying claims (primacy).
Find active coverage in minutes without knowing the payer
Here’s how Insurance Discovery works:
Enroll one or more provider NPIs with Stedi for Insurance Discovery. You can submit a request and get approval in less than two minutes.
Once the enrollment is live, you can either submit requests programmatically through our Insurance Discovery API or manually through the Create insurance discovery check form. At a minimum, you must provide the patient’s first name, last name, and date of birth (DOB), but we strongly recommend providing additional details like the patient's Social Security Number (SSN), gender, or full address to maximize the chances of finding matching coverage. You’ll also include information like the provider’s NPI and the service dates, similar to a standard eligibility check.
Stedi determines if the patient has active coverage with one or more payers. This process involves demographic lookups to enrich partial patient details, comparisons across third-party data sources to determine member IDs, and submitting real-time eligibility checks to payers to detect coverage.
Stedi returns an array of potential active coverages, along with subscriber details and benefits information.
You should always review the results to ensure the returned subscriber information for each active health plan matches the patient's demographic information. Once you confirm matching coverage, you can use the benefits information to determine the patient’s eligibility for services.
The following example shows an insurance discovery request for a fictional patient named Jane Doe.
curl --request POST \
--url https://healthcare.us.stedi.com/2024-04-01/insurance-discovery/check/v1 \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"provider": {
"organizationName": "THE DOCTORS OFFICE",
"npi": "1234567891"
},
"encounter": {
"beginningDateOfService": "20250326",
"endDateOfService": "20250328"
},
"controlNumber": "123456789",
"subscriber": {
"dateOfBirth": "20010925",
"firstName": "Jane",
"lastName": "Doe",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
}
}'
In the following example response, Stedi found one instance of potential matching coverage for Jane Doe. The information is available in the items
array.
The
payer
is Aetna.The patient in the request, Jane, is a dependent on the Aetna plan because her demographic information appears in the
dependent
object in the response.The
confidence.level
is marked asREVIEW_NEEDED
, because the dependent’s last name is slightly different from the patient’s last name in the insurance discovery request. However, all of the other demographic details in the dependent object – first name, date of birth, address – match the patient from the request. The two-part last name, Smith Doe, appears to be the complete version of the last name in the request, Doe. Based on this information, we can confirm that this is active coverage for the patient.The
benefitsInformation
object (truncated to keep this post concise) contains the patient’s benefits details. For example, the patient has active medical coverage under their health plan for the service dates in the request. Visit Determine patient benefits to learn more about interpreting the benefits information in the insurance discovery check response.
{
"coveragesFound": 1,
"discoveryId": "e856b480-0b41-11f0-aee6-fc0434004bca",
"items": [
{
"provider": {
"providerName": "THE DOCTORS OFFICE",
"entityType": "Non-Person Entity",
"npi": "1234567891"
},
"subscriber": {
"memberId": "J9606211996",
"firstName": "JOHN",
"lastName": "DOE",
"groupNumber": "012345607890008",
"groupDescription": "SAMPLE HEALTH GROUP",
"insuredIndicator": "Y"
},
"dependent": {
"firstName": "JANE",
"lastName": "SMITH DOE",
"gender": "F",
"dateOfBirth": "20010925",
"planNumber": "0123654",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST",
"address2": "UNIT 1",
"city": "ANYTOWN",
"state": "MO",
"postalCode": "12341"
}
},
"payer": {
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"lastName": "Aetna",
"name": "Aetna",
"payorIdentification": "100003"
},
"planInformation": {
"planNumber": "0123654"
},
"planDateInformation": {
"planBegin": "2025-01-01",
"eligibilityBegin": "2025-01-01",
"service": "2025-03-27"
},
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"coverageLevelCode": "FAM",
"coverageLevel": "Family",
"serviceTypeCodes": [
"30"
],
"serviceTypes": [
"Health Benefit Plan Coverage"
],
"insuranceTypeCode": "PS",
"insuranceType": "Point of Service (POS)",
"planCoverage": "Aetna Choice POS II",
"inPlanNetworkIndicatorCode": "W",
"inPlanNetworkIndicator": "Not Applicable"
},
.... truncated to preserve space
{
"code": "W",
"name": "Other Source of Data",
"benefitsRelatedEntities": [
{
"entityIdentifier": "Payer",
"entityType": "Non-Person Entity",
"entityName": "AETNA",
"address": {
"address1": "PO BOX 981106",
"city": "EL PASO",
"state": "TX",
"postalCode": "79998"
}
}
]
}
],
"confidence": {
"level": "REVIEW_NEEDED",
"reason": "This record was identified as a low confidence match due to a last name mismatch."
}
}
],
"meta": {
"applicationMode": "production",
"traceId": "1-67e5a730-75011daa6caebf3c6595bf7c"
},
"status": "COMPLETE"
}
Visit our Insurance Discovery docs for complete details and API references.
Try Insurance Discovery today
Contact our team for pricing and to learn more about how Stedi can automate and streamline your eligibility and claims processing workflows.
Share
Get updates on what’s new at Stedi
Get updates on what’s new at Stedi
Get updates on what’s new at Stedi
Get updates on what’s new at Stedi
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.
Get updates on what’s new at Stedi
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.
Get updates on what’s new at Stedi
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.