Coordination of Benefits Check

Submit a coordination of benefits (COB) check in JSON format

POST/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).

  1. 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.
  2. 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.
  3. 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.

Authorization
RequiredHeader

A Stedi API Key for authentication.

Body

application/json
dependent
Object

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 for Jon Doe will fail because the name doesn't match the payer's records.
Show attributes
dateOfBirth
dependent.dateOfBirth
StringRequiredRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The dependent's date of birth.

firstName
dependent.firstName
StringRequiredLength: 1 - 35

The dependent's first name.

lastName
dependent.lastName
StringRequiredLength: 1 - 60

The dependent's last name.

ssn
dependent.ssn
StringRegex pattern: ^\d{9}$

The dependent's Social Security Number (SSN).

encounter
ObjectRequired

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.
Show attributes
beginningDateOfService
encounter.beginningDateOfService
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The beginning date of service. If you include this value, you must also include the endDateOfService.

dateOfService
encounter.dateOfService
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The date of service of the encounter.

endDateOfService
encounter.endDateOfService
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The end date of service. If you include this value, you must also include the beginningDateOfService.

serviceTypeCode
encounter.serviceTypeCode
String

The service type code for the encounter. If not provided, the default value is 30.

Possible values
30
provider
ObjectRequired

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).

Show attributes
firstName
provider.firstName
StringLength: 1 - 35

The provider's first name. This property is required if the provider is an individual.

lastName
provider.lastName
StringLength: 1 - 60

The provider's last name. This property is required if the provider is an individual.

npi
provider.npi
StringRequiredRegex pattern: ^\d{10}$
organizationName
provider.organizationName
StringLength: 1 - 60

The provider's business name.

subscriber
ObjectRequired

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 of Member Not Found errors. We strongly recommend first performing an Eligibility Check and using the memberId in the response to populate your COB check.
  • We recommend including the ssn property in addition to the memberId if possible. This allows Stedi to do an additional search for the patient when the memberId doesn't return a match.
  • Stedi can identify coverage overlap for the same payer if the member ID differs between the two coverages.
Show attributes
dateOfBirth
subscriber.dateOfBirth
StringRequiredRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The subscriber's date of birth.

firstName
subscriber.firstName
StringRequiredLength: 1 - 35

The patient's first name.

lastName
subscriber.lastName
StringRequiredLength: 1 - 60

The patient's last name.

memberId
subscriber.memberId
StringRegex pattern: ^[A-Za-z0-9-]+$Length: 1 - 80

The member ID for the subscriber's insurance policy.

You must provide at least one of the memberId or ssn properties in the request. However, we recommend including both if possible. This allows Stedi to do an additional search for patient information when the memberId doesn't return a match.

ssn
subscriber.ssn
StringRegex pattern: ^\d{9}$

The subscriber's Social Security Number (SSN).

You must provide at least one of the memberId or ssn properties in the request. However, we recommend including both if possible. This allows Stedi to do an additional search for patient information when the memberId doesn't return a match.

tradingPartnerServiceId
StringRequiredLength: 1 - 80

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).

Response

application/json

CoordinationOfBenefits 200 response

benefitsInformation
Array of Objects

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
Array item
benefitsDateInformation
benefitsInformation[].benefitsDateInformation
Object

Dates associated with the benefits. All properties may either be expressed as a single date. Dates listed only apply to the benefitsInformation object in which this benefitsDateInformation is provided.

Show attributes
benefitBegin
benefitsInformation[].benefitsDateInformation.benefitBegin
String

The date the benefits begin.

benefitEnd
benefitsInformation[].benefitsDateInformation.benefitEnd
String

The date the benefits end.

coordinationOfBenefits
benefitsInformation[].benefitsDateInformation.coordinationOfBenefits
String

Date or date range used for coordination of benefits instance.

periodEnd
benefitsInformation[].benefitsDateInformation.periodEnd
String

The end of the coverage overlap. Included when Stedi finds an instance of coverage overlap.

periodStart
benefitsInformation[].benefitsDateInformation.periodStart
String

The start of the coverage overlap Included when Stedi finds an instance of coverage overlap.

planBegin
benefitsInformation[].benefitsDateInformation.planBegin
String

Coverage start date. If multiple coverage start dates exist due to different start dates on various coverage/service types, this date applies to the medical coverage.

benefitsRelatedEntities
benefitsInformation[].benefitsRelatedEntities
Array of Objects

Contains either information about another payer with which the patient has coverage or information about the subscriber associated with the additional health plan.

For example, if you submit a COB check for a dependent to Cigna and Stedi finds additional coverage through Aetna, the benefitsRelatedEntity would include subscriber details for the Aetna plan.

Array item
entityFirstname
benefitsInformation[].benefitsRelatedEntities[].entityFirstname
String

