Create bulk crypto payout
curl --request POST \
--url https://app.sandbox.rio.trade/api/payouts/crypto/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"payoutAddressId": "65ba521a4b3e1bd9eb6a5107"
}
'import requests
url = "https://app.sandbox.rio.trade/api/payouts/crypto/bulk"
payload = { "payoutAddressId": "65ba521a4b3e1bd9eb6a5107" }
headers = {
"x-api-key": "<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>', 'Content-Type': 'application/json'},
body: JSON.stringify({payoutAddressId: '65ba521a4b3e1bd9eb6a5107'})
};
fetch('https://app.sandbox.rio.trade/api/payouts/crypto/bulk', 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://app.sandbox.rio.trade/api/payouts/crypto/bulk",
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([
'payoutAddressId' => '65ba521a4b3e1bd9eb6a5107'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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://app.sandbox.rio.trade/api/payouts/crypto/bulk"
payload := strings.NewReader("{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://app.sandbox.rio.trade/api/payouts/crypto/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/payouts/crypto/bulk")
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["Content-Type"] = 'application/json'
request.body = "{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2025-01-04T00:24:28.658Z",
"userId": "6757546b4c5d19bf3cd7b09c",
"orderIds": [],
"amount": 0,
"crypto": "USDC",
"payoutAddressId": "65ba521a4b3e1bd9eb6a5107",
"blockchainAddress": "0x1234567890abcdef1234567890abcdef12345678",
"country": "MX",
"status": "awaitingOrders",
"id": "677890d5d520f9ecb10e9c33"
}{
"errors": [
{
"code": 19,
"message": "Not authorized"
}
]
}Crypto payouts API
Create bulk crypto payout
Creates a bulk crypto payout container to group multiple order payouts into a single consolidated payout.
POST
/
api
/
payouts
/
crypto
/
bulk
Create bulk crypto payout
curl --request POST \
--url https://app.sandbox.rio.trade/api/payouts/crypto/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"payoutAddressId": "65ba521a4b3e1bd9eb6a5107"
}
'import requests
url = "https://app.sandbox.rio.trade/api/payouts/crypto/bulk"
payload = { "payoutAddressId": "65ba521a4b3e1bd9eb6a5107" }
headers = {
"x-api-key": "<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>', 'Content-Type': 'application/json'},
body: JSON.stringify({payoutAddressId: '65ba521a4b3e1bd9eb6a5107'})
};
fetch('https://app.sandbox.rio.trade/api/payouts/crypto/bulk', 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://app.sandbox.rio.trade/api/payouts/crypto/bulk",
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([
'payoutAddressId' => '65ba521a4b3e1bd9eb6a5107'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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://app.sandbox.rio.trade/api/payouts/crypto/bulk"
payload := strings.NewReader("{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://app.sandbox.rio.trade/api/payouts/crypto/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/payouts/crypto/bulk")
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["Content-Type"] = 'application/json'
request.body = "{\n \"payoutAddressId\": \"65ba521a4b3e1bd9eb6a5107\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2025-01-04T00:24:28.658Z",
"userId": "6757546b4c5d19bf3cd7b09c",
"orderIds": [],
"amount": 0,
"crypto": "USDC",
"payoutAddressId": "65ba521a4b3e1bd9eb6a5107",
"blockchainAddress": "0x1234567890abcdef1234567890abcdef12345678",
"country": "MX",
"status": "awaitingOrders",
"id": "677890d5d520f9ecb10e9c33"
}{
"errors": [
{
"code": 19,
"message": "Not authorized"
}
]
}Requirements to consume the endpoint.
Create and modify role
The user must have the role to create and modify.
User approved
The user must be approved in at least one country.
Authorizations
Body
application/json
Response
Created
The date and time the bulk payout was created.
Example:
"2025-01-04T00:24:28.658Z"
The unique identifier of the user.
Example:
"6757546b4c5d19bf3cd7b09c"
List of order IDs associated with this bulk payout.
Example:
[]
The total payout amount across all orders.
Example:
0
The cryptocurrency of the payout.
Available options:
USDC, USDC_POLYGON_NXTB, SOL_USDC_PTHX, XLM_USDC_5F3T, USDC_BASECHAIN_ETH_5I5C, USDCE_TEMPO_MXYR, USDT_POLYGON, USDT_ERC20, TRX_USDT_S2UZ, USDT_BSC, SOL_USDT_EWAY, EUROC_ETH_F5NG, EURC_SOL, EURC_B609K9QB_Y213 The ID of the destination crypto address.
Example:
"65ba521a4b3e1bd9eb6a5107"
The blockchain address where funds will be sent.
Example:
"0x1234567890abcdef1234567890abcdef12345678"
The country of the operation.
Available options:
MX, PE, CO The current status of the bulk crypto payout.
Available options:
awaitingOrders, awaitingPaymentForOrders, awaitingPayoutRequest, awaitingPayout, awaitingAsyncPayout, awaitingAsyncPayoutRequest, checkingLiquidity, sourcingLiquidity, liquiditySourced, complete, failed, cancelled Example:
"awaitingOrders"
The unique identifier of the bulk crypto payout.
Example:
"677890d5d520f9ecb10e9c33"