> ## 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.

# Create a Stakeholder

> Create 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>🇸🇬 Singapore</span>
  <span>🇺🇸 United States</span>
</div>

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

<RequestExample>
  ```bash Curl theme={null}
  curl -X POST https://api.razorpay.com/v2/accounts/acc_GLGeLkU2JUeyDZ/stakeholders \
  -u <ACCESS_TOKEN> \
  -H "Content-Type: application/json" \
  -d '{
    "percentage_ownership": 10,
    "name": "Gaurav Kumar",
    "email": "gaurav.kumar@example.com",
    "relationship": {
      "director": true,
      "executive": false
    },
    "phone": {
      "primary": "9000090000",
      "secondary": "9000090000"
    },
    "addresses": {
      "residential": {
        "street": "506, Koramangala 1st block",
        "city": "Bengaluru",
        "state": "Karnataka",
        "postal_code": "560034",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111K"
    },
    "notes": {
      "random_key_by_partner": "random_value"
    }
  }'
  ```

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

  String accountId = "acc_GP4lfNA0iIMn5B";

  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.create(accountId, StakeRequest);
  ```

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

  $accountId = "acc_GP4lfNA0iIMn5B";

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

  $stakeholders->create(array(
     "percentage_ownership" => 10,
     "name" => "Gaurav Kumar",
     "email" => "gaurav.kumarr@example.com",
     "relationship" => array(
         "director" => true,
         "executive" => false
     ),
     "phone" => array(
         "primary" => "7474747474",
         "secondary" => "7474747474"
     ),
     "addresses" => array(
         "residential" => array(
             "street" => "506, Koramangala 1st block",
             "city" => "Bengaluru",
             "state" => "Karnataka",
             "postal_code" => "560034",
             "country" => "IN"
         )
     ),
     "kyc" => array(
         "pan" => "AVOPB1111K"
     ),
     "notes" => array(
         "random_key_by_partner" => "random_value"
     )
  ));
  ```

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

  const accountId = "acc_GP4lfNA0iIMn5B";

  instance.stakeholders.create(accountId, {
    "percentage_ownership": 10,
    "name": "Gaurav Kumar",
    "email": "gaurav.kumar@example.com",
    "relationship": {
      "director": true,
      "executive": false
    },
    "phone": {
      "primary": "7474747474",
      "secondary": "7474747474"
    },
    "addresses": {
      "residential": {
        "street": "506, Koramangala 1st block",
        "city": "Bengaluru",
        "state": "Karnataka",
        "postal_code": "560034",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111K"
    },
    "notes": {
      "random_key_by_partner": "random_value"
    }
  });
  ```

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

  Razorpay::Stakeholder.create(accountId, {
    "percentage_ownership": 10,
    "name": "Gaurav Kumar",
    "email": "gaurav.kumar@example.com",
    "relationship": {
      "director": 1,
      "executive": 0
    },
    "phone": {
      "primary": "7474747474",
      "secondary": "7474747474"
    },
    "addresses": {
      "residential": {
        "street": "506, Koramangala 1st block",
        "city": "Bengaluru",
        "state": "Karnataka",
        "postal_code": "560034",
        "country": "IN"
      }
    },
    "kyc": {
      "pan": "AVOPB1111K"
    },
    "notes": {
      "random_key_by_partner": "random_value"
    }
  })
  ```

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

  string accountId = "acc_ua2tBezhcEBvap";

  Dictionary<string, object> StakeRequest = new Dictionary<string, object>();
  StakeRequest.Add("email", "gauriagain.kumar@example.org");
  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);

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

<ResponseExample>
  ```json Success theme={null}
  {
    "entity": "stakeholder",
    "relationship": {
      "director": true
    },
    "phone": {
      "primary": "9000090000",
      "secondary": "9000090000"
    },
    "notes": {
      "random_key_by_partner": "random_value"
    },
    "kyc": {
      "pan": "AVOPB1111K"
    },
    "id": "sth_GLGgm8fFCKc92m",
    "name": "Gaurav Kumar",
    "email": "gaurav.kumar@example.com",
    "percentage_ownership": 10,
    "addresses": {
      "residential": {
        "street": "506, Koramangala 1st block",
        "city": "Bengaluru",
        "state": "Karnataka",
        "postal_code": "560034",
        "country": "IN"
      }
    }
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="account_id" type="string">
  The unique identifier of the sub-merchant account generated by Razorpay. For example, `acc_GLGeLkU2JUeyDZ`. This id is used to fetch or update a stakeholder. The stakeholder is created for this sub-merchant account id.
</ParamField>

## Request Parameters

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

<ParamField body="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.
</ParamField>

<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="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/sg/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 the stakeholder whose details are created. For example, `sth_GLGgm8fFCKc92m`.
</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/sg/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>
