Q&A 2022 Dev Community



Please see the API FAQs section for tips and solutions to some of the most common questions asked by customers, developer community, and internal staff about the use of the Change Healthcare API.

How and from where I can get the controlNumber for Claim and Eligibility API?

The controlNumber is a random or auto-generated number that you create and send to us for each transaction. That unique number helps with any troubleshooting and tracking of the transaction when you are 'Live' with us.

Here is the definition from our documentation from our developers portal:
ControlNumber — a single arbitrary value that the requestor defines in the initial Eligibility API transaction request, perhaps by a random number generator. All parties to the Eligibility transaction refer to this number to ensure accurate responses and completion of the exchange.
ControlNumbers must be defined as a nine-digit unsigned numeric value.

Why do I see an NPI error when I run the Eligibility API endpoint?

You are getting the NPI error because you sent the TaxId in the incorrect field. You sent it in the 'referenceIdentification' but you should also see the field labeled 'taxId'. If you use that field, it should work.

Is it possible to proceed without this Provider ID if we submit the request with just the Provider Name and NPI?

Yes, you can submit an Eligibility request with just the provider name and NPI. The Bare Minimum Eligibility Request example does not include it. Most payers respond with minimum amount of information.

What is reassociationKey? And how can we associate with response if we get some error from API?

The reassociationKey is a tracking number associated with the eligibility transaction so that we can look up the transaction being sent.

Is there a way to reduce the number of requests by clubbing the service types together? Any idea which payers allow that and which don't?

We do not know which payers allow more than one service type code. However, we recommend no more than two in a single request.

In the Provider object, if we are submitting on behalf of a specific provider within a practice, can we still use firstName and lastName? Or do we have to use OrganizationName?

You can use firstName and lastName.

Is the gender field required for the subscriber object? What if the subscriber’s gender does not fall into M or F?

It is not a required field, however, depending on the request — for example, maternity benefits — would only apply to a female. If the patient is not specifying a gender, leave it blank.

What exactly is required for a Bare Minimum request?

The companion guide (X12) will identify the fields that are required and which are situational. The Bare Minimum samples give you an idea of what you can send in as the bare minimum amount of data in order to get a response, providing the patient has coverage with that payer. ​​

Is there a place where I can get a list has the more universal payer ID that I am looking for?

Here is the payer list for our API solutions.

How many line items can be on a single claim?

A single professional claim supports up to 50 service line items (serviceLine).

Are there guidelines for predicting the rate of unique claims submitted for a practice?

Rates of unique claims are isolated to each individual provider. Every provider is different. Whenever you render a medical service, file a claim.

Where can we include the information about the primary claim on the API request for the secondary claim?

Send any payer-specific information in the otherPayerName object. Use otherSubscriberInformation to convey details for the member specifically. For more information see.

Are there any other fields in the request body to be aware of?

Yes, see request contents.

If I wanted to send an EOB from the primary payer with the claim, how would I go about doing that?

Secondary claim information goes in to loop 2320. We do not have any documentation on what is required for secondary claims since that is a billing-specific question. Also, if you want to send the EOB to the payer you need to work with them directly to determine how you want those submitted. To learn more about Billing or Invoice Assistance, check out the last page of the Support & Escalation Guide.

What would be the correct co-insurance amount for Professional (Physician) Visit — Office, for example, for Professional (Physician) Visit — Office but one says 0% and the other says 10%?

The serviceTypes: Professional (Physician) Visit — Office is the correct amount. The other serviceType codes are not Professional Visit and would have a higher % based on that payer's response.

Why is the Claim Submission API is giving 400 error for the test values?

Error 400 means, there is a missing or invalid data or parameters in the request. Here is a listing of HTTP error responses.

Can I get the .csv to the Eligibility Payer Guide comprising the Payer Name, Payer ID, and X12 requirements?

Here is a link to the X12 site where you can get the X12 Technical Report (also known as TR3) that give you the specification and information around each healthcare transaction. You have to license this from X12.
However there is a CMS companion guide that can be downloaded.

I am retrieving the claim's status and in the sandbox response returns an array of claims, how can I get the status for a specific claim? Do I use the checkNumber and trackingNumber properties to find the claim? (I submit the claim via Professional API and have saved the traceId (from meta). Is this the correct number to save so I can look for it in the Status API response?)

Regarding the Claim Status API, match all of this information closely to the actual submission:

"providers": [


            "organizationName": "Joe's Clinic",

            "taxId": "822777888",

            "providerType": "BillingProvider"



            "organizationName": "Joe's Clinic",

            "npi": "1234567890",

            "providerType": "ServiceProvider"



    "subscriber": {

        "memberId": "ABC123456",

        "firstName": "GEORGE",

        "lastName": "DOE",

       "gender": "M",

        "dateOfBirth": "18800101",

        "groupNumber": "1987654"


    "encounter": {

        "beginningDateOfService": "20220202",

        "endDateOfService": "20220202",

        "submittedAmount": "294",

        "trackingNumber": "ABC1234567"

You can use the trackingNumber in any way you want. For example, in the Claims API specification, the patientControlNumber field is used to track a claim from creation through payment. You can use the trackingNumber field to tie specific transactions to each other. This tracking number is not submitted on the claim, but it is a way for you to identify the specific Claim Status request you are submitting.
Best practice would be to ensure these are the same so any claim status requests can immediately be linked back to the original submission.

How do we present ConnectCenter in an iframe in our site?

There is no iFrame capability for ConnectCenter right now. If you want to give your customers access to ConnectCenter, let us know during your implementation and we will set it up accordingly.

Is there a webhook that tells us when there is a change in status of a claim? We could have thousands of outstanding claims at a time, and rather than regularly checking a claim's status with an API call, it might be beneficial for us if we could get notified when there is an update.

We do not offer webhooks for this information. You would need to pull the payer report information we send through the responses and reports API. Here is a list of available reports.

Can we make multiple claims in one API call? If so, which endpoint should we use?

This is not possible through the current APIs. Only single submission is allowed. You can submit batch through SFTP but the batch file would need to be in X12 formats. Here is documentation that describes the available reports.

The Contents of the Claim Status API Request page states: Different payers have different recommendations for what you must include in a request, for example, Blue Cross affiliates such as BCBSNC require the NPI (provider identifier) in EDI 276 requests, and recommends adding the Patient Account Number (in Loop 2200D, element REF01) to associate submitted requests to correct responses. When we use the sandbox, how is validation completed? Are you hitting sandboxes of each payer? If not, how can we validate that we have all of the fields each payer requires?

The sandbox returns a canned response based on the received data. There is not a validation check or confirmation of specifically required information. These checks would only happen in production. You would need to manually review the companion guides offered by the specific payers to confirm what is required for each.

I am new to Change Healthcare and health-tech in general. My provider is in network with Aetna and would like to submit claims using Change Healthcare APIs. When I try to enroll a payer in Connect Center, I find many different payer names with the word Aetna in it.

Which payer should I select? I want to use Change Healthcare APIs for Eligibility, Claims, Claim Status, and ERA. For example, most payers require enrollment to get ERAs through Connect Center. In this case, if our provider is in network with Aetna, which of the above Aetnas I enroll with?

The best way to know which payer to submit claims to, is to look at the back of the insurance card. That ID should correlate to the Payer ID field.
If you do not have any other identifiable information for Aetna, such as if it is a part of a Better Health plan or an address, use the AETNA/60054 payer IDs.

What is Y, N, U, and W?

  • 'Y' is In-Network
  • 'N' is Out-Network
  • 'U' is Unknown
  • 'W' is Not Applicable
    When benefits are the same regardless of whether they are in or out of network or a plan network does not apply.

I am currently doing FE testing in a staging environment for a client using Change Healthcare to pull up information for users that already have a healthcare plan. I found the sandbox data that can be used, but is there something similar outside of sandbox? I just need to be able to get some sort of data back in order to properly test that the functionality is working, but I would need a user that has a valid member and group ID.

Once you are contracted with Change Healthcare, the implementation team can work with you on possible testing scenarios depending on the internal Change Healthcare clearinghouse your transactions are assigned.

In the /WebMD_Eligibility_002/Request_HTML.aspx endpoint, how do we know about the Annual Maximum using API, how do we know about the Benefits Remaining using API, how do we know about the Deductible Remaining using API?

Our Eligibility API provides you the connectivity to our medical network where we will send your request to the payer, when the payer responds, we will send that information back to you.

  1. Visit.
  2. Click the API References tab and click Eligibility and Claims in the left navigation.
  3. Click the Eligibility API hyperlink.
  4. Clicking the Guides tab provides you documentation and information on our APIs.
  5. Scroll down to the Medical Network Eligibility V3 section.
  6. Click Eligibility V3 Getting Started — this shows the contents of request and response.
    You can view the financial information (deductibles, copays, coinsurance).

Find more information here.

The sandbox requires pre-defined groupNumber value but it need not be sent. If you do, it must be one of the accepted pre-defined values, but it is optional. For integration, we need to give QA a way to test and pass one of the pre-defined values. Is it ok to remove it from being sent, what are the pros and cons of doing this in production?

From the TR3 document for the 270/271 transactions, use the Group or Policy Number code only if you cannot determine if the number is a Group Number or a Policy Number. Use codes IG or 6P when they can be determined.
Group numbers are usually tied to a dependent's information on an insurance card. There should not be an issue if you do not have it.

The individualRelationshipCode field did not exist before, is it an optional field in production? (I know it's optional in the sandbox because I've never sent it and the calls worked). Should this field be added to the call and what are its pros and cons?

This is related to dependent's information, the following from the TR3:
Individual Relationship Code M 1 ID 2/2
Code indicating the relationship between two individuals or entities
OD — 271B1_2100D_INS02__IndividualRelationshipCode
01 Spouse
19 Child
20 Employee
21 Unknown
301144 — Use this code if the relationship code of Unknown is valid for this person when received in the 837 2000C
OR — Use this code if relationship information is not available and if there is a need to use data elements
INS03, INS04, or INS17
39 Organ Donor
40 Cadaver Donor
53 Life Partner
G8 Other Relationship

How do we know about the Coverage Type using API? How do we know about the Plan Start and End Dates using API?

You can find out information if the patient has active coverage or not, and the start and end dates along with all of the financials (co-pay, coinsurance, deductibles, and so on) in, contents of Eligibility response.

I am developing an application that will replace the old paper forms and start using the Professional Claim API. I cannot find the Prior Authorization Number.

  1. Open the Professional Claims OpenAPI spec.
  2. Do a Ctrl + F and search for priorAuthoriationNumber (under ClaimSupplementalInformation) in the spec shown as below.
"priorAuthorizationNumber":{"type":"string","description":"Loop: 2300, Segment: REF, Element: REF02 and REF01=G1"}

I am using the nuxt3 framework inside the server API. For some reason, I am having an issue getting a response back on both my own server and when using the testing functionality on the change testing site with the inline try its features.

You do not have a value in the tradingPartnerServiceId field. Use in the request body from this sandbox values list. Scroll down to view different responses based on that tradingPartnerServiceId field.

I sometimes get back errors from the payer like: "Loop 2310B (rendering provider name) is missing, it is expected to be used when loop 2420A is used with the same value in every loop 2400". How can I send the rendering provider in loop 2310B?

See Provider object.

How I can make payer list more user friendly, I want to show it like the Change Healthcare has.

You can take the payer list (download it as a CSV file) and use it. For more information, see Payer Finder. Otherwise, you are limited to the the ConnectCenter view.

When I tried to request a token to the Responses and Reports/Eligibility API, I get an invalid access token error even though I am using the same access token that I used for the Claim Status request. Invalid access token for Claim Responses and Reports/Eligibility API (sandbox).

These are the most common reasons for this issue:

  • Access token might not be valid for the selected API or you might have selected one API to test but tried a different API.
  • You might not have followed the Postman instructions correctly.
  • You might have used your own data instead of the our predefine values and fields.
  • You might not have followed the OpenAPI specs (if you are using a different testing environment other than Postman).

To resolve, try requesting for new access token and sending the request again, if the issue persists, perform one of these:

  • If you are trying our API in sandbox, contact your sales representative for help or post a question in the developer community.
  • If you are a contracted customer, contact support.

For EDI claims, where can I put the session times in Loop 2400 for each individual line in the claim request when using the claims API?

In the developers portal's JSON-to-EDI mapping, scroll down to Loop 2400 to view different SV segments.

How to avoid the error "OTHER PAYER PRIMARY ID# IS MISSING OR INVALID" when the other payer doesn't have a payor ID and for which the claims are set up to be sent by paper?

The CPID for paper claims are listed here:

Professional 1500 form (Medical Claims):

  • Commercial CPID 4320
  • Medicaid CPID 4322
  • BCBS CPID 4323

Institutional UB-04 form (Hospital Claims):

  • Commercial CPID 4350
  • Medicaid CPID 4352
  • BCBS CPID 4353

As a partner with Change Healthcare, what is the process after providers complete EDI enrollment? Who updates enrollment status for the provider?

We update Enrollment Central to approved or denied after following up and receiving a status from the payer. There are some payers that send the status to the provider directly and it is on the provider to forward that to us so we can update Enrollment Central.
If you have more questions, reach out to our enrollment team directly.

For Registration / Payer Enrollment

How to manage adjustment codes from payer in claims API?

Codes, such as the following are returned by the payer and it is payer dependent. Not all payers return the same information. We have examples of what a typical response looks like in our documentation.

COContractual Obligations
CRCorrection and Reversals
OAOther Adjustments
PIPayer Initiated Reductions
PRPatient Responsibility

Do your APIs send the payer actual allowable amount for the claimed services in any variable, kindly tell the name of that variable (if any)?

The payer's actual allowable amount would come through in the 835 file from the payer. This is the payment file when the claim has been completely processed.

I am working on a potential new project and I'm considering using Change Health's JSON format.

  1. Do you have this mapping in a non-web form? CSV, DB table ... etc?

No, we do not have this in a non-web form. We provide this as a reference point, but the final authority is the TR3 documentation.

  1. I am looking for mapping for 835s or 999s, do you have them?

Check out the Responses and Reports v2 API, this goes well with the claims API. The responses will be the 999 reports. There are reports to show an 835. The actual 835 file stays in the format received from the payer. We also offer assistance in the workflow for the responses and reports API when you are in implementation.

  1. Do you happen to have any tools for transforming X12 — Change Healthcare JSON and/or Change Healthcare JSON X12?

We do not have any tools to do this. You can send the X12 format through API and JSON.

Does the Claim Submission or Claim Status APIs return Customer Account number from the Insurance record?

It will have the memberID for the patient, not necessarily their account number from the billing system.

Should Eligibility ID be used for checking eligibility, Claim Status ID for checking claim status, and Payer ID for submitting claims?

Yes, if Eligibility ID is not available, use the Payer ID.

How to download the payer list to a .csv file?

  1. Go here.
  2. Click Payers.
  3. Select the product you want to see or select 'all', and then click Search.
  4. Click Download CSV.

Is there a list of test Care Cost Estimate API requests that we can use to send API calls and determine all possible responses?

You can use the sandbox predefined fields and values there to test. The sandbox environment is made up of canned responses. We have created these for you to test or build out your own environment. So in theory, you can enter whatever you would like, but the responses will be the same.

Is there a way to retrieve the cost estimate data for multiple providers from a single API call?

No, the purpose is to provide the patient an out-of-pocket estimate for a specific procedure/service type code. Not for multiple providers.

How can I look up the Provider NPI, Trading Partner Service ID? The API expects these values.

  • Control Number: 000000001 — is set by you, this is a unique number that follows the transaction from start to finish
  • Trading Partner Service ID: serviceId — is a payer id, review a payer list
  • Provider organization name: happy_doctors_group and Provider npi: 0123456789 — Provided by you. For example, if you are checking eligibility for a patient, what physician or facility is the patient seeing or going to or who did they see if you are checking post visit. You need that to check eligibility.
    Use the Payer Finder API to view the payer list.

Do you have any API which sends electronic remittance notices regarding payments?

Check out the responses and reports API section. We will also walk you through the best way to use these reports while you are in the implementation stage.

Cannot uniquely identify individual service item in staging Claim Status API Response?

Refer to the API JSON to EDI mapping, contents of the Claim Status API Request and Response.

What do I need to do to get access ConnectCenter Portal?

You will get access to Connect Center when you contract with us.

How to pass Patient API and how to send you our patient information?

Part of the eligibility request is to include the patient information, first name, last name, member ID, and so on. Here is what a typical eligibility request includes. Yes, you must send the patient information separately through an API.

When I execute the eligibility/v3 API, I can see many benefitsInformation objects with different serviceTypes and benefitAmounts, sometime, same serviceType has different benefitAmount. Is there a way to decide which one to use?

We provide you different examples of what could come back in a response. There is not really a right or wrong answer, this is to let you know that this information could come back in a response.
Review the JSON-to-EDI mapping documentation, which might help you understand what the different EDI responses are, and why they come in the way they do. Obtaining a copy of the X12 implementation guide may also be helpful.

Does Change Healthcare support checking if a members insurance covers specific service events (based on CPT Code)?

We do not support CPT codes in the eligibility request, however, sending over a '30' in the serviceType code, typically brings back all the benefit information for a patient.
There is also a list of serviceType codes you can refer here. MH is another serviceType code could be used for mental health benefits.

Submitter ID is required to make an eligibility check, is there any documentation related to how Submitter​ IDs are created? If we have child accounts underneath our parent account, will each of those child accounts have its own Submitter ID? Do we need to provide Submitter ID when making eligibility calls to Change? If so, what field does that map to? I didn't see anything here: Using "Bare Minimum" Eligibility requests.

A submitter ID is assigned to any entity submitting healthcare transactions to a payer. Basically, a submitter ID is your account number with Change Healthcare. If your child accounts are submitting healthcare transactions to a payer OR if you want to keep those sub-accounts separate, they would each get their own submitter ID as well.

How do we know that our claim has been forwarded to payer?

You can make Responses & Reports API calls. During implementation, We can provide additional recommendations on how to best use these reports and responses. Our ConnectCenter helps you view all your information.

Is there a call to understand if a provider is PAR or EPO for a given insurance provider?

We do not have an API to check provider directories to see if they are part of a network.

Any action required to perform eligibility checks with carriers that do not require enrollment?

When you are supplied your production credentials, you can start sending Eligibility checks to payers that do not require enrollment. Making sure, of course, that you can send a syntactically correct Eligibility request to get a response. You can also immediately perform an eligibility check within Connect Center if needed too.

For a Bare Minimum Eligibility request, what values do we send for these request object keys?

  • Trading Partner Service ID is the Payer ID you will need to request benefit information from an insurance carrier. Here is a list of test tradingPartnerServiceId.
  • ServiceType code 30 is the most common and provides general benefit information in the response. Depending on whether or not the specific eligibility information is required, the serviceType code may change. Here is a complete list.

Is it possible for a payer's name, Payer ID, or Eligibility ID to change in the ConnectCenter Payer List? If so, does anything happen with that change; is any kind of notification or update sent to customers?

Yes, it is not very likely but possible. Especially, if a payer is bought by another payer.
We do send out customer service announcements (CSAs) through email to customers who enroll for the notifications. Be sure to ask your implementation analyst to help you get set up for those notifications.

I want to make multiple requests with different service types to completely get mental health providers their coverage. Is there a way to reduce the number of requests by clubbing the service types together? Ay idea which payers allow that and which don't?

We do not know which payers allow more than one service type code. However, we recommend no more than two in a single request. All payers might not accept two, but two have worked for most.

Other than the X3 and R5 report types, what are the other report types and in what format is this data?

Here is a complete list of report types.

My client would be billing the clients for the visit, which is not a professional/specialist visit but more like evaluation and management services that come under CPT 99214. Other than serviceType 98, which other code can I use?

Include serviceType code 30 to pull back all benefit information.

So should I be running multiple requests for 98, MH and A6 for each patient to get their complete eligibility? Is there a better combo of service type codes that can yield me the results with lesser number of requests per patient?

98, MH, and A6 are good; add 30.

Related Topics