Developer Centre
Platform LoginStatus
  • Getting started
    • Integration types
    • Generating an authentication token
    • Using basic authentication
  • Applicants
    • Creating an applicant
    • Generating a verification link
    • Uploading documents to an applicant
      • Supported Documents and Types
    • Requesting to start the verification process
  • Applicant Results
    • Retrieving applicant verification results
      • Understanding applicant rejection labels
      • Setting up a webhook
    • Downloading verified documents
  • Entities
    • Check types and coverage
    • Creating an entity
    • Generating a verification link
    • Uploading documents to an entity
      • Supported Documents and Types
    • Linking a UBO to an entity
    • Requesting to start the verification process
  • Entity Results
    • Retrieving entity verification results
      • Understanding entity rejection labels
      • Setting up a webhook
    • Retrieving entity ownership structures
    • Retrieving entity questionnaire answers
  • Anti-Money Laundering
    • Retrieving AML results
  • Database Verification
    • Applicants
      • Verifying applicant identity data
    • Entities
      • Verifying entity information
  • Pages
    • Overview
    • Creating a Page
    • Verifying with Pages
  • Domain Names
    • Overview
    • Linking your domain
  • Flow Logic
    • Overview
  • Workspaces
    • Switching Workspaces
  • Modules
Powered by GitBook
On this page

Was this helpful?

  1. Entities

Linking a UBO to an entity

Once you've created an entity, you can link ultimate beneficial owners to the entity.

When you've created an entity, use this endpoint to link other applicants or entities as ultimate beneficial owners (UBOs) to the original entity. This will allow you to clearly view the company structure.

Note: You don't need to use this endpoint if you're verifying an entity using a verification link. Verification links require representatives to input UBOs during the verification process.

Before linking a UBO, make sure you have created the applicant or entity using the required endpoints: Creating an applicantor Creating an entity. You will need to remember their applicantId for this call and input them into uboApplicantId.


Link a UBO to the entity

POST /api-add-ubo

Once all documents have been uploaded, start the verification process.

Name
Value

Content-Type

multipart/form-data

Authorization

Bearer YOUR_TOKEN

Body

Name
Type
Description

applicantId

string

The entity's applicantId you wish for others to be linked to (required)

uboApplicantId

string

Unique applicantId generated on applicant or entity creation (required)

position

string

The type of UBO - see below for options (required)

UBO position types

Name
Description

Director

A director of the entity

Shareholder

A shareholder of the entity

Other

Use this when nothing else applies

curl --location 'https://enterprise.personr.co/api/1.1/wf/api-add-ubo' \
--form 'applicantId="4242424242424x424242424242424242"' \
--form 'uboApplicantId="4242424242424x424242424242424242"' \
--form 'position="Director"' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
const axios = require('axios');
const FormData = require('form-data');

const formData = new FormData();

formData.append('applicantId', '4242424242424x424242424242424242');
formData.append('uboApplicantId', '4242424242424x424242424242424242');
formData.append('position', 'Director');

axios.post('https://enterprise.personr.co/api/1.1/wf/api-add-ubo', formData, {
  headers: {
    ...formData.getHeaders(),
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
})
.then((response) => {
  console.log(response.data);
})
.catch((error) => {
  console.error(error);
});
const formData = new FormData();
formData.append('applicantId', '4242424242424x424242424242424242');
formData.append('uboApplicantId', '4242424242424x424242424242424242');
formData.append('position', 'Director');

fetch('https://enterprise.personr.co/api/1.1/wf/api-add-ubo', {
  method: 'POST',
  body: formData,
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
})
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});
require 'net/http'
require 'uri'
require 'json'
require 'net/http/post/multipart'

url = URI('https://enterprise.personr.co/api/1.1/wf/api-add-ubo')

req = Net::HTTP::Post::Multipart.new url,
  'applicantId' => '4242424242424x424242424242424242',
  'uboApplicantId' => '4242424242424x424242424242424242',
  'position' => 'Director'

req['Authorization'] = 'Bearer YOUR_ACCESS_TOKEN'

res = Net::HTTP.start(url.hostname, url.port, use_ssl: url.scheme == 'https') do |http|
  http.request(req)
end

puts JSON.parse(res.body)
import requests

url = 'https://enterprise.personr.co/api/1.1/wf/api-add-ubo'

data = {
    'applicantId': '4242424242424x424242424242424242',
    'uboApplicantId': '4242424242424x424242424242424242',
    'position': 'Director'
}

headers = {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}

response = requests.post(url, data=data, headers=headers)

print(response.json())

Response

{
"status":"success",
"applicantId":"4242424242424x424242424242424242",
"ubos":[   {
        "applicantId":"4242424242424x424242424242424242",
        "type":"Individual",
        "position":"Director"
    }],
"errors":[]
}
{
    "statusCode": 400,
    "message": "Error: incorrect applicantId provided"
}
PreviousSupported Documents and TypesNextRequesting to start the verification process

Last updated 1 year ago

Was this helpful?