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 (plan 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 only and locks the rate until it is consumed by the matching executor or expires; 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 requires toAmount (the beneficiary amount); a convert quote requires fromAmount (the source debit). The opposite side is rejected with a stable not-yet-supported 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"
Amount the beneficiary receives, in toCurrency (required). Fixes the delivered leg; the pair takes exactly one of fromAmount / toAmount.
"100"
Target currency (received by the beneficiary)
"GBP"
The rail the payout will use. A plan's rate row for that rail prices the quote, falling back to its rail-agnostic row. Required whenever the plan prices the pair on any specific 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 Response
The minted quote. Every intent returns the same shape.
Quote expiry timestamp (ISO 8601)
"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. The quote prices FX + markup only, so this is the FX base; a payout's per-transaction fee (a flat amount, or basis points of the debit floored at that amount) is added at payout creation.
"252447.5600"
Quote status (only included on GET)
active, used, expired