Payouts
Accept Quote
Accept a quote and create the corresponding payout.
Executes a previously fetched quote to create a payout with the locked-in exchange rate. The quote must be valid (not expired) and unused. Once accepted, the conversion happens at the quoted rate regardless of market movements.
For crypto payouts, you’ll need to provide the destination address and chain. For fiat payouts, you’ll need to provide the beneficiary details.
POST
/
v1
/
payouts
/
quote
/
{quoteId}
cURL
curl --request POST \
--url https://api.example.com/v1/payouts/quote/{quoteId} \
--header 'Content-Type: application/json' \
--data '
{
"payoutDestination": {
"toAddress": "<string>",
"chain": "solana",
"beneficiaryId": "<string>"
}
}
'import requests
url = "https://api.example.com/v1/payouts/quote/{quoteId}"
payload = { "payoutDestination": {
"toAddress": "<string>",
"chain": "solana",
"beneficiaryId": "<string>"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
payoutDestination: {toAddress: '<string>', chain: 'solana', beneficiaryId: '<string>'}
})
};
fetch('https://api.example.com/v1/payouts/quote/{quoteId}', 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://api.example.com/v1/payouts/quote/{quoteId}",
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([
'payoutDestination' => [
'toAddress' => '<string>',
'chain' => 'solana',
'beneficiaryId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.example.com/v1/payouts/quote/{quoteId}"
payload := strings.NewReader("{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.example.com/v1/payouts/quote/{quoteId}")
.header("Content-Type", "application/json")
.body("{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/payouts/quote/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"payoutId": "<string>",
"object": "payout",
"accountId": "<string>",
"method": "crypto",
"status": "INITIATED",
"sourceAmount": "<string>",
"sourceAssetCode": "<string>",
"destinationAmount": "<string>",
"destinationAssetCode": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"cryptoDetails": {
"toAddress": "<string>",
"chain": "solana",
"transactionSignature": "<string>",
"confirmations": 123,
"networkFee": "<string>",
"networkFeeAsset": "<string>"
},
"description": "<string>",
"initiatedAt": "<string>",
"completedAt": "<string>",
"metadata": {}
}Path Parameters
Body
application/json
Show child attributes
Show child attributes
Response
200 - application/json
The request has succeeded.
Available options:
payout Available options:
crypto, fiat Available options:
INITIATED, PROCESSING, COMPLETED, FAILED, CANCELLED Show child attributes
Show child attributes
⌘I
cURL
curl --request POST \
--url https://api.example.com/v1/payouts/quote/{quoteId} \
--header 'Content-Type: application/json' \
--data '
{
"payoutDestination": {
"toAddress": "<string>",
"chain": "solana",
"beneficiaryId": "<string>"
}
}
'import requests
url = "https://api.example.com/v1/payouts/quote/{quoteId}"
payload = { "payoutDestination": {
"toAddress": "<string>",
"chain": "solana",
"beneficiaryId": "<string>"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
payoutDestination: {toAddress: '<string>', chain: 'solana', beneficiaryId: '<string>'}
})
};
fetch('https://api.example.com/v1/payouts/quote/{quoteId}', 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://api.example.com/v1/payouts/quote/{quoteId}",
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([
'payoutDestination' => [
'toAddress' => '<string>',
'chain' => 'solana',
'beneficiaryId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.example.com/v1/payouts/quote/{quoteId}"
payload := strings.NewReader("{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.example.com/v1/payouts/quote/{quoteId}")
.header("Content-Type", "application/json")
.body("{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/payouts/quote/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"payoutDestination\": {\n \"toAddress\": \"<string>\",\n \"chain\": \"solana\",\n \"beneficiaryId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"payoutId": "<string>",
"object": "payout",
"accountId": "<string>",
"method": "crypto",
"status": "INITIATED",
"sourceAmount": "<string>",
"sourceAssetCode": "<string>",
"destinationAmount": "<string>",
"destinationAssetCode": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"cryptoDetails": {
"toAddress": "<string>",
"chain": "solana",
"transactionSignature": "<string>",
"confirmations": 123,
"networkFee": "<string>",
"networkFeeAsset": "<string>"
},
"description": "<string>",
"initiatedAt": "<string>",
"completedAt": "<string>",
"metadata": {}
}