Create a counterparty
curl --request POST \
--url https://api.range.org/v2/counterparties \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Vercel",
"type": "vendor",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider",
"addresses": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"label": "payment wallet"
}
],
"bank_accounts": [
{
"currency": "USD",
"bank_name": "Chase",
"account_name": "Vercel Inc",
"iban": "DE89370400440532013000",
"swift": "DEUTDEFF",
"routing_number": "021000021",
"account_number": "12345678",
"account_type": "checking",
"sort_code": "60-16-13"
}
]
}
'import requests
url = "https://api.range.org/v2/counterparties"
payload = {
"name": "Vercel",
"type": "vendor",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider",
"addresses": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"label": "payment wallet"
}
],
"bank_accounts": [
{
"currency": "USD",
"bank_name": "Chase",
"account_name": "Vercel Inc",
"iban": "DE89370400440532013000",
"swift": "DEUTDEFF",
"routing_number": "021000021",
"account_number": "12345678",
"account_type": "checking",
"sort_code": "60-16-13"
}
]
}
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({
name: 'Vercel',
type: 'vendor',
website: 'https://vercel.com',
notes: 'Infrastructure hosting provider',
addresses: [
{
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
network: 'ethereum',
label: 'payment wallet'
}
],
bank_accounts: [
{
currency: 'USD',
bank_name: 'Chase',
account_name: 'Vercel Inc',
iban: 'DE89370400440532013000',
swift: 'DEUTDEFF',
routing_number: '021000021',
account_number: '12345678',
account_type: 'checking',
sort_code: '60-16-13'
}
]
})
};
fetch('https://api.range.org/v2/counterparties', 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.range.org/v2/counterparties",
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' => 'Vercel',
'type' => 'vendor',
'website' => 'https://vercel.com',
'notes' => 'Infrastructure hosting provider',
'addresses' => [
[
'address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
'network' => 'ethereum',
'label' => 'payment wallet'
]
],
'bank_accounts' => [
[
'currency' => 'USD',
'bank_name' => 'Chase',
'account_name' => 'Vercel Inc',
'iban' => 'DE89370400440532013000',
'swift' => 'DEUTDEFF',
'routing_number' => '021000021',
'account_number' => '12345678',
'account_type' => 'checking',
'sort_code' => '60-16-13'
]
]
]),
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.range.org/v2/counterparties"
payload := strings.NewReader("{\n \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\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.range.org/v2/counterparties")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/counterparties")
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 \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"name": "Vercel",
"type": "vendor",
"addresses": [
{
"id": "08846e81-b3a8-7fd9-cc39-d4023a75dcff",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"name": "Vercel Payment Wallet",
"label": "payment address"
}
],
"bank_accounts": [
{
"id": "ba-001",
"currency": "USD",
"bank_name": "Silicon Valley Bank",
"account_name": "Vercel Inc",
"iban": "************1234",
"swift": "CHASUS33",
"routing_number": "*****0248",
"account_number": "****5678",
"account_type": "checking",
"sort_code": "****89"
}
],
"documents": [
{
"id": "doc-001",
"name": "certificate_of_incorporation.pdf",
"type": "kyb",
"mime_type": "application/pdf",
"size_bytes": 245000,
"uploaded_at": "2026-05-10T09:00:00Z"
}
],
"created_at": "2026-05-01T10:00:00Z",
"updated_at": "2026-05-11T14:30:00Z",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider"
}Counterparties
Create a counterparty
POST
/
v2
/
counterparties
Create a counterparty
curl --request POST \
--url https://api.range.org/v2/counterparties \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Vercel",
"type": "vendor",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider",
"addresses": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"label": "payment wallet"
}
],
"bank_accounts": [
{
"currency": "USD",
"bank_name": "Chase",
"account_name": "Vercel Inc",
"iban": "DE89370400440532013000",
"swift": "DEUTDEFF",
"routing_number": "021000021",
"account_number": "12345678",
"account_type": "checking",
"sort_code": "60-16-13"
}
]
}
'import requests
url = "https://api.range.org/v2/counterparties"
payload = {
"name": "Vercel",
"type": "vendor",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider",
"addresses": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"label": "payment wallet"
}
],
"bank_accounts": [
{
"currency": "USD",
"bank_name": "Chase",
"account_name": "Vercel Inc",
"iban": "DE89370400440532013000",
"swift": "DEUTDEFF",
"routing_number": "021000021",
"account_number": "12345678",
"account_type": "checking",
"sort_code": "60-16-13"
}
]
}
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({
name: 'Vercel',
type: 'vendor',
website: 'https://vercel.com',
notes: 'Infrastructure hosting provider',
addresses: [
{
address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
network: 'ethereum',
label: 'payment wallet'
}
],
bank_accounts: [
{
currency: 'USD',
bank_name: 'Chase',
account_name: 'Vercel Inc',
iban: 'DE89370400440532013000',
swift: 'DEUTDEFF',
routing_number: '021000021',
account_number: '12345678',
account_type: 'checking',
sort_code: '60-16-13'
}
]
})
};
fetch('https://api.range.org/v2/counterparties', 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.range.org/v2/counterparties",
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' => 'Vercel',
'type' => 'vendor',
'website' => 'https://vercel.com',
'notes' => 'Infrastructure hosting provider',
'addresses' => [
[
'address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
'network' => 'ethereum',
'label' => 'payment wallet'
]
],
'bank_accounts' => [
[
'currency' => 'USD',
'bank_name' => 'Chase',
'account_name' => 'Vercel Inc',
'iban' => 'DE89370400440532013000',
'swift' => 'DEUTDEFF',
'routing_number' => '021000021',
'account_number' => '12345678',
'account_type' => 'checking',
'sort_code' => '60-16-13'
]
]
]),
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.range.org/v2/counterparties"
payload := strings.NewReader("{\n \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\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.range.org/v2/counterparties")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/counterparties")
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 \"name\": \"Vercel\",\n \"type\": \"vendor\",\n \"website\": \"https://vercel.com\",\n \"notes\": \"Infrastructure hosting provider\",\n \"addresses\": [\n {\n \"address\": \"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28\",\n \"network\": \"ethereum\",\n \"label\": \"payment wallet\"\n }\n ],\n \"bank_accounts\": [\n {\n \"currency\": \"USD\",\n \"bank_name\": \"Chase\",\n \"account_name\": \"Vercel Inc\",\n \"iban\": \"DE89370400440532013000\",\n \"swift\": \"DEUTDEFF\",\n \"routing_number\": \"021000021\",\n \"account_number\": \"12345678\",\n \"account_type\": \"checking\",\n \"sort_code\": \"60-16-13\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"name": "Vercel",
"type": "vendor",
"addresses": [
{
"id": "08846e81-b3a8-7fd9-cc39-d4023a75dcff",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
"network": "ethereum",
"name": "Vercel Payment Wallet",
"label": "payment address"
}
],
"bank_accounts": [
{
"id": "ba-001",
"currency": "USD",
"bank_name": "Silicon Valley Bank",
"account_name": "Vercel Inc",
"iban": "************1234",
"swift": "CHASUS33",
"routing_number": "*****0248",
"account_number": "****5678",
"account_type": "checking",
"sort_code": "****89"
}
],
"documents": [
{
"id": "doc-001",
"name": "certificate_of_incorporation.pdf",
"type": "kyb",
"mime_type": "application/pdf",
"size_bytes": 245000,
"uploaded_at": "2026-05-10T09:00:00Z"
}
],
"created_at": "2026-05-01T10:00:00Z",
"updated_at": "2026-05-11T14:30:00Z",
"website": "https://vercel.com",
"notes": "Infrastructure hosting provider"
}Authorizations
Use Authorization: Bearer
Body
application/json
Example:
"Vercel"
Available options:
vendor, customer, investor, partner, exchange, other Example:
"vendor"
Example:
"https://vercel.com"
Example:
"Infrastructure hosting provider"
Maximum array length:
100Show child attributes
Show child attributes
Maximum array length:
50Show child attributes
Show child attributes
Response
200 - application/json
Example:
"a1b2c3d4-5678-90ab-cdef-1234567890ab"
Example:
"Vercel"
Example:
"vendor"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
"2026-05-01T10:00:00Z"
Example:
"2026-05-11T14:30:00Z"
Example:
"https://vercel.com"
Example:
"Infrastructure hosting provider"
Last modified on July 17, 2026
Was this page helpful?
⌘I