> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-60c89f9a-mintlify-audit-missing-sections-1778528421.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload Stakeholder Documents

> **POST** `/v2/accounts/:account_id/stakeholders/:stakeholder_id/documents`

Use this endpoint to upload signatory documents for a stakeholder. Know about the [various error responses](/api/partners/errors) for this API.

<Info>
  **Handy Tips**
</Info>

If your product activation status is `requested`, you can update all the fields. If the status is `needs_clarification`, you can update only specific fields.

### Request

````cURL: Curl theme={null}
curl -X POST https://api.razorpay.com/v2/accounts/acc_Go5TSvGPw0NB8v/stakeholders/sth_Go5iFZJ8dqAfjg/documents \
-u  \
-F 'file=@/Users/your_name/Downloads/sample_uploaded.jpeg' // file path
-F 'document_type=aadhar_front' 

```java: Java
RazorpayClient razorpay = new RazorpayClient("[ACCESS_TOKEN]");

String accoundId = "acc_LryDIBIjBDbOWy";
String stakeholderId = "sth_M0zjeiVOLRJRPW";

JSONObject request = new JSONObject();
request.put("file","/Users/your_name/Downloads/sample_uploaded.jpeg");
request.put("document_type","aadhar_front");

Stakeholder stakeholder = instance.stakeholder.uploadStakeholderDoc(accoundId, stakeholderId, request);

```php: PHP
$api = new Api(null, null, "");

$accountId = "acc_00000000000001";
$stakeholderId = "sth_00000000000001";
$payload = [
   'file'=> '/Users/your_name/Downloads/sample_uploaded.pdf',
   "document_type" => "aadhar_front"
];

$stakeholders = $api->account->fetch($accountId)->stakeholders();

$stakeholders->uploadStakeholderDoc($stakeholderId, $payload);

```javascript: Node.js
const instance = new Razorpay({
  oauthToken: "",
});

const accountId = "acc_GP4lfNA0iIMn5B";
const stakeholderId = "sth_GOQ4Eftlz62TSL";

const uploadFile = fs.createReadStream(
  "/Users/your_name/Downloads/sample_uploaded.jpeg",
);

const formData = {
  file: {
    value: uploadFile,
    options: {
      filename: "sample_uploaded.jpeg",
      contentType: null,
    },
  },
  document_type: "aadhar_front",
};

instance.stakeholders.uploadStakeholderDoc(accountId, stakeholderId, formData);

```ruby: Ruby
require "razorpay"
Razorpay.setup('ACCESS_TOKEN')
account_id = "acc_0000000000001"
stakeholder_id = "sth_00000000000001"

Razorpay::Stakeholder.upload_stakeholder_doc(account_id, stakeholder_id, {
  "file": File.new("/Users/your_name/Downloads/sample_uploaded.jpeg"),
  "document_type": "aadhar_front"
});

````

### Response

```json: Success theme={null}
{
  "individual_proof_of_address": [
    {
      "type": "aadhar_front",
      "url": "https://rzp.io/i/bzDAbNg"
    }
  ]
}
```

### Parameters

`account_id` *mandatory*
: `string` The unique identifier of a sub-merchant account generated by Razorpay. For example, `acc_GMh5YcLv9iGMKf`.

`stakeholder_id` *mandatory*
: `string` The unique identifier of the stakeholder generated by Razorpay. For example, `sth_GOUCFN3nE0XlYq`.

### Parameters

`file` *mandatory*
: `array` The URL generated once the business proof document is uploaded.

`document_type` *mandatory*
: `string` The documents for the valid proof type to be shared. In case of `individual_proof_of_address`, both the front and back of a document proof must be uploaded. Possible values:

* individual\_proof\_of\_identification:

  * `personal_pan`

* individual\_proof\_of\_address:

  * `voter_id_back`

  * `voter_id_front`

  * `aadhar_front`

  * `aadhar_back`

  * `passport_front`

  * `passport_back`

### Parameters

`individual_proof_of_address`
: `array` The document submitted as individual proof of address.

`type`
: `string` The type of document. Possible values:

* `voter_id_back`

* `voter_id_front`

* `aadhar_front`

* `aadhar_back`

* `passport_front`

* `passport_back`

`url`
: `string` The URL of the document.
