Skip to main content
Every payout starts with a quote. A quote locks an exchange rate and shows the fees and estimated delivery time so you can display the recipient amount before committing funds.

Getting a quote

Call GET /api/payouts/quote with a targetCurrency and sourceAmount. The quoted amount is cached server-side for 5 minutes, and the response includes a single-use quoteId to pass to a transfer endpoint as quote_id.
curl "$MW/api/payouts/quote?targetCurrency=EUR&sourceAmount=1000" \
  -H "Authorization: Bearer mw_live_<keyId>_<secret>"

Fee fields

A quote separates platform fees from the settlement-layer transfer fee.
FieldDescription
serviceFeePercentCombined platform service fee, as a percentage.
serviceFeeFixedFixed fee in USD (display only). 0 for v2-offloader accounts.
providerChargeProvider processing fee deducted before conversion. Present only for v1 accounts.
usdToTargetRateExchange rate from 1 USD to the target currency.
quote.targetAmountAmount the recipient receives in the target currency.
quote.transferFeeSettlement-layer fee, deducted from the target amount.
quote.feeFxAmount / quote.feePayoutAmountFX and flat-fee components of transferFee. They sum to transferFee.
quote.feeFxPercentFX conversion fee as a percentage.
The fee breakdown fields are nullable and are null when a breakdown is unavailable, for example an unsupported corridor or an email recipient.
Fee fields are for display. They are not deducted from the USDC you send on-chain — the platform settles the correct amounts internally.

v2-offloader fees

When quoting for the v2 pipeline, pass v2_offloader=true. The fees are calculated for the v2 transfer accounts: serviceFeePercent reflects your configured fee plus 20 bips, serviceFeeFixed is 0, and providerCharge is absent. This parameter is ignored for non-API-key callers. See v1 vs v2 transfers.

Quick fee lookup

For real-time display as a user types an amount, GET /api/payouts/fee returns just the platform fee for a USD amount with no external dependencies. It returns mwFee (USD) and mwFeePercentage.

Amount limits

GET /api/payouts/amount-limits returns the min_amount and max_amount your account may submit to quote and transfer endpoints. A null bound means no limit is configured. Amounts outside these limits are rejected with 400.