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,
"sourceAccountId": "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,
"sourceAccountId": "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,
sourceAccountId: '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,
'sourceAccountId' => '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 \"sourceAccountId\": \"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 \"sourceAccountId\": \"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 \"sourceAccountId\": \"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,
"sourceAccountId": "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,
"sourceAccountId": "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,
sourceAccountId: '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,
'sourceAccountId' => '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 \"sourceAccountId\": \"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 \"sourceAccountId\": \"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 \"sourceAccountId\": \"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, 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, Juicyway, Kira, TripleA, Onmeta, Alfred, Demo, CrissCross The ID of the account that funds deposits from this virtual account at the payment provider (the merchant balance account). Use it to select which configured merchant's credentials are used. Required when the organization has multiple merchants 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, 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 Fiat currency identifier supported by the PFI 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 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?