Introducing coordination of benefits (COB) checks
Feb 5, 2025
Products
When a patient has active coverage with multiple health plans, providers need to know which plan is primarily responsible for paying claims. The process of figuring out which payers to bill and in what order is called coordination of benefits (COB), and it’s one of the leading causes of claim denials and delayed payments in healthcare.
Providers often don’t know patients have overlapping coverage until after a claim is rejected or denied with a message that doesn’t contain any information about where to resubmit the claim:
[PATTERN 28937] REJECT - THIS PATIENT HAS PRIMARY INSURANCE COVERAGE WITH ANOTHER CARRIER WITH EFFECTIVE DATE 1/01/2025. PLEASE RESUBMIT AS ELECTRONIC SECONDARY ONCE ADJUDICATED BY THE PRIMARY PAYOR.
Back at square one, providers must contact patients to ask about additional coverage and then confirm the new plan’s primacy for payment (usually by calling the payer) before they can resubmit. This tedious process delays payments to providers for months and creates stressful billing surprises for patients.
To help streamline claims processing, we’re excited to announce that you can now perform COB checks through our developer-friendly Coordination of Benefits Check API or user-friendly online form. COB checks help you proactively identify additional coverage for patients and confidently submit claims to the right payer the first time.
Reduce claim denials with coordination of benefits checks
The best practice is to run COB checks for all new patients who have coverage through one of Stedi’s supported COB payers. In seconds, you can determine if the patient has coverage with other supported COB payers, whether there is coverage overlap, and which plan is responsible for paying for services (primacy).
![](https://framerusercontent.com/images/CrmlcZQh83j5ZezhGjCWy2D1rso.png)
Here’s how COB checks work:
You submit a COB check through Stedi’s COB form or COB check API with information for one of the patient's known health plans. The information required is similar to a standard eligibility check – first name, last name, DOB, and either member ID or SSN – and you should first run a real-time eligibility check to ensure that the member’s details are accurate.
Stedi searches a database of eligibility data from regional and national plans. This database has 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 at least weekly to ensure accuracy.
Stedi synchronously returns summary information about each of the patient’s active health plans and whether there is coverage overlap. When there is coverage overlap, Stedi returns the responsibility sequence number for each payer (such as primary or secondary), if that can be determined.
Once you receive the results, you should send real-time eligibility checks to each additional payer to verify coverage and view the full details of the patient’s plan before submitting claims.
Real-time COB information in developer-friendly JSON
The following example COB response shows information for a dependent covered by multiple health plans through their parents’ policies. The COB check was submitted to Aetna with a service type code of 30
(Health Benefit Plan Coverage) and a service date of 2024-11-27
.
The response indicates the following:
Active coverage: The patient has active coverage with Aetna for medical care, pharmacy, and vision services. This is indicated by the three objects in the
benefitsInformation
array with the code set to1
, which indicatesActive Coverage
.Coverage overlap: The patient has overlapping coverage for medical care services between two health plans. This is indicated by the
benefitsInformation
object with its code set toR
.Primacy: The other health plan is Cigna, listed in
benefitsInformation.benefitsRelatedEntities
. Cigna is the primary payer for medical care services.COB instance: There is a COB instance for medical care services on the date of service provided in the request. This is indicated in the
coordinationOfBenefits
object.
Based on this response, you must send claims first to Cigna as the primary payer for medical care services. Once Cigna adjudicates the claim, you can send another claim, if necessary, to Aetna as the secondary payer (subject to specific payer claims processing rules).
Before sending any claim(s) to Cigna, you should first send a separate eligibility check to Aetna to verify coverage status and confirm the full details of Aetna’s coverage.
{
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"88"
],
"serviceTypes": [
"Pharmacy"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"AL"
],
"serviceTypes": [
"Vision (Optometry)"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "R",
"name": "Other or Additional Payor",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"coordinationOfBenefits": "2024-07-01"
},
"benefitsRelatedEntities": [
{
"entityIdentifier": "Primary Payer",
"entityName": "CIGNA",
"entityIdentification": "PI",
"entityIdentificationValue": "1006"
},
{
"entityIdentifier": "Insured or Subscriber",
"entityFirstName": "JOHN",
"entityMiddleName": "X",
"entityIdentification": "MI",
"entityIdentificationValue": "00000000000",
"entityLastName": "DOE"
}
],
"subscriber": {
"dateOfBirth": "2002-12-31"
}
}
],
"coordinationOfBenefits": {
"classification": "CobInstanceExistsPrimacyDetermined",
"instanceExists": true,
"primacyDetermined": true,
"coverageOverlap": true,
"benefitOverlap": true
},
"dependent": {
"firstName": "JORDAN",
"lastName": "DOE",
"gender": "M",
"dateOfBirth": "2012-12-31",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
}
},
"errors": [],
"meta": {
"applicationMode": "production",
"traceId": "01JDQFT4W3KTWZNTADEZ55BFFX",
"outboundTraceId": "01JDQFT4W3KTWZNTADEZ55BFFX"
},
"payer": {
"name": "Aetna",
"identification": "AETNA-USH"
},
"provider": {
"providerName": "ACME Health Services",
"entityType": "Non-Person Entity",
"npi": "1999999984"
},
"subscriber": {
"memberId": "W000000000",
"firstName": "JOHN",
"lastName": "DOE",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
Check out our coordination of benefits docs for a complete API reference, test requests and responses, and more.
Get started with coordination of benefits checks today
Add coordination of benefits checks to your claims processing workflow to increase claim acceptance rates, reduce patient billing surprises, and help providers get paid faster.
Contact us to learn more and speak to the team.
When a patient has active coverage with multiple health plans, providers need to know which plan is primarily responsible for paying claims. The process of figuring out which payers to bill and in what order is called coordination of benefits (COB), and it’s one of the leading causes of claim denials and delayed payments in healthcare.
Providers often don’t know patients have overlapping coverage until after a claim is rejected or denied with a message that doesn’t contain any information about where to resubmit the claim:
[PATTERN 28937] REJECT - THIS PATIENT HAS PRIMARY INSURANCE COVERAGE WITH ANOTHER CARRIER WITH EFFECTIVE DATE 1/01/2025. PLEASE RESUBMIT AS ELECTRONIC SECONDARY ONCE ADJUDICATED BY THE PRIMARY PAYOR.
Back at square one, providers must contact patients to ask about additional coverage and then confirm the new plan’s primacy for payment (usually by calling the payer) before they can resubmit. This tedious process delays payments to providers for months and creates stressful billing surprises for patients.
To help streamline claims processing, we’re excited to announce that you can now perform COB checks through our developer-friendly Coordination of Benefits Check API or user-friendly online form. COB checks help you proactively identify additional coverage for patients and confidently submit claims to the right payer the first time.
Reduce claim denials with coordination of benefits checks
The best practice is to run COB checks for all new patients who have coverage through one of Stedi’s supported COB payers. In seconds, you can determine if the patient has coverage with other supported COB payers, whether there is coverage overlap, and which plan is responsible for paying for services (primacy).
![](https://framerusercontent.com/images/CrmlcZQh83j5ZezhGjCWy2D1rso.png)
Here’s how COB checks work:
You submit a COB check through Stedi’s COB form or COB check API with information for one of the patient's known health plans. The information required is similar to a standard eligibility check – first name, last name, DOB, and either member ID or SSN – and you should first run a real-time eligibility check to ensure that the member’s details are accurate.
Stedi searches a database of eligibility data from regional and national plans. This database has 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 at least weekly to ensure accuracy.
Stedi synchronously returns summary information about each of the patient’s active health plans and whether there is coverage overlap. When there is coverage overlap, Stedi returns the responsibility sequence number for each payer (such as primary or secondary), if that can be determined.
Once you receive the results, you should send real-time eligibility checks to each additional payer to verify coverage and view the full details of the patient’s plan before submitting claims.
Real-time COB information in developer-friendly JSON
The following example COB response shows information for a dependent covered by multiple health plans through their parents’ policies. The COB check was submitted to Aetna with a service type code of 30
(Health Benefit Plan Coverage) and a service date of 2024-11-27
.
The response indicates the following:
Active coverage: The patient has active coverage with Aetna for medical care, pharmacy, and vision services. This is indicated by the three objects in the
benefitsInformation
array with the code set to1
, which indicatesActive Coverage
.Coverage overlap: The patient has overlapping coverage for medical care services between two health plans. This is indicated by the
benefitsInformation
object with its code set toR
.Primacy: The other health plan is Cigna, listed in
benefitsInformation.benefitsRelatedEntities
. Cigna is the primary payer for medical care services.COB instance: There is a COB instance for medical care services on the date of service provided in the request. This is indicated in the
coordinationOfBenefits
object.
Based on this response, you must send claims first to Cigna as the primary payer for medical care services. Once Cigna adjudicates the claim, you can send another claim, if necessary, to Aetna as the secondary payer (subject to specific payer claims processing rules).
Before sending any claim(s) to Cigna, you should first send a separate eligibility check to Aetna to verify coverage status and confirm the full details of Aetna’s coverage.
{
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"88"
],
"serviceTypes": [
"Pharmacy"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"AL"
],
"serviceTypes": [
"Vision (Optometry)"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "R",
"name": "Other or Additional Payor",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"coordinationOfBenefits": "2024-07-01"
},
"benefitsRelatedEntities": [
{
"entityIdentifier": "Primary Payer",
"entityName": "CIGNA",
"entityIdentification": "PI",
"entityIdentificationValue": "1006"
},
{
"entityIdentifier": "Insured or Subscriber",
"entityFirstName": "JOHN",
"entityMiddleName": "X",
"entityIdentification": "MI",
"entityIdentificationValue": "00000000000",
"entityLastName": "DOE"
}
],
"subscriber": {
"dateOfBirth": "2002-12-31"
}
}
],
"coordinationOfBenefits": {
"classification": "CobInstanceExistsPrimacyDetermined",
"instanceExists": true,
"primacyDetermined": true,
"coverageOverlap": true,
"benefitOverlap": true
},
"dependent": {
"firstName": "JORDAN",
"lastName": "DOE",
"gender": "M",
"dateOfBirth": "2012-12-31",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
}
},
"errors": [],
"meta": {
"applicationMode": "production",
"traceId": "01JDQFT4W3KTWZNTADEZ55BFFX",
"outboundTraceId": "01JDQFT4W3KTWZNTADEZ55BFFX"
},
"payer": {
"name": "Aetna",
"identification": "AETNA-USH"
},
"provider": {
"providerName": "ACME Health Services",
"entityType": "Non-Person Entity",
"npi": "1999999984"
},
"subscriber": {
"memberId": "W000000000",
"firstName": "JOHN",
"lastName": "DOE",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
Check out our coordination of benefits docs for a complete API reference, test requests and responses, and more.
Get started with coordination of benefits checks today
Add coordination of benefits checks to your claims processing workflow to increase claim acceptance rates, reduce patient billing surprises, and help providers get paid faster.
Contact us to learn more and speak to the team.
When a patient has active coverage with multiple health plans, providers need to know which plan is primarily responsible for paying claims. The process of figuring out which payers to bill and in what order is called coordination of benefits (COB), and it’s one of the leading causes of claim denials and delayed payments in healthcare.
Providers often don’t know patients have overlapping coverage until after a claim is rejected or denied with a message that doesn’t contain any information about where to resubmit the claim:
[PATTERN 28937] REJECT - THIS PATIENT HAS PRIMARY INSURANCE COVERAGE WITH ANOTHER CARRIER WITH EFFECTIVE DATE 1/01/2025. PLEASE RESUBMIT AS ELECTRONIC SECONDARY ONCE ADJUDICATED BY THE PRIMARY PAYOR.
Back at square one, providers must contact patients to ask about additional coverage and then confirm the new plan’s primacy for payment (usually by calling the payer) before they can resubmit. This tedious process delays payments to providers for months and creates stressful billing surprises for patients.
To help streamline claims processing, we’re excited to announce that you can now perform COB checks through our developer-friendly Coordination of Benefits Check API or user-friendly online form. COB checks help you proactively identify additional coverage for patients and confidently submit claims to the right payer the first time.
Reduce claim denials with coordination of benefits checks
The best practice is to run COB checks for all new patients who have coverage through one of Stedi’s supported COB payers. In seconds, you can determine if the patient has coverage with other supported COB payers, whether there is coverage overlap, and which plan is responsible for paying for services (primacy).
![](https://framerusercontent.com/images/CrmlcZQh83j5ZezhGjCWy2D1rso.png)
Here’s how COB checks work:
You submit a COB check through Stedi’s COB form or COB check API with information for one of the patient's known health plans. The information required is similar to a standard eligibility check – first name, last name, DOB, and either member ID or SSN – and you should first run a real-time eligibility check to ensure that the member’s details are accurate.
Stedi searches a database of eligibility data from regional and national plans. This database has 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 at least weekly to ensure accuracy.
Stedi synchronously returns summary information about each of the patient’s active health plans and whether there is coverage overlap. When there is coverage overlap, Stedi returns the responsibility sequence number for each payer (such as primary or secondary), if that can be determined.
Once you receive the results, you should send real-time eligibility checks to each additional payer to verify coverage and view the full details of the patient’s plan before submitting claims.
Real-time COB information in developer-friendly JSON
The following example COB response shows information for a dependent covered by multiple health plans through their parents’ policies. The COB check was submitted to Aetna with a service type code of 30
(Health Benefit Plan Coverage) and a service date of 2024-11-27
.
The response indicates the following:
Active coverage: The patient has active coverage with Aetna for medical care, pharmacy, and vision services. This is indicated by the three objects in the
benefitsInformation
array with the code set to1
, which indicatesActive Coverage
.Coverage overlap: The patient has overlapping coverage for medical care services between two health plans. This is indicated by the
benefitsInformation
object with its code set toR
.Primacy: The other health plan is Cigna, listed in
benefitsInformation.benefitsRelatedEntities
. Cigna is the primary payer for medical care services.COB instance: There is a COB instance for medical care services on the date of service provided in the request. This is indicated in the
coordinationOfBenefits
object.
Based on this response, you must send claims first to Cigna as the primary payer for medical care services. Once Cigna adjudicates the claim, you can send another claim, if necessary, to Aetna as the secondary payer (subject to specific payer claims processing rules).
Before sending any claim(s) to Cigna, you should first send a separate eligibility check to Aetna to verify coverage status and confirm the full details of Aetna’s coverage.
{
"benefitsInformation": [
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"88"
],
"serviceTypes": [
"Pharmacy"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "1",
"name": "Active Coverage",
"serviceTypeCodes": [
"AL"
],
"serviceTypes": [
"Vision (Optometry)"
],
"benefitsDateInformation": {
"benefitBegin": "2023-03-01"
},
"subscriber": {
"dateOfBirth": "2002-02-27"
}
},
{
"code": "R",
"name": "Other or Additional Payor",
"serviceTypeCodes": [
"1"
],
"serviceTypes": [
"Medical Care"
],
"benefitsDateInformation": {
"coordinationOfBenefits": "2024-07-01"
},
"benefitsRelatedEntities": [
{
"entityIdentifier": "Primary Payer",
"entityName": "CIGNA",
"entityIdentification": "PI",
"entityIdentificationValue": "1006"
},
{
"entityIdentifier": "Insured or Subscriber",
"entityFirstName": "JOHN",
"entityMiddleName": "X",
"entityIdentification": "MI",
"entityIdentificationValue": "00000000000",
"entityLastName": "DOE"
}
],
"subscriber": {
"dateOfBirth": "2002-12-31"
}
}
],
"coordinationOfBenefits": {
"classification": "CobInstanceExistsPrimacyDetermined",
"instanceExists": true,
"primacyDetermined": true,
"coverageOverlap": true,
"benefitOverlap": true
},
"dependent": {
"firstName": "JORDAN",
"lastName": "DOE",
"gender": "M",
"dateOfBirth": "2012-12-31",
"relationToSubscriber": "Child",
"relationToSubscriberCode": "19",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
}
},
"errors": [],
"meta": {
"applicationMode": "production",
"traceId": "01JDQFT4W3KTWZNTADEZ55BFFX",
"outboundTraceId": "01JDQFT4W3KTWZNTADEZ55BFFX"
},
"payer": {
"name": "Aetna",
"identification": "AETNA-USH"
},
"provider": {
"providerName": "ACME Health Services",
"entityType": "Non-Person Entity",
"npi": "1999999984"
},
"subscriber": {
"memberId": "W000000000",
"firstName": "JOHN",
"lastName": "DOE",
"address": {
"address1": "1 MAIN ST.",
"city": "NEW YORK",
"state": "NY",
"postalCode": "10000"
Check out our coordination of benefits docs for a complete API reference, test requests and responses, and more.
Get started with coordination of benefits checks today
Add coordination of benefits checks to your claims processing workflow to increase claim acceptance rates, reduce patient billing surprises, and help providers get paid faster.
Contact us to learn more and speak to the team.
Share
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.
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.
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.