---
title: "Initiate Document Upload"
method: POST
path: "/owners/documents/"
tags: ["Account Owners"]
---

# Initiate Document Upload

`POST /owners/documents/`

Generate pre-signed URLs for uploading account owner documents.One of 'individual', 'organization', or 'external' is required depending on 'type' and 'kyc_mode'.

## Headers

- `x-company-id` integer — ID of a child company for authentication. If not provided, the parent company will be authenticated.

## Request body

- AccountOwnerDocumentRequest
  - `document_type` 'NATIONAL_ID' | 'PASSPORT' | 'DRIVERS_LICENSE' | 'SELFIE' | 'CERTIFICATE_OF_INCORPORATION' | 'SOURCE_OF_FUNDS' | 'PROOF_OF_ADDRESS' | 'OWNERSHIP_STRUCTURE' | 'TAX_REGISTRATION' | 'CORPORATE_ORG_CHART' | 'OTHER', required — Type of document for KYC/KYB verification
  - `double_sided` boolean — Whether the document has two sides (e.g., front and back of an ID card)

## Response `200`

Successful Response

- AccountOwnerDocumentSuccessResponse
  - `status` 'success'
  - `data` AccountOwnerDocumentResponse, required
    - `id` string, required — Document ID
    - `upload_front_url` string, required — Pre-signed URL for uploading the front side of the document
    - `upload_back_url` string — Pre-signed URL for uploading the back side of the document (if double_sided is true)
    - `expires_at` string, date-time — Expiration timestamp for the pre-signed URLs

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/infiniaweb/apis/payins.md) · [All operations](https://skmtc.net/infiniaweb/apis/payins/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/infiniaweb/payins/revisions/3f453785c478/schema)
