Link beneficiary to company (KYB 1.0)

Overview

Use this method to link an existing applicant in the Sumsub system to the control and ownership structure of a company. You can link both an individual and a company applicant as a beneficiary to the company profile.

Linking a beneficiary applicant to a company applicant does not affect the verification status of one another as they are independent. For example, the applicant X in the pending status is linked as a beneficiary to the company applicant Y that is already verified and has the completed status. The applicant X is staying in pending until verification is complete and the verdict is returned. The status of the company applicant Y does not change.

📘

Note

The method cannot create a new applicant; only an existing applicant can be added as a beneficiary to a company. For information on creating an applicant, refer to this method.

🚧

Attention

If you call this endpoint for a KYB 2.0 applicant, the method will add beneficiary data to the info structure (Extracted Info). For KYB 2.0 applicants, it is highly recommended to use this method.

Request example

curl -X POST \
  'https://api.sumsub.com/resources/applicants/5e9412223cc1813b4db0b0e3/info/companyInfo/beneficiaries' \
  -H 'Content-Type: application/json' \
  -d '{
          "applicant": {
              "id": "5f6490a55584b510013e87df"
          },
          "applicantId": "5f6490a55584b510013e87df",
          "positions": [
            "director",
            "shareholder"
          ],
          "type": "ubo"
      }'

Response explained

If the request is successfully sent and processed, you will get a JSON file that contains the object representing the newly added beneficiary applicant. The following table explains the fields available within the (beneficiary) object.

FieldTypeDescription
idStringAutogenerated key for all KYB 2.0 beneficiaries.
applicantIdStringApplicant identifier of the beneficiary in the Sumsub system.
positionsArray of stringsPositions in the company that the beneficiary is holding.
Possible values:
  • director — an individual that is appointed to manage the company business and affairs.
  • shareholder — an individual that owns shares in the company stock.
  • other — position that does not meet the two above.
typeStringBeneficiary single role in the company control and ownership structure.
Possible values:
  • ubo — ultimate beneficial owner of the company.
  • shareholder — owns shares in the company stock.
  • representative — authorized to act or speak for or in support of the company.
  • director — appointed to manage the company business and affairs.
inRegistryBooleanMatching to a Corporate registry.
  • true — found in the registry.
  • false — not found.
  • null — unknown
imageIdsArray of stringsImage IDs represent a document uploaded. If imageIds array contains more than one element, the first one would be the front side and the others — back sides.
applicantObjectStructure to create a new beneficiary.
shareSizeDoublePercentage of ownership if the beneficiary is a shareholder of the company.
typesArray of stringsList of beneficiary roles for the new data structure, when one entity may have multiple roles. Possible values:
  • ubo — ultimate beneficial owner of the company.
  • shareholder — owns shares in the company stock.
  • representative — authorized to act or speak for or in support of the company.
  • director — appointed to manage the company business and affairs.
beneficiaryInfoObjectStructure that contains the beneficiary contact data.

beneficiaryInfo attributes

The following table explains the beneficiaryInfo attributes representing the beneficiary contact data.

FieldTypeDescription
firstNameStringFirst name of the beneficiary.
lastNameStringLast name of the beneficiary.
dobDateBeneficiary date of birth.
emailStringBeneficiary email address.
taxResidenceCountryStringCountry where the beneficiary pays taxes. Presented as an alpha-3 code (for example, DEU, GBR, ARG, and so on).

Response example

{
  "id": null,
  "applicantId": "63e096c51b6b400000000000",
  "positions": [
    "shareholder",
    "other"
  ],
  "type": "shareholder",
  "inRegistry": null,
  "imageIds": null,
  "applicant": {
    "id": "63e096c51b6b4030f2e01154",
    "createdAt": "2023-02-06 05:57:25",
    "clientId": "someCoolId",
    "inspectionId": "63e096c51b6b400000000000",
    "externalUserId": "11111111111111",
    "sourceKey": "newSourceKey",
    "info": {
      "firstName": "John",
      "firstNameEn": "John",
      "lastName": "Doe",
      "lastNameEn": "Doe"
    },
    "email": "[email protected]",
    "phone": "+44 123456789",
    "requiredIdDocs": {
      "docSets": [
        {
          "idDocSetType": "IDENTITY",
          "types": [
            "ID_CARD"
          ]
        },
        {
          "idDocSetType": "PHONE_VERIFICATION"
        },
        {
          "idDocSetType": "EMAIL_VERIFICATION"
        }
      ]
    },
    "deleted": false,
    "review": {
      "reviewId": "TBJoW",
      "attemptId": "KLUSg",
      "attemptCnt": 0,
      "levelName": "basic-kyc-level",
      "createDate": "2024-06-17 08:34:37+0000",
      "reviewStatus": "pending"
    },
    "lang": "en",
    "type": "individual"
  },
  "shareSize": null,
  "types": null,
  "beneficiaryInfo": null
}

If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error. For example:

{
  "description": "Malformed data provided in the request",
  "code": 400,
  "correlationId": "62825afad452fb4007534e1529f000e5"
}
Language
Credentials
Header
Click Try It! to start a request and see the response here!