---
title: "Submit and process application"
description: "Combine submission and processing into a single call."
protocol: rest
method: POST
endpoint: "/v1/accounts/applications/{id}/submit-and-process"
baseUrl: "https://api.gravv.xyz"
group: "Accounts"
auth:
  label: "Api-Key"
  name: "Api-Key"
  in: header
---

# Submit and process application

<Endpoint method="POST" path="/v1/accounts/applications/{id}/submit-and-process" />

Combine submission and processing into a single call.

## Headers

<ParamField name="Idempotency-Key" header="Idempotency-Key" type="string" required>
  Required for POST requests. Reuse the key only when retrying the same operation with an identical payload.
</ParamField>

## Path Parameters

<ParamField name="id" path="id" type="string" required>
</ParamField>

## Responses

| Status | Description |
| --- | --- |
| `200` | Application submitted and processed |
| `400` | Request failed. All gateway errors are returned as HTTP 400 with this envelope. |

### 200 response

<ResponseField name="data" type="object" required>

  <Expandable title="properties">
    <ResponseField name="application" type="object">

      <Expandable title="properties">
        <ResponseField name="id" type="string">
          Unique identifier for the application.
        </ResponseField>

        <ResponseField name="tenant_id" type="string">
          ID of the tenant that owns this application.
        </ResponseField>

        <ResponseField name="customer_id" type="string">
          UUID of the customer this application belongs to.
        </ResponseField>

        <ResponseField name="application_type" type="string">
          Type of application. One of individual or business.
        </ResponseField>

        <ResponseField name="status" type="string">
          Current status of the application. `creating_account` is a deprecated transitional value and should not be treated as a required lifecycle step. `manual_review` means a human decision is required.

          Possible values: `draft`, `submitted`, `processing`, `creating_account`, `manual_review`, `approved`, `rejected`, `expired`
        </ResponseField>

        <ResponseField name="data" type="object">

          <Expandable title="properties">
            <ResponseField name="individual" type="object">

              <Expandable title="properties">
                <ResponseField name="first_name" type="string">
                  First name of the individual. Required.
                </ResponseField>

                <ResponseField name="last_name" type="string">
                  Last name of the individual. Required.
                </ResponseField>

                <ResponseField name="middle_name" type="string">
                  Middle name of the individual.
                </ResponseField>

                <ResponseField name="email" type="string">
                  Email address of the individual. Required.
                </ResponseField>

                <ResponseField name="role" type="string">
                  Role of the individual in the application (for example, owner).
                </ResponseField>

                <ResponseField name="phone" type="string">
                  Phone number of the individual, in E.164 format. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="date_of_birth" type="string">
                  Date of birth of the individual, in YYYY-MM-DD format. Required.
                </ResponseField>

                <ResponseField name="gender" type="string">
                  Gender of the individual.
                </ResponseField>

                <ResponseField name="nationality" type="string">
                  Nationality of the individual, in ISO 3166-1 alpha-2 format.
                </ResponseField>

                <ResponseField name="ssn" type="string">
                  Social Security Number of the individual. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="tin" type="string">
                  Tax Identification Number of the individual. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="income_source" type="string">
                  Primary source of income. May be required. One of employment, self_employment, investments, retirement, or other.
                </ResponseField>

                <ResponseField name="employment_status" type="string">
                  Current employment status of the individual (for example, employed or self_employed).
                </ResponseField>

                <ResponseField name="citizenship" type="string">
                  Country of citizenship, in ISO 3166-1 alpha-2 format. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="identification_type" type="string">
                  Type of government-issued ID. May be required. One of drivers_license, passport, or state_id.
                </ResponseField>

                <ResponseField name="identification_number" type="string">
                  Document number of the government-issued ID. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="identification_country" type="string">
                  Country that issued the identification document, in ISO 3166-1 alpha-2 format.
                </ResponseField>

                <ResponseField name="identification_expiry" type="string">
                  Expiry date of the identification document, in YYYY-MM-DD format.
                </ResponseField>

                <ResponseField name="address" type="object">
                </ResponseField>

                <ResponseField name="id_document_front" type="string">
                  Front of the government-issued ID, as a Base64 data URI. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="id_document_back" type="string">
                  Back of the government-issued ID, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="proof_of_address_document" type="string">
                  Proof of address document, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="source_of_wealth" type="string[]">
                  Sources of the individual's wealth. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="source_of_wealth_other_description" type="string">
                  Free-text description of the source of wealth when not covered by the standard options.
                </ResponseField>

                <ResponseField name="account_purposes" type="string[]">
                  Purposes for opening the account. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="account_purposes_other_description" type="string">
                  Free-text description of account purposes when not covered by the standard options.
                </ResponseField>

                <ResponseField name="source_of_funds_list" type="string[]">
                  Sources of funds for the account. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="source_of_funds_other_description" type="string">
                  Free-text description of the source of funds when not covered by the standard options.
                </ResponseField>

                <ResponseField name="expected_counterparty_countries" type="string[]">
                  Countries where the individual expects to transact, in ISO 3166-1 alpha-2 format. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="expected_fiat_monthly_volume" type="string">
                  Expected monthly volume of fiat transactions. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="expected_crypto_monthly_volume" type="string">
                  Expected monthly volume of crypto transactions.
                </ResponseField>

              </Expandable>
            </ResponseField>

            <ResponseField name="business" type="object">

              <Expandable title="properties">
                <ResponseField name="legal_name" type="string">
                  Registered legal name of the business. Required.
                </ResponseField>

                <ResponseField name="trade_name" type="string">
                  Trading name or DBA (doing business as) name of the business.
                </ResponseField>

                <ResponseField name="description" type="string">
                  Description of the business operations. May be required (minimum 100 characters).
                </ResponseField>

                <ResponseField name="type" type="string">
                  Legal entity type of the business (for example, llc or corporation). Required.
                </ResponseField>

                <ResponseField name="industry" type="string">
                  Industry category of the business. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="website" type="string">
                  Public-facing website URL of the business.
                </ResponseField>

                <ResponseField name="registration_number" type="string">
                  Official registration or incorporation number of the business.
                </ResponseField>

                <ResponseField name="tax_id_number" type="string">
                  Tax Identification Number (TIN) of the business. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="date_of_incorporation" type="string">
                  Date the business was incorporated, in YYYY-MM-DD format.
                </ResponseField>

                <ResponseField name="country_of_incorporation" type="string">
                  Country where the business is incorporated, in ISO 3166-1 alpha-2 format. Some account configurations require this to be US.
                </ResponseField>

                <ResponseField name="state_of_incorporation" type="string">
                  US state where the business is incorporated. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="business_status" type="string">
                  Current operating status of the business (for example, active or inactive).
                </ResponseField>

                <ResponseField name="registered_address" type="object">
                </ResponseField>

                <ResponseField name="physical_address" type="object">
                </ResponseField>

                <ResponseField name="mailing_address" type="object">
                </ResponseField>

                <ResponseField name="primary_contact" type="object">
                </ResponseField>

                <ResponseField name="associated_persons" type="object[]">
                  Provide at least one associated person.
                </ResponseField>

                <ResponseField name="has_material_intermediary_ownership" type="boolean">
                  Indicates whether the business has ownership held through a material intermediary.
                </ResponseField>

                <ResponseField name="formation_document" type="string">
                  Business formation document, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="ownership_document" type="string">
                  Document showing the ownership structure of the business, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="proof_of_address_document" type="string">
                  Proof of business address, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="proof_of_nature_of_business" type="string">
                  Document that verifies the nature of the business, as a Base64 data URI.
                </ResponseField>

                <ResponseField name="is_dao" type="boolean">
                  Indicates whether the business is a decentralized autonomous organization (DAO).
                </ResponseField>

                <ResponseField name="account_purpose" type="string">
                  Primary purpose for opening the account (for example, operations or payroll).
                </ResponseField>

                <ResponseField name="source_of_funds" type="string">
                  Primary source of business funds (for example, revenue or investment).
                </ResponseField>

                <ResponseField name="industry_financial_services_subtype" type="string">
                  Subtype of financial services industry, if applicable.
                </ResponseField>

                <ResponseField name="industry_crypto_subtype" type="string">
                  Subtype of crypto industry, if applicable.
                </ResponseField>

                <ResponseField name="industry_other_description" type="string">
                  Description of the industry when it does not fit a standard category.
                </ResponseField>

                <ResponseField name="expected_counterparty_countries" type="string[]">
                  Countries where the business expects to transact, in ISO 3166-1 alpha-2 format.
                </ResponseField>

                <ResponseField name="source_of_funds_list" type="string[]">
                  Sources of funds for the account. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="source_of_funds_other_description" type="string">
                  Free-text description of the source of funds when not covered by the standard options.
                </ResponseField>

                <ResponseField name="tin_verification_document" type="string">
                  Document verifying the business TIN, as a Base64 data URI. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="authorization_document" type="string">
                  Authorization document for the account, as a Base64 data URI. May be used depending on your account configuration.
                </ResponseField>

                <ResponseField name="is_msb" type="boolean">
                  Indicates whether the business is a money services business (MSB).
                </ResponseField>

                <ResponseField name="account_purposes" type="string[]">
                  Purposes for opening the account. May be required depending on your account configuration.
                </ResponseField>

                <ResponseField name="account_purposes_other_description" type="string">
                  Free-text description of account purposes when not covered by the standard options.
                </ResponseField>

                <ResponseField name="primary_target_market" type="string">
                  Primary geographic market the business targets.
                </ResponseField>

                <ResponseField name="primary_target_market_other_description" type="string">
                  Free-text description of the primary target market when not covered by the standard options.
                </ResponseField>

                <ResponseField name="expected_fiat_monthly_volume" type="string">
                  Expected monthly volume of fiat transactions.
                </ResponseField>

                <ResponseField name="expected_crypto_monthly_volume" type="string">
                  Expected monthly volume of crypto transactions.
                </ResponseField>

              </Expandable>
            </ResponseField>

            <ResponseField name="account_type" type="string" required>
              Kind of account to open (for example, regular or savings). This is the account type, not the customer type. Use the top-level application_type field for individual vs business.

              Possible values: `regular`, `savings`
            </ResponseField>

            <ResponseField name="currency" type="string" required>
              Currency for the account, in ISO 4217 format.
            </ResponseField>

            <ResponseField name="blockchain_network" type="string" required>
              Blockchain network to back the account (for example, polygon or stellar).
            </ResponseField>

            <ResponseField name="wallet_address" type="string">
              Blockchain wallet address to associate with the account.
            </ResponseField>

            <ResponseField name="wallet_id" type="string">
              UUID of an existing Gravv wallet to link to the account.
            </ResponseField>

            <ResponseField name="label" type="string">
              Human-readable label for the account.
            </ResponseField>

            <ResponseField name="agreement_id" type="string">
              ID of the provider agreement associated with this application.
            </ResponseField>

            <ResponseField name="tos_link" type="string">
              URL to the terms of service the applicant must accept.
            </ResponseField>

            <ResponseField name="metadata" type="object">
              Arbitrary key-value pairs for storing additional information about the application.
            </ResponseField>

          </Expandable>
        </ResponseField>

        <ResponseField name="metadata" type="object">
          Arbitrary key-value pairs attached to the application.
        </ResponseField>

        <ResponseField name="validation_errors" type="object[]">
          List of validation errors returned when the application data does not meet provider requirements.

          <Expandable title="properties">
            <ResponseField name="field" type="string">
              The field that failed validation.
            </ResponseField>

            <ResponseField name="message" type="string">
              Human-readable explanation of the validation error.
            </ResponseField>

            <ResponseField name="code" type="string">
              Machine-readable error code for the validation failure.
            </ResponseField>

            <ResponseField name="suggestion" type="string">
              Suggested fix for the validation error.
            </ResponseField>

          </Expandable>
        </ResponseField>

        <ResponseField name="submitted_at" type="string">
          Timestamp when the application was submitted, in ISO 8601 format.
        </ResponseField>

        <ResponseField name="processed_at" type="string">
          Timestamp when the application was processed by the provider, in ISO 8601 format.
        </ResponseField>

        <ResponseField name="created_at" type="string">
          Timestamp when the application was created, in ISO 8601 format.
        </ResponseField>

        <ResponseField name="updated_at" type="string">
          Timestamp when the application was last updated, in ISO 8601 format.
        </ResponseField>

        <ResponseField name="deleted_at" type="string,null">
          Timestamp when the application was soft-deleted, if applicable.
        </ResponseField>

      </Expandable>
    </ResponseField>

    <ResponseField name="processing_result" type="object">

      <Expandable title="properties">
        <ResponseField name="application_id" type="string">
        </ResponseField>

        <ResponseField name="status" type="string">
        </ResponseField>

        <ResponseField name="account" type="oneOf">

          One of the following variants:

          <Expandable title="Variant 1">
            <ResponseField name="id" type="string">
            </ResponseField>

            <ResponseField name="label" type="string">
            </ResponseField>

            <ResponseField name="date_created" type="string">
            </ResponseField>

            <ResponseField name="wallet_address" type="string">
            </ResponseField>

            <ResponseField name="blockchain_network" type="string">
            </ResponseField>

            <ResponseField name="type" type="string">
              Account kind.
            </ResponseField>

            <ResponseField name="customer_id" type="string">
            </ResponseField>

            <ResponseField name="capabilities" type="string[]">
            </ResponseField>

            <ResponseField name="currency" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_id" type="string">
            </ResponseField>

            <ResponseField name="tenant_name" type="string">
            </ResponseField>

            <ResponseField name="tenant_id" type="string">
            </ResponseField>

            <ResponseField name="tier" type="string">
            </ResponseField>

            <ResponseField name="status" type="string">

              Possible values: `active`, `frozen`, `deleted`, `pending`
            </ResponseField>

            <ResponseField name="category" type="string">
            </ResponseField>

            <ResponseField name="balance" type="string">
            </ResponseField>

            <ResponseField name="is_tokenized" type="boolean">
            </ResponseField>

            <ResponseField name="inflow_behavior" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_name" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_address" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_beneficiary_address" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_beneficiary_name" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_account_number" type="string">
            </ResponseField>

            <ResponseField name="virtual_account_bank_routing_number" type="string">
            </ResponseField>

            <ResponseField name="assets" type="object[]">

              <Expandable title="properties">
                <ResponseField name="balance" type="string">
                </ResponseField>

                <ResponseField name="decimals" type="integer">
                </ResponseField>

                <ResponseField name="symbol" type="string">
                </ResponseField>

              </Expandable>
            </ResponseField>

            <ResponseField name="metadata" type="object">
            </ResponseField>

          </Expandable>

          - **null** (`null`)
        </ResponseField>

        <ResponseField name="errors" type="object[]">

          <Expandable title="properties">
            <ResponseField name="stage" type="string">
              Processing stage where the error occurred.
            </ResponseField>

            <ResponseField name="message" type="string">
              Human-readable explanation of the processing error.
            </ResponseField>

            <ResponseField name="code" type="string">
              Machine-readable error code.
            </ResponseField>

            <ResponseField name="suggestion" type="string">
              Suggested fix.
            </ResponseField>

          </Expandable>
        </ResponseField>

        <ResponseField name="metadata" type="object">
        </ResponseField>

      </Expandable>
    </ResponseField>

    <ResponseField name="is_fully_processed" type="boolean">
    </ResponseField>

  </Expandable>
</ResponseField>

<ResponseField name="error" type="null" required>
</ResponseField>

### 400 response

<ResponseField name="data" type="null" required>
</ResponseField>

<ResponseField name="error" type="string" required>
  Human-readable error message.
</ResponseField>

## Authorization

- **ApiKeyAuth**
