---
title: "Account holders and accounts"
description: "Create account holders and accounts for sub-merchants that sign up on your platform."
url: "https://docs.adyen.com/classic-platforms/account-holders-and-accounts"
source_url: "https://docs.adyen.com/classic-platforms/account-holders-and-accounts.md"
canonical: "https://docs.adyen.com/classic-platforms/account-holders-and-accounts"
last_modified: "2021-11-22T12:16:00+01:00"
language: "en"
---

# Account holders and accounts

Create account holders and accounts for sub-merchants that sign up on your platform.

[View source](/classic-platforms/account-holders-and-accounts.md)

This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our [new integration guide](/adyen-for-platforms-model) instead.

Start the onboarding process by creating an account holder. To create an account holder, you need to get the sub-merchant's legal entity type, collect the minimum required information, and send the information in an API request.

Once the account holder is created and active, you can start processing payments for them. However, to pay out their funds, they have to provide more information (such as their bank account details) and pass verification checks.

## Step 1: Identify their legal entity type

When creating an account holder, you need to specify the sub-merchant's legal entity type. Their legal entity type determines the kind of information that Adyen requires for their verification checks.

An account holder can be one of the following legal entities: **Individual**, **Business**, **Nonprofit**, **Partnership**, or **Public company**.

If an account holder signs up using an incorrect legal entity type, you can [change the legal entity](/classic-platforms/account-holders-and-accounts/change-legal-entity).

## Step 2: Collect the minimum required information

Collect the minimum required information from your sub-merchant depending on their legal entity type.

### Tab: Individual

To create an account holder for an individual, get:

* Their name.
* Their email.
* The country they are operating in.

### Tab: Business

To create an account holder for a business, get:

* The legal business name.
* Their email.
* The country they are operating in.
* The name and the country of residence of at least one of their ultimate beneficial owners who own 25% or more of the business. If there are none who own 25% or more of the business, get information about a signatory.

### Tab: Nonprofit

To create an account holder for a nonprofit, get:

* The legal organization name.
* Their email.
* The country they are operating in.
* The name and the country of residence of at least one control officer responsible for managing the organization.

### Tab: Partnership

To create an account holder for a business, get:

* The legal business name.
* Their email.
* The country they are operating in.
* The name and the country of residence of at least one of their ultimate beneficial owners who own 25% or more of the business. If there are none who own 25% or more of the business, get information about a signatory.

### Tab: Public company

To create an account holder for a business, get:

* The legal business name.
* Their email.
* The country they are operating in.
* The name and the country of residence of a signatory, and their job title.

## Step 3: Create an account holder

Submit the information that you collected with the [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) endpoint. The fields that you need to include depend on their legal entity type.

### Tab: Individual

Make a [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request specifying:

* A unique [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderCode). This is the identifier that you will use in the Platforms API whenever referencing the account holder.
* The [legalEntity](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-legalEntity) type set to **Individual**.
* The minimum required information you have collected from the sub-merchant, such as [name.firstName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-individualDetails-name-firstName), [name.lastName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-individualDetails-name-lastName), [email](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-email), and [address.country](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-address-country).

When collecting the name, make sure they provide the name shown on their photo ID.

**Create an individual account holder**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "accountHolderDetails":{
      "address": {
        "country": "US"
      },
      "email":"tim@green.com",
      "individualDetails":{
         "name":{
            "firstName":"Tim",
            "lastName":"Green"
         }
      }
   },
   "legalEntity":"Individual"
}'
```

**Response**

```json
{
   "invalidFields": [],
   "pspReference":"8815214563869136",
   "accountCode":"138215709",
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "legalEntity":"Individual",
   "accountHolderDetails":{
      "address":{
         "country":"US"
      },
      ...
   },
    "accountHolderStatus": {
      "status": "Active",
    ...
   },
   ...
}
```

### Tab: Business

Make a [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request specifying:

* A unique [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderCode). This is the identifier that you will use in the Platforms API whenever referencing the account holder.
* The [legalEntity](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-legalEntity) type set to **Business**.
* The minimum required information you have collected from the sub-merchant, such as [businessDetails.legalBusinessName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-legalBusinessName), [businessDetails.shareholders](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-shareholders), [email](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-email), and [address.country](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-address-country).

**Create a business account holder**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
  "accountHolderCode": "YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
  "accountHolderDetails": {
    "address": {
        "country": "US"
    },
    "businessDetails": {
      "legalBusinessName": "Real Good Restaurant Inc.",
      "shareholders": [
        {
            "name": {
              "firstName": "Maria",
              "lastName": "Green"
            },
            "address": {
              "country": "US"
            }
        }
      ]
    },
    "email": "maria@green.com"
  },
  "legalEntity": "Business"
}'
```

