---
title: "Upload KYC documents for a sub-merchant account"
method: POST
path: "/v2/accounts/{account_id}/documents"
tags: ["Partner Documents"]
---

# Upload KYC documents for a sub-merchant account

`POST /v2/accounts/{account_id}/documents`

Upload KYC documents for business identity and address verification. Multipart form upload. JPG/PNG max 4MB, PDF max 2MB. Authentication: OAuth access_token.

## Path parameters

- `account_id` string, required

## Response `200`

Document uploaded

- AccountDocument — KYC documents for a sub-merchant account. Files must be JPG/PNG (max 4MB) or PDF (max 2MB).
  - `business_proof_of_identification` object[]
    - `type` 'business_proof_url' | 'gst_certificate' | 'shop_establishment_certificate' | 'certificate_of_incorporation' | 'trust_deed' | 'society_registration_certificate'
    - `document_id` string
  - `business_proof_of_address` object[]
    - `type` string
    - `document_id` string

## Other responses

- `400` — Bad request. Invalid parameters or missing required fields.
- `401` — Authentication failed. Invalid or missing API key credentials.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.
- `500` — Internal server error.

---

[API](https://skmtc.net/razorpay/apis/razorpay-api.md) · [All operations](https://skmtc.net/razorpay/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/razorpay/razorpay-api/revisions/824ca9e6faef/schema)