The entity's first name, when the entity is a subscriber.

entityIdentification
benefitsInformation[].benefitsRelatedEntities[].entityIdentification
String

Code identifying the type of benefitsInformation.entityIdentificationValue. This can be either MI - Member ID or PI - Payer ID.

Possible values
MI
PI
entityIdentificationValue
benefitsInformation[].benefitsRelatedEntities[].entityIdentificationValue
String

The identification number for the entity, qualified by the code in entityIdentification. The ID returned in this property is proprietary to our COB check product, so you can't use it as the Payer ID for eligibility checks or other API requests to Stedi. It likely doesn't match the Payer IDs listed in the Payer Network.

entityIdentifier
benefitsInformation[].benefitsRelatedEntities[].entityIdentifier
String

Identifies the type of entity. This can either be a type of payer or the subscriber associated with the COB coverage.

Note that Stedi uses Payer either when there is no COB instance or when Stedi is unable to determine primacy.

Possible values
Insured or Subscriber
Payer
Primary Payer
Secondary Payer
Tertiary Payer
entityLastname
benefitsInformation[].benefitsRelatedEntities[].entityLastname
String

The entity's last name, when the entity is a subscriber.

entityMiddlename
benefitsInformation[].benefitsRelatedEntities[].entityMiddlename
String

The entity's middle name or initial, when the entity is a subscriber.

entityName
benefitsInformation[].benefitsRelatedEntities[].entityName
String

The payer's business name, when the entity is a payer.

code
benefitsInformation[].code
String

The COB benefits information code.

Stedi returns entries with benefitsInformation.code = 1 for every active coverage type for each health plan.

Stedi returns entries with benefitsInformation.code = R when overlapping coverage exists within the date of service provided in the COB check.

Possible values
1
6
R
V
name
benefitsInformation[].name
String

The name of the benefit information code.

Possible values
Active Coverage
Inactive
Other or Additional Payor
Cannot Process
serviceTypeCodes
benefitsInformation[].serviceTypeCodes
Array of Strings

Code identifying the type of services.

Possible values
1
30
33
35
47
serviceTypes
benefitsInformation[].serviceTypes
Array of Strings

The full names of the service type codes.

Possible values
Medical Care
Health Benefit Plan Coverage
Chiropractic
Dental Care
Hospital
subscriber
benefitsInformation[].subscriber
Object

Information about the primary policyholder for the insurance plan related to this benefitsInformation instance.

Show attributes
dateOfBirth
benefitsInformation[].subscriber.dateOfBirth
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The subscriber's date of birth.

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).

Show attributes
benefitOverlap
coordinationOfBenefits.benefitOverlap
Boolean

If set to true, the COB response contains benefits overlap. A benefits overlap indicates that the patient has active coverage from two or more payers for the same service type code, including the subtypes of medical coverage.

classification
coordinationOfBenefits.classification
String

The classification for the benefits that have been discovered in the COB response. Stedi returns one of the following values: - CobInstanceExistsPrimacyDetermined: COB Instance Exists and Primacy was determined - CobInstanceExistsPrimacyUndetermined: COB Instance Exists and Primacy was NOT determined - CoverageOverlapNoBenefitOverlap: Coverage Overlap detected with no Benefit Overlap - CoverageOverlapExistsNotSubjectToCob: Coverage Overlap exists and is not subject to COB - MemberFoundNoCob: Member found, no COB found

coverageOverlap
coordinationOfBenefits.coverageOverlap
Boolean

If set to true, the COB response contains a coverage overlap, meaning that the patient has active coverage with two or more payers during the service date submitted in the COB request. - Coverage overlap can be for coverages from the same payer if the member ID is different between the two coverages. - A coverage overlap is necessary for a COB instance to exist. - A coverage overlap can exist without there being a COB instance if either of the two coverages is not subject to COB for any reason.

instanceExists
coordinationOfBenefits.instanceExists
Boolean

If set to true, the COB response contains at least one coordination of benefits instance.

primacyDetermined
coordinationOfBenefits.primacyDetermined
Boolean

If set to true, Stedi was able to determine the primary payer for the patient. If Stedi was unable to determine the primary payer, you must contact the payers directly to determine primacy.

dependent
Object

Information about the dependent listed in the original COB request.

Show attributes
aaaErrors
dependent.aaaErrors
Array of Objects

When a COB request fails, the response contains one or more AAA errors that specify the reasons for the rejection and any recommended follow-up actions.

Array item
code
dependent.aaaErrors[].code
String

The error code. Visit Eligibility troubleshooting for a complete list of all possible error codes and descriptions.

Payers may sometimes return other non-compliant values.

Possible values
04
15
33
35
41
description
dependent.aaaErrors[].description
String

The error description.

