> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tesouro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Check application status

> Query the current status of an underwriting application to monitor its progress through the underwriting lifecycle.

Use the [`underwritingApplications`](/underwriting/reference/graphql/operations/underwriting-applications) query to retrieve the current status of an underwriting application. This is useful when verifying whether an application is ready for submission, confirming a state before taking action, or diagnosing unexpected behavior.

<Note>
  Prefer [webhook events](/underwriting/guides/webhooks) over polling for production integrations.
  Use this query for one-off checks or when troubleshooting.
</Note>

### Query an application

Pass the application `id` to retrieve its current status and timestamps.

<RequestExample>
  ```graphql Operation lines theme={null}
  query CheckApplicationStatus($input: UnderwritingApplicationInput!) {
    underwritingApplications(input: $input) {
      items {
        id
        applicationStatus
        createdDateTime
        updatedDateTime
      }
    }
  }
  ```

  ```json Variables lines theme={null}
  {
    "input": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }
  ```
</RequestExample>

### Response

```json Success lines theme={null}
{
  "data": {
    "underwritingApplications": {
      "items": [
        {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "applicationStatus": "PROCESSING",
          "createdDateTime": "2024-01-15T10:00:00Z",
          "updatedDateTime": "2024-01-15T11:30:00Z"
        }
      ]
    }
  }
}
```

### Status values

The `applicationStatus` field reflects the application's current position in the underwriting lifecycle.

| Status               | Description                                                          |
| -------------------- | -------------------------------------------------------------------- |
| `CREATED`            | Application created but not yet submitted                            |
| `SUBMITTED`          | Submitted and queued for automated processing                        |
| `PROCESSING`         | Automated checks are running                                         |
| `PENDING`            | Manual underwriting review is required                               |
| `DECISIONED`         | A final decision has been reached (Approved, Declined, or Withdrawn) |
| `SUBMISSION_INVALID` | Submission failed due to validation errors — correct and resubmit    |
| `SUBMISSION_FAILED`  | Submission failed due to a system error — retry the submission       |

For the full list of status values, see [`UnderwritingApplicationStatus`](/underwriting/reference/graphql/types/underwriting-application-status).

<Callout icon="clapperboard-play" color="#6938EF" type="scenario">
  **Scenario**

  Ben attempts to resubmit his keyboard business application after fixing a
  validation error. He first checks the status and confirms the application is
  in `SUBMISSION_INVALID` state, which means it is eligible for resubmission.
</Callout>

## Next steps

* [Submit the application](/underwriting/guides/applications/submit) once the status is `CREATED`, `SUBMISSION_FAILED`, or `SUBMISSION_INVALID`
* [Monitor webhooks](/underwriting/guides/webhooks) for status change events to avoid polling
* [Application lifecycle](/underwriting/guides/applications) for a full overview of status transitions
