curl --request POST \
--url https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fiat": "USD",
"country": "US",
"asset": "ETH",
"counterPartyIdentityId": "cm2c4x3cc000019stwv7um4zl",
"developerFeePercent": 1.5,
"businessIdentityId": "cm2c4x3cc000019stwv7um4zl"
}
'import requests
url = "https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts"
payload = {
"fiat": "USD",
"country": "US",
"asset": "ETH",
"counterPartyIdentityId": "cm2c4x3cc000019stwv7um4zl",
"developerFeePercent": 1.5,
"businessIdentityId": "cm2c4x3cc000019stwv7um4zl"
}
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({
fiat: 'USD',
country: 'US',
asset: 'ETH',
counterPartyIdentityId: 'cm2c4x3cc000019stwv7um4zl',
developerFeePercent: 1.5,
businessIdentityId: 'cm2c4x3cc000019stwv7um4zl'
})
};
fetch('https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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([
'fiat' => 'USD',
'country' => 'US',
'asset' => 'ETH',
'counterPartyIdentityId' => 'cm2c4x3cc000019stwv7um4zl',
'developerFeePercent' => 1.5,
'businessIdentityId' => 'cm2c4x3cc000019stwv7um4zl'
]),
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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts"
payload := strings.NewReader("{\n \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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 \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"accountId": "<string>",
"counterPartyIdentityId": "<string>",
"depositInstructions": [
{
"details": {
"depositMessage": "<string>",
"bankAccountNumber": "<string>",
"bankRoutingNumber": "<string>",
"bankBeneficiaryName": "<string>",
"bankBeneficiaryAddress": "<string>",
"bankName": "<string>",
"bankAddress": "<string>",
"bic": "<string>"
}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"failureReason": {}
}Create a new Virtual Account
Create a new Virtual Account using the data provided in the request body.
curl --request POST \
--url https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fiat": "USD",
"country": "US",
"asset": "ETH",
"counterPartyIdentityId": "cm2c4x3cc000019stwv7um4zl",
"developerFeePercent": 1.5,
"businessIdentityId": "cm2c4x3cc000019stwv7um4zl"
}
'import requests
url = "https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts"
payload = {
"fiat": "USD",
"country": "US",
"asset": "ETH",
"counterPartyIdentityId": "cm2c4x3cc000019stwv7um4zl",
"developerFeePercent": 1.5,
"businessIdentityId": "cm2c4x3cc000019stwv7um4zl"
}
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({
fiat: 'USD',
country: 'US',
asset: 'ETH',
counterPartyIdentityId: 'cm2c4x3cc000019stwv7um4zl',
developerFeePercent: 1.5,
businessIdentityId: 'cm2c4x3cc000019stwv7um4zl'
})
};
fetch('https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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([
'fiat' => 'USD',
'country' => 'US',
'asset' => 'ETH',
'counterPartyIdentityId' => 'cm2c4x3cc000019stwv7um4zl',
'developerFeePercent' => 1.5,
'businessIdentityId' => 'cm2c4x3cc000019stwv7um4zl'
]),
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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts"
payload := strings.NewReader("{\n \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\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://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-accounts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.borderless.xyz/v1/accounts/{id}/virtual-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 \"fiat\": \"USD\",\n \"country\": \"US\",\n \"asset\": \"ETH\",\n \"counterPartyIdentityId\": \"cm2c4x3cc000019stwv7um4zl\",\n \"developerFeePercent\": 1.5,\n \"businessIdentityId\": \"cm2c4x3cc000019stwv7um4zl\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"accountId": "<string>",
"counterPartyIdentityId": "<string>",
"depositInstructions": [
{
"details": {
"depositMessage": "<string>",
"bankAccountNumber": "<string>",
"bankRoutingNumber": "<string>",
"bankBeneficiaryName": "<string>",
"bankBeneficiaryAddress": "<string>",
"bankName": "<string>",
"bankAddress": "<string>",
"bic": "<string>"
}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"failureReason": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
The fiat currency for the virtual account.
USD, EUR, BRL, ARS, MXN, COP, CLP, PEN, PYG, DOP, UYU, BOB, CRC, GTQ, BWP, CDF, GHS, KES, MWK, NGN, RWF, ZAR, TZS, UGX, ZMW, XOF, XAF, AUD, BDT, CAD, INR, JPY, NPR, PKR, PHP, SGD, GBP, CNY, HKD, IDR, MYR, KRW, LKR, THB, TRY, VND, CZK, DKK, NOK, PLN, RON, RSD, SEK, CHF, AED, SAR, QAR, ILS, EGP, JOD, HNL, JMD, NZD, DZD, GMD, GNF, HTG, MAD, TND "USD"
The country code in ISO-3166-2 format for the region where the virtual account will be created. See ISO-3166-2 documentation.
AF, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CD, CG, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, MK, RO, RU, RW, RE, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW, AX, ZZ "US"
The token tied to a specific blockchain for the virtual account.
POL, USDT_POLYGON, USDC_POLYGON, SBC_POLYGON, ETH, USDT_ETHEREUM, USDC_ETHEREUM, PYUSD_ETHEREUM, DAI_ETHEREUM, EURC_ETHEREUM, SBC_ETHEREUM, TRX, USDT_TRON, SBC_TRON, ETH_BASE, USDC_BASE, USDB_BASE, EURC_BASE, SBC_BASE, ETH_OPTIMISM, USDT_OPTIMISM, USDC_OPTIMISM, BTC, CELO, CUSD_CELO, USDC_CELO, SBC_CELO, SOL, USDC_SOLANA, USDT_SOLANA, PYUSD_SOLANA, USDP_SOLANA, EURC_SOLANA, SBC_SOLANA "ETH"
The ID of the identity to associate with the virtual account, if different from the identity linked to the account. If not provided, the virtual account will be created for the identity tied to the account. Learn more in the Virtual Account Guide.
"cm2c4x3cc000019stwv7um4zl"
The percentage of the developer fee for the virtual account, if applicable
1.5
Specific PFI to use for this virtual account. If omitted, the organization's default PFI is used.
Bridge, Koywe, Kotanipay, Hercle, Bitso, Yellowcard, TraceFinance, HoneyCoin, BlindPay, Finity, Infinia, Walapay, Abra, Yativo, Capa, Bivo, Cobre, Avenia, Brale, BVNK, CoinsPH, Iron, Enigma, Kira, TripleA, Onmeta, Alfred, Demo, CrissCross, Pockyt The ID of the business identity whose payment-provider credentials own this virtual account and its deposits. Required when the organization has multiple per-business-identity credential sets configured; optional when a single set of credentials is configured.
"cm2c4x3cc000019stwv7um4zl"
Response
Successfully created Virtual Account data.
Active, NotActive, Rejected POL, USDT_POLYGON, USDC_POLYGON, SBC_POLYGON, ETH, USDT_ETHEREUM, USDC_ETHEREUM, PYUSD_ETHEREUM, DAI_ETHEREUM, EURC_ETHEREUM, SBC_ETHEREUM, TRX, USDT_TRON, SBC_TRON, ETH_BASE, USDC_BASE, USDB_BASE, EURC_BASE, SBC_BASE, ETH_OPTIMISM, USDT_OPTIMISM, USDC_OPTIMISM, BTC, CELO, CUSD_CELO, USDC_CELO, SBC_CELO, SOL, USDC_SOLANA, USDT_SOLANA, PYUSD_SOLANA, USDP_SOLANA, EURC_SOLANA, SBC_SOLANA The fiat currency this deposit instruction serves. Virtual accounts for this currency surface the entry among their deposit instructions.
USD, EUR, BRL, ARS, MXN, COP, CLP, PEN, PYG, DOP, UYU, BOB, CRC, GTQ, BWP, CDF, GHS, KES, MWK, NGN, RWF, ZAR, TZS, UGX, ZMW, XOF, XAF, AUD, BDT, CAD, INR, JPY, NPR, PKR, PHP, SGD, GBP, CNY, HKD, IDR, MYR, KRW, LKR, THB, TRY, VND, CZK, DKK, NOK, PLN, RON, RSD, SEK, CHF, AED, SAR, QAR, ILS, EGP, JOD, HNL, JMD, NZD, DZD, GMD, GNF, HTG, MAD, TND AF, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CD, CG, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, MK, RO, RU, RW, RE, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW, AX, ZZ Show child attributes
Show child attributes
Was this page helpful?