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 /paymenttoChain, 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.

Body
required
application/json
  • amountUsd
    Type: number
    greater than:  
    0
    multiple of:  
    0.0001
    required

    Positive USD amount at up to 4 decimal places (one pip = $0.0001).

  • asset
    Type: string
    required
  • toChain
    Type: string
    required
  • mode
    enum
    const:  
    standard

    Request netted settlement explicitly. Omit to let the server choose the settlement mode. Requires NETTED_QUOTES.

    values
    • standard
  • name
    Type: string
    min length:  
    1
    max 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.

  • subaccountId
    Type: string Format: uuid

    Create this under one of your subaccounts instead of the authenticated account. Must be a direct child of the authenticated account.

  • toAddress
    Type: string
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api/v1/quotes
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"
}