Skip to main content
POST
Create a quote

Authorizations

Authorization
string
header
required

Enter Auth0 JWT token

Headers

Idempotency-Key
string

Client-generated idempotency key

Body

application/json

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.

fromCurrency
string
required

Source currency (debited from the client)

Example:

"NGN"

intent
enum<string>
required

Must be 'payout' for this variant.

Available options:
payout
Example:

"payout"

toCurrency
string
required

Target currency (received by the beneficiary)

Example:

"GBP"

fromAmount
string

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.

Example:

"100"

rail
enum<string>

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.

Available options:
sepa_inst,
sepa_credit,
bank_transfer,
ach,
fedwire,
swift,
crypto,
mobile_money
toAmount
string

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.

Example:

"100"

Response

The minted quote. Every intent returns the same shape.

expiresAt
string
required

Quote expiry timestamp (ISO 8601). Read this field for how long the quote is valid rather than assuming a duration.

Example:

"2026-04-13T12:00:30Z"

fromCurrency
string
required

Source currency (debited from the caller)

Example:

"NGN"

id
string
required

Quote identifier

Example:

"uuid-here"

rate
string
required

All-in rate: fromCurrency per 1 toCurrency. Always present; a same-currency or stablecoin-par quote (no FX leg) reports "1.00000000".

Example:

"2524.47560000"

targetAmount
string
required

Amount received in toCurrency

Example:

"100"

toCurrency
string
required

Target currency (received by the beneficiary, or credited to the caller's own balance for a convert quote)

Example:

"GBP"

totalDebitAmount
string
required

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.

Example:

"252447.5600"

fee
string

Convert intent only: the fee taken out of totalDebitAmount, in feeCurrency. "0.0000" where your policy prices the pair without one.

Example:

"2.5000"

feeCurrency
string

Convert intent only: the currency fee is charged in — the source currency.

Example:

"USD"

status
enum<string>

Quote status (only included on GET)

Available options:
active,
used,
expired