curl --request POST \
--url https://app.crown-brlv.com/api/v1/accounts/kyc/individual \
--header 'Content-Type: application/json' \
--data '
{
"identifier": {
"value": "07051368923",
"country": "BRA"
},
"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": "other",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"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/individual"
payload = {
"identifier": {
"value": "07051368923",
"country": "BRA"
},
"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": "other",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"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({
identifier: {value: '07051368923', country: 'BRA'},
'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: 'other',
currency: 'BRL',
'monthly-income': 12000,
'net-worth': 850000,
'source-of-funds': []
},
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/individual', 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/individual",
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([
'identifier' => [
'value' => '07051368923',
'country' => 'BRA'
],
'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' => 'other',
'currency' => 'BRL',
'monthly-income' => 12000,
'net-worth' => 850000,
'source-of-funds' => [
]
],
'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/individual"
payload := strings.NewReader("{\n \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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/individual")
.header("Content-Type", "application/json")
.body("{\n \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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/individual")
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 \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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, Individual)
Requests onboarding of an individual account whose KYC Crown runs itself.
The body carries the holder’s profile plus the identity document captured in the partner’s liveness session. Its pages travel as ids: upload each one with POST /v1/accounts/files, 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.
Every country code in the body is ISO 3166-1 alpha-3, read regardless of case: bra is read as BRA.
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. identifier.countrymust beBRAexactly whentax-residenceisBRA. A BRA identifier is a CPF and must be a valid one; any other country identifies the holder by the passport that country issued.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. - When
representativeis sent, itsidentifiermust not be the holder’s. representative.identifier.countrymust beBRAexactly whenrepresentative.tax-residenceisBRA, under the same rule as the holder’s. The representative’s identifier and residence are read on their own, not against the holder’s.representative.document,representative.addressandrepresentative.pepfollow the same rules as the holder’sdocument,addressandpep.- Every file id referenced in
document,representative.documentandrepresentative.power-of-attorney-file-idmust have been uploaded by this same parent account viaPOST /v1/accounts/files. - Addresses in
external-walletsmust be unique within the request, and none may already be registered to another account.
Idempotency: a request under the same parent with the same identifier number, whether pending, approved or active, 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/individual \
--header 'Content-Type: application/json' \
--data '
{
"identifier": {
"value": "07051368923",
"country": "BRA"
},
"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": "other",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"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/individual"
payload = {
"identifier": {
"value": "07051368923",
"country": "BRA"
},
"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": "other",
"currency": "BRL",
"monthly-income": 12000,
"net-worth": 850000,
"source-of-funds": []
},
"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({
identifier: {value: '07051368923', country: 'BRA'},
'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: 'other',
currency: 'BRL',
'monthly-income': 12000,
'net-worth': 850000,
'source-of-funds': []
},
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/individual', 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/individual",
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([
'identifier' => [
'value' => '07051368923',
'country' => 'BRA'
],
'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' => 'other',
'currency' => 'BRL',
'monthly-income' => 12000,
'net-worth' => 850000,
'source-of-funds' => [
]
],
'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/individual"
payload := strings.NewReader("{\n \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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/individual")
.header("Content-Type", "application/json")
.body("{\n \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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/individual")
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 \"identifier\": {\n \"value\": \"07051368923\",\n \"country\": \"BRA\"\n },\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\": \"other\",\n \"currency\": \"BRL\",\n \"monthly-income\": 12000,\n \"net-worth\": 850000,\n \"source-of-funds\": []\n },\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
How the holder is identified. A BRA tax residence is identified by CPF, every other residence by passport
Show child attributes
Show child attributes
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/files
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
"maria@example.com"
At most 32 characters
"+5511999999999"
"Ana Silva"
The person acting for the holder under a power of attorney. Sent only when the holder does not act for themselves
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
An equivalent non-terminal request already exists
Show child attributes
Show child attributes