curl --request GET \
--url https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates \
--header 'x-api-key: <api-key>'import requests
url = "https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates', 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.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Exchange rates fetched successfully",
"data": {
"rate": "1550.00",
"amount": "100.00",
"unlocked": true,
"sessionId": "13a36c1c-f4a6-4e49-a582-2ecded2559bc",
"sessionExpiresAt": "2026-09-15T15:20:00.000Z"
},
"status": true
}{
"statusCode": 400,
"message": "Customer must complete onboarding with Noah before withdrawing fiat",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "18d2f159-e0cd-4a45-b735-e9dfe0f7520a",
"provider": {
"id": "1128dd40-2c94-4c16-a6bf-fbbc6afee52c",
"slug": "noah",
"name": "Noah"
},
"onboarding": {
"caseId": null,
"status": null,
"providerStatus": null,
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "noah",
"type": "offramp"
}
}
}
}
}{
"statusCode": 123,
"message": "<string>",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"name": "<string>"
},
"onboarding": {
"caseId": "<string>",
"status": "<string>",
"providerStatus": "<string>",
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "<string>",
"type": "onramp"
}
}
}
},
"requestId": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"name": "<string>"
},
"onboarding": {
"caseId": "<string>",
"status": "<string>",
"providerStatus": "<string>",
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "<string>",
"type": "onramp"
}
}
}
},
"requestId": "<string>"
}Get Exchange Rates
For customer-owned withdrawals, provide customerId when starting the flow; subsequent requests inherit it from sessionId. Changing identity requires a new rates request. Customer eligibility failures use the HTTP error details contract. See Customer fiat flows.
curl --request GET \
--url https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates \
--header 'x-api-key: <api-key>'import requests
url = "https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates', 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.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v2/wallets/{id}/withdraw/fiat/rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Exchange rates fetched successfully",
"data": {
"rate": "1550.00",
"amount": "100.00",
"unlocked": true,
"sessionId": "13a36c1c-f4a6-4e49-a582-2ecded2559bc",
"sessionExpiresAt": "2026-09-15T15:20:00.000Z"
},
"status": true
}{
"statusCode": 400,
"message": "Customer must complete onboarding with Noah before withdrawing fiat",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "18d2f159-e0cd-4a45-b735-e9dfe0f7520a",
"provider": {
"id": "1128dd40-2c94-4c16-a6bf-fbbc6afee52c",
"slug": "noah",
"name": "Noah"
},
"onboarding": {
"caseId": null,
"status": null,
"providerStatus": null,
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "noah",
"type": "offramp"
}
}
}
}
}{
"statusCode": 123,
"message": "<string>",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"name": "<string>"
},
"onboarding": {
"caseId": "<string>",
"status": "<string>",
"providerStatus": "<string>",
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "<string>",
"type": "onramp"
}
}
}
},
"requestId": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"details": {
"code": "CUSTOMER_ONBOARDING_REQUIRED",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"name": "<string>"
},
"onboarding": {
"caseId": "<string>",
"status": "<string>",
"providerStatus": "<string>",
"action": {
"type": "create_case",
"method": "POST",
"path": "/v1/customers/18d2f159-e0cd-4a45-b735-e9dfe0f7520a/onboarding-requests",
"body": {
"provider": "<string>",
"type": "onramp"
}
}
}
},
"requestId": "<string>"
}Autorisations
Paramètres de chemin
Wallet identifier.
Paramètres de requête
Stablecoin asset identifier returned by the supported-assets endpoint.
ISO 4217 fiat currency code.
3Decimal amount encoded as a string to preserve precision.
^\d+(\.\d+)?$Which side of the conversion amount refers to. source (default) fixes the stablecoin amount; target fixes the fiat amount the recipient receives.
source, target Optional provider slug. Omit it to let Blockradar select an eligible provider.
ID of an existing active customer owned by the authenticated business.
Optional provider payment-method ID.