**Response**

```json
{
   "invalidFields": [],
   "pspReference":"8815214563869136",
   "accountCode":"138215709",
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "legalEntity":"Business",
   "accountHolderDetails":{
      "address":{
         "country":"US"
      },
      ...
   },
    "accountHolderStatus": {
      "status": "Active",
    ...
   },
   ...
}
```

### Tab: Nonprofit

Make a [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request specifying:

* A unique [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderCode). This is the identifier that you will use in the Platforms API whenever referencing the account holder.
* The [legalEntity](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-legalEntity) type set to **NonProfit**.
* The minimum required information you have collected from the sub-merchant, such as [businessDetails.legalBusinessName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-legalBusinessName), [businessDetails.shareholders](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-shareholders), [email](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-email), and [address.country](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-address-country).

**Create a nonprofit account holder**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
  "accountHolderCode": "YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
  "accountHolderDetails": {
    "address": {
        "country": "US"
    },
    "businessDetails": {
      "legalBusinessName": "Real Good Company",
      "shareholders": [
        {
            "name": {
              "firstName": "Maria",
              "lastName": "Green"
            },
            "address": {
              "country": "US"
            }
        }
      ]
    },
    "email": "maria@green.com"
  },
  "legalEntity": "NonProfit"
}'
```

**Response**

```json
{
   "invalidFields": [],
   "pspReference":"8815214563869136",
   "accountCode":"138215709",
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "legalEntity":"NonProfit",
   "accountHolderDetails":{
      "address":{
         "country":"US"
      },
      ...
   },
    "accountHolderStatus": {
      "status": "Active",
    ...
   },
   ...
}
```

### Tab: Partnership

Make a [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request specifying:

* A unique [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderCode). This is the identifier that you will use in the Platforms API whenever referencing the account holder.
* The [legalEntity](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-legalEntity) type set to **Partnership**.
* The minimum required information you have collected from the sub-merchant, such as [businessDetails.legalBusinessName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-legalBusinessName), [businessDetails.shareholders](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-shareholders), [email](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-email), and [address.country](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-address-country).

**Create a partnership account holder**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
  "accountHolderCode": "YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
  "accountHolderDetails": {
    "address": {
        "country": "US"
    },
    "businessDetails": {
      "legalBusinessName": "Real Good Partnership",
      "shareholders": [
        {
            "name": {
              "firstName": "Maria",
              "lastName": "Green"
            },
            "address": {
              "country": "US"
            }
        }
      ]
    },
    "email": "partnership@example.com"
  },
  "legalEntity": "Partnership"
}'
```

**Response**

```json
{
   "invalidFields": [],
   "pspReference":"8815214563869136",
   "accountCode":"138215709",
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "legalEntity":"Partnership",
   "accountHolderDetails":{
      "address":{
         "country":"US"
      },
      ...
   },
    "accountHolderStatus": {
      "status": "Active",
    ...
   },
   ...
}
```

### Tab: Public company

Make a [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) request specifying:

* A unique [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderCode). This is the identifier that you will use in the Platforms API whenever referencing the account holder.
* The [legalEntity](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-legalEntity) type set to **PublicCompany**.
* The minimum required information you have collected from the sub-merchant, such as [businessDetails.legalBusinessName](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-businessDetails-legalBusinessName), [email](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-email), [address.country](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#request-accountHolderDetails-address-country), and the [signatories](https://docs.adyen.com/api-explorer/Account/6/post/createAccountHolder#request-accountHolderDetails-businessDetails-signatories) information.

**Create a public company account holder**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
  "accountHolderCode": "YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
  "accountHolderDetails": {
    "address": {
        "country": "US"
    },
    "businessDetails": {
      "legalBusinessName": "Real Good Public Company",
      "signatories":[
      {
        "name":{
          "firstName":"Sam",
          "lastName":"Hopper"
        },
        "jobTitle": "Vice President",
        "address":
        {
          "country": "US"
        }
      }
     ]
    },
    "email": "publiccompany@example.com"
  },
  "legalEntity": "PublicCompany"
}'
```

**Response**

```json
{
   "invalidFields": [],
   "pspReference":"8815214563869136",
   "accountCode":"138215709",
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE",
   "legalEntity":"PublicCompany",
   "accountHolderDetails":{
      "address":{
         "country":"US"
      },
      ...
   },
    "accountHolderStatus": {
      "status": "Active",
    ...
   },
   ...
}
```

Requests using [/createAccountHolder](https://docs.adyen.com/api-explorer/#/Account/createAccountHolder) are processed asynchronously. You'll receive a response to your API request, but you must wait for the webhooks to know the final result of a request.

The API response may contain any of the following HTTP status codes:

* **HTTP 200**: You can use the information that the API returns in the response, such as the `accountCode`, but you should wait for the [ACCOUNT\_HOLDER\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_HOLDER_CREATED) and [ACCOUNT\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_CREATED) notification webhooks before performing any business logic. The notification webhooks confirm when the resources have been added to our central database.
* **HTTP 202**: The request has been acknowledged and added to the queue. Use the response to check and confirm the changes you made. Wait for the [ACCOUNT\_HOLDER\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_HOLDER_CREATED) and [ACCOUNT\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_CREATED) notification webhooks to confirm if the account holder has been successfully created. Get the corresponding `accountCode` from the notification.

When an account holder is created, an **account** is also automatically created identified by the [accountCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccountHolder#responses-200-accountCode). Save the `accountCode`—this is the ID you will use to process the account holder's transactions.

The [accountHolderStatus.status](https://docs.adyen.com/api-explorer/Account/latest/post/createAccount#request-createAccountHolder-accountHolderStatus) determines if processing payments and payouts are allowed. A newly created account holder has `accountHolderStatus.status` **Active**. This means that you can immediately start processing payments on their behalf. For more information, refer to [account holder statuses](/classic-platforms/verification-process#account-holder-statuses).

## Step 4: (Optional) Create additional accounts

You can optionally create additional accounts for an account holder. For example, create multiple accounts if an account holder has different business lines and would like to keep funds and accounting history separate for each line.

To create an additional account, make a [/createAccount](https://docs.adyen.com/api-explorer/#/Account/createAccount) request and provide the [accountHolderCode](https://docs.adyen.com/api-explorer/Account/latest/post/createAccount#request-accountHolderCode).

**Create an additional account**

```bash
curl https://cal-test.adyen.com/cal/services/Account/v6/createAccount \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
   "accountHolderCode":"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE"
}'
```

Requests using [/createAccount](https://docs.adyen.com/api-explorer/#/Account/createAccount) are processed asynchronously. You'll receive a response to your API request, but you must wait for the webhooks to know the final result of a request.

The API response may contain any of the following HTTP status codes:

* **HTTP 200**: You can use the information that the API returns in the response, such as the `accountCode`, but you should wait for the [ACCOUNT\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_CREATED) notification webhook before performing any business logic. The notification confirms when the resources have been added to our central database.
* **HTTP 202**: The request has been acknowledged and added to the queue. Use the response to check and confirm the changes you made. Wait for the [ACCOUNT\_CREATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_CREATED) notification webhook to confirm if the account holder has been successfully created. Get the corresponding `accountCode` from the notification.

## Next steps

[required](/classic-platforms/onboard-users)

[Onboard and verify users](/classic-platforms/onboard-users)

[Choose when and how to collect the required information from your account holders.](/classic-platforms/onboard-users)

[required](/classic-platforms/configure-notifications)

[Verification process](/classic-platforms/configure-notifications)

[Find out the required information and how to get the verification results.](/classic-platforms/configure-notifications)
