Create account
curl --request POST \
--url https://api.enterprise.sandbox.uphold.com/core/accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "My BTC account",
"asset": "BTC",
"metadata": {
"externalId": 123
}
}
'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/accounts"
payload = {
"label": "My BTC account",
"asset": "BTC",
"metadata": { "externalId": 123 }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'My BTC account', asset: 'BTC', metadata: {externalId: 123}})
};
fetch('https://api.enterprise.sandbox.uphold.com/core/accounts', 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.enterprise.sandbox.uphold.com/core/accounts",
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([
'label' => 'My BTC account',
'asset' => 'BTC',
'metadata' => [
'externalId' => 123
]
]),
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.enterprise.sandbox.uphold.com/core/accounts"
payload := strings.NewReader("{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.enterprise.sandbox.uphold.com/core/accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"account": {
"id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
"ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
"label": "My BTC account",
"asset": "BTC",
"balance": {
"total": "0",
"available": "0"
},
"createdAt": "2024-06-01T00:00:00.000Z",
"updatedAt": "2024-07-15T00:00:00.000Z"
}
}Accounts
Create account
Create a new account.
POST
/
core
/
accounts
Create account
curl --request POST \
--url https://api.enterprise.sandbox.uphold.com/core/accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "My BTC account",
"asset": "BTC",
"metadata": {
"externalId": 123
}
}
'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/accounts"
payload = {
"label": "My BTC account",
"asset": "BTC",
"metadata": { "externalId": 123 }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'My BTC account', asset: 'BTC', metadata: {externalId: 123}})
};
fetch('https://api.enterprise.sandbox.uphold.com/core/accounts', 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.enterprise.sandbox.uphold.com/core/accounts",
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([
'label' => 'My BTC account',
'asset' => 'BTC',
'metadata' => [
'externalId' => 123
]
]),
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.enterprise.sandbox.uphold.com/core/accounts"
payload := strings.NewReader("{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.enterprise.sandbox.uphold.com/core/accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"My BTC account\",\n \"asset\": \"BTC\",\n \"metadata\": {\n \"externalId\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"account": {
"id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
"ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
"label": "My BTC account",
"asset": "BTC",
"balance": {
"total": "0",
"available": "0"
},
"createdAt": "2024-06-01T00:00:00.000Z",
"updatedAt": "2024-07-15T00:00:00.000Z"
}
}
You can optionally include custom entity metadata in the
metadata field to store your own business data (e.g., account purpose, configuration, custom labels). If not provided during creation, you can add it later using Set metadata.Authorizations
OAuth 2.0 authentication.
Body
application/json
Was this page helpful?
⌘I