Payouts
Get payout status
Current status of a payout, by quote ID.
GET
/
api
/
rfq
/
status
/
{quoteId}
Get payout status
curl --request GET \
--url https://api.example.com/api/rfq/status/{quoteId} \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/rfq/status/{quoteId}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/rfq/status/{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/api/rfq/status/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/rfq/status/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/rfq/status/{quoteId}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/rfq/status/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "awaiting_escrow_deposit",
"quotedToAmount": 4425.00,
"escrowAddress": "0xAbcDef0123456789AbcDef0123456789AbcDef01",
"depositAmountAtomic": "227250000",
"tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"chainId": 137,
"escrowState": "active"
}
}
{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "delivered",
"transactionId": "8b1a4c1d-7a3c-4a08-94ad-9f1ef1e0c3a2",
"quotedToAmount": 4425.00,
"actualToAmount": 4423.50,
"deltaAmount": -1.50,
"settleTxHash": "0x1234abcd…",
"onrampProvider": "provider_a",
"offrampProvider": "provider_a",
"escrowState": "settled",
"actualUsdcReceived": "227250000"
}
}
Lookup by
quoteId from POST /rfq/execute. Prefer Webhooks over polling.
Scope
payouts:readHeaders
string
required
API key.
Path parameters
string
required
UUID of the locked quote.
Response
Fields are populated progressively. Pre-settle reads show core + escrow detail; post-settle reads add the actual amounts andtransactionId.
- Common
- Stablecoin-to-fiat
string
Echoed back.
string
Coarse-grained status. See Core Concepts.
string
UUID of the underlying payout — use with
GET /payouts/{id}. Populated once written.number
Destination amount as quoted at lock time.
number
Destination amount that actually settled. Post-delivery.
number
Signed
actualToAmount − quotedToAmount. Surfaces FX slippage.string
On-chain settlement tx hash (S2F / fiat-to-stablecoin).
string
Opaque routing identifier of the onramp leg.
string
Opaque routing identifier of the offramp leg.
string
Hosted payment page (onramp flows).
object
Map of
string → string for bank-transfer settlement.string
Set when
status is failed.Same
Common fields plus the escrow detail below.string
On-chain address your wallet sent (or must send) the stablecoin to.
string
Atomic-units integer string. Parse with
BigInt.string
ERC-20 contract of the source stablecoin.
integer
Chain id of the source token.
integer
Chain on which the escrow slot lives.
string
One of
none (no escrow yet), active (deposit pending or in flight), settled (post-settle), cancelled (explicitly cancelled). Don’t branch on other values — none are emitted.string
Atomic-units integer string of USDC the escrow received (e.g.
"227250000" for 227.25 USDC at 6 decimals). Parse with BigInt. "0" until deposit confirmation.{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "awaiting_escrow_deposit",
"quotedToAmount": 4425.00,
"escrowAddress": "0xAbcDef0123456789AbcDef0123456789AbcDef01",
"depositAmountAtomic": "227250000",
"tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"chainId": 137,
"escrowState": "active"
}
}
{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "delivered",
"transactionId": "8b1a4c1d-7a3c-4a08-94ad-9f1ef1e0c3a2",
"quotedToAmount": 4425.00,
"actualToAmount": 4423.50,
"deltaAmount": -1.50,
"settleTxHash": "0x1234abcd…",
"onrampProvider": "provider_a",
"offrampProvider": "provider_a",
"escrowState": "settled",
"actualUsdcReceived": "227250000"
}
}
⌘I
Get payout status
curl --request GET \
--url https://api.example.com/api/rfq/status/{quoteId} \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/rfq/status/{quoteId}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/rfq/status/{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/api/rfq/status/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/rfq/status/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/rfq/status/{quoteId}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/rfq/status/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "awaiting_escrow_deposit",
"quotedToAmount": 4425.00,
"escrowAddress": "0xAbcDef0123456789AbcDef0123456789AbcDef01",
"depositAmountAtomic": "227250000",
"tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"chainId": 137,
"escrowState": "active"
}
}
{
"success": true,
"data": {
"quoteId": "4c2b7e8f-3a3c-4a08-94ad-1234567890ab",
"status": "delivered",
"transactionId": "8b1a4c1d-7a3c-4a08-94ad-9f1ef1e0c3a2",
"quotedToAmount": 4425.00,
"actualToAmount": 4423.50,
"deltaAmount": -1.50,
"settleTxHash": "0x1234abcd…",
"onrampProvider": "provider_a",
"offrampProvider": "provider_a",
"escrowState": "settled",
"actualUsdcReceived": "227250000"
}
}