curl --request POST \
--url https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"name": "João Silva",
"taxId": {
"value": "12345678909",
"type": "CPF"
},
"address": {
"addressLine1": "Rua das Flores, 100",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postalCode": "01234-567"
},
"ownershipPercentage": 50
}
'import requests
url = "https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos"
payload = {
"name": "João Silva",
"taxId": {
"value": "12345678909",
"type": "CPF"
},
"address": {
"addressLine1": "Rua das Flores, 100",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postalCode": "01234-567"
},
"ownershipPercentage": 50
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'João Silva',
taxId: {value: '12345678909', type: 'CPF'},
address: {
addressLine1: 'Rua das Flores, 100',
city: 'São Paulo',
state: 'SP',
country: 'BR',
postalCode: '01234-567'
},
ownershipPercentage: 50
})
};
fetch('https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos', 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.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'João Silva',
'taxId' => [
'value' => '12345678909',
'type' => 'CPF'
],
'address' => [
'addressLine1' => 'Rua das Flores, 100',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'BR',
'postalCode' => '01234-567'
],
'ownershipPercentage' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Idempotency-Key: <x-idempotency-key>"
],
]);
$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.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos"
payload := strings.NewReader("{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Idempotency-Key", "<x-idempotency-key>")
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.post("https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos")
.header("X-Idempotency-Key", "<x-idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Idempotency-Key"] = '<x-idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}"
response = http.request(request)
puts response.read_bodyAdds a beneficial owner (UBO) to a company-owned account.
curl --request POST \
--url https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"name": "João Silva",
"taxId": {
"value": "12345678909",
"type": "CPF"
},
"address": {
"addressLine1": "Rua das Flores, 100",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postalCode": "01234-567"
},
"ownershipPercentage": 50
}
'import requests
url = "https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos"
payload = {
"name": "João Silva",
"taxId": {
"value": "12345678909",
"type": "CPF"
},
"address": {
"addressLine1": "Rua das Flores, 100",
"city": "São Paulo",
"state": "SP",
"country": "BR",
"postalCode": "01234-567"
},
"ownershipPercentage": 50
}
headers = {
"X-Idempotency-Key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Idempotency-Key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'João Silva',
taxId: {value: '12345678909', type: 'CPF'},
address: {
addressLine1: 'Rua das Flores, 100',
city: 'São Paulo',
state: 'SP',
country: 'BR',
postalCode: '01234-567'
},
ownershipPercentage: 50
})
};
fetch('https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos', 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.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'João Silva',
'taxId' => [
'value' => '12345678909',
'type' => 'CPF'
],
'address' => [
'addressLine1' => 'Rua das Flores, 100',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'BR',
'postalCode' => '01234-567'
],
'ownershipPercentage' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Idempotency-Key: <x-idempotency-key>"
],
]);
$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.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos"
payload := strings.NewReader("{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Idempotency-Key", "<x-idempotency-key>")
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.post("https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos")
.header("X-Idempotency-Key", "<x-idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.tracefinance.com/v1/accounts/{accountId}/ubos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Idempotency-Key"] = '<x-idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"João Silva\",\n \"taxId\": {\n \"value\": \"12345678909\",\n \"type\": \"CPF\"\n },\n \"address\": {\n \"addressLine1\": \"Rua das Flores, 100\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"BR\",\n \"postalCode\": \"01234-567\"\n },\n \"ownershipPercentage\": 50\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
JWT bearer token. Include as Authorization: Bearer <token>. See the Authentication guide for how to obtain one.
Headers
API version. Omit to use the default version.
"1"
Unique key to ensure idempotent request processing. Required on all POST, PUT, and PATCH requests.
Path Parameters
UUID of the account.
Body
Request body for adding a beneficial owner.
Full legal name of the beneficial owner.
"João Silva"
Tax identifier for the owner or beneficial owner. Validated against the type-specific format rules.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Contact phone number with country code.
"5511999999999"
Contact email address.
"joao.silva@example.com"
Percentage of ownership. Optional.
50
Whether this beneficial owner is the legal representative of the account.
false
Response
Beneficial owner added.
"b2c3d4e5-f6a7-8901-bcde-f12345678901"
"João Silva"
Tax identifier returned for an owner or beneficial owner.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"5511999999999"
"joao.silva@example.com"
false
A point-in-time state of a beneficial owner.
Show child attributes
Show child attributes
50
Was this page helpful?