field
dependent.aaaErrors[].field
String

The error type, AAA.

followupAction
dependent.aaaErrors[].followupAction
String

Allowed actions you can take, based on the rejection reason code. For example Please Correct and Resubmit.

Payers may sometimes return other non-compliant values.

Possible values
Please Correct and Resubmit
Resubmission Not Allowed
Please Resubmit Original Transaction
Resubmission Allowed
Do Not Resubmit; Inquiry Initiated to a Third Party
location
dependent.aaaErrors[].location
String

The location of the error within the original X12 EDI response.

possibleResolutions
dependent.aaaErrors[].possibleResolutions
String

Information to help you correct the error.

We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. Don't build programmatic logic that depends on matching these strings exactly.

address
dependent.address
Object

The dependent's address.

Show attributes
address1
dependent.address.address1
StringLength: 1 - 55

The first line of the address.

address2
dependent.address.address2
StringLength: 1 - 55

The second line of the address.

city
dependent.address.city
StringLength: 2 - 30

The city.

countryCode
dependent.address.countryCode
StringLength: 2

The two-letter country code from Part 1 of ISO 3166.

countrySubDivisionCode
dependent.address.countrySubDivisionCode
StringLength: 1 - 3

The country subdivision code from Part 2 of ISO 3166.

postalCode
dependent.address.postalCode
StringLength: 5 - 9

The United States or Canadian postal code, excluding punctuation and blanks.

state
dependent.address.state
String

The US state or Canadian province code with unknown option. For example, TN for Tennessee or NB for New Brunswick.

Payers may sometimes return other non-compliant values.

Possible values
NL
PE
NS
NB
QC
birthSequenceNumber
dependent.birthSequenceNumber
String

The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date.

dateOfBirth
dependent.dateOfBirth
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The dependent's date of birth.

firstName
dependent.firstName
String

The dependent's first name.

gender
dependent.gender
String

Code indicating the dependent's gender. Can be F - Female, M - Male, or U - Unknown.

Possible values
M
F
U
groupNumber
dependent.groupNumber
String

The group number associated with the subscriber's insurance policy.

lastName
dependent.lastName
String

The dependent's last name.

memberId
dependent.memberId
String

The member ID for the subscriber's insurance policy.

middleName
dependent.middleName
String

The dependent's middle name or initial.

relationToSubscriber
dependent.relationToSubscriber
String

The name of the relationToSubscriberCode. For example, Child when the code is 19.

Possible values
Spouse
Child
Employee
Unknown
Organ Donor
relationToSubscriberCode
dependent.relationToSubscriberCode
String

For the dependent, this can be 01 - Spouse, 19 - Child, 20 Employee, 21 - Unknown, 39 - Organ Donor, 40 - Cadaver Donor, 53 - Life Partner, or G8 - Other Relationship.

Possible values
01
19
20
21
39
ssn
dependent.ssn
StringRegex pattern: ^\d{9}$

The dependent's Social Security Number (SSN).

errors
Array of Objects

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.

Array item
code
errors[].code
String

The error code. Visit Eligibility troubleshooting for a complete list of all possible error codes and descriptions.

Payers may sometimes return other non-compliant values.

Possible values
04
15
33
35
41
description
errors[].description
String

The error description.

field
errors[].field
String

The error type, AAA.

followupAction
errors[].followupAction
String

Allowed actions you can take, based on the rejection reason code. For example Please Correct and Resubmit.

Payers may sometimes return other non-compliant values.

Possible values
Please Correct and Resubmit
Resubmission Not Allowed
Please Resubmit Original Transaction
Resubmission Allowed
Do Not Resubmit; Inquiry Initiated to a Third Party
location
errors[].location
String

The location of the error within the original X12 EDI response.

possibleResolutions
errors[].possibleResolutions
String

Information to help you correct the error.

We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. Don't build programmatic logic that depends on matching these strings exactly.

meta
Object

Metadata about the response. Stedi uses this data for tracking and troubleshooting.

Show attributes
applicationMode
meta.applicationMode
String

The type of data in the request. Stedi uses production to identify transactions processed in our live clearinghouse environment.

outboundTraceId
meta.outboundTraceId
String

The value provided in the submitterTransactionIdentifier property in the original COB request.

traceId
meta.traceId
String

A unique ID Stedi assigns to the COB request.

payer
Object

Information about the payer listed in the COB request.

Show attributes
name
payer.name
String

The payer's name, such as CIGNA.

payerIdentification
payer.payerIdentification
String

The tradingPartnerServiceId (Payer ID) you used to identify the payer 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.
Show attributes
planBegin
planDateInformation.planBegin
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

When the patient's health plan coverage begins.

planEnd
planDateInformation.planEnd
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

When the patient's health plan coverage ends.

provider
Object

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.

Show attributes
aaaErrors
provider.aaaErrors
Array of Objects

When a COB request fails, the response contains one or more AAA errors that specify the reasons for the rejection and any recommended follow-up actions.

Array item
code
provider.aaaErrors[].code
String

The error code. Visit Eligibility troubleshooting for a complete list of all possible error codes and descriptions.

Payers may sometimes return other non-compliant values.

Possible values
04
15
33
35
41
description
provider.aaaErrors[].description
String

The error description.

field
provider.aaaErrors[].field
String

The error type, AAA.

followupAction
provider.aaaErrors[].followupAction
String

Allowed actions you can take, based on the rejection reason code. For example Please Correct and Resubmit.

Payers may sometimes return other non-compliant values.

Possible values
Please Correct and Resubmit
Resubmission Not Allowed
Please Resubmit Original Transaction
Resubmission Allowed
Do Not Resubmit; Inquiry Initiated to a Third Party
location
provider.aaaErrors[].location
String

The location of the error within the original X12 EDI response.

possibleResolutions
provider.aaaErrors[].possibleResolutions
String

Information to help you correct the error.

We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. Don't build programmatic logic that depends on matching these strings exactly.

npi
provider.npi
StringRegex pattern: ^\d{10}$
providerFirstName
provider.providerFirstName
String

The provider's first name. This applies to providers that are an individual.

providerName
provider.providerName
String

The provider's last name. This applies to providers that are an individual.

providerOrgName
provider.providerOrgName
String

The provider's organization name.

Information about the primary policyholder for the insurance plan listed in the COB request.

Show attributes
aaaErrors
subscriber.aaaErrors
Array of Objects

When a payer rejects your request, the response contains one or more AAA errors that specify the reasons for the rejection and any recommended follow-up actions.

Array item
code
subscriber.aaaErrors[].code
String

The error code. Visit Eligibility troubleshooting for a complete list of all possible error codes and descriptions.

Payers may sometimes return other non-compliant values.

Possible values
04
15
33
35
41
description
subscriber.aaaErrors[].description
String

The error description.

field
subscriber.aaaErrors[].field
String

The error type, AAA.

followupAction
subscriber.aaaErrors[].followupAction
String

Allowed actions you can take, based on the rejection reason code. For example Please Correct and Resubmit.

Payers may sometimes return other non-compliant values.

Possible values
Please Correct and Resubmit
Resubmission Not Allowed
Please Resubmit Original Transaction
Resubmission Allowed
Do Not Resubmit; Inquiry Initiated to a Third Party
location
subscriber.aaaErrors[].location
String

The location of the error within the original X12 EDI response.

possibleResolutions
subscriber.aaaErrors[].possibleResolutions
String

Information to help you correct the error.

We periodically update this guidance, so these strings may change at any time and may differ between eligibility responses. Don't build programmatic logic that depends on matching these strings exactly.

address
subscriber.address
Object

The subscriber's address.

Show attributes
address1
subscriber.address.address1
StringLength: 1 - 55

The first line of the address.

address2
subscriber.address.address2
StringLength: 1 - 55

The second line of the address.

city
subscriber.address.city
StringLength: 2 - 30

The city.

countryCode
subscriber.address.countryCode
StringLength: 2

The two-letter country code from Part 1 of ISO 3166.

countrySubDivisionCode
subscriber.address.countrySubDivisionCode
StringLength: 1 - 3

The country subdivision code from Part 2 of ISO 3166.

postalCode
subscriber.address.postalCode
StringLength: 5 - 9

The United States or Canadian postal code, excluding punctuation and blanks.

state
subscriber.address.state
String

The US state or Canadian province code with unknown option. For example, TN for Tennessee or NB for New Brunswick.

Payers may sometimes return other non-compliant values.

Possible values
NL
PE
NS
NB
QC
birthSequenceNumber
subscriber.birthSequenceNumber
String

The number assigned to each family member born with the same birth date, such as twins or triplets. Indicates the birth order when there are multiple births associated with the provided birth date.

dateOfBirth
subscriber.dateOfBirth
StringRegex pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

The subscriber's date of birth.

firstName
subscriber.firstName
String

The subscriber's first name.

gender
subscriber.gender
String

Code indicating the subscriber's gender. Can be F- Female, M - Male, or U - Unknown.

Possible values
M
F
U
groupNumber
subscriber.groupNumber
String

The group number associated with the subscriber's insurance policy.

lastName
subscriber.lastName
String

The subscriber's last name.

memberId
subscriber.memberId
String

The member ID for the subscriber's insurance policy.

middleName
subscriber.middleName
String

The subscriber's middle name or initial.

ssn
subscriber.ssn
StringRegex pattern: ^\d{9}$

The subscriber's Social Security Number (SSN).