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

# Submit application

> Submit a completed underwriting application for review after validating all required fields and stakeholders.

Once all required information has been added and stakeholders are in place, an underwriting application can be submitted for review using the [`submitUnderwritingApplication`](/underwriting/reference/graphql/operations/submitunderwritingapplication) mutation. Submission moves the application from the **Created** state to **Submitted**, triggering the underwriting process.

### Preconditions for submission

Before submitting, the application must meet the following requirements:

* **Required fields completed** – All mandatory business, stakeholder, and financial fields must be populated
* **Stakeholders configured** – All required stakeholders are created and have valid information
* **Validation passed** – Any validation errors encountered during creation or updates must be resolved
* **Application status** – Applications in the Created, Submission Failed, or Submission Invalid states may be submitted

Applications that have already been successfully submitted or decisioned cannot be submitted again.

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

  Ben has provided all his keyboard business details, his information as owner
  and control person, and his business bank account information. He validates
  the data and then submits the application using
  `submitUnderwritingApplication`.
</Callout>

<RequestExample>
  ```graphql Operation lines expandable theme={null}
  mutation SubmitUnderwritingApplication($input: UnderwritingApplicationSubmitInput!) {
    submitUnderwritingApplication(input: $input) {
      underwritingApplication {
        id
        applicationStatus
        updatedDateTime
      }
      errors {
        ... on UnderwritingApplicationValidationError {
          message
          code
        }
        ... on UnderwritingApplicationFieldValidationError {
          message
          code
          field
        }
      }
    }
  }
  ```

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

### Possible outcome: Validation passes

If `submitUnderwritingApplication` passes validation, underwriting begins automatically and you can expect the following response:

* `applicationStatus` is `PROCESSING`
* No validation errors are returned

**Next step:** Monitor the application status using [webhooks](/underwriting/guides/webhooks) and review underwriting results once processing is complete.

### Response

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

### Possible outcome: Validation fails

If `submitUnderwritingApplication` fails validation, the response will include an `errors` field describing the issues:

* `applicationStatus` is `SUBMISSION_INVALID`
* Validation errors detail missing or invalid fields

**Next step:** Gather necessary missing details and update the application using [`updateUnderwritingApplication`](/underwriting/reference/graphql/operations/updateunderwritingapplication), then resubmit.

### Response

```json Validation errors lines expandable theme={null}
{
  "data": {
    "submitUnderwritingApplication": {
      "underwritingApplication": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "applicationStatus": "SUBMISSION_INVALID",
        "updatedDateTime": "2024-01-15T11:30:00Z"
      },
      "errors": [
        {
          "message": "Tax identification number is required",
          "code": "REQUIRED_FIELD_MISSING",
          "field": "underwritingIdentity.taxIdentificationNumber"
        }
      ]
    }
  }
}
```

### Possible outcome: System failure

If the mutation fails due to a system error:

* `applicationStatus` is `SUBMISSION_FAILED`
* Error messages indicate a technical issue

**Next step:** Retry the request. If the error persists, contact Tesouro support for technical assistance.

### Response

```json System error lines expandable theme={null}
{
  "data": {
    "submitUnderwritingApplication": {
      "underwritingApplication": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "applicationStatus": "SUBMISSION_FAILED",
        "updatedDateTime": "2024-01-15T11:30:00Z"
      },
      "errors": [
        {
          "message": "An unexpected error occurred during submission",
          "code": "SERVER_ERROR"
        }
      ]
    }
  }
}
```

## Next Steps

Once an underwriting application has been submitted successfully, it enters the underwriting review process. See [application lifecycle](/underwriting/guides/applications) for details on status transitions and [information requests](/underwriting/guides/information-requests) for how to respond to requests for additional information.
