List associated persons
curl --request GET \
--url https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"associatedPersons": [
{
"id": "3a873dee-7afa-4c20-ab86-3f80c83abaf0",
"processes": {
"profile": {
"code": "profile",
"status": "ok",
"input": {
"type": "beneficial-owner",
"fullName": "John Doe",
"role": "CEO",
"birthdate": "1980-01-01",
"address": {
"line1": "123 Main St",
"line2": "Suite 100",
"postalCode": "12345",
"city": "Anytown",
"subdivision": "US-CA",
"country": "US"
},
"legalIds": [
{
"type": "tax-id",
"id": "123456789",
"country": "US"
}
],
"ownershipPercentage": 51
}
},
"identity": {
"code": "identity",
"status": "ok",
"type": "document-submission",
"input": {
"media": [
{
"context": "document-front",
"fileId": "56d398c2-cf46-4457-a491-cdc93191fd1a"
},
{
"context": "document-back",
"fileId": "99182b79-df5c-444c-a4d8-9c841a00e9bb"
}
]
},
"output": {
"provider": "veriff",
"document": {
"type": "passport",
"number": "7700225VH",
"country": "GB",
"expiresAt": "2026-03-13"
},
"person": {
"givenName": "John",
"familyName": "Doe",
"birthdate": "1987-01-01",
"gender": "male"
},
"verifiedAt": "2024-01-01T00:00:00Z"
}
},
"proofOfAddress": {
"code": "proof-of-address",
"status": "ok",
"type": "document-submission",
"input": {
"media": [
{
"context": "address-proof",
"fileId": "459c0447-8916-4bad-bb67-f2354fcfb10b"
}
]
},
"output": {
"provider": "veriff",
"person": {
"givenName": "John",
"familyName": "Doe",
"address": {
"country": "GB",
"subdivision": "GB-MAN",
"city": "Manchester",
"line1": "1 High Street",
"line2": "Northern Quarter",
"postalCode": "M4 1AA"
}
},
"verifiedAt": "2024-01-01T00:00:00Z"
}
}
},
"createdAt": "2024-01-01T00:00:00Z"
}
]
}Associated persons
List associated persons
List the associated persons for a business user.
GET
/
core
/
kyb
/
associated-persons
List associated persons
curl --request GET \
--url https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/kyb/associated-persons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"associatedPersons": [
{
"id": "3a873dee-7afa-4c20-ab86-3f80c83abaf0",
"processes": {
"profile": {
"code": "profile",
"status": "ok",
"input": {
"type": "beneficial-owner",
"fullName": "John Doe",
"role": "CEO",
"birthdate": "1980-01-01",
"address": {
"line1": "123 Main St",
"line2": "Suite 100",
"postalCode": "12345",
"city": "Anytown",
"subdivision": "US-CA",
"country": "US"
},
"legalIds": [
{
"type": "tax-id",
"id": "123456789",
"country": "US"
}
],
"ownershipPercentage": 51
}
},
"identity": {
"code": "identity",
"status": "ok",
"type": "document-submission",
"input": {
"media": [
{
"context": "document-front",
"fileId": "56d398c2-cf46-4457-a491-cdc93191fd1a"
},
{
"context": "document-back",
"fileId": "99182b79-df5c-444c-a4d8-9c841a00e9bb"
}
]
},
"output": {
"provider": "veriff",
"document": {
"type": "passport",
"number": "7700225VH",
"country": "GB",
"expiresAt": "2026-03-13"
},
"person": {
"givenName": "John",
"familyName": "Doe",
"birthdate": "1987-01-01",
"gender": "male"
},
"verifiedAt": "2024-01-01T00:00:00Z"
}
},
"proofOfAddress": {
"code": "proof-of-address",
"status": "ok",
"type": "document-submission",
"input": {
"media": [
{
"context": "address-proof",
"fileId": "459c0447-8916-4bad-bb67-f2354fcfb10b"
}
]
},
"output": {
"provider": "veriff",
"person": {
"givenName": "John",
"familyName": "Doe",
"address": {
"country": "GB",
"subdivision": "GB-MAN",
"city": "Manchester",
"line1": "1 High Street",
"line2": "Northern Quarter",
"postalCode": "M4 1AA"
}
},
"verifiedAt": "2024-01-01T00:00:00Z"
}
}
},
"createdAt": "2024-01-01T00:00:00Z"
}
]
}This endpoint is currently available in Sandbox only. It is not yet available in Production.
profile, identity, and proofOfAddress processes.
Get overview returns the same list under
processes.associatedPersons.persons when called with ?detailed=associatedPersons, so you can fetch the business and its associated persons in a single call.Authorizations
OAuth 2.0 authentication.
FlowClient Credentials
- Token URL
- /core/oauth2/token
Scopes1
core.kyb.associated-persons:read
Grants access to view KYB associated persons
Response
200 - application/json
Associated persons list retrieved successfully.
The array of associated persons.
Show child attributes
Show child attributes
Was this page helpful?