Create a quote
Mints a single-use held quote for the requested currency pair. intent selects the action: ‘payout’ prices a held cross-rate / fiat-source / same-currency quote (the corridor picks the engine), ‘convert’ prices an in-wallet conversion between the caller’s own balances, and ‘order’ prices a trade-desk order (your markup + order-channel spread, no fee). Exactly one of fromAmount / toAmount fixes a leg of the pair: payout fixes toAmount (the beneficiary amount), convert fixes fromAmount (the source debit), and order fixes either side. The quote prices FX + markup, plus the per-conversion fee on convert intent, and locks the rate until it is consumed by the matching executor or expires. Read expiresAt for how long the quote is valid rather than assuming a duration. A payout’s per-transaction fee (a flat amount, or basis points of the debit floored at that amount) is applied at payout creation, not here. Every intent returns the same QuoteResponseDto, always carrying a rate (1 for a same-currency or stablecoin-par quote).
Authorizations
Enter Auth0 JWT token
Headers
Client-generated idempotency key
Body
The intent field discriminates the body, and exactly one of fromAmount / toAmount fixes a leg of the pair. A payout quote takes either: toAmount fixes the beneficiary amount, fromAmount fixes the debit before the payout fee (NGN to GBP, EUR and USD take toAmount only). A convert quote requires fromAmount (the source debit). An order quote takes either. A side an intent does not take is rejected with a stable code. The runtime body is a single CreateQuoteDto validated per-intent.
- Option 1
- Option 2
- Option 3
Source currency (debited from the client)
"NGN"
Must be 'payout' for this variant.
payout "payout"
Target currency (received by the beneficiary)
"GBP"
Fixes the funded leg: the debit in fromCurrency, before the payout fee that is added at payout creation. The quote computes toAmount: on a cross-currency pair it is rounded down to the smallest unit every payout method in the target currency accepts (whole shillings for KES), on a same-currency pair it equals fromAmount. Create the payout for exactly that amount. Provide exactly one of fromAmount / toAmount. NGN to GBP, EUR and USD take toAmount only. Major-unit decimal string, up to 4 dp.
"100"
The rail the payout will use. Your terms for the pair on that rail price the quote, falling back to your rail-agnostic terms. Required whenever your terms for the pair differ by rail: omitting it there is refused with RAIL_REQUIRED. The payout consuming the quote must run on the same rail, or it is refused with QUOTE_RAIL_MISMATCH.
sepa_inst, sepa_credit, bank_transfer, ach, fedwire, swift, crypto, mobile_money Fixes the delivered leg: the amount the beneficiary receives, in toCurrency. Provide exactly one of fromAmount / toAmount. Major-unit decimal string, up to 4 dp.
"100"
Response
The minted quote. Every intent returns the same shape.
Quote expiry timestamp (ISO 8601). Read this field for how long the quote is valid rather than assuming a duration.
"2026-04-13T12:00:30Z"
Source currency (debited from the caller)
"NGN"
Quote identifier
"uuid-here"
All-in rate: fromCurrency per 1 toCurrency. Always present; a same-currency or stablecoin-par quote (no FX leg) reports "1.00000000".
"2524.47560000"
Amount received in toCurrency
"100"
Target currency (received by the beneficiary, or credited to the caller's own balance for a convert quote)
"GBP"
Total amount debited from the caller in fromCurrency. A payout quote prices FX + markup only, so this is the FX base; the payout's per-transaction fee (a flat amount, or basis points of the debit floored at that amount) is added at payout creation. A convert quote includes its fee here: the debit less fee is what converts at rate.
"252447.5600"
Convert intent only: the fee taken out of totalDebitAmount, in feeCurrency. "0.0000" where your policy prices the pair without one.
"2.5000"
Convert intent only: the currency fee is charged in — the source currency.
"USD"
Quote status (only included on GET)
active, used, expired