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

# Update a Stakeholder

> Update a Stakeholder using Razorpay Partners APIs.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
  <span>🇺🇸 United States</span>
</div>

Use this endpoint to update the details of a stakeholder. Know about the [various error responses](/docs/us/api/partners/errors) for this API.

<br />

The information you can update for a stakeholder using the Update a Stakeholder API differs based on the [product activation status](/docs/us/partners/aggregators/onboarding-api#product-activation-status-and-updates-permitted).

<Warning>
  Currently, we do not support making concurrent requests to the following Onboarding APIs including their combination on the same `account_id`:

  * [Update Account API](/docs/us/api/partners/account-onboarding/update)
  * Update Stakeholder API
  * [Update Product Configuration API](/docs/us/api/partners/product-configuration/update-settlement-account-details)

  Please wait for the response of these APIs before making subsequent requests.
</Warning>

<RequestExample>
  ```bash Curl theme={null}
  curl -X PATCH https://api.razorpay.com/v2/accounts/acc_GLGeLkU2JUeyDZ/stakeholders/sth_GOQ4Eftlz62TSL \
  -u <ACCESS_TOKEN> \
  -H "Content-Type: application/json" \
  -d '{
    "percentage_ownership": 20,
    "name": "Gauri Kumar",
    "relationship": {
      "director": false,
      "executive": true
    },
    "phone": {
      "primary": "9000090000",
      "secondary": "9000090000"
    },
    "addresses": {
      "residential": {
        "street": "507, Koramangala 1st block",
        "city": "Bangalore",
        "state": "Karnataka",
        "postal_code": "560035",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111J"
    },
    "notes": {
      "random_key_by_partner": "random_value2"
    }
  }'
  ```

  ```java Java theme={null}
  RazorpayClient razorpay = new RazorpayClient("[ACCESS_TOKEN]");

  String accountId = "acc_GP4lfNA0iIMn5B";

  String stakeholderId = "sth_GOQ4Eftlz62TSL";

  JSONObject StakeRequest = new JSONObject();
  StakeRequest.put("email","gauri.kumari@example.com");
  StakeRequest.put("percentage_ownership",10);
  StakeRequest.put("name","Gauri Kumari");

  JSONObject relationship = new JSONObject();
  relationship.put("director",true);
  relationship.put("executive",false);

  StakeRequest.put("relationship",relationship);

  JSONObject phone = new JSONObject();
  phone.put("primary","9000090000");
  phone.put("secondary","9000090000");

  StakeRequest.put("phone",phone);

  JSONObject residential = new JSONObject();
  residential.put("street","507, Koramangala 6th block");
  residential.put("city","Bengaluru");
  residential.put("state","Karnataka");
  residential.put("postal_code","560047");
  residential.put("country","IN");

  JSONObject addresses = new JSONObject();
  addresses.put("residential",residential);
  StakeRequest.put("addresses",addresses);

  JSONObject kyc = new JSONObject();
  kyc.put("pan","AVOPB1111K");

  StakeRequest.put("kyc",kyc);

  JSONObject notes = new JSONObject();
  notes.put("random_key_by_partner","random_value");

  StakeRequest.put("notes",notes);

  Stakeholder stakeholder = instance.stakeholder.edit(accountId, stakeholderId, StakeRequest);
  ```

  ```php PHP theme={null}
  $api = new Api(null, null, "<ACCESS_TOKEN>");

  $accountId = "acc_GP4lfNA0iIMn5B";
  $stakeholderId = "sth_GOQ4Eftlz62TSL";

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

  $stakeholders->edit($stakeholderId, array(
     "percentage_ownership" => 20,
     "name" => "Gauri Kumar",
     "relationship" => array(
         "director" => false,
         "executive" => true
     ),
     "phone" => array(
         "primary" => "9898989898",
         "secondary" => "9898989898"
     ),
     "addresses" => array(
         "residential" => array(
             "street" => "507, Koramangala 1st block",
             "city" => "Bangalore",
             "state" => "Karnataka",
             "postal_code" => "560035",
             "country" => "IN"
         )
     ),
     "kyc" => array(
         "pan" => "AVOPB1111J"
     ),
     "notes" => array(
         "random_key_by_partner" => "random_value2"
     )
  ));
  ```

  ```javascript Node.js theme={null}
  const instance = new Razorpay({
    oauthToken: "<ACCESS_TOKEN>"
  );

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

  instance.stakeholders.edit(accountId, stakeholderId, {
    "percentage_ownership": 20,
    "name": "Gauri Kumar",
    "relationship": {
      "director": false,
      "executive": true
    },
    "phone": {
      "primary": "9898989898",
      "secondary": "9898989898"
    },
    "addresses": {
      "residential": {
        "street": "507, Koramangala 1st block",
        "city": "Bangalore",
        "state": "Karnataka",
        "postal_code": "560035",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111J"
    },
    "notes": {
      "random_key_by_partner": "random_value2"
    }
  });
  ```

  ```ruby Ruby theme={null}
  require "razorpay"
  Razorpay.setup('ACCESS_TOKEN')
  accountId = "acc_GP4lfNA0iIMn5B";
  stakeholderId = "sth_GOQ4Eftlz62TSL";

  Razorpay::Stakeholder.edit(accountId, stakeholderId, {
    "percentage_ownership": 20,
    "name": "Gauri Kumar",
    "relationship": {
      "director": 0,
      "executive": 1
    },
    "phone": {
      "primary": "9898989898",
      "secondary": "9898989898"
    },
    "addresses": {
      "residential": {
        "street": "507, Koramangala 1st block",
        "city": "Bangalore",
        "state": "Karnataka",
        "postal_code": "560035",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111J"
    },
    "notes": {
      "random_key_by_partner": "random_value2"
    }
  })
  ```

  ```csharp .NET theme={null}
  RazorpayClient client = new RazorpayClient("[ACCESS_TOKEN]");

  Dictionary<string, object> StakeRequest = new Dictionary<string, object>();
  StakeRequest.Add("percentage_ownership", 10);
  StakeRequest.Add("name", "Gaurav Kumar");

  Dictionary<string, object> relationship = new Dictionary<string, object>();
  relationship.Add("director", true);
  relationship.Add("executive", false);

  StakeRequest.Add("relationship", relationship);

  Dictionary<string, object> phone = new Dictionary<string, object>();
  phone.Add("primary", "9999999999");
  phone.Add("secondary", "9999999999");

  StakeRequest.Add("phone", phone);

  Dictionary<string, object> residential = new Dictionary<string, object>();
  residential.Add("street", "507, Koramangala 6th block");
  residential.Add("city", "Bengaluru");
  residential.Add("state", "Karnataka");
  residential.Add("postal_code", "560047");
  residential.Add("country", "IN");

  Dictionary<string, object> addresses = new Dictionary<string, object>();
  addresses.Add("residential", residential);
  StakeRequest.Add("addresses", addresses);

  Dictionary<string, object> kyc = new Dictionary<string, object>();
  kyc.Add("pan", "AVOPB1111K");

  StakeRequest.Add("kyc", kyc);

  Dictionary<string, object> notes = new Dictionary<string, object>();
  notes.Add("random_key_by_partner", "random_value");

  StakeRequest.Add("notes", notes);

  string accountId = "acc_ua2tBezhcEBvap";
  string stakeholderId = "sth_ua2tBezhcEBvap";

  Stakeholder stakeholder = client.Stakeholder.Fetch(accountId, stakeholderId).Edit(accountId, StakeRequest);
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": "acc_GP4lfNA0iIMn5B",
    "type": "standard",
    "status": "created",
    "email": "gauri.kumari@example.com",
    "profile": {
      "category": "healthcare",
      "subcategory": "clinic",
      "addresses": {
        "registered": {
          "street1": "507, Koramangala 1st block",
          "street2": "MG Road-1",
          "city": "Bengalore",
          "state": "KARNATAKA",
          "postal_code": "560034",
          "country": "IN"
        }
      }
    },
    "notes": [],
    "created_at": 1610603081,
    "phone": "9000090000",
    "reference_id": "randomId",
    "business_type": "partnership",
    "legal_business_name": "Acme Corp",
    "customer_facing_business_name": "ABCD Ltd"
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="account_id" type="string" required>
  The unique identifier of a sub-merchant account generated by Razorpay. For example, `acc_GLGeLkU2JUeyDZ`
</ParamField>

<ParamField path="id" type="string" required>
  The unique identifier of the stakeholder whose details are to be updated. For example, `sth_GOQ4Eftlz62TSL`
</ParamField>

## Request Parameters

<ParamField body="percentage_ownership" type="float">
  The stakeholder's ownership of the business in percentage. Only two decimal places are allowed. For example, `87.55`. The maximum length is 100 characters.
</ParamField>

<ParamField body="name" type="string">
  The stakeholder's name as per the PAN card. The maximum length is 255 characters.
</ParamField>

<ParamField body="relationship" type="object">
  The stakeholder's relationship with the account's business.
</ParamField>

<ParamField body="director" type="boolean">
  Determines if stakeholder is a director of the account's legal entity.

  * `true`: Stakeholder is a director.
  * `false` (default): Stakeholder is not a director.
</ParamField>

<ParamField body="executive" type="boolean">
  Determines if the stakeholder is an executive of the account's legal entity.

  * `true`: Stakeholder is an executive.
  * `false` (false): Stakeholder is not an executive.
</ParamField>

<ParamField body="phone" type="object">
  The stakeholder's phone number.
</ParamField>

<ParamField body="primary" type="integer">
  The primary contact number of the stakeholder. The minimum length is 8 characters and the maximum length is 11.
</ParamField>

<ParamField body="secondary" type="integer">
  The secondary contact number of the stakeholder. The minimum length is 8 characters and the maximum length is 11.
</ParamField>

<ParamField body="addresses" type="object">
  Details of stakeholder's address.
</ParamField>

<ParamField body="residential" type="object">
  Details of the stakeholder's residential address.
</ParamField>

<ParamField body="street" type="string">
  The stakeholder's street address. The minimum length is 10 characters and maximum length is 255.
</ParamField>

<ParamField body="city" type="string">
  The city. The minimum length is 2 and maximum length is 32.
</ParamField>

<ParamField body="state" type="string">
  The state. The minimum length is 2 and maximum length is 32.
</ParamField>

<ParamField body="postal_code" type="string">
  The postal code. The minimum length is 2 and maximum length is 10.
</ParamField>

<ParamField body="country" type="string">
  The country. The minimum length is 2 and maximum length is 64. This can either be a country code in capital letters or the full name of the country in lower case letters. For example, for India, you must write either `IN` or `india`. [List of supported Countries](/docs/us/partners/aggregators/onboarding-api/appendix#country-list).
</ParamField>

<ParamField body="kyc" type="object">
  The type of document required to establish the stakeholder's identity.
</ParamField>

<ParamField body="pan" type="string">
  The PAN number of the stakeholder.<br />

  * This is a 10-digit alphanumeric code. For example, `AVOPB1111K`.
  * **Regex to validate Stakeholder PAN**: `/^[a-zA-z]{5}\d{4}[a-zA-Z]{1}$/`.
  * **Validation for Stakeholder PAN**: The 4th digit should be 'P'.
  * If the business type is HUF, the karta's PAN should be provided.
</ParamField>

<ParamField body="notes" type="object">
  Contains user-defined fields stored by the partner for reference purposes. Maximum 15 key-value pairs, 512 characters (maximum) each.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier of a stakeholder generated by Razorpay, used to fetch or update a stakeholder. For example, `sth_GLGgm8fFCKc92m`. Maximum length supported is 18 characters.
</ResponseField>

<ResponseField name="percentage_ownership" type="float">
  The stakeholder's ownership of the business in percentage. Only two decimal places are allowed. For example, `87.55`. The maximum length is 100 characters.
</ResponseField>

<ResponseField name="name" type="string">
  The stakeholder's name as per the PAN card. The maximum length is 255 characters.<br />
</ResponseField>

<ResponseField name="email" type="string">
  The stakeholder's email address. The maximum length is:

  * local part (before @): 64 characters.
  * domain part (after @): 68 characters. <br /> The total character length supported is 132.
</ResponseField>

<ResponseField name="relationship" type="object">
  The stakeholder's relationship with the account's business.
</ResponseField>

<ResponseField name="director" type="boolean">
  Determines if stakeholder is a director of the account's legal entity.

  * `true`: Stakeholder is a director.
  * `false` (default): Stakeholder is not a director.
</ResponseField>

<ResponseField name="executive" type="boolean">
  Determines if the stakeholder is an executive of the account's legal entity.

  * `true`: Stakeholder is an executive.
  * `false` (false): Stakeholder is not an executive.
</ResponseField>

<ResponseField name="phone" type="object">
  The stakeholder's phone number.
</ResponseField>

<ResponseField name="primary" type="integer">
  The primary contact number of the stakeholder. The minimum length is 8 characters and the maximum length is 11.
</ResponseField>

<ResponseField name="secondary" type="integer">
  The secondary contact number of the stakeholder. The minimum length is 8 characters and the maximum length is 11.
</ResponseField>

<ResponseField name="addresses" type="object">
  Details of stakeholder's address.
</ResponseField>

<ResponseField name="residential" type="string">
  Details of the stakeholder's residential address.
</ResponseField>

<ResponseField name="street" type="string">
  The stakeholder's street address. The minimum length is 10 characters and maximum length is 255.
</ResponseField>

<ResponseField name="city" type="string">
  The city. The minimum length is 2 and maximum length is 32.
</ResponseField>

<ResponseField name="state" type="string">
  The state. The minimum length is 2 and maximum length is 32.
</ResponseField>

<ResponseField name="postal_code" type="string">
  The postal code. The minimum length is 2 and maximum length is 10.
</ResponseField>

<ResponseField name="country" type="string">
  The country. The minimum length is 2 and maximum length is 64. This can either be a country code in capital letters or the full name of the country in lower case letters. For example, for India, you must write either `IN` or `india`. [List of supported Countries](/docs/us/partners/aggregators/onboarding-api/appendix#country-list).
</ResponseField>

<ResponseField name="kyc" type="object">
  The type of document required to establish the stakeholder's identity.
</ResponseField>

<ResponseField name="pan" type="string">
  The PAN number of the stakeholder.<br />

  * This is a 10-digit alphanumeric code. For example, `AVOPB1111K`.
  * **Regex to validate Stakeholder PAN**: `/^[a-zA-z]{5}\d{4}[a-zA-Z]{1}$/`
  * **Validation for Stakeholder PAN**: The 4th digit should be 'P'.<br />
  * If the business type is HUF, the karta's PAN should be provided.
  * This API parameter might be required to complete the KYC process, however, it is optional for this API.
</ResponseField>

<ResponseField name="notes" type="object">
  Contains user-defined fields stored by the partner for reference purposes. It can hold a maximum of 15 key-value pairs, 512 characters (maximum) each. For example, "note\_key": "Beam me up Scotty”.
</ResponseField>
