---
title: "POST /v2/quote/best-by-platform-exact-token"
method: POST
path: "/v2/quote/best-by-platform-exact-token"
tags: ["Quotes V2"]
---

# POST /v2/quote/best-by-platform-exact-token

`POST /v2/quote/best-by-platform-exact-token`

Best quote per payment platform for an exact token amount.

## Request body

- object — Request for best quote per payment platform with an exact token amount
  - `fiatCurrency` string, required — Fiat currency code (e.g., 'USD', 'EUR')
  - `user` string, required — User's Ethereum address (excluded from quotes)
  - `recipient` string, required — Recipient Ethereum address
  - `destinationChainId` integer, required — Destination chain ID (e.g., 8453 for Base)
  - `destinationToken` string, required — Token address (e.g., USDC on Base)
  - `referrer` string — Optional referrer address
  - `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
  - `escrowAddresses` string[], required — List of escrow contract addresses to search
  - `minDepositSuccessRateBps` integer — Minimum maker success rate in basis points (0-10000)
  - `supportBusinessAccounts` boolean — Include business accounts in quotes (default: false)
  - `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)
  - `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
  - `exactTokenAmount` string, required — Exact token amount in base units (must be greater than zero)

## 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
    - `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
    - `platformQuotes` object[], required — Best quote per payment platform
      - `platform` string, required — Payment platform name
      - `supported` boolean, required — Whether this platform supports the requested currency
      - `available` boolean, required — Whether a quote is available for this platform
      - `bestQuote` object — Best quote for this platform, if available
        - `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)
