---
title: "POST /v2/quote/exact-fiat"
method: POST
path: "/v2/quote/exact-fiat"
tags: ["Quotes V2"]
---

# POST /v2/quote/exact-fiat

`POST /v2/quote/exact-fiat`

Quote maximum token output for an exact fiat input amount.

## Request body

- object — Request for quoting maximum token output for an exact fiat input
  - `paymentPlatforms` string[], required — Payment platforms
  - `fiatCurrency` string, required — Fiat currency
  - `user` string, required — User submitting transactions
  - `recipient` string, required — Final recipient address
  - `destinationChainId` integer, required — Destination chain ID
  - `destinationToken` string, required — Destination token address
  - `referrer` string — Referrer
  - `referralFees` object[] — Caller-provided referral fees that will be sent at intent time. Curator uses the sum to gross up signalIntentAmount, and uses the entry whose recipient matches serviceFee.recipient as the donor for maker-referrer carve.
    - `recipient` string, required — Referral fee recipient address
    - `feeBps` integer, required — Referral fee in basis points
  - `useMultihop` boolean — Use multihop from a base asset
  - `escrowAddresses` string[], required — List of escrow contract addresses to search (e.g., ['0xabc...', '0xdef...']).
  - `supportBusinessAccounts` boolean — Whether quotes may include business accounts (default: false)
  - `minDepositSuccessRateBps` integer — Minimum historical deposit success rate in basis points (0–10000). Defaults to 0 when omitted
  - `intentGatingService` string — Optional intent gating service address. When provided, only quotes from that service are returned.
  - `includePrivateOrderbooks` boolean — Include whitelist-gated private orderbook deposits (default: false)
  - `maxTakerConversionRate` string — Maximum acceptable taker conversion rate, scaled by 1e18. Candidates quoting above this are excluded from both exact and nearby searches. Omit for no ceiling.
  - `quotePreference` 'EXCLUSIVE_SAR' | 'PREFER_SAR' | 'PREFER_BUYER_TEE' | 'EXCLUSIVE_BUYER_TEE' — Preferred quote pool and fallback behavior
  - `excludedPayToValues` string[] — Payee values to exclude from quote selection
  - `exactFiatAmount` string, required — Exact fiat amount user wants to send
  - `includeNearbyQuotes` boolean — Include nearby quote suggestions when no exact match
  - `nearbySearchRange` number — Max percentage deviation to search (1-100%). Unlimited if omitted
  - `nearbyQuotesCount` number — Max quotes per direction (default: 3, max: 10)

## Response `200`

Success

- object
  - `success` boolean, required
  - `message` string, required
  - `responseObject` object
    - `fiat` object, required
      - `currencyCode` string, required — Hashed fiat currency code
      - `currencyName` string, required — Fiat currency name
      - `currencySymbol` string, required — Fiat currency symbol
      - `countryCode` string, required — Fiat currency country code
    - `token` object, required
      - `token` string, required — Token address
      - `decimals` number, required — Token amount decimals
      - `name` string, required — Token name
      - `symbol` string, required — Token symbol
      - `chainId` number, required — Chain ID
    - `quotes` object[], required
      - `fiatAmount` string, required — Fiat amount
      - `fiatAmountFormatted` string, required — Fiat amount formatted
      - `tokenAmount` string, required — Net token output amount after curator-enforced ZKP2P protocol fees and any caller-provided referral fees.
      - `tokenAmountFormatted` string, required — Net token output amount formatted
      - `signalIntentAmount` string — Gross token amount to pass to signalIntent for this quote. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. Equal to `intent.amount`.
      - `signalIntentAmountFormatted` string — signalIntent amount formatted
      - `zkp2pFeeAmount` string — Curator-enforced ZKP2P protocol fee amount deducted from signalIntentAmount.
      - `zkp2pFeeAmountFormatted` string — Curator-enforced ZKP2P protocol fee amount formatted
      - `serviceFeeBps` integer — Actual curator service fee rate used for this quote, in basis points.
      - `takerReferralFeeBps` integer — Total caller-provided referral fee rate used for this quote, in basis points.
      - `takerReferralFeeAmount` string — Total caller-provided referral fee amount deducted from signalIntentAmount.
      - `takerReferralFeeAmountFormatted` string — Total caller-provided referral fee amount formatted
      - `managerFeeAmount` string — Informational deposit manager fee amount in token units already baked into takerConversionRate (NOT deducted from signalIntentAmount).
      - `managerFeeAmountFormatted` string — Informational manager fee amount formatted
      - `totalFeeAmount` string — Combined display total of protocol fee + caller referral fees + rate-implicit manager fee.
      - `totalFeeAmountFormatted` string — Combined display total formatted
      - `paymentMethod` string, required — Payment method
      - `payeeAddress` string, required
      - `conversionRate` string, required — Conversion rate
      - `sellerAutomatedReleaseAvailable` boolean, required — Whether seller automated release is currently available for this quote
      - `depositSuccessRateBps` integer, required — Deposit success rate in basis points (0–10000)
      - `depositIntentStats` object, required — Per-deposit historical intent counters
        - `totalIntents` integer, required
        - `signaledIntents` integer, required
        - `fulfilledIntents` integer, required
        - `prunedIntents` integer, required
      - `intent` object, required
        - `depositId` integer, required — Deposit identifier
        - `processorName` string, required
        - `amount` string, required — Token amount to pass to signalIntent. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. On exact-token endpoints this is the smallest gross amount `s` such that `s - floor(s * serviceFee / P) >= requestedToken` (i.e. the contract's floor-truncated fee deduction yields at least the requested net amount; the closed-form `ceil(requestedToken * P / (P - serviceFee))` is a safe upper bound but the actual returned value walks that ceiling down to the true minimum). On exact-fiat endpoints this is `floor(fiat * P / takerConversionRate)`.
        - `toAddress` string, required
        - `payeeDetails` string, required
        - `processorIntentData` object, required
        - `fiatCurrencyCode` string, required
        - `chainId` string, required
        - `escrowAddress` string, required
        - `managerFee` string — Manager fee in preciseUnits (1e18 = 100%, 1e16 = 1%) when the quote deposit is delegated
        - `managerFeeFormatted` string — Human-readable manager fee percentage
        - `whitelistHookAddress` string, nullable — Whitelist hook contract address, if configured
        - `preIntentHookAddress` string, nullable — Compatibility alias for whitelistHookAddress
      - `maker` object — Maker (payee) details when available
        - `id` number, required
        - `processorName` string, required
        - `offchainId` string, required
        - `telegramUsername` string, nullable
        - `hashedOnchainId` string, required
        - `isBusiness` boolean
        - `revoked` boolean
        - `metadata` object, nullable
        - `createdAt` string, date-time, required
    - `fees` object, required
      - `zkp2pFee` string, required — Service fee in preciseUnits (1e18 = 100%, 1e16 = 1%). '0' when disabled.
      - `zkp2pFeeFormatted` string, required — Service fee as human-readable percentage (e.g. '1%')
      - `swapFee` string, required — Swap fee
      - `swapFeeFormatted` string, required — Swap fee formatted
    - `nearbySuggestions` object — Nearby quote suggestions when no exact match found
      - `below` object[], required — Quotes for amounts below requested (sorted by amount DESC, closest first)
        - `suggestedTokenAmount` string — Suggested token amount to request (raw, for exact-token mode)
        - `suggestedTokenAmountFormatted` string — Human-readable suggested token amount
        - `tokenPercentDifference` string — Token amount difference from requested, e.g., '-5.2%' or '+3.8%'
        - `suggestedFiatAmount` string — Suggested fiat amount to request (raw, for exact-fiat mode)
        - `suggestedFiatAmountFormatted` string — Human-readable suggested fiat amount
        - `fiatPercentDifference` string — Fiat amount difference from requested, e.g., '-5.2%' or '+3.8%'
        - `quote` object, required — Full quote details at the suggested amount
          - `fiatAmount` string, required — Fiat amount
          - `fiatAmountFormatted` string, required — Fiat amount formatted
          - `tokenAmount` string, required — Net token output amount after curator-enforced ZKP2P protocol fees and any caller-provided referral fees.
          - `tokenAmountFormatted` string, required — Net token output amount formatted
          - `signalIntentAmount` string — Gross token amount to pass to signalIntent for this quote. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. Equal to `intent.amount`.
          - `signalIntentAmountFormatted` string — signalIntent amount formatted
          - `zkp2pFeeAmount` string — Curator-enforced ZKP2P protocol fee amount deducted from signalIntentAmount.
          - `zkp2pFeeAmountFormatted` string — Curator-enforced ZKP2P protocol fee amount formatted
          - `serviceFeeBps` integer — Actual curator service fee rate used for this quote, in basis points.
          - `takerReferralFeeBps` integer — Total caller-provided referral fee rate used for this quote, in basis points.
          - `takerReferralFeeAmount` string — Total caller-provided referral fee amount deducted from signalIntentAmount.
          - `takerReferralFeeAmountFormatted` string — Total caller-provided referral fee amount formatted
          - `managerFeeAmount` string — Informational deposit manager fee amount in token units already baked into takerConversionRate (NOT deducted from signalIntentAmount).
          - `managerFeeAmountFormatted` string — Informational manager fee amount formatted
          - `totalFeeAmount` string — Combined display total of protocol fee + caller referral fees + rate-implicit manager fee.
          - `totalFeeAmountFormatted` string — Combined display total formatted
          - `paymentMethod` string, required — Payment method
          - `payeeAddress` string, required
          - `conversionRate` string, required — Conversion rate
          - `sellerAutomatedReleaseAvailable` boolean, required — Whether seller automated release is currently available for this quote
          - `depositSuccessRateBps` integer, required — Deposit success rate in basis points (0–10000)
          - `depositIntentStats` object, required — Per-deposit historical intent counters
            - `totalIntents` integer, required
            - `signaledIntents` integer, required
            - `fulfilledIntents` integer, required
            - `prunedIntents` integer, required
          - `intent` object, required
            - `depositId` integer, required — Deposit identifier
            - `processorName` string, required
            - `amount` string, required — Token amount to pass to signalIntent. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. On exact-token endpoints this is the smallest gross amount `s` such that `s - floor(s * serviceFee / P) >= requestedToken` (i.e. the contract's floor-truncated fee deduction yields at least the requested net amount; the closed-form `ceil(requestedToken * P / (P - serviceFee))` is a safe upper bound but the actual returned value walks that ceiling down to the true minimum). On exact-fiat endpoints this is `floor(fiat * P / takerConversionRate)`.
            - `toAddress` string, required
            - `payeeDetails` string, required
            - `processorIntentData` object, required
            - `fiatCurrencyCode` string, required
            - `chainId` string, required
            - `escrowAddress` string, required
            - `managerFee` string — Manager fee in preciseUnits (1e18 = 100%, 1e16 = 1%) when the quote deposit is delegated
            - `managerFeeFormatted` string — Human-readable manager fee percentage
            - `whitelistHookAddress` string, nullable — Whitelist hook contract address, if configured
            - `preIntentHookAddress` string, nullable — Compatibility alias for whitelistHookAddress
          - `maker` object — Maker (payee) details when available
            - `id` number, required
            - `processorName` string, required
            - `offchainId` string, required
            - `telegramUsername` string, nullable
            - `hashedOnchainId` string, required
            - `isBusiness` boolean
            - `revoked` boolean
            - `metadata` object, nullable
            - `createdAt` string, date-time, required
      - `above` object[], required — Quotes for amounts above requested (sorted by amount ASC, closest first)
        - `suggestedTokenAmount` string — Suggested token amount to request (raw, for exact-token mode)
        - `suggestedTokenAmountFormatted` string — Human-readable suggested token amount
        - `tokenPercentDifference` string — Token amount difference from requested, e.g., '-5.2%' or '+3.8%'
        - `suggestedFiatAmount` string — Suggested fiat amount to request (raw, for exact-fiat mode)
        - `suggestedFiatAmountFormatted` string — Human-readable suggested fiat amount
        - `fiatPercentDifference` string — Fiat amount difference from requested, e.g., '-5.2%' or '+3.8%'
        - `quote` object, required — Full quote details at the suggested amount
          - `fiatAmount` string, required — Fiat amount
          - `fiatAmountFormatted` string, required — Fiat amount formatted
          - `tokenAmount` string, required — Net token output amount after curator-enforced ZKP2P protocol fees and any caller-provided referral fees.
          - `tokenAmountFormatted` string, required — Net token output amount formatted
          - `signalIntentAmount` string — Gross token amount to pass to signalIntent for this quote. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. Equal to `intent.amount`.
          - `signalIntentAmountFormatted` string — signalIntent amount formatted
          - `zkp2pFeeAmount` string — Curator-enforced ZKP2P protocol fee amount deducted from signalIntentAmount.
          - `zkp2pFeeAmountFormatted` string — Curator-enforced ZKP2P protocol fee amount formatted
          - `serviceFeeBps` integer — Actual curator service fee rate used for this quote, in basis points.
          - `takerReferralFeeBps` integer — Total caller-provided referral fee rate used for this quote, in basis points.
          - `takerReferralFeeAmount` string — Total caller-provided referral fee amount deducted from signalIntentAmount.
          - `takerReferralFeeAmountFormatted` string — Total caller-provided referral fee amount formatted
          - `managerFeeAmount` string — Informational deposit manager fee amount in token units already baked into takerConversionRate (NOT deducted from signalIntentAmount).
          - `managerFeeAmountFormatted` string — Informational manager fee amount formatted
          - `totalFeeAmount` string — Combined display total of protocol fee + caller referral fees + rate-implicit manager fee.
          - `totalFeeAmountFormatted` string — Combined display total formatted
          - `paymentMethod` string, required — Payment method
          - `payeeAddress` string, required
          - `conversionRate` string, required — Conversion rate
          - `sellerAutomatedReleaseAvailable` boolean, required — Whether seller automated release is currently available for this quote
          - `depositSuccessRateBps` integer, required — Deposit success rate in basis points (0–10000)
          - `depositIntentStats` object, required — Per-deposit historical intent counters
            - `totalIntents` integer, required
            - `signaledIntents` integer, required
            - `fulfilledIntents` integer, required
            - `prunedIntents` integer, required
          - `intent` object, required
            - `depositId` integer, required — Deposit identifier
            - `processorName` string, required
            - `amount` string, required — Token amount to pass to signalIntent. Net of manager fee (takerConversionRate is manager-fee-inclusive) and pre protocol-fee deduction. On exact-token endpoints this is the smallest gross amount `s` such that `s - floor(s * serviceFee / P) >= requestedToken` (i.e. the contract's floor-truncated fee deduction yields at least the requested net amount; the closed-form `ceil(requestedToken * P / (P - serviceFee))` is a safe upper bound but the actual returned value walks that ceiling down to the true minimum). On exact-fiat endpoints this is `floor(fiat * P / takerConversionRate)`.
            - `toAddress` string, required
            - `payeeDetails` string, required
            - `processorIntentData` object, required
            - `fiatCurrencyCode` string, required
            - `chainId` string, required
            - `escrowAddress` string, required
            - `managerFee` string — Manager fee in preciseUnits (1e18 = 100%, 1e16 = 1%) when the quote deposit is delegated
            - `managerFeeFormatted` string — Human-readable manager fee percentage
            - `whitelistHookAddress` string, nullable — Whitelist hook contract address, if configured
            - `preIntentHookAddress` string, nullable — Compatibility alias for whitelistHookAddress
          - `maker` object — Maker (payee) details when available
            - `id` number, required
            - `processorName` string, required
            - `offchainId` string, required
            - `telegramUsername` string, nullable
            - `hashedOnchainId` string, required
            - `isBusiness` boolean
            - `revoked` boolean
            - `metadata` object, nullable
            - `createdAt` string, date-time, required
    - `quoteExpiresAt` string, required — ISO 8601 timestamp after which the quote should be re-fetched
  - `statusCode` number, required
  - `errorCode` string

---

[API](https://skmtc.dev/peer/apis/swagger-api.md) · [All operations](https://skmtc.dev/peer/apis/swagger-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/peer/swagger-api/revisions/d5fcf4abb61a/schema)
