curl --request POST \
--url https://app.sandbox.rio.trade/api/payments/crypto/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"asset": "USDC",
"network": "solana",
"country": "MX"
}
'import requests
url = "https://app.sandbox.rio.trade/api/payments/crypto/bulk"
payload = {
"asset": "USDC",
"network": "solana",
"country": "MX"
}
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({asset: 'USDC', network: 'solana', country: 'MX'})
};
fetch('https://app.sandbox.rio.trade/api/payments/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/payments/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([
'asset' => 'USDC',
'network' => 'solana',
'country' => 'MX'
]),
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/payments/crypto/bulk"
payload := strings.NewReader("{\n \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\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/payments/crypto/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/payments/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 \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2025-01-04T01:37:25.259Z",
"userId": "6757546b4c5d19bf3cd7b09c",
"orderIds": [],
"amount": 0,
"orderIdsPaid": [],
"asset": "USDC",
"network": "solana",
"country": "MX",
"status": "awaitingPayment",
"depositAddress": "5BZDQjWad45rT1vYT5KdJHgSU4rWXL1Y5nDoTwSrT8Pr",
"id": "677890d5d520f9ecb10e9c33"
}Create bulk crypto payment
curl --request POST \
--url https://app.sandbox.rio.trade/api/payments/crypto/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"asset": "USDC",
"network": "solana",
"country": "MX"
}
'import requests
url = "https://app.sandbox.rio.trade/api/payments/crypto/bulk"
payload = {
"asset": "USDC",
"network": "solana",
"country": "MX"
}
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({asset: 'USDC', network: 'solana', country: 'MX'})
};
fetch('https://app.sandbox.rio.trade/api/payments/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/payments/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([
'asset' => 'USDC',
'network' => 'solana',
'country' => 'MX'
]),
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/payments/crypto/bulk"
payload := strings.NewReader("{\n \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\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/payments/crypto/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sandbox.rio.trade/api/payments/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 \"asset\": \"USDC\",\n \"network\": \"solana\",\n \"country\": \"MX\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2025-01-04T01:37:25.259Z",
"userId": "6757546b4c5d19bf3cd7b09c",
"orderIds": [],
"amount": 0,
"orderIdsPaid": [],
"asset": "USDC",
"network": "solana",
"country": "MX",
"status": "awaitingPayment",
"depositAddress": "5BZDQjWad45rT1vYT5KdJHgSU4rWXL1Y5nDoTwSrT8Pr",
"id": "677890d5d520f9ecb10e9c33"
}Requirements to consume the endpoint.
Create and modify role
User approved
Authorizations
Body
Optional list of order IDs to include in the bulk crypto payment. When omitted, crypto, country and userId must be provided
[
"6757546b4c5d19bf3cd7b09c",
"6757546b4c5d19bf3cd7b09d"
]
Stablecoin the bulk payment collects. Every order in the bulk payment must pay in this asset.
USDC, USDCe, EURC, USDT "USDC"
Network the deposit address is on. Every order in the bulk payment must pay on this network.
ethereum, polygon, solana, stellar, base, tempo, tron, bsc "solana"
The country of the user
MX, PE, CO The unique identifier of the user
"6757546b4c5d19bf3cd7b09c"
Response
Created
The date and time the order was created
"2025-01-04T01:37:25.259Z"
The unique identifier of the user
"6757546b4c5d19bf3cd7b09c"
List of order IDs associated with the user
[]
The total amount of the orders
0
List of order IDs that have been paid
[]
Stablecoin the bulk payment collects. Every order in the bulk payment must pay in this asset.
USDC, USDCe, EURC, USDT "USDC"
Network the deposit address is on. Every order in the bulk payment must pay on this network.
ethereum, polygon, solana, stellar, base, tempo, tron, bsc "solana"
The country of the operation
MX, PE, CO The current status of the bulk crypto payment.
awaitingDepositAddress, awaitingOrders, awaitingPayment, awaitingAsyncPayment, awaitingAsyncPayoutForOrders, complete, failed, cancelled, insufficientAmountReceived, excessAmountReceived "awaitingPayment"
The deposit address for the order
"5BZDQjWad45rT1vYT5KdJHgSU4rWXL1Y5nDoTwSrT8Pr"
The unique identifier of the bulk crypto payment
"677890d5d520f9ecb10e9c33"