# Check claim status
Source: https://www.stedi.com/docs/healthcare/check-claim-status

***

title: Check claim status
sidebarTitle: "Check claim status"
----------------------------------

You may need to check the status of a claim when you don't receive a 277CA or 835 ERA response from the payer within your expected timeframe. You may also want to check the status of a claim submitted by another entity. For example, a billing agency may want to check the status of a claim submitted by their customer, who is a provider.

## Testing

You can only run real-time claim status checks for production claims that have entered the payer's processing system.

Requests for test claims or claims the payer hasn't yet accepted for processing won't return results. That's why our [claim status best practices](#best-practices) recommend waiting at least a week after submission before attempting to check a claim's status. You also won't be able to check the status if Stedi or the payer rejected a claim with a [277CA claim acknowledgment](/healthcare/receive-claim-responses).

You can find examples of claim status requests and responses in the [sample requests and responses](#sample-requests-and-responses) section on this page.

## Transaction enrollment

[Transaction enrollment](/healthcare/transaction-enrollment) is the process of registering a provider to exchange specific healthcare transactions with a payer. Some payers require enrollment before allowing providers to submit real-time claim status checks through a new clearinghouse. This enrollment process is separate from the transaction enrollment process for 837 claims.

Enrolling through Stedi may cancel existing real-time claim status enrollments you have through other clearinghouses. We can help you determine whether this applies to your specific payers. However, enrolling through Stedi for real-time claim status checks doesn't affect your existing enrollments for other transaction types. For example, enrolling with Stedi won't unenroll the provider from receiving transactions like Electronic Remittance Advices (ERAs) through other clearinghouses.

You can check whether a specific payer requires transaction enrollment for real-time claim status checks in the [Payer Network](https://www.stedi.com/healthcare/network) or through the [Payers API](/healthcare/api-reference/get-payer).

To enroll, complete the following steps:

1. Create a provider record with the information required for enrollment. If you already have a record for the provider, you can skip this step. [Stedi portal](https://portal.stedi.com/app/healthcare/providers) | [API endpoint](/healthcare/api-reference/post-enrollment-create-provider)
2. Submit an enrollment request for real-time claim status. [Stedi portal](https://portal.stedi.com/app/healthcare/enrollments) | [API endpoint](/healthcare/api-reference/post-enrollment-create-enrollment)

## Manual submission

You can submit a claim status request manually through the [Create claim status check](https://portal.stedi.com/app/healthcare/claims/status/create) form in Stedi.

The response view shows both claim-level and service-level details. If the claim status request returns information for multiple claims, you can use the dropdown to navigate between them.

## API Submission

Call one of the following endpoints to send a 276/277 real-time claim status:

* [Claim Status](/healthcare/api-reference/post-healthcare-claim-status) to send requests in JSON
* [Claim Status Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12) to send requests in X12 EDI

Both endpoints return a synchronous claim status response from the payer in JSON format. The response may contain information about more than one claim, if the payer has multiple claims on file that match the information you provided.

### Headers

When constructing the request, you must include the following information in HTTP headers:

* **`Authorization`:** [Generate an API key](https://portal.stedi.com/app/settings/api-keys) to use for authentication.
* **`Content-Type`:** Set to `application/json`.

### Body - JSON

For best results, you should start with our [recommended base request](/healthcare/check-claim-status#json-base-request) and add more information only as needed.

Note that objects marked as **required** are required for all requests, while others are conditionally required depending on the circumstances. When you include a conditionally required object, you must include all of its required properties.

For example, you must always include the `subscriber` object in requests, but you only need to include the `serviceLinesInformation` object when you want to request the status for a specific service line.

### Body - X12 EDI

Your payload must conform to [276 X12 EDI format](https://portal.stedi.com/app/guides/view/hipaa/claim-status-request-x212/01GRYB6A4XEJQ61Y2K2KT606E5).
For best results, you should start with our [recommended base request](/healthcare/check-claim-status#x12-base-request) and add more information only as needed.

#### Envelope and header

Stedi generates its own `ISA` and `GS` headers and `IEA` and `GE` trailers before sending your claim status request to the payer. You can submit your request to Stedi with any values in these segments, as long as they conform to the X12 EDI specification.

However, you must set `ST03` (Version, Release, or Industry Identifier) to `005010X212`.

### Character restrictions

Only use the X12 Basic and Extended character sets in request data. Using characters outside these sets may cause validation and HTTP `400` errors.

<Accordion title="Basic character set">
  The X12 Basic character set includes uppercase letters, digits, space, and some special characters. Lowercase letters and special language characters like `ñ` are not included.

  The following special characters are included:

  ![Basic special characters](/images/basic-special-characters.png)
</Accordion>

<Accordion title="Extended character set">
  The Extended character set includes the characters listed in Basic, plus lowercase letters and additional special characters, such as `@`.

  The following additional special characters are included:
  ![Extended special characters](/images/extended-special-characters-healthcare.png)
</Accordion>

In addition, the following characters are reserved for delimiters in the final X12 EDI transaction to the payer: `~`, `*`, `:`, and `^`. X12 doesn’t support using escape sequences to represent delimiters or special characters. Stedi returns a `400` error if you use these restricted characters improperly.

* **JSON endpoint:** Don’t include delimiter characters anywhere in your request data.
* **Raw X12 endpoint:** You can use these characters as delimiters, but not in the body of the request data.

### Timeout

Requests to payers typically time out at 1 minute, though Stedi can keep connections open longer than that if needed.

### Concurrency limit

Our real-time claim status endpoints share a concurrency pool with other real-time healthcare APIs. For more information, visit [Concurrency Limits](/healthcare/api-reference#concurrency-limits).

### Recommended API clients

You may want to use an API client to make testing and debugging easier.

We **don't recommend** using Postman for requests containing Protected Health Information (PHI) because Postman defaults to storing request history - including full request payloads - on its cloud servers. You can’t turn this feature off without impractical workarounds.

Visit [API clients](/healthcare/api-reference#api-clients) for a list of recommended clients you can use instead.

## Best practices

We recommend following these best practices when checking claim status.

### Wait at least a week

Don't run a claim status check until at least 7 days after the claim's submission date. It usually takes a few weeks for payers to process and fully adjudicate a claim.

If you haven't received an 835 ERA, we recommend checking the claim's status at 21 days after submission and then again at 1 month.

### Supply a date of services range

Supply a date range that is at least plus or minus 7 days from the date of the services listed in the claim. The payer may have stored a different date for the encounter than the one in your records, so providing a date range increases the likelihood that the payer will find a match.

We also recommend keeping the dates of service range to 30 days or less. Some payers may reject requests with a date range that is too wide.

### Don't provide too much information

Providing too much information in a claim status request can negatively affect the results. That's why we recommend first sending a base request with only the following information.

You will eventually learn payer-specific nuances and can adjust your approach accordingly. For example, some payers may have better success rates when you include the claim number.

#### JSON base request

We recommend starting with the following properties in a request to the [Real-Time Claim Status JSON](/healthcare/api-reference/post-healthcare-claim-status) endpoint:

| Information               | Description                                                                                                                                                                                                                                                                         |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tradingPartnerServiceId` | This is the payer ID. Visit the [Payer Network](https://www.stedi.com/healthcare/network) for a complete list. You can send requests using the primary payer ID, the Stedi payer ID, or any payer ID alias listed in the payer record.                                              |
| `providers`               | The provider information from the original claim. To start, provide only the `npi`, `organizationName`, and `providerType` properties.                                                                                                                                              |
| `subscriber`              | The subscriber information from the original claim. To start, provide only the `firstName`, `lastName`, `dateOfBirth`, `gender`, and `memberId` properties.                                                                                                                         |
| `dependent`               | The dependent information from the original claim. To start, provide only the `firstName`, `lastName`, `dateOfBirth`, and `gender` properties. If the patient is the subscriber, you can omit this object.                                                                          |
| `encounter`               | The encounter information from the original claim. To start, provide only the `beginningDateOfService` and `endDateOfService` properties. Remember that you should provide a date range that is plus or minus 7 days from the date of service listed in the claim for best results. |

If this base request fails to return results, try adding in other information like `encounter.tradingPartnerClaimNumber` and `providers.taxId`.

The following examples show two base request payloads: one where the patient is the subscriber and one where the patient is the dependent. They include only the minimum recommended information:

<Tabs items={["Subscriber", "Dependent"]}>
  <Tab value="Subscriber">
    {/* schema:ClaimStatusRequestContent */}

    ```json
    {
      "encounter": {
        "beginningDateOfService": "20240318",
        "endDateOfService": "20240402"
      },
      "providers": [
        {
          "npi": "1999999984",
          "organizationName": "Behavioral Services P.C.",
          "providerType": "BillingProvider"
        }
      ],
      "subscriber": {
        "firstName": "Jane",
        "lastName": "Doe",
        "dateOfBirth": "19000806",
        "gender": "F",
        "memberId": "111222333"
      },
      "tradingPartnerServiceId": "3429"
    }
    ```
  </Tab>

  <Tab value="Dependent">
    {/* schema:ClaimStatusRequestContent */}

    ```json
    {
      "encounter": {
        "beginningDateOfService": "20240318",
        "endDateOfService": "20240402"
      },
      "providers": [
        {
          "npi": "1999999984",
          "organizationName": "Behavioral Services P.C.",
          "providerType": "BillingProvider"
        }
      ],
      "subscriber": {
        "firstName": "Jane",
        "lastName": "Doe",
        "dateOfBirth": "19000806",
        "gender": "F",
        "memberId": "111222333"
      },
      "dependent": {
        "firstName": "John",
        "lastName": "Doe",
        "dateOfBirth": "19100323",
        "gender": "M"
      },
      "tradingPartnerServiceId": "3429"
    }
    ```
  </Tab>
</Tabs>

#### X12 base request

We recommend starting with the following properties in a request to the [Real-Time Claim Status Raw X12](/healthcare/api-reference/post-healthcare-claim-status-raw-x12) endpoint:

* `Loop 2100A NM109` (Payer Identifier): This identifier allows Stedi to route the claim status request to the correct payer. It must be a payer ID or payer ID alias listed in the [Payer Network](https://www.stedi.com/healthcare/network). For example, you could use `60054`, `HPQRS`, `AETNA`, or any other listed payer ID alias for Aetna.
* `Loop 2100C NM109` (National Provider Identifier) and `NM103` (Provider Last Name or Organization Name)
* `Loop 2000D DMG02` or `Loop 2000E DMG02` (Subscriber/Patient Birth Date)
* `Loop 2100B NM1` (Information Receiver Name)
* `Loop 2100D NM103` (Subscriber Last Name), `NM103` (Subscriber First Name), and `NM109` (Member Identification Number)
* `Loop 2200D DTP03` (Claim Service Period) that is plus or minus 7 days from the date of service listed in the claim
* `Loop 2200D` or `2200E`: `TRN` (Claim Status Tracking Number)

If this base request fails to return results, try adding in other information like `Loop 2200D REF02` (Payer Claim Control Number).

## Sample requests and responses

The following examples show a 276 claim status request and 277 claim status response for Stedi's JSON endpoint.

### Accepted claims

The following example shows a claim status request and response for a claim that has been accepted by the payer and is awaiting payment. The payer is UnitedHealthcare, and the request uses the payer ID alias `3429`.

<Accordion title="Accepted, waiting for payment - Subscriber -  UnitedHealthcare">
  <Tabs items={["Request", "Response"]}>
    <Tab value="Request">
      ```bash
      curl --request POST \
        --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2 \
        --header 'Authorization: <api-key>' \
        --header 'Content-Type: application/json' \
        --data '{
        "encounter": {
          "beginningDateOfService": "20240318",
          "endDateOfService": "20240402"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "Behavioral Services P.C.",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "dateOfBirth": "19000806",
          "firstName": "Jane",
          "lastName": "Doe",
          "gender": "F",
          "memberId": "111222333"
        },
        "tradingPartnerServiceId": "3429"
      }'
      ```
    </Tab>

    <Tab value="Response">
      {/* schema:ClaimStatusResponseContent */}

      ```json
      {
        "claims": [
          {
            "claimStatus": {
              "amountPaid": "95.55",
              "claimServiceDate": "20240325",
              "effectiveDate": "20240329",
              "paidDate": "20240329",
              "patientAccountNumber": "3333333",
              "statusCategoryCode": "P5",
              "statusCategoryCodeValue": "Pending/Payer Administrative/System hold",
              "statusCode": "3",
              "statusCodeValue": "Claim has been adjudicated and is awaiting payment cycle.",
              "submittedAmount": "238.44",
              "trackingNumber": "222222222",
              "tradingPartnerClaimNumber": "5332034153-KK"
            },
            "serviceDetails": [
              {
                "service": {
                  "amountPaid": "95.55",
                  "procedureId": "90837",
                  "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes",
                  "serviceIdQualifierCode": "HC",
                  "submittedAmount": "238.44",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20240329",
                    "statusCategoryCode": "P5",
                    "statusCategoryCodeValue": "Pending/Payer Administrative/System hold",
                    "statusCode": "3",
                    "statusCodeValue": "Claim has been adjudicated and is awaiting payment cycle."
                  }
                ]
              }
            ]
          }
        ],
        "controlNumber": "222222222",
        "meta": {
          "applicationMode": "production",
          "traceId": "bf27223e-46c3-451e-b2b4-46f3f0b6fe3b"
        },
        "payer": {
          "organizationName": "UNITEDHEALTHCARE",
          "payerIdentification": "3429"
        },
        "providers": [
          {
            "organizationName": "Behavioral Services P.C.",
            "providerType": "BillingProvider",
            "taxId": "123456789"
          },
          {
            "npi": "1999999984",
            "organizationName": "Behavioral Services P.C.",
            "providerType": "ServiceProvider"
          }
        ],
        "reassociationKey": "000000001",
        "status": "success",
        "subscriber": {
          "firstName": "JANE",
          "lastName": "DOE",
          "memberId": "111222333"
        },
        "tradingPartnerServiceId": "3429",
        "x12": "..."
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

The following example shows a claim status request and response for a claim that has been processed and paid. The payer is UnitedHealthcare, and the request uses the primary payer ID `87726`.

Note that this example response includes the payment amount and the service line item details. Some payers return this information in claim status responses, but most don't. You should typically plan to get these details from the 835 Electronic Remittance Advice (ERA) instead.

<Accordion title="Accepted, paid - Subscriber - UnitedHealthcare">
  <Tabs items={["Request", "Response"]}>
    <Tab value="Request">
      ```bash
      curl --request POST \
        --url https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2 \
        --header 'Authorization: <api-key>' \
        --header 'Content-Type: application/json' \
        --data '{
        "tradingPartnerServiceId": "87726",
        "providers": [
          {
            "organizationName": "Provider Name",
            "npi": "1999999984",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "memberId": "UHC123456",
          "firstName": "Jane",
          "lastName": "Doe",
          "dateOfBirth": "19710101"
        },
        "encounter": {
          "beginningDateOfService": "20250630",
          "endDateOfService": "20250702"
        }
      }'
      ```
    </Tab>

    <Tab value="Response">
      {/* schema:ClaimStatusResponseContent */}

      ```json
      {
        "claims": [
          {
            "claimStatus": {
              "amountPaid": "108.77",
              "checkIssueDate": "20250717",
              "checkNumber": "A123456789",
              "claimServiceDate": "20250701",
              "effectiveDate": "20250717",
              "paidDate": "20250715",
              "patientAccountNumber": "12345678",
              "statusCategoryCode": "F1",
              "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.",
              "statusCode": "65",
              "statusCodeValue": "Claim/line has been paid.",
              "submittedAmount": "267.54",
              "trackingNumber": "0123456789",
              "tradingPartnerClaimNumber": "0123456789"
            },
            "serviceDetails": [
              {
                "service": {
                  "amountPaid": "108.77",
                  "procedureId": "90837",
                  "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes",
                  "serviceIdQualifierCode": "HC",
                  "submittedAmount": "267.54",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250717",
                    "statusCategoryCode": "F1",
                    "statusCategoryCodeValue": "Finalized/Payment - The claim/line has been paid.",
                    "statusCode": "107",
                    "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)."
                  }
                ]
              }
            ]
          }
        ],
        "controlNumber": "123456789",
        "payer": {
          "organizationName": "UNITEDHEALTHCARE",
          "payerIdentification": "87726"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "Provider Name",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "firstName": "Jane",
          "lastName": "Doe",
          "memberId": "UHC123456"
        },
        "tradingPartnerServiceId": "87726",
        "x12": "ISA*00*          *00*          *ZZ*STEDI          *01*117151744      *250912*1718*^*00501*123456789*0*P*:~GS*HN*STEDI*117151744*20250912*171842*1*X*005010X212~ST*277*1001*005010X212~BHT*0010*08*0123456789*20250912*171841*DG~HL*1**20*1~NM1*PR*2*UNITEDHEALTHCARE*****PI*87726~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*DOE*JANE****MI*UHC123456~TRN*2*0123456789~STC*F1:65*20250717**267.54*108.77*20250715**20250717*123456789~REF*1K*0123456789~REF*EJ*12345678~DTP*472*D8*20250701~SVC*HC:90837:GT*267.54*108.77****1~STC*F1:107*20250717~DTP*472*D8*20250701~SE*19*1001~GE*1*1~IEA*1*123456789~"
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

### Denied claims

The following example shows a claim status request and response for a denied claim. The payer is Anthem Blue Cross Blue Shield of Virginia, and the request uses the primary payer ID `423`.

In this example, the `subscriber` in the request is actually a dependent using the subscriber's member ID.

<Accordion title="Denied - Dependent - Anthem BCBS Virginia">
  <Tabs items={["Request", "Response"]}>
    <Tab value="Request">
      ```bash
      curl --request POST \
        --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \
        --header "Authorization: <api_key>" \
        --header "Content-Type: application/json" \
        --data '{
          "encounter": {
            "beginningDateOfService": "20241101",
            "endDateOfService": "20241112"
          },
          "providers": [
            {
              "npi": "1999999984",
              "organizationName": "PROVIDER NAME",
              "providerType": "BillingProvider"
            }
          ],
          "subscriber": {
            "dateOfBirth": "19800101",
            "firstName": "JANE",
            "lastName": "DOE",
            "memberId": "XYZO9NUSPD6R"
          },
          "tradingPartnerServiceId": "423"
        }'
      ```
    </Tab>

    <Tab value="Response">
      {/* schema:ClaimStatusResponseContent */}

      ```json
      {
        "claims": [
          {
            "claimStatus": {
              "amountPaid": "0",
              "claimServiceDate": "20241107-20241107",
              "effectiveDate": "20241110",
              "paidDate": "20241110",
              "patientAccountNumber": "12345678",
              "statusCategoryCode": "F0",
              "statusCategoryCodeValue": "Finalized - The claim/encounter has completed the adjudication cycle and no more action will be taken.",
              "statusCode": "1",
              "statusCodeValue": "For more detailed information,see remittance advice.",
              "submittedAmount": "200.02",
              "trackingNumber": "VZYTLPWDTPMIG66PX0GRNPFGR8",
              "tradingPartnerClaimNumber": "XP5BPO2GRUVIR"
            },
            "serviceDetails": [
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "90800",
                  "serviceIdQualifier": "Health Care Financing Administration Common Procedural Coding System (HCPCS) Codes",
                  "serviceIdQualifierCode": "HC",
                  "submittedAmount": "200.02",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20241110",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              }
            ]
          }
        ],
        "controlNumber": "987654321",
        "dependent": {
          "firstName": "JANE",
          "lastName": "DOE"
        },
        "payer": {
          "organizationName": "ANTHEM BLUE CROSS BLUE SHIELD",
          "payerIdentification": "423"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "PROVIDER NAME",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "firstName": "JOHN",
          "lastName": "DOE",
          "memberId": "XYZO9NUSPD6R"
        },
        "tradingPartnerServiceId": "423",
        "x12": "..."
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

The following examples show a request and response for a denied claim. The payer is Aetna, and the request uses the primary payer ID `60054`.

In this example, the claim is for a dependent.

<Accordion title="Denied - Dependent - Aetna">
  <Tabs items={["Request", "Response"]}>
    <Tab value="Request">
      ```bash
      curl --request POST \
        --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \
        --header "Authorization: <api_key>" \
        --header "Content-Type: application/json" \
        --data '{
        "dependent": {
          "dateOfBirth": "20010714",
          "firstName": "JORDAN",
          "lastName": "DOE"
        },
        "encounter": {
          "beginningDateOfService": "20250804",
          "endDateOfService": "20250806"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "Provider Name",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "dateOfBirth": "19710101",
          "firstName": "JANE ",
          "lastName": "DOE",
          "memberId": "AETNA12345"
        },
        "tradingPartnerName": "Aetna",
        "tradingPartnerServiceId": "60054"
      }'
      ```
    </Tab>

    <Tab value="Response">
      {/* schema:ClaimStatusResponseContent */}

      ```json
      {
        "claims": [
          {
            "claimStatus": {
              "amountPaid": "0",
              "checkIssueDate": "20250814",
              "checkNumber": "123456789",
              "claimServiceDate": "20250805",
              "effectiveDate": "20250912",
              "paidDate": "20250809",
              "patientAccountNumber": "123456789",
              "statusCategoryCode": "F2",
              "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
              "statusCode": "585",
              "statusCodeValue": "Denied Charge or Non-covered Charge.",
              "submittedAmount": "1101",
              "trackingNumber": "123456789",
              "tradingPartnerClaimNumber": "123456789"
            },
            "serviceDetails": [
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D1120",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "141",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              },
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D0801",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "274",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              },
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D0603",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "161",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "107",
                    "statusCodeValue": "Processed according to contract provisions (Contract refers to provisions that exist between the Health Plan and a Provider of Health Care Services)."
                  }
                ]
              },
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D0350",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "145",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              },
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D0350",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "145",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              },
              {
                "service": {
                  "amountPaid": "0",
                  "procedureId": "D0330",
                  "serviceIdQualifier": "American Dental Association Codes",
                  "serviceIdQualifierCode": "AD",
                  "submittedAmount": "235",
                  "submittedUnits": "1"
                },
                "status": [
                  {
                    "effectiveDate": "20250912",
                    "statusCategoryCode": "F2",
                    "statusCategoryCodeValue": "Finalized/Denial - The claim/line has been denied.",
                    "statusCode": "585",
                    "statusCodeValue": "Denied Charge or Non-covered Charge."
                  }
                ]
              }
            ]
          }],
        "controlNumber": "123456789",
        "dependent": {
          "firstName": "JORDAN",
          "lastName": "DOE"
        },
        "payer": {
          "organizationName": "AETNA",
          "payerIdentification": "60054"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "Provider Name",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "firstName": "JANE",
          "lastName": "DOE",
          "memberId": "AETNA12345"
        },
        "tradingPartnerServiceId": "60054",
        "x12": "ISA*00*          *00*          *ZZ*STEDI          *01*117151744      *250911*1726*^*00501*123456789*0*P*:~GS*HN*STEDI*117151744*20250911*1226*123456789*X*005010X212~ST*277*123456789*005010X212~BHT*0010*08*1234567890*20250911*13263006*DG~HL*1**20*1~NM1*PR*2*AETNA*****PI*60054~PER*IC*Aetna*TE*1234567890~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*1234567890~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*1~NM1*IL*1*DOE*JANE****MI*AETNA12345~HL*5*4*23~NM1*QC*1*DOE*JORDAN~TRN*2*123456789~STC*F2:585*20250911**1101*0*20250809**20250814*123456789*F2:107~REF*1K*123456789~REF*EJ*123456789~DTP*472*D8*20250805~SVC*AD:D1120*141*0****1~STC*F2:585*20250911~DTP*472*D8*20250805~SVC*AD:D0801*274*0****1~STC*F2:585*20250911~DTP*472*D8*20250805~SVC*AD:D0603*161*0****1~STC*F2:107*20250911********F2:735~DTP*472*D8*20250805~SVC*AD:D0350*145*0****1~STC*F2:585*20250911~DTP*472*D8*20250805~SVC*AD:D0350*145*0****1~STC*F2:585*20250911~DTP*472*D8*20250805~SE*34*123456789~GE*1*123456789~IEA*1*123456789~"
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

### No matches found

The following example shows a request and response for a claim status check that failed because the payer couldn't find a matching claim. The payer is Cigna, and the request uses the payer ID alias `CIGNA`.

<Accordion title="No matches found - Subscriber - Cigna">
  <Tabs items={["Request", "Response"]}>
    <Tab value="Request">
      ```bash
      curl --request POST \
        --url "https://healthcare.us.stedi.com/2024-04-01/change/medicalnetwork/claimstatus/v2" \
        --header "Authorization: <api_key>" \
        --header "Content-Type: application/json" \
        --data '{
        "encounter": {
          "beginningDateOfService": "20250526",
          "endDateOfService": "20250601"
        },
        "providers": [
          {
            "organizationName": "Provider Name",
            "providerType": "BillingProvider",
            "npi": "1999999984"
          }
        ],
        "subscriber": {
          "dateOfBirth": "19910202",
          "firstName": "James",
          "lastName": "Jones",
          "memberId": "CIGNA12345"
        },
        "tradingPartnerServiceId": "CIGNA"
      }'
      ```
    </Tab>

    <Tab value="Response">
      {/* schema:ClaimStatusResponseContent */}

      ```json
      {
        "claims": [
          {
            "claimStatus": {
              "amountPaid": "0",
              "claimServiceDate": "20250526-20250601",
              "effectiveDate": "20250912",
              "entity": "Insurer",
              "entityCode": "IN",
              "statusCategoryCode": "D0",
              "statusCategoryCodeValue": "Data Search Unsuccessful - The payer is unable to return status on the requested claim(s) based on the submitted search criteria.",
              "statusCode": "97",
              "statusCodeValue": "Patient eligibility not found with entity.",
              "submittedAmount": "0",
              "trackingNumber": "123456789"
            }
          }
        ],
        "controlNumber": "123456789",
        "payer": {
          "organizationName": "CHLIC",
          "payerIdentification": "CIGNA"
        },
        "providers": [
          {
            "npi": "1999999984",
            "organizationName": "Provider Name",
            "providerType": "BillingProvider"
          }
        ],
        "subscriber": {
          "firstName": "JAMES",
          "lastName": "JONES",
          "memberId": "CIGNA12345"
        },
        "tradingPartnerServiceId": "CIGNA",
        "x12": "ISA*00*          *00*          *ZZ*STEDI          *01*117151744      *250825*2004*^*00501*123456789*0*P*:~GS*HN*STEDI*117151744*20250825*1504*123456789*X*005010X212~ST*277*123456789*005010X212~BHT*0010*08*123456789*20250825*160450*DG~HL*1**20*1~NM1*PR*2*CHLIC*****PI*CIGNA~PER*IC*CHC Medical*TE*8002725713~HL*2*1*21*1~NM1*41*2*PROVIDER NAME*****46*123456789~HL*3*2*19*1~NM1*1P*2*PROVIDER NAME*****XX*1999999984~HL*4*3*22*0~NM1*IL*1*JONES*JAMES****MI*CIGNA12345~TRN*2*123456789~STC*D0:97:IN*20250825**0*0~DTP*472*RD8*20250526-20250601~SE*15*123456789~GE*1*123456789~IEA*1*123456789~"
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

## Claims submitted by other providers

You likely won't be able to check the status of a claim submitted by a different provider organization or by the patient themselves, even if you have all of the details about the claim.

Payers generally only allow a provider organization to check the status of the claims they submitted. They impose these access controls to protect plan member privacy and confidential commercial data.

## Claims older than 18 months

Payers often archive claims older than 18 months, but this varies by payer. If you try to check the status of a claim from several years ago, the payer may return an error even if the information you submit matches a real historical claim.