Coordination of Benefits Check
Submit a coordination of benefits (COB) check in JSON format
/coordination-of-benefits
Coordination of benefits (COB) checks help you determine whether patients are covered by multiple health plans, whether coverage overlap requires coordination of benefits, and each payer's responsibility for payment (primacy).
- Call this endpoint with a JSON payload. Each check must be for a Stedi-supported payer with which the patient has coverage. Visit the Payer Network for a complete list of supported payers.
- Stedi searches a national database containing 245+ million patient coverage records from 45+ health plans, ASOs, TPAs, and others, including participation from the vast majority of national commercial health plans. Data is updated weekly to ensure accuracy.
- The endpoint returns information about the patient's active health plans, the responsibility sequence number for each payer if available (such as primary or secondary), and whether coordination of benefits is required.
Visit Coordination of benefits checks for a full how-to guide.
A Stedi API Key for authentication.
Body
A dependent for which you want to check coordination of benefits.
- An individual qualifies as a dependent when they are listed as a dependent on the subscriber's insurance plan AND the payer cannot uniquely identify them through information outside the subscriber's policy. For example, if the dependent has their own member ID number, you should identify them in the
subscriber
object instead. - The demographic information you provide must patch the payer's data exactly. For example, if the payer has the dependent's name as
Jonathan Doe
, a COB request forJon Doe
will fail because the name doesn't match the payer's records.
Information about the encounter.
- You can submit COB checks with the
30
service type code for Health Benefit Plan Coverage. This is the broadest service type code that covers all medical services and subtypes included in the patient’s health plan. - The service dates you provide must be within the past 2 years. COB checks don't support requests with dates outside of this range.
- Don't send service dates that are in the future. Future service dates typically result in errors from the payer.
- If you don't specify a service date (either a single day or a range of dates), Stedi defaults to using the current date.
An object containing information about the entity requesting the COB check. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. You must provide the organizationName
(if the entity is an organization) or firstName
and lastName
(if the provider is an individual). You must also provide the provider's National Provider Identifier (npi
).
The primary policyholder for the insurance plan or a dependent with a unique member ID. If a dependent has a unique member ID, include their information here and leave dependent
empty.
The demographic information you provide must match the payer's data exactly. For example, if the payer has the subscriber's name as Jonathan Doe
, a COB request for Jon Doe
will fail because the name doesn't match the payer's records. Also note that:
- Any prefix on the member's card is considered part of the
memberID
used for the search. - Mismatches in the
memberId
are one of the most common causes ofMember Not Found
errors. We strongly recommend first performing an Eligibility Check and using thememberId
in the response to populate your COB check. - We recommend including the
ssn
property in addition to thememberId
if possible. This allows Stedi to do an additional search for the patient when thememberId
doesn't return a match. - Stedi can identify coverage overlap for the same payer if the member ID differs between the two coverages.
This is the Payer ID. Visit the Payer Network for a complete list of supported payers for COB checks.
- Each check must be for a participating health plan for which the patient has coverage. For example, if the patient has coverage from Cigna and UnitedHealthcare, a COB check to Aetna will return an error.
- Medicare and Medicare Advantage plans aren't supported. If you submit a COB check for a Medicare or Medicare Advantage plan, the request will fail with an AAA
= 75
error (Subscriber/Insured Not Found).
- Ensure that you're sending the request to the correct payer entity. For example, Blue Cross Blue Shield (BCBS) has multiple entities that operate in different states. If you send a request to the wrong entity, the request will fail with an AAA
= 75
error (Subscriber/Insured Not Found).
- Required string length:
1 - 80
Response
CoordinationOfBenefits 200 response
Information about the patient's healthcare benefits, including:
- Active coverage with the health plan identified in the COB request
- Coverage overlap (if it exists) with one or more payers
- Payer primacy details (if Stedi was able to determine)
- Benefits details, such as coverage dates and service types
An overview of the COB response. It indicates whether there is a coverage overlap, whether that overlap creates a coordination of benefits instance, and whether Stedi was able to identify payer primacy (when a COB instance exists).
Information about the dependent listed in the original COB request.
If the COB request fails, the COB response contains one or more AAA
errors that specify the reasons for the rejection and any recommended follow-up actions.
Metadata about the response. Stedi uses this data for tracking and troubleshooting.
Information about the payer listed in the COB request.
Dates associated with the patient's health plan coverage. This information is used to determine their eligibility for benefits.
- The provided dates apply to every every benefit within the patient's health plan unless specifically noted within a
benefitsInformation.benefitsDateInformation
object. - If the payer sends back date(s) that are different for the subscriber and dependents, Stedi includes only the dates for the dependent in this object and omits the subscriber's date(s). Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent's plan.
Information about the entity that submitted the original coordination of benefits request. This may be an individual practitioner, a medical group, a hospital, or another type of healthcare provider. This object will always include the provider's NPI.
Information about the primary policyholder for the insurance plan listed in the COB request.
curl --request POST \
--url "https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits" \
--header "Authorization: <api_key>" \
--header "Content-Type: application/json" \
--data '{
"dependent": {
"dateOfBirth": "2002-12-31",
"firstName": "Jordan",
"lastName": "Doe"
},
"encounter": {
"dateOfService": "2024-08-02",
"serviceTypeCode": "30"
},
"provider": {
"npi": "1999999984",
"organizationName": "ACME Health Services"
},
"subscriber": {
"dateOfBirth": "1985-05-27",
"firstName": "John",
"lastName": "Doe",
"memberId": "W000000000"
},
"tradingPartnerServiceId": "SOMEID"
}'
const body = JSON.stringify({
"dependent": {
"dateOfBirth": "2002-12-31",
"firstName": "Jordan",
"lastName": "Doe"
},
"encounter": {
"dateOfService": "2024-08-02",
"serviceTypeCode": "30"
},
"provider": {
"npi": "1999999984",
"organizationName": "ACME Health Services"
},
"subscriber": {
"dateOfBirth": "1985-05-27",
"firstName": "John",
"lastName": "Doe",
"memberId": "W000000000"
},
"tradingPartnerServiceId": "SOMEID"
})
fetch("https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits", {
headers: {
"Authorization": "<api_key>"
},
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits"
body := strings.NewReader(`{
"dependent": {
"dateOfBirth": "2002-12-31",
"firstName": "Jordan",
"lastName": "Doe"
},
"encounter": {
"dateOfService": "2024-08-02",
"serviceTypeCode": "30"
},
"provider": {
"npi": "1999999984",
"organizationName": "ACME Health Services"
},
"subscriber": {
"dateOfBirth": "1985-05-27",
"firstName": "John",
"lastName": "Doe",
"memberId": "W000000000"
},
"tradingPartnerServiceId": "SOMEID"
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", "<api_key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits"
body = {
"dependent": {
"dateOfBirth": "2002-12-31",
"firstName": "Jordan",
"lastName": "Doe"
},
"encounter": {
"dateOfService": "2024-08-02",
"serviceTypeCode": "30"
},
"provider": {
"npi": "1999999984",
"organizationName": "ACME Health Services"
},
"subscriber": {
"dateOfBirth": "1985-05-27",
"firstName": "John",
"lastName": "Doe",
"memberId": "W000000000"
},
"tradingPartnerServiceId": "SOMEID"
}
response = requests.request("POST", url, json = body, headers = {
"Authorization": "<api_key>",
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{
"dependent": {
"dateOfBirth": "2002-12-31",
"firstName": "Jordan",
"lastName": "Doe"
},
"encounter": {
"dateOfService": "2024-08-02",
"serviceTypeCode": "30"
},
"provider": {
"npi": "1999999984",
"organizationName": "ACME Health Services"
},
"subscriber": {
"dateOfBirth": "1985-05-27",
"firstName": "John",
"lastName": "Doe",
"memberId": "W000000000"
},
"tradingPartnerServiceId": "SOMEID"
}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://healthcare.us.stedi.com/2024-04-01/coordination-of-benefits"))
.header("Content-Type", "application/json")
.header("Authorization", "<api_key>")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}