Create a quote
Creates a quote for a payment — how TBMC will settle it, and at what fee — before you create the order. The response's mode is instant or standard, and estimatedSettlement states when the payment is expected to settle.
An Instant Quote settles within minutes. A Standard Quote settles in the next netting window. You get a Standard Quote when the amount is too large for Instant settlement, when Instant settlement isn't available for the payment, or when your account has only the Standard Quote Fallback capability. Standard Quotes require the Standard Quote Fallback capability. Send mode: 'standard' to request one even when Instant settlement is available. Omit mode for automatic selection.
The payment is described the same way as on POST /payment — toChain, asset, amountUsd, and optionally toAddress. You can leave toAddress out to price a corridor without naming a recipient; the order created from the quote supplies the address.
The rate is honored until the quote expires. To create the order, pass the returned quoteId to POST /payment; the request must match the quoted terms. When TBMC can't service the payment, the response is a quote with serviceable: false, not a request error. Malformed requests, unsupported corridors, and limit breaches still return errors.
Give the quote a name to scope it to a flow: issuing a new quote with the same name expires the previous one and releases its reserved Instant capacity.
Pass subaccountId to quote under one of your subaccounts. An Instant order created from the quote uses that account and takes no subaccountId of its own.
Available to accounts with the Instant Payment or Standard Quote Fallback capability enabled.
- Type: numberamount
Usd greater than:0multiple of:0.0001requiredPositive USD amount at up to 4 decimal places (one pip = $0.0001).
- Type: stringassetrequired
- Type: stringto
Chain required - enummodeconst:standard
Request netted settlement explicitly. Omit to let the server choose the settlement mode. Requires NETTED_QUOTES.
values- standard
- Type: stringnamemin length:1max length:64
Names the quote's flow. Issuing a quote with a name expires the account's previous unconsumed quote with the same name and releases its reserved Instant capacity.
- Type: string Format: uuidsubaccount
Id Create this under one of your subaccounts instead of the authenticated account. Must be a direct child of the authenticated account.
- Type: stringto
Address
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.bettermoney.com/api/v1/quotes \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"toAddress": "",
"toChain": "",
"asset": "",
"amountUsd": 1,
"mode": "standard",
"name": "",
"subaccountId": ""
}'
{
"serviceable": true,
"quoteId": "string",
"name": "string",
"mode": "instant",
"toAddress": "string",
"toChain": "string",
"asset": "string",
"amountUsd": 1,
"feeBps": 0,
"feeUsd": 1,
"estimatedSettlement": {
"estimatedSettlementAt": "2026-09-08T20:57:50.192Z",
"estimatedDurationSeconds": 0,
"basis": "funded_now"
},
"status": "ACTIVE",
"createdAt": "2026-09-08T20:57:50.192Z",
"expiresAt": "2026-09-08T20:57:50.192Z"
}