Ubo
A business profile's ultimate beneficial owners.
Operations
Every route this entity exposes. Each route links to its own reference on this page.
| Method | Route | SDK operation | Returns |
|---|---|---|---|
POST |
/profiles/{profileId}/ubos |
create |
List of all ultimate beneficial owners associated with the business profile |
GET |
/profiles/{profileId}/ubos |
list |
List of ultimate beneficial owner objects |
PUT |
/profiles/{profileId}/ubos |
update |
List of all ultimate beneficial owners associated with the business profile |
Examples
One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.
Golang
Construct client as shown in the Golang setup, then call the operations:
ubos, err := client.Ubo(nil).List(map[string]any{"profile_id": 1}, nil)
if err != nil {
panic(err)
}
fmt.Println(ubos)
created, err := client.Ubo(nil).Create(map[string]any{"profile_id": 1}, nil)
if err != nil {
panic(err)
}
fmt.Println(created)
updated, err := client.Ubo(nil).Update(map[string]any{"profile_id": 1, "ubos": []any{}}, nil)
if err != nil {
panic(err)
}
fmt.Println(updated)
Lua
Construct client as shown in the Lua setup, then call the operations:
local ubos, err = client:Ubo():list({ profile_id = 1 })
local created, err = client:Ubo():create({ profile_id = 1 })
local updated, err = client:Ubo():update({ profile_id = 1, ubos = {} })
PHP
Construct client as shown in the PHP setup, then call the operations:
$ubos = $client->Ubo()->list(["profile_id" => 1]);
$created = $client->Ubo()->create(["profile_id" => 1]);
$updated = $client->Ubo()->update(["profile_id" => 1, "ubos" => []]);
Python
Construct client as shown in the Python setup, then call the operations:
ubos = client.Ubo().list({"profile_id": 1})
created = client.Ubo().create({ "profile_id": 1 })
updated = client.Ubo().update({"profile_id": 1, "ubos": []})
Ruby
Construct client as shown in the Ruby setup, then call the operations:
ubos = client.Ubo.list({ "profile_id" => 1 })
created = client.Ubo.create({ "profile_id" => 1 })
updated = client.Ubo.update({ "profile_id" => 1, "ubos" => [] })
TypeScript
Construct client as shown in the TypeScript setup, then call the operations:
const ubos = await client.Ubo().list({ profile_id: 1 })
const created = await client.Ubo().create({ profile_id: 1 })
const updated = await client.Ubo().update({ profile_id: 1, ubos: [] })
Fields
| Field | Type | Required | Description |
|---|---|---|---|
addressFirstLine |
string |
No | First line of address. |
city |
string |
No | City of residential address. |
countryOfResidenceIso3Code |
string |
No | 3 character country code. |
dateOfBirth |
string |
No | Date of birth. |
id |
string |
No | ID of the ultimate beneficial owner. |
name |
string |
No | Owner full name. |
ownershipPercentage |
integer |
No | Percentage of ownership. |
postCode |
string |
No | Address post code. |
state |
string |
No | State or region of residential address. |
ubos |
array |
No | Ubos |
create
POST /profiles/{profileId}/ubos
Operation ID: profileUboCreate.
Authentication: bearer token (UserToken).
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
profileId |
path |
integer (int64) |
Yes | Business profile ID. |
X-External-Correlation-Id |
header |
string (uuid) |
No | Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more. |
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
[].addressFirstLine |
string |
No | First line of residential address. Required if the business profile's registered address is in the EU, EEA or US. |
[].city |
string |
No | City of residential address. Required if countryOfResidenceIso3Code is usa, or if the business profile's registered address is in the EU, EEA or US. Maximum 255 characters. |
[].countryOfResidenceIso3Code |
string |
Yes | 3 character country code. |
[].dateOfBirth |
string |
Yes | Date of birth. |
[].documentCountryIso3Code |
string |
No | Document issuing country as an ISO 3166-1 alpha-3 code. |
[].documentId |
string |
No | Document number or identifier. |
[].documentType |
enum: PASSPORT, NATIONAL_ID, RESIDENCE_PERMIT, DRIVING_LICENSE, CPF |
No | Identification document type. |
[].email |
string |
No | Owner email address. |
[].name |
string |
Yes | Owner full name. |
[].nationality |
string |
No | Nationality as an ISO 3166-1 alpha-2 or alpha-3 country code. Required if the business profile's registered address is in Singapore. |
[].ownershipPercentage |
integer,null (int32) |
No | Percentage of ownership. |
[].placeOfBirthCity |
string |
No | City of birth. Required if the business profile's registered address is in the EU or EEA. Maximum 255 characters. |
[].placeOfBirthCountryIso3Code |
string |
No | Country of birth as an ISO 3166-1 alpha-3 code. Required if the business profile's registered address is in the EU or EEA. |
[].postCode |
string |
No | Residential address post code. Required if the business profile's registered address is in the EU, EEA or US and the country in countryOfResidenceIso3Code uses post codes. |
[].state |
string |
No | State or region of residential address. Required if countryOfResidenceIso3Code is usa, or if the business profile's registered address is in the EU, EEA or US and the country in countryOfResidenceIso3Code has states. Maximum 32 characters. |
Responses
201: List of all ultimate beneficial owners associated with the business profile
application/json
| Property | Type | Required | Description |
|---|---|---|---|
[].addressFirstLine |
string |
No | First line of address. |
[].city |
string |
No | City of residential address. |
[].countryOfResidenceIso3Code |
string |
No | 3 character country code. |
[].dateOfBirth |
string |
No | Date of birth. |
[].id |
string |
No | ID of the ultimate beneficial owner. |
[].name |
string |
No | Owner full name. |
[].ownershipPercentage |
integer,null (int32) |
No | Percentage of ownership. |
[].postCode |
string |
No | Address post code. |
[].state |
string |
No | State or region of residential address. |
Example response:
[
{
"addressFirstLine": "123 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1982-05-20",
"id": "013ab1c2688d0185b582ee7e0bcb28b2",
"name": "John Doe",
"ownershipPercentage": 30,
"postCode": "FK 12345",
"state": "AZ"
},
{
"addressFirstLine": "125 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1981-12-07",
"id": "912ce3f31c8b3a10572137e78417caa3",
"name": "Jane Doe",
"ownershipPercentage": 70,
"postCode": "FK 12545",
"state": "AZ"
}
]
400: Validation failed and no owners were saved. Errors are grouped per owner: parameter is the submitted owner, and each entry in its errors list carries one error code in message. Rules are checked one at a time, so a response carries the errors of one rule only. Fix them and resubmit to see any errors from the next rule. Residential address error codes: - AddressLineRequired , addressFirstLine is missing and the business profile's registered address is in the EU, EEA or US - CityRequired , city is missing for an owner whose countryOfResidenceIso3Code is usa, or the business profile's registered address is in the EU, EEA or US - PostCodeRequired , postCode is missing, the business profile's registered address is in the EU, EEA or US, and the owner's country of residence uses post codes - StateRequired , state is missing for an owner whose countryOfResidenceIso3Code is usa, or the business profile's registered address is in the EU, EEA or US and the owner's country of residence has states - CityTooLong , city is longer than 255 characters - StateInvalid , state is longer than 32 characters
application/json
Example response:
{
"code": "not.valid",
"errors": [
{
"errors": [
{
"message": "CityRequired"
},
{
"message": "StateRequired"
}
],
"parameter": "{\"addressFirstLine\":\"123 Fake St\",\"city\":null,\"countryOfResidenceIso3Code\":\"usa\",\"dateOfBirth\":\"1982-05-20\",\"documentCountryIso3Code\":null,\"documentId\":null,\"documentType\":null,\"email\":null,\"name\":\"John Doe\",\"nationality\":null,\"ownershipPercentage\":30,\"placeOfBirthCity\":null,\"placeOfBirthCountryIso3Code\":null,\"postCode\":\"FK 12345\",\"state\":null}"
}
],
"message": "Cannot update shareholders for profile 12345 due to validation errors"
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header
application/json
The response is object.
list
GET /profiles/{profileId}/ubos
Operation ID: profileUboList.
Authentication: bearer token (UserToken).
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
profileId |
path |
integer (int64) |
Yes | Business profile ID. |
X-External-Correlation-Id |
header |
string (uuid) |
No | Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more. |
Responses
200: List of ultimate beneficial owner objects
application/json
| Property | Type | Required | Description |
|---|---|---|---|
[].addressFirstLine |
string |
No | First line of address. |
[].city |
string |
No | City of residential address. |
[].countryOfResidenceIso3Code |
string |
No | 3 character country code. |
[].dateOfBirth |
string |
No | Date of birth. |
[].id |
string |
No | ID of the ultimate beneficial owner. |
[].name |
string |
No | Owner full name. |
[].ownershipPercentage |
integer,null (int32) |
No | Percentage of ownership. |
[].postCode |
string |
No | Address post code. |
[].state |
string |
No | State or region of residential address. |
Example response:
[
{
"addressFirstLine": "123 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1982-05-20",
"id": "013ab1c2688d0185b582ee7e0bcb28b2",
"name": "John Doe",
"ownershipPercentage": 30,
"postCode": "FK 12345",
"state": "AZ"
},
{
"addressFirstLine": "125 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1981-12-07",
"id": "912ce3f31c8b3a10572137e78417caa3",
"name": "Jane Doe",
"ownershipPercentage": 70,
"postCode": "FK 12545",
"state": "AZ"
}
]
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header
application/json
The response is object.
update
PUT /profiles/{profileId}/ubos
Operation ID: profileUboUpdate.
Authentication: bearer token (UserToken).
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
profileId |
path |
integer (int64) |
Yes | Business profile ID. |
X-External-Correlation-Id |
header |
string (uuid) |
No | Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more. |
Request body
application/json
| Property | Type | Required | Description |
|---|---|---|---|
[].addressFirstLine |
string |
No | First line of residential address. Required if the business profile's registered address is in the EU, EEA or US. |
[].city |
string |
No | City of residential address. Required if countryOfResidenceIso3Code is usa, or if the business profile's registered address is in the EU, EEA or US. Maximum 255 characters. |
[].countryOfResidenceIso3Code |
string |
Yes | 3 character country code. |
[].dateOfBirth |
string |
Yes | Date of birth. |
[].documentCountryIso3Code |
string |
No | Document issuing country as an ISO 3166-1 alpha-3 code. |
[].documentId |
string |
No | Document number or identifier. |
[].documentType |
enum: PASSPORT, NATIONAL_ID, RESIDENCE_PERMIT, DRIVING_LICENSE, CPF |
No | Identification document type. |
[].email |
string |
No | Owner email address. |
[].name |
string |
Yes | Owner full name. |
[].nationality |
string |
No | Nationality as an ISO 3166-1 alpha-2 or alpha-3 country code. Required if the business profile's registered address is in Singapore. |
[].ownershipPercentage |
integer,null (int32) |
No | Percentage of ownership. |
[].placeOfBirthCity |
string |
No | City of birth. Required if the business profile's registered address is in the EU or EEA. Maximum 255 characters. |
[].placeOfBirthCountryIso3Code |
string |
No | Country of birth as an ISO 3166-1 alpha-3 code. Required if the business profile's registered address is in the EU or EEA. |
[].postCode |
string |
No | Residential address post code. Required if the business profile's registered address is in the EU, EEA or US and the country in countryOfResidenceIso3Code uses post codes. |
[].state |
string |
No | State or region of residential address. Required if countryOfResidenceIso3Code is usa, or if the business profile's registered address is in the EU, EEA or US and the country in countryOfResidenceIso3Code has states. Maximum 32 characters. |
Responses
200: List of all ultimate beneficial owners associated with the business profile
application/json
| Property | Type | Required | Description |
|---|---|---|---|
[].addressFirstLine |
string |
No | First line of address. |
[].city |
string |
No | City of residential address. |
[].countryOfResidenceIso3Code |
string |
No | 3 character country code. |
[].dateOfBirth |
string |
No | Date of birth. |
[].id |
string |
No | ID of the ultimate beneficial owner. |
[].name |
string |
No | Owner full name. |
[].ownershipPercentage |
integer,null (int32) |
No | Percentage of ownership. |
[].postCode |
string |
No | Address post code. |
[].state |
string |
No | State or region of residential address. |
Example response:
[
{
"addressFirstLine": "123 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1982-05-20",
"id": "ff01cf3f206b40c090a14a1e51163e9e",
"name": "John Doe",
"ownershipPercentage": 30,
"postCode": "FK 12345",
"state": "AZ"
},
{
"addressFirstLine": "125 Fake St",
"city": "Phoenix",
"countryOfResidenceIso3Code": "usa",
"dateOfBirth": "1981-12-07",
"id": "c36b687d28ad44ad8c3864411f5f2612",
"name": "Jane Doe",
"ownershipPercentage": 70,
"postCode": "FK 12545",
"state": "AZ"
}
]
400: Validation failed and no owners were saved. Errors are grouped per owner: parameter is the submitted owner, and each entry in its errors list carries one error code in message. Rules are checked one at a time, so a response carries the errors of one rule only. Fix them and resubmit to see any errors from the next rule. Residential address error codes: - AddressLineRequired , addressFirstLine is missing and the business profile's registered address is in the EU, EEA or US - CityRequired , city is missing for an owner whose countryOfResidenceIso3Code is usa, or the business profile's registered address is in the EU, EEA or US - PostCodeRequired , postCode is missing, the business profile's registered address is in the EU, EEA or US, and the owner's country of residence uses post codes - StateRequired , state is missing for an owner whose countryOfResidenceIso3Code is usa, or the business profile's registered address is in the EU, EEA or US and the owner's country of residence has states - CityTooLong , city is longer than 255 characters - StateInvalid , state is longer than 32 characters
application/json
Example response:
{
"code": "not.valid",
"errors": [
{
"errors": [
{
"message": "CityRequired"
},
{
"message": "StateRequired"
}
],
"parameter": "{\"addressFirstLine\":\"123 Fake St\",\"city\":null,\"countryOfResidenceIso3Code\":\"usa\",\"dateOfBirth\":\"1982-05-20\",\"documentCountryIso3Code\":null,\"documentId\":null,\"documentType\":null,\"email\":null,\"name\":\"John Doe\",\"nationality\":null,\"ownershipPercentage\":30,\"placeOfBirthCity\":null,\"placeOfBirthCountryIso3Code\":null,\"postCode\":\"FK 12345\",\"state\":null}"
}
],
"message": "Cannot update shareholders for profile 12345 due to validation errors"
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header
application/json
The response is object.