---
title: "Create a Quote"
method: POST
path: "/v2/quote"
---

# Create a Quote

`POST /v2/quote`

Create a locked exchange rate quote. The quote is valid for the specified duration and can be used once to create a transfer.

## Request body

- CreateQuoteRequestDto
  - `amount` string, required — The quote amount (denominated in source currency).
  - `customerId` string, required — The customer's ID.
  - `source` object, required — The source currency and network for the quote.
    - `currency` union, required — The source currency. For off-ramp: a stablecoin (e.g., "usdc"). For on-ramp: a fiat currency (e.g., "brl").
      - 'usdc' | 'usdt' | 'eurc'
      - 'usd' | 'eur' | 'brl'
    - `network` union, required — The source network. For off-ramp: a blockchain (e.g., "polygon"). For on-ramp: a payment rail (e.g., "pix").
      - 'sol' | 'fogo' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'sui' | 'noble' | 'sei' | 'tron' | 'starknet' | 'aptos' | 'hyperliquid'
      - 'wire' | 'ach' | 'achPush' | 'achPull' | 'achSameDay' | 'swift' | 'sepa' | 'pix'
  - `destination` object, required — The destination currency and network for the quote.
    - `currency` union, required — The destination currency. For off-ramp: a fiat currency (e.g., "brl"). For on-ramp: a stablecoin (e.g., "usdc").
      - 'usdc' | 'usdt' | 'eurc'
      - 'usd' | 'eur' | 'brl'
    - `network` union, required — The destination network. For off-ramp: a payment rail (e.g., "pix"). For on-ramp: a blockchain (e.g., "polygon").
      - 'sol' | 'fogo' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'sui' | 'noble' | 'sei' | 'tron' | 'starknet' | 'aptos' | 'hyperliquid'
      - 'wire' | 'ach' | 'achPush' | 'achPull' | 'achSameDay' | 'swift' | 'sepa' | 'pix'
  - `quoteDurationSeconds` 30 | 60 | 300 — The duration in seconds for which the quote rate is locked. Defaults to 60.
  - `integratorBpsFeeRate` string — The integrator BPS fee rate. The BPS rate should be an integer represented as a string.

## Response `201`

- CreateQuoteResponseDto
  - `id` string, required — A unique identifier for the quote.
  - `type` 'on_ramp' | 'off_ramp', required — The transfer type this quote is for.
  - `customerId` string, required — The customer ID.
  - `fees` object, required
    - `integratorFee` object, required — The integrator fee portion.
      - `fixedAmount` string, required — The fixed amount of the fee.
      - `bpsRate` string, required — The BPS rate of the fee.
      - `bpsAmount` string, required — The dollar amount of the BPS-based fee component (sourceAmount * bpsRate / 10000).
      - `totalAmount` string, required — The total amount of the fee applied to the source amount.
      - `currency` union, required — The currency of the fee.
        - 'usdc' | 'usdt' | 'eurc'
        - 'usd' | 'eur' | 'brl'
    - `platformFee` object, required — The platform fee portion.
      - `fixedAmount` string, required — The fixed amount of the fee.
      - `bpsRate` string, required — The BPS rate of the fee.
      - `bpsAmount` string, required — The dollar amount of the BPS-based fee component (sourceAmount * bpsRate / 10000).
      - `totalAmount` string, required — The total amount of the fee applied to the source amount.
      - `currency` union, required — The currency of the fee.
        - 'usdc' | 'usdt' | 'eurc'
        - 'usd' | 'eur' | 'brl'
  - `source` object, required
    - `currency` union, required — The source currency.
      - 'usdc' | 'usdt' | 'eurc'
      - 'usd' | 'eur' | 'brl'
    - `network` union, required — The source network.
      - 'sol' | 'fogo' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'sui' | 'noble' | 'sei' | 'tron' | 'starknet' | 'aptos' | 'hyperliquid' — A blockchain network.
      - 'wire' | 'ach' | 'achPush' | 'achPull' | 'achSameDay' | 'swift' | 'sepa' | 'pix'
    - `amount` string, required — The source amount.
  - `destination` object, required
    - `currency` union, required — The destination currency.
      - 'usdc' | 'usdt' | 'eurc'
      - 'usd' | 'eur' | 'brl'
    - `network` union, required — The destination network.
      - 'sol' | 'fogo' | 'ethereum' | 'arbitrum' | 'polygon' | 'base' | 'avalanche' | 'sui' | 'noble' | 'sei' | 'tron' | 'starknet' | 'aptos' | 'hyperliquid' — A blockchain network.
      - 'wire' | 'ach' | 'achPush' | 'achPull' | 'achSameDay' | 'swift' | 'sepa' | 'pix'
    - `amount` string, required — The destination amount after exchange.
    - `exchangeRate` string, required — The exchange rate applied to convert source to destination.
  - `expiresAt` string, date-time, required — The datetime when this quote expires.
  - `created` string, date-time, required — The datetime the quote was created.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Entity - Validation Error

---

[API](https://skmtc.net/spherepay/apis/docs-spherepay-co.md) · [All operations](https://skmtc.net/spherepay/apis/docs-spherepay-co/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spherepay/docs-spherepay-co/versions/4f3f5484aed3/schema)
