---
title: "Upload associate identity documents"
method: POST
path: "/onboarding/v1/associates/{associateId}/identification-documents"
tags: ["Onboarding"]
---

# Upload associate identity documents

`POST /onboarding/v1/associates/{associateId}/identification-documents`

## Request

- Base URL: `https://api.sandbox.bvnk.com`
- URL: `https://api.sandbox.bvnk.com/onboarding/v1/associates/{associateId}/identification-documents`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/docs/onboarding/v1/associates/:associateId/identification-documents/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads identity and address verification documents for a specific associate as `multipart/form-data`.

Use `associateId` from the onboarding status response (`GET /onboarding/v1/applications/{onboardingId}/status`).

Jurisdiction guidance:
- EU: selfie/liveness and proof of address are generally mandatory.
- US: selfie may be optional while tax and control-person requirements can apply.

If a submitted document is rejected, resubmit a corrected file through the same endpoint; the previous rejected document is replaced.

## Path parameters

- `associateId` string, uuid, required

## Request body `multipart/form-data`

- OnboardingAssociateIdentificationDocumentsUploadRequest
  - `metadata` string, required: JSON array (string) of associate identification document metadata entries with `type`, `name`, and `countryCode`. You need to submit any document of the following as an ID: `PASSPORT`, `ID_CARD`, `DRIVERS`, `RESIDENCE_PERMIT`. Supported associate document types: | Type | Description | When required | | --- | --- | --- | | `PASSPORT` | Passport. | Identity document required | | `ID_CARD` | National identity card. | Alternative to passport | | `DRIVERS` | Driver's licence. | Alternative to passport | | `RESIDENCE_PERMIT` | Residence permit. | Alternative to passport | | `UTILITY_BILL` | Proof of residential address. Must be dated within the last three months. | EU: Mandatory. US: Conditional | | `SELFIE` | Biometric selfie / liveness capture. | EU: Mandatory. US: Optional |
  - `files` string[], required: One file per metadata entry, in matching order.

## Response `200`

Associate documents accepted for processing

- OnboardingAssociateIdentificationDocumentsUploadResponse
  - `associateId` string, uuid, required
  - `acceptedDocumentCount` integer, required
  - `message` string, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

## Changes

- **2026-06-16** `97d6c0d2fe2e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/onboarding/v1/associates/:associateId/identification-documents/post.md)

---

[API](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints.md) - [All operations](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/revisions/c386d436bf2c?raw)
