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

# Application lifecycle

> Understand the underwriting application lifecycle from creation through submission, review, and final decision.

Applications move through a defined lifecycle from creation to final decision. Each stage determines which actions you can take on the application.

## Lifecycle states

An underwriting application typically moves through the following states as defined in the [`UnderwritingApplicationStatus`](/underwriting/reference/graphql/types/underwritingapplicationstatus) enum:

### Created

The application has been created but hasn't been submitted for underwriting review.

* You can create the application with partial or complete data
* Underwriting hasn't evaluated it yet
* You can update it freely using [`updateUnderwritingApplication`](/underwriting/reference/graphql/operations/updateunderwritingapplication)

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

  Ben creates an application for his mechanical keyboard business with basic
  business information but is still finalizing which business partner to include
  as a stakeholder. The application remains in Created status while he gathers
  this information.
</Callout>

### Submitted

The application has been submitted and queued for automated underwriting processing.

* Tesouro validates required fields at submission time
* Automated and manual underwriting review begins
* You can no longer update the application

### Processing

Automated checks and decision components are run on the application.

* Automated verification includes identity verification, TIN match, bank account verification, and other system-driven checks
* No manual review is needed during this state
* Applications stay in Processing until automated checks complete

If automated checks surface discrepancies or risk concerns, the application transitions to Pending for manual review.

<Note>
  Most applications that pass automated verification will transition directly from Processing to
  Decisioned without requiring manual review.
</Note>

### Pending

Manual underwriting review is required.

* Automated processing flagged a discrepancy, missing data, or risk concern that needs human review
* Underwriters can create one or more [information requests](/underwriting/guides/information-requests) while the application stays in Pending
* Each information request moves independently through Requested and Fulfilled statuses

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

  Ben's address doesn't match the credit bureau's records. The application moves
  to Pending, and an underwriter creates an information request asking for proof
  of his current address.
</Callout>

### Decisioned

Underwriting has reached a final outcome for the application.

Final outcomes are:

* **Approved** – The application meets underwriting requirements
* **Declined** – The application doesn't meet underwriting requirements
* **Withdrawn** – The application was withdrawn before a final decision

Final application status is communicated via API responses and [webhook events](/underwriting/guides/webhooks).

For a complete list of all application statuses, see [`UnderwritingApplicationStatus`](/underwriting/reference/graphql/types/underwritingapplicationstatus).

## Status transitions

Applications move forward through the lifecycle:

* Created → Submitted
* Submitted → Processing
* Processing → Pending (if manual review is required)
* Processing → Decisioned (if automated checks pass)
* Pending → Decisioned

Timing depends on how complete the application is and what underwriting requires. While an application is in Pending, underwriters can create information requests. These don't change the application status.

### Typical flow diagram

Created → Submitted → Processing → Pending → Decisioned

Processing can skip Pending and go straight to Decisioned if automated checks pass.

### Status visibility

Query the current status using the [`underwritingApplications`](/underwriting/reference/graphql/operations/underwritingapplications) query and accessing the `applicationStatus` field on the [`UnderwritingApplication`](/underwriting/reference/graphql/types/underwritingapplication) type.
