curl --request POST \
--url https://app.crown-brlv.com/api/v1/accounts/kyc \
--header 'Content-Type: application/json' \
--data '
{
"tax-residence": "BRA",
"reward-tier": 97,
"first-name": "Maria",
"last-name": "Silva",
"date-of-birth": "1990-04-12",
"address": {
"postal-code": "01310-100",
"line1": "Avenida Paulista, 1000",
"city": "Sao Paulo",
"country": "BRA",
"line2": "<string>",
"state": "SP"
},
"document": {
"front-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254",
"back-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254"
},
"liveness": {
"id": "<string>",
"provider": "idwall"
},
"pep": {
"declared": true,
"full-name": "<string>",
"role": "<string>"
},
"financial-profile": {
"sector": "consulting",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"cpf": "12345678901",
"email": "maria@example.com",
"phone": "+5511999999999",
"mother-full-name": "Ana Silva",
"external-wallets": [
{
"address": "0xabc...",
"custody-country": "BRA",
"custodian-name": "<string>"
}
]
}
'import requests
url = "https://app.crown-brlv.com/api/v1/accounts/kyc"
payload = {
"tax-residence": "BRA",
"reward-tier": 97,
"first-name": "Maria",
"last-name": "Silva",
"date-of-birth": "1990-04-12",
"address": {
"postal-code": "01310-100",
"line1": "Avenida Paulista, 1000",
"city": "Sao Paulo",
"country": "BRA",
"line2": "<string>",
"state": "SP"
},
"document": {
"front-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254",
"back-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254"
},
"liveness": {
"id": "<string>",
"provider": "idwall"
},
"pep": {
"declared": True,
"full-name": "<string>",
"role": "<string>"
},
"financial-profile": {
"sector": "consulting",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"cpf": "12345678901",
"email": "maria@example.com",
"phone": "+5511999999999",
"mother-full-name": "Ana Silva",
"external-wallets": [
{
"address": "0xabc...",
"custody-country": "BRA",
"custodian-name": "<string>"
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
'tax-residence': 'BRA',
'reward-tier': 97,
'first-name': 'Maria',
'last-name': 'Silva',
'date-of-birth': '1990-04-12',
address: {
'postal-code': '01310-100',
line1: 'Avenida Paulista, 1000',
city: 'Sao Paulo',
country: 'BRA',
line2: '<string>',
state: 'SP'
},
document: {
'front-file-id': 'ev_019712CFC86D703F85B8BDAA4FC8D254',
'back-file-id': 'ev_019712CFC86D703F85B8BDAA4FC8D254'
},
liveness: {id: '<string>', provider: 'idwall'},
pep: {declared: true, 'full-name': '<string>', role: '<string>'},
'financial-profile': {
sector: 'consulting',
currency: 'BRL',
'monthly-income': 12000,
'net-worth': 850000,
'source-of-funds': []
},
cpf: '12345678901',
email: 'maria@example.com',
phone: '+5511999999999',
'mother-full-name': 'Ana Silva',
'external-wallets': [{address: '0xabc...', 'custody-country': 'BRA', 'custodian-name': '<string>'}]
})
};
fetch('https://app.crown-brlv.com/api/v1/accounts/kyc', 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://app.crown-brlv.com/api/v1/accounts/kyc",
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([
'tax-residence' => 'BRA',
'reward-tier' => 97,
'first-name' => 'Maria',
'last-name' => 'Silva',
'date-of-birth' => '1990-04-12',
'address' => [
'postal-code' => '01310-100',
'line1' => 'Avenida Paulista, 1000',
'city' => 'Sao Paulo',
'country' => 'BRA',
'line2' => '<string>',
'state' => 'SP'
],
'document' => [
'front-file-id' => 'ev_019712CFC86D703F85B8BDAA4FC8D254',
'back-file-id' => 'ev_019712CFC86D703F85B8BDAA4FC8D254'
],
'liveness' => [
'id' => '<string>',
'provider' => 'idwall'
],
'pep' => [
'declared' => true,
'full-name' => '<string>',
'role' => '<string>'
],
'financial-profile' => [
'sector' => 'consulting',
'currency' => 'BRL',
'monthly-income' => 12000,
'net-worth' => 850000,
'source-of-funds' => [
]
],
'cpf' => '12345678901',
'email' => 'maria@example.com',
'phone' => '+5511999999999',
'mother-full-name' => 'Ana Silva',
'external-wallets' => [
[
'address' => '0xabc...',
'custody-country' => 'BRA',
'custodian-name' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"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://app.crown-brlv.com/api/v1/accounts/kyc"
payload := strings.NewReader("{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.crown-brlv.com/api/v1/accounts/kyc")
.header("Content-Type", "application/json")
.body("{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.crown-brlv.com/api/v1/accounts/kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"account": {
"id": "019712cf-c86d-703f-85b8-bdaa4fc8d254",
"alias": "Trading account",
"status": "active",
"external-id": "ext-12345",
"created-at": "2024-01-15T10:30:00Z",
"parent-id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"account": {
"id": "019712cf-c86d-703f-85b8-bdaa4fc8d254",
"alias": "Trading account",
"status": "active",
"external-id": "ext-12345",
"created-at": "2024-01-15T10:30:00Z",
"parent-id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}Create Account (KYC)
Requests onboarding of an individual account whose KYC Crown runs itself.
The body carries the holder’s profile plus the documents captured in the partner’s liveness session. Documents travel as ids: upload each one with POST /v1/accounts/documents, then reference the returned id here.
Request-first: the response describes a creation request, not an account. The request enters compliance review and the account is provisioned on approval.
Validated on this request — every rule below is answered before anything is created, so no valid body needs a round trip to discover a condition:
- The parent account must onboard accounts in kyc mode. A parent that onboards in reliance mode is refused with
403and must usePOST /v1/accounts/reliance. - The parent must hold the
subaccounts-<tier>-tiercapability matchingreward-tier, or the request is refused with403. - Exactly one of
cpfandpassportmust be sent, never both. A Brazilian tax residence (tax-residence=BRA) requirescpf, and it must be a valid CPF. Every other residence requirespassport. date-of-birthmust be the birth date of someone at least 18 years old.address.stateis required whenaddress.countryisBRA, where it must be the two-letter federal unit code (SP,RJ,MG, …). Elsewhere it is free text and optional.documentis required. Itstypemust bepassportfor any tax residence other thanBRA.back-file-idis required whentypeisrg, and rejected forcnhandpassport, which are each read from a single page.- When
pep.declaredistrue,pep.full-name,pep.roleandpep.relationshipare all required. - Every file id referenced in
documentmust have been uploaded by this same parent account viaPOST /v1/accounts/documents. - Addresses in
external-walletsmust be unique within the request, and none may already be registered to another account.
Idempotency: a non-terminal request already open for the same taxpayer identifier under the same parent is returned as-is with 200, instead of a second request being created.
curl --request POST \
--url https://app.crown-brlv.com/api/v1/accounts/kyc \
--header 'Content-Type: application/json' \
--data '
{
"tax-residence": "BRA",
"reward-tier": 97,
"first-name": "Maria",
"last-name": "Silva",
"date-of-birth": "1990-04-12",
"address": {
"postal-code": "01310-100",
"line1": "Avenida Paulista, 1000",
"city": "Sao Paulo",
"country": "BRA",
"line2": "<string>",
"state": "SP"
},
"document": {
"front-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254",
"back-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254"
},
"liveness": {
"id": "<string>",
"provider": "idwall"
},
"pep": {
"declared": true,
"full-name": "<string>",
"role": "<string>"
},
"financial-profile": {
"sector": "consulting",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"cpf": "12345678901",
"email": "maria@example.com",
"phone": "+5511999999999",
"mother-full-name": "Ana Silva",
"external-wallets": [
{
"address": "0xabc...",
"custody-country": "BRA",
"custodian-name": "<string>"
}
]
}
'import requests
url = "https://app.crown-brlv.com/api/v1/accounts/kyc"
payload = {
"tax-residence": "BRA",
"reward-tier": 97,
"first-name": "Maria",
"last-name": "Silva",
"date-of-birth": "1990-04-12",
"address": {
"postal-code": "01310-100",
"line1": "Avenida Paulista, 1000",
"city": "Sao Paulo",
"country": "BRA",
"line2": "<string>",
"state": "SP"
},
"document": {
"front-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254",
"back-file-id": "ev_019712CFC86D703F85B8BDAA4FC8D254"
},
"liveness": {
"id": "<string>",
"provider": "idwall"
},
"pep": {
"declared": True,
"full-name": "<string>",
"role": "<string>"
},
"financial-profile": {
"sector": "consulting",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"cpf": "12345678901",
"email": "maria@example.com",
"phone": "+5511999999999",
"mother-full-name": "Ana Silva",
"external-wallets": [
{
"address": "0xabc...",
"custody-country": "BRA",
"custodian-name": "<string>"
}
]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
'tax-residence': 'BRA',
'reward-tier': 97,
'first-name': 'Maria',
'last-name': 'Silva',
'date-of-birth': '1990-04-12',
address: {
'postal-code': '01310-100',
line1: 'Avenida Paulista, 1000',
city: 'Sao Paulo',
country: 'BRA',
line2: '<string>',
state: 'SP'
},
document: {
'front-file-id': 'ev_019712CFC86D703F85B8BDAA4FC8D254',
'back-file-id': 'ev_019712CFC86D703F85B8BDAA4FC8D254'
},
liveness: {id: '<string>', provider: 'idwall'},
pep: {declared: true, 'full-name': '<string>', role: '<string>'},
'financial-profile': {
sector: 'consulting',
currency: 'BRL',
'monthly-income': 12000,
'net-worth': 850000,
'source-of-funds': []
},
cpf: '12345678901',
email: 'maria@example.com',
phone: '+5511999999999',
'mother-full-name': 'Ana Silva',
'external-wallets': [{address: '0xabc...', 'custody-country': 'BRA', 'custodian-name': '<string>'}]
})
};
fetch('https://app.crown-brlv.com/api/v1/accounts/kyc', 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://app.crown-brlv.com/api/v1/accounts/kyc",
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([
'tax-residence' => 'BRA',
'reward-tier' => 97,
'first-name' => 'Maria',
'last-name' => 'Silva',
'date-of-birth' => '1990-04-12',
'address' => [
'postal-code' => '01310-100',
'line1' => 'Avenida Paulista, 1000',
'city' => 'Sao Paulo',
'country' => 'BRA',
'line2' => '<string>',
'state' => 'SP'
],
'document' => [
'front-file-id' => 'ev_019712CFC86D703F85B8BDAA4FC8D254',
'back-file-id' => 'ev_019712CFC86D703F85B8BDAA4FC8D254'
],
'liveness' => [
'id' => '<string>',
'provider' => 'idwall'
],
'pep' => [
'declared' => true,
'full-name' => '<string>',
'role' => '<string>'
],
'financial-profile' => [
'sector' => 'consulting',
'currency' => 'BRL',
'monthly-income' => 12000,
'net-worth' => 850000,
'source-of-funds' => [
]
],
'cpf' => '12345678901',
'email' => 'maria@example.com',
'phone' => '+5511999999999',
'mother-full-name' => 'Ana Silva',
'external-wallets' => [
[
'address' => '0xabc...',
'custody-country' => 'BRA',
'custodian-name' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"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://app.crown-brlv.com/api/v1/accounts/kyc"
payload := strings.NewReader("{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.crown-brlv.com/api/v1/accounts/kyc")
.header("Content-Type", "application/json")
.body("{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.crown-brlv.com/api/v1/accounts/kyc")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"tax-residence\": \"BRA\",\n \"reward-tier\": 97,\n \"first-name\": \"Maria\",\n \"last-name\": \"Silva\",\n \"date-of-birth\": \"1990-04-12\",\n \"address\": {\n \"postal-code\": \"01310-100\",\n \"line1\": \"Avenida Paulista, 1000\",\n \"city\": \"Sao Paulo\",\n \"country\": \"BRA\",\n \"line2\": \"<string>\",\n \"state\": \"SP\"\n },\n \"document\": {\n \"front-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\",\n \"back-file-id\": \"ev_019712CFC86D703F85B8BDAA4FC8D254\"\n },\n \"liveness\": {\n \"id\": \"<string>\",\n \"provider\": \"idwall\"\n },\n \"pep\": {\n \"declared\": true,\n \"full-name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"financial-profile\": {\n \"sector\": \"consulting\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\n \"cpf\": \"12345678901\",\n \"email\": \"maria@example.com\",\n \"phone\": \"+5511999999999\",\n \"mother-full-name\": \"Ana Silva\",\n \"external-wallets\": [\n {\n \"address\": \"0xabc...\",\n \"custody-country\": \"BRA\",\n \"custodian-name\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"account": {
"id": "019712cf-c86d-703f-85b8-bdaa4fc8d254",
"alias": "Trading account",
"status": "active",
"external-id": "ext-12345",
"created-at": "2024-01-15T10:30:00Z",
"parent-id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"account": {
"id": "019712cf-c86d-703f-85b8-bdaa4fc8d254",
"alias": "Trading account",
"status": "active",
"external-id": "ext-12345",
"created-at": "2024-01-15T10:30:00Z",
"parent-id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"type": "<string>",
"message": "<string>",
"code": "<string>"
}
}Body
Tax residence country, ISO-3
"BRA"
CDI reward tier (%) for the account. The parent account must hold the matching subaccounts--tier capability.
93.5, 90, 97 97
Account holder's given name
"Maria"
Account holder's family name
"Silva"
Must be the birth date of someone at least 18 years old
"1990-04-12"
Show child attributes
Show child attributes
The holder's identity document. Referenced ids come from POST /v1/accounts/documents
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
What the holder does, earns and owns. A declaration that informs compliance review
Show child attributes
Show child attributes
A Brazilian resident's CPF. Send this for a BRA tax residence, and passport for any other
"12345678901"
A non-Brazilian resident's passport, sent in place of cpf
Show child attributes
Show child attributes
"maria@example.com"
At most 32 characters
"+5511999999999"
"Ana Silva"
Show child attributes
Show child attributes
Response
An equivalent non-terminal request already exists
Show child attributes
Show child attributes