curl --request PATCH \
--url https://api.spherepay.co/v2/business-representative/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"address": {
"line1": "742 North Wabash Avenue",
"line2": "Apt 4B",
"city": "Chicago",
"postalCode": "60611",
"state": "IL",
"country": "USA"
},
"representationDetails": {
"roles": [
"ubo"
],
"ownershipPercentage": "50",
"isControlPerson": true,
"isSigner": true,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}
'import requests
url = "https://api.spherepay.co/v2/business-representative/{id}"
payload = {
"address": {
"line1": "742 North Wabash Avenue",
"line2": "Apt 4B",
"city": "Chicago",
"postalCode": "60611",
"state": "IL",
"country": "USA"
},
"representationDetails": {
"roles": ["ubo"],
"ownershipPercentage": "50",
"isControlPerson": True,
"isSigner": True,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: {
line1: '742 North Wabash Avenue',
line2: 'Apt 4B',
city: 'Chicago',
postalCode: '60611',
state: 'IL',
country: 'USA'
},
representationDetails: {
roles: ['ubo'],
ownershipPercentage: '50',
isControlPerson: true,
isSigner: true,
relationshipEstablishedAt: '2020-03-15',
title: 'CEO'
}
})
};
fetch('https://api.spherepay.co/v2/business-representative/{id}', 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.spherepay.co/v2/business-representative/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'address' => [
'line1' => '742 North Wabash Avenue',
'line2' => 'Apt 4B',
'city' => 'Chicago',
'postalCode' => '60611',
'state' => 'IL',
'country' => 'USA'
],
'representationDetails' => [
'roles' => [
'ubo'
],
'ownershipPercentage' => '50',
'isControlPerson' => true,
'isSigner' => true,
'relationshipEstablishedAt' => '2020-03-15',
'title' => 'CEO'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.spherepay.co/v2/business-representative/{id}"
payload := strings.NewReader("{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.spherepay.co/v2/business-representative/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/business-representative/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "associatedPerson_d972d2f70b9f4d3c8d7cfb32593f395b",
"customerId": "customer_2f283221a9d44ada800ac7f11f640402",
"type": "individual",
"verificationProfiles": [
{
"name": "ubo_kyc_profile_a",
"status": "incomplete",
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number",
"ownership_percentage",
"is_control_person",
"is_signer",
"relationship_established_at",
"title"
],
"pending": [],
"required": [
"identity_document",
"liveness_report_document",
"proof_of_address_document"
],
"errors": []
}
}
],
"createdAt": "2026-03-10T00:00:08.986Z",
"updatedAt": "2026-03-10T00:00:08.986Z",
"email": "james.wilson@acmecorp.example.com",
"phone": "+13125559876",
"representationDetails": {
"roles": [
"ubo"
],
"ownershipPercentage": "50",
"isControlPerson": true,
"isSigner": true,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}{
"status": 400,
"detail": "Invalid request parameters",
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}{
"status": 404,
"detail": "Resource not found",
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}{
"status": 422,
"detail": "Validation failed",
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
]
}Update a Business Representative Before KYB
Update an existing business representative
curl --request PATCH \
--url https://api.spherepay.co/v2/business-representative/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"address": {
"line1": "742 North Wabash Avenue",
"line2": "Apt 4B",
"city": "Chicago",
"postalCode": "60611",
"state": "IL",
"country": "USA"
},
"representationDetails": {
"roles": [
"ubo"
],
"ownershipPercentage": "50",
"isControlPerson": true,
"isSigner": true,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}
'import requests
url = "https://api.spherepay.co/v2/business-representative/{id}"
payload = {
"address": {
"line1": "742 North Wabash Avenue",
"line2": "Apt 4B",
"city": "Chicago",
"postalCode": "60611",
"state": "IL",
"country": "USA"
},
"representationDetails": {
"roles": ["ubo"],
"ownershipPercentage": "50",
"isControlPerson": True,
"isSigner": True,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: {
line1: '742 North Wabash Avenue',
line2: 'Apt 4B',
city: 'Chicago',
postalCode: '60611',
state: 'IL',
country: 'USA'
},
representationDetails: {
roles: ['ubo'],
ownershipPercentage: '50',
isControlPerson: true,
isSigner: true,
relationshipEstablishedAt: '2020-03-15',
title: 'CEO'
}
})
};
fetch('https://api.spherepay.co/v2/business-representative/{id}', 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.spherepay.co/v2/business-representative/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'address' => [
'line1' => '742 North Wabash Avenue',
'line2' => 'Apt 4B',
'city' => 'Chicago',
'postalCode' => '60611',
'state' => 'IL',
'country' => 'USA'
],
'representationDetails' => [
'roles' => [
'ubo'
],
'ownershipPercentage' => '50',
'isControlPerson' => true,
'isSigner' => true,
'relationshipEstablishedAt' => '2020-03-15',
'title' => 'CEO'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.spherepay.co/v2/business-representative/{id}"
payload := strings.NewReader("{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.spherepay.co/v2/business-representative/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/business-representative/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": {\n \"line1\": \"742 North Wabash Avenue\",\n \"line2\": \"Apt 4B\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60611\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"representationDetails\": {\n \"roles\": [\n \"ubo\"\n ],\n \"ownershipPercentage\": \"50\",\n \"isControlPerson\": true,\n \"isSigner\": true,\n \"relationshipEstablishedAt\": \"2020-03-15\",\n \"title\": \"CEO\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "associatedPerson_d972d2f70b9f4d3c8d7cfb32593f395b",
"customerId": "customer_2f283221a9d44ada800ac7f11f640402",
"type": "individual",
"verificationProfiles": [
{
"name": "ubo_kyc_profile_a",
"status": "incomplete",
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number",
"ownership_percentage",
"is_control_person",
"is_signer",
"relationship_established_at",
"title"
],
"pending": [],
"required": [
"identity_document",
"liveness_report_document",
"proof_of_address_document"
],
"errors": []
}
}
],
"createdAt": "2026-03-10T00:00:08.986Z",
"updatedAt": "2026-03-10T00:00:08.986Z",
"email": "james.wilson@acmecorp.example.com",
"phone": "+13125559876",
"representationDetails": {
"roles": [
"ubo"
],
"ownershipPercentage": "50",
"isControlPerson": true,
"isSigner": true,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
}{
"status": 400,
"detail": "Invalid request parameters",
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}{
"status": 404,
"detail": "Resource not found",
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}{
"status": 422,
"detail": "Validation failed",
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Business Representative ID
1"associatedPerson_d972d2f70b9f4d3c8d7cfb32593f395b"
Body
The address of the business representative. Required if personalInformation is provided.
Show child attributes
Show child attributes
{
"line1": "742 North Wabash Avenue",
"line2": "Apt 4B",
"city": "Chicago",
"postalCode": "60611",
"state": "IL",
"country": "USA"
}
Personal information including tax identification details for individual customers. When any tax identification field is provided, all tax identification fields (number, type, country) and address are required. Please refer to the Individual Verification Criteria for the full list of reference.
Show child attributes
Show child attributes
The representation details of the business representative.
Show child attributes
Show child attributes
{
"roles": ["ubo"],
"ownershipPercentage": "50",
"isControlPerson": true,
"isSigner": true,
"relationshipEstablishedAt": "2020-03-15",
"title": "CEO"
}
Response
Business Representative ID
"associatedPerson_d972d2f70b9f4d3c8d7cfb32593f395b"
Customer ID
"customer_2f283221a9d44ada800ac7f11f640402"
Customer type
individual "individual"
Array of verification profiles for the business representative.
Show child attributes
Show child attributes
[
{
"name": "ubo_kyc_profile_a",
"status": "incomplete",
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number",
"ownership_percentage",
"is_control_person",
"is_signer",
"relationship_established_at",
"title"
],
"pending": [],
"required": [
"identity_document",
"liveness_report_document",
"proof_of_address_document"
],
"errors": []
}
}
]
The date and time the business representative was created.
"2026-03-10T00:00:08.986Z"
The date and time the business representative was last updated.
"2026-03-10T00:00:08.986Z"
Email address
"james.wilson@acmecorp.example.com"
Phone number
"+13125559876"
Representation details
Show child attributes
Show child attributes