Create Payout
curl --request POST \
--url https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-Nonce: <api-key>' \
--header 'X-API-Signature: <api-key>' \
--data '
{
"amount": "10.5",
"ccy": "USDC",
"chain_id": 8453,
"wallet_address": "<string>",
"metadata": {},
"reference": "<string>",
"token_address": "<string>"
}
'import requests
url = "https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address"
payload = {
"amount": "10.5",
"ccy": "USDC",
"chain_id": 8453,
"wallet_address": "<string>",
"metadata": {},
"reference": "<string>",
"token_address": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"X-API-Nonce": "<api-key>",
"X-API-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-API-Nonce': '<api-key>',
'X-API-Signature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: '10.5',
ccy: 'USDC',
chain_id: 8453,
wallet_address: '<string>',
metadata: {},
reference: '<string>',
token_address: '<string>'
})
};
fetch('https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address', 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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address",
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([
'amount' => '10.5',
'ccy' => 'USDC',
'chain_id' => 8453,
'wallet_address' => '<string>',
'metadata' => [
],
'reference' => '<string>',
'token_address' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-API-Nonce: <api-key>",
"X-API-Signature: <api-key>"
],
]);
$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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address"
payload := strings.NewReader("{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-Nonce", "<api-key>")
req.Header.Add("X-API-Signature", "<api-key>")
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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address")
.header("X-API-KEY", "<api-key>")
.header("X-API-Nonce", "<api-key>")
.header("X-API-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-API-Nonce"] = '<api-key>'
request["X-API-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amount": "<string>",
"created_at": "<string>",
"currency": "<string>",
"customer": {
"created_at": "<string>",
"deleted_at": "<string>",
"email": "<string>",
"id": "<string>",
"metadata": [
123
],
"name": "<string>",
"org_id": "<string>",
"phone": "<string>",
"properties": [
123
],
"reference": "<string>",
"updated_at": "<string>",
"wallet_address": "<string>"
},
"customer_id": "<string>",
"id": "<string>",
"invoice_id": "<string>",
"next_action": "<string>",
"org_id": "<string>",
"parent_id": "<string>",
"payment_method": "Unknown",
"properties": {},
"reference": "<string>",
"scheduled_time": 123,
"source": "Lago",
"status": "Unknown",
"updated_at": "<string>"
},
"error": true,
"message": "<string>"
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}Virtual Accounts
Create Payout
Create a payout to a crypto wallet address. Requires request signature headers. When authenticated with a Bearer session, also requires X-Step-Up-Token.
POST
/
accounts
/
virtual
/
payout
/
address
Create Payout
curl --request POST \
--url https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-Nonce: <api-key>' \
--header 'X-API-Signature: <api-key>' \
--data '
{
"amount": "10.5",
"ccy": "USDC",
"chain_id": 8453,
"wallet_address": "<string>",
"metadata": {},
"reference": "<string>",
"token_address": "<string>"
}
'import requests
url = "https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address"
payload = {
"amount": "10.5",
"ccy": "USDC",
"chain_id": 8453,
"wallet_address": "<string>",
"metadata": {},
"reference": "<string>",
"token_address": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"X-API-Nonce": "<api-key>",
"X-API-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-API-Nonce': '<api-key>',
'X-API-Signature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: '10.5',
ccy: 'USDC',
chain_id: 8453,
wallet_address: '<string>',
metadata: {},
reference: '<string>',
token_address: '<string>'
})
};
fetch('https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address', 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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address",
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([
'amount' => '10.5',
'ccy' => 'USDC',
'chain_id' => 8453,
'wallet_address' => '<string>',
'metadata' => [
],
'reference' => '<string>',
'token_address' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-API-Nonce: <api-key>",
"X-API-Signature: <api-key>"
],
]);
$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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address"
payload := strings.NewReader("{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-Nonce", "<api-key>")
req.Header.Add("X-API-Signature", "<api-key>")
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://mapi.boomfi.xyz/v1/accounts/virtual/payout/address")
.header("X-API-KEY", "<api-key>")
.header("X-API-Nonce", "<api-key>")
.header("X-API-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mapi.boomfi.xyz/v1/accounts/virtual/payout/address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-API-Nonce"] = '<api-key>'
request["X-API-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": \"10.5\",\n \"ccy\": \"USDC\",\n \"chain_id\": 8453,\n \"wallet_address\": \"<string>\",\n \"metadata\": {},\n \"reference\": \"<string>\",\n \"token_address\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amount": "<string>",
"created_at": "<string>",
"currency": "<string>",
"customer": {
"created_at": "<string>",
"deleted_at": "<string>",
"email": "<string>",
"id": "<string>",
"metadata": [
123
],
"name": "<string>",
"org_id": "<string>",
"phone": "<string>",
"properties": [
123
],
"reference": "<string>",
"updated_at": "<string>",
"wallet_address": "<string>"
},
"customer_id": "<string>",
"id": "<string>",
"invoice_id": "<string>",
"next_action": "<string>",
"org_id": "<string>",
"parent_id": "<string>",
"payment_method": "Unknown",
"properties": {},
"reference": "<string>",
"scheduled_time": 123,
"source": "Lago",
"status": "Unknown",
"updated_at": "<string>"
},
"error": true,
"message": "<string>"
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}{
"error": {
"code": 400,
"errors": [
{
"domain": "orders",
"reason": "InsufficientQuantity"
}
],
"message": "Insufficient quantity"
}
}Authorizations
Headers
Step-up token required for Bearer/session auth (ignored for API-key auth)
Body
application/json
body
Amount to send (token units as a decimal string).
Example:
"10.5"
Token/currency symbol to send.
Example:
"USDC"
Destination chain ID.
Example:
8453
Destination wallet address.
Optional payout metadata returned on the payment record.
Show child attributes
Show child attributes
Optional client reference (max 1024 chars). Reference must be unique.
Maximum string length:
1024Token contract address when not the native asset. Optional: resolved from the currency cache, and only required when the symbol maps to several tokens on the chain.