> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Pre-Collected Documents

> Upload ID and selfie photos you already hold, in four calls, then submit the consumer application.

If your consumer program has already collected ID and selfie photos from users, you can submit these to streamline the verification process. This can improve approval rates by reducing the need for additional document requests. The following steps cover verifying document validity, uploading them correctly, and completing the application process.

<Info>
  This flow uses the consumer application endpoints. For a corporate application, upload documents through the [company document endpoint](/reference/applications/upload-a-document-to-support-a-companys-corporate-application) and the [UBO document endpoint](/reference/applications/upload-a-ubos-document-to-support-a-companys-corporate-application) instead.
</Info>

Uploading is synchronous, so you learn on the spot whether a document was accepted. A `400` means you fix that document and upload it again before submitting the application.

<Steps>
  <Step title="Verify document validity">
    Before uploading, verify that the documents you have collected are [acceptable KYC documents](/docs/kyc-kyb-documents). Using unsupported documents may result in delays or rejection during the verification process.

    The upload endpoints offer more document types than compliance accepts, so check the accepted list rather than the endpoint's options.
  </Step>

  <Step title="Initiate the application">
    Before uploading documents, you must [initiate an application](/reference/applications/initiate-a-consumer-application-for-a-user). Initiating requires the user's email and at least one wallet address (the wallet is not needed if your program self-manages authorizations); you can optionally include details such as the user's name.

    Once initiated, the application's `applicationStatus` will be set to `notStarted`. For more details, see the [application states](/docs/application-states) guide.
  </Step>

  <Step title="Upload pre-collected documents">
    Use the endpoint to [upload a consumer document](/reference/applications/upload-a-document-to-support-a-users-consumer-application). `type`, `side`, and `countryCode` are required, and must be within a subset of allowed values.

    * The `type` must correspond to the type of document being uploaded. Currently, we only accept types of `selfie`, `idCard`, `passport`, `drivers` and `residencePermit`.
    * The `side` must correspond to the side of the document (`front` or `back`) where applicable.
    * The `countryCode` is the alpha-2 country code of the country that the ID is from (for example, "US").

    <Info>
      **Backward compatibility:**

      The legacy `country` parameter (3-digit codes only) is still supported but deprecated. We recommend using `countryCode` for new integrations.
    </Info>

    This endpoint is synchronous and returns a `204` on success. If a document fails validation, the endpoint returns a `400` with rejection tags. See [Fastfail checks](/docs/kyc-kyb-documents#fastfail-checks) for details.
  </Step>

  <Step title="Submit the application">
    Once the documents are uploaded, you can [submit the complete application](/reference/applications/create-a-consumer-application-for-a-user).

    The application status will change to `pending` while under review.
  </Step>
</Steps>

## Best practices

* Upload all required documents before submission to avoid delays.
* Ensure selfies meet quality guidelines for optimal matching.
* Test the integration thoroughly in the sandbox environment before going live.

## What's next

<Columns cols={3}>
  <Card title="Application states" icon="list-check" href="/docs/application-states">
    Track the application after you submit.
  </Card>

  <Card title="KYC/KYB documents" icon="file-lines" href="/docs/kyc-kyb-documents">
    Which documents Rain accepts.
  </Card>

  <Card title="Rejection reasons" icon="circle-exclamation" href="/docs/rejection-reasons">
    What to do if the application comes back rejected.
  </Card>
</Columns>
