Skip to main content
Once all required information has been added and stakeholders are in place, an underwriting application can be submitted for review using the 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.
ScenarioBen 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.
mutation SubmitUnderwritingApplication($input: UnderwritingApplicationSubmitInput!) {
  submitUnderwritingApplication(input: $input) {
    underwritingApplication {
      id
      applicationStatus
      updatedDateTime
    }
    errors {
      ... on UnderwritingApplicationValidationError {
        message
        code
      }
      ... on UnderwritingApplicationFieldValidationError {
        message
        code
        field
      }
    }
  }
}
Run in Playground

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 and review underwriting results once processing is complete.

Response

Success
{
  "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, then resubmit.

Response

Validation errors
{
  "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

System error
{
  "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 for details on status transitions and information requests for how to respond to requests for additional information.