curl --request GET \
--url https://business.madhousewallet.com/api/payouts/quote \
--header 'Authorization: Bearer <token>'import requests
url = "https://business.madhousewallet.com/api/payouts/quote"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://business.madhousewallet.com/api/payouts/quote', 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://business.madhousewallet.com/api/payouts/quote",
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: Bearer <token>"
],
]);
$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://business.madhousewallet.com/api/payouts/quote"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://business.madhousewallet.com/api/payouts/quote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://business.madhousewallet.com/api/payouts/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"quoteId": "281901c4-19c6-462f-9c81-37fc6bbde340",
"sourceAmount": 1000,
"providerCharge": 2,
"serviceFeePercent": 1.5,
"targetCurrency": "EUR",
"usdToTargetRate": 0.9183,
"quote": {
"targetAmount": 915.28,
"transferFee": 0.58,
"feeFxPercent": 0,
"feeFxAmount": 0,
"feePayoutAmount": 0.58,
"estimatedDelivery": "2026-03-26T15:52:37Z"
}
}Get a quote
Returns a live exchange-rate quote for a USD → foreign currency payout, including fees and estimated delivery time.
The quoted sourceAmount is cached server-side for 5 minutes. The response includes a quoteId that you must pass to POST /api/payouts/transfer or POST /api/payouts/transfer/v2 within that window.
v2-offloader accounts: Pass v2_offloader=true to receive fees calculated for the v2 transfer pipeline. serviceFeePercent will reflect the combined platform fee (your configured fee + 20 bips for the offloader). serviceFeeFixed will be 0. providerCharge is absent. The fee fields are display-only — the platform deducts the correct amounts at settlement time.
Rate limit: 20 requests/minute.
curl --request GET \
--url https://business.madhousewallet.com/api/payouts/quote \
--header 'Authorization: Bearer <token>'import requests
url = "https://business.madhousewallet.com/api/payouts/quote"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://business.madhousewallet.com/api/payouts/quote', 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://business.madhousewallet.com/api/payouts/quote",
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: Bearer <token>"
],
]);
$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://business.madhousewallet.com/api/payouts/quote"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://business.madhousewallet.com/api/payouts/quote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://business.madhousewallet.com/api/payouts/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"quoteId": "281901c4-19c6-462f-9c81-37fc6bbde340",
"sourceAmount": 1000,
"providerCharge": 2,
"serviceFeePercent": 1.5,
"targetCurrency": "EUR",
"usdToTargetRate": 0.9183,
"quote": {
"targetAmount": 915.28,
"transferFee": 0.58,
"feeFxPercent": 0,
"feeFxAmount": 0,
"feePayoutAmount": 0.58,
"estimatedDelivery": "2026-03-26T15:52:37Z"
}
}Authorizations
Pass your API key as a Bearer token: Authorization: Bearer mw_live_<keyId>_<secret>
Query Parameters
ISO 4217 target currency code. Supported currencies (81): AED, ALL, ARS, AUD, BAM, BDT, BHD, BMD, BOB, BRL, BWP, CAD, CHF, CLP, CNY, COP, CRC, CVE, CZK, DKK, DOP, EGP, EUR, GBP, GEL, GHS, GMD, GNF, GTQ, HKD, HNL, HUF, IDR, ILS, INR, ISK, JPY, KES, KGS, KHR, KRW, KWD, LAK, LKR, MAD, MNT, MOP, MUR, MXN, MYR, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PEN, PHP, PKR, PLN, PYG, QAR, RON, RSD, RWF, SAR, SCR, SEK, SGD, SRD, THB, TND, TRY, TZS, UAH, UGX, USD, UYU, VND, ZAR.
USD amount to convert
0.01 <= x <= 1000000Pass true to receive fee fields calculated for the v2 transfer pipeline (POST /api/payouts/transfer/v2). When set, serviceFeePercent reflects your configured fee + 20 bips, serviceFeeFixed is 0, and providerCharge is absent. Ignored for non-API-key callers.
true Response
Quote generated successfully
Combined platform service fee displayed as a percentage (e.g. 0.6 means 0.6%). 0 when not configured.
0.6
Fixed fee in USD (display only). Always 0 for v2-offloader accounts. Absent when not applicable.
0
ISO 4217 currency code of the payout destination (uppercased).
"EUR"
Exchange rate from 1 USD to the target currency.
0.9183
Settlement layer quote details — fees and estimated delivery.
Show child attributes
Show child attributes
UUID identifying this quote — pass to POST /api/payouts/transfer or POST /api/payouts/transfer/v2 as quote_id (API key callers only; absent for JWT callers). Valid for 5 minutes, single-use.
"3f7a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c"
Original USD input amount (before any fee deductions).
1000
Provider processing fee in USD deducted from the source amount before conversion. Present only for v1 accounts; absent for v2-offloader accounts.
2
