---
title: "POST /api/v1/quotes"
method: POST
path: "/api/v1/quotes"
tags: ["Quotes"]
---

# POST /api/v1/quotes

`POST /api/v1/quotes`

Create a new quote for a payment

## Headers

- `idempotency-key` string, uuid, required — Required for mutating calls. Use a V4 UUID. The server stores the first result for 24h and returns it on subsequent retries with the same key.

## Request body

- CreateQuoteRequest
  - `source` object, required — Source currency details
    - `currency` string, required — Source currency code — stablecoin for offramp (e.g. USDC), fiat for onramp (e.g. AUD)
    - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network — required for offramp (crypto source), omitted for onramp (fiat source)
    - `amount` string, required — Amount in major units as a string
  - `destination` object, required — Destination currency details
    - `currency` string, required — Destination currency code — fiat for offramp (e.g. USD), stablecoin for onramp (e.g. USDC)
    - `country` string — Country code (ISO 3166-1 alpha-2)
    - `network` string — For offramp: payment network (swift/bank). For onramp: blockchain network (ethereum/polygon)
    - `address` string — Destination wallet address — required for onramp
  - `metadata` Metadata
  - `preview` boolean — When true, returns a quote with pricing calculated but does not persist it. Use for showing estimated rates before committing to a transfer.

## Response `200`

Default Response

- QuoteApi
  - `quote_id` string, uuid, required — UUID
  - `source` object, required — Source currency and amount
    - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
    - `network` string — Blockchain network (required for USDC and USDT)
    - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
  - `destination` object, required — Destination currency and amount with payment network
    - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
    - `network` string, required — For offramp: payment network (swift/bank). For onramp: blockchain network (ethereum/polygon)
    - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
  - `fees` FeeBreakdownApi, required
    - `fx_fee` CurrencyAmountMajor, required
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
    - `integrator_fee` CurrencyAmountMajor, required
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
    - `platform_fee` CurrencyAmountMajor, required
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
    - `payment_method_fee` CurrencyAmountMajor, required
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
    - `network_fee` object — Blockchain network fee for crypto transactions
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` string — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
    - `total_fee` CurrencyAmountMajor, required
      - `currency` string, required — ISO 4217 alpha currency code or token symbol (e.g., "usd", "eur", "usdc", "stables")
      - `network` 'arbitrum' | 'avalanche' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'tron' — Blockchain network (required for USDC and USDT)
      - `amount` string, required — Amount in major units as a string (e.g., '100.50' for $100.50, or '100' for 100 USDC)
  - `exchange_rate` number, required — Exchange rate applied (1 source = X destination)
  - `expires_at` string, date-time, required — Quote expiration timestamp
  - `created_at` string, date-time, required
  - `status` 'active' | 'expired' | 'used' | 'cancelled' | 'preview', required — Quote status in display format
  - `metadata` Metadata

## Other responses

- `400` — Default Response
- `422` — Default Response

---

[API](https://skmtc.net/stables/apis/stables-api.md) · [All operations](https://skmtc.net/stables/apis/stables-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stables/stables-api/revisions/40ed0bdb89e1/schema)
