Skip to main content
GET
Get Quote

Authorizations

Authorization
string
header
required

Bearer authentication with an API token

Query Parameters

source_currency
enum<string>
required

Source asset currency. Must be USDC or USDT. Currency of a conversion. The currency can be a stablecoin or a fiat currency.

Available options:
CONVERSION_CURRENCY_UNSPECIFIED,
USDC,
USD,
MXN,
INR,
KRW,
USDT,
GHS,
EUR
Example:

"USDC"

source_chain
enum<string>
required

Source blockchain network. e.g., SOLANA_MAINNET, ETHEREUM_MAINNET, BASE_MAINNET. Chain identifier

Available options:
CHAIN_UNSPECIFIED,
ETHEREUM_MAINNET,
POLYGON_MAINNET,
ETHEREUM_TESTNET,
OPTIMISM_SEPOLIA,
BASE_MAINNET,
BASE_SEPOLIA,
OPTIMISM_MAINNET,
POLYGON_AMOY,
SOLANA_MAINNET,
SOLANA_DEVNET
Example:

"ETHEREUM_MAINNET"

destination_currency
enum<string>
required

Destination fiat currency. e.g., MXN, INR. Currency of a conversion. The currency can be a stablecoin or a fiat currency.

Available options:
CONVERSION_CURRENCY_UNSPECIFIED,
USDC,
USD,
MXN,
INR,
KRW,
USDT,
GHS,
EUR
Example:

"USDC"

destination_country
enum<string>
required

Destination country (ISO 3166-1 alpha-2). Must form a supported corridor with destination_currency and payment_method. ISO 3166-1 alpha-2 country code.

Available options:
US
Example:

"US"

payment_method
enum<string>
required

Payment rail. Must match an enabled corridor for the destination country. Transfer mechanism for the conversion.

Available options:
PAYMENT_METHOD_UNSPECIFIED,
BLOCKCHAIN,
WIRE,
SPEI,
IMPS_FIRC,
BANK_TRANSFER,
SEPA
Example:

"BLOCKCHAIN"

source_amount
string

Amount of source currency (USDC or USDT) to convert.

destination_amount
string

Amount of destination fiat the recipient should receive.

source_total_max
string

Max all-in source debit (wallet budget). Bastion solves principal + fees.

fee_model
enum<string> | null

(OPTIONAL) Override fee model for this quote. Omit to use app config default. Fee model for a conversion.

Available options:
FEE_MODEL_UNSPECIFIED,
INCLUSIVE,
DEDUCTED,
ON_TOP
Example:

"INCLUSIVE"

developer_fee_percent
string

(OPTIONAL) Pin developer fee rate for this quote (e.g. first-remittance promo at 0.00).

developer_fee_amount
string

(OPTIONAL) Flat developer fee override. Mutually exclusive with developer_fee_percent.

Response

Success

Indicative pricing for an off-ramp conversion. Each quote is persisted and must be referenced by quote_id on submit. Not rate-locked at launch.

exchange_rate
string

FX rate applied.

limits
limits · object

Per-corridor transaction limits.

source
source · object

Source side of the quote.

destination
destination · object

Destination side of the quote.

fees_total
string

Total fees as a decimal string.

fees_total_currency
enum<string>

Currency that fees_total is denominated in.

Available options:
CONVERSION_CURRENCY_UNSPECIFIED,
USDC,
USD,
MXN,
INR,
KRW,
USDT,
GHS,
EUR
Example:

"USDC"

fees
Fee · object[]

Itemized fee breakdown.

fee_model
enum<string>
read-only

Fee model applied to this quote.

Available options:
FEE_MODEL_UNSPECIFIED,
INCLUSIVE,
DEDUCTED,
ON_TOP
Example:

"INCLUSIVE"

id
string
read-only

Bastion quote identifier. Submit as ConversionRequest.quote_id.

locked
boolean
read-only

When true, exchange_rate and fees_total are guaranteed until expires_at. When false, pricing is indicative only and upstream rates may drift between quote and submit (Walapay/Borderless quotes are typically stable ~5-10 minutes in practice, but Bastion does not enforce a rate lock at launch). Always false at launch. Off-ramp submit requires quote_id with matching source/destination/fee inputs regardless of locked; locked only controls rate/fee guarantee, not whether submit validates quote binding.

expires_at
string
read-only

Quote expiry (RFC 3339). Submit after this time is rejected with QUOTE_EXPIRED.