1. Documentation
Vortex
  • Documentation
    • Overview
    • Quick Start With The SDK
    • Authentication And Partner Keys
    • Ramp Lifecycle
    • Ephemeral Key Custody
    • Quotes And Pricing
    • Webhooks
    • Widget Integration
    • BRL / KYC notes
    • Sandbox
    • Production Checklist
    • AI Agent Integration
  • API Endpoints
    • Vortex Widget
      • Create widget session
    • Quotes
      • Create a new quote
      • Get existing quote
      • Create a quote for the best network
    • Ramp
      • Get ramp status
      • Get ramp error logs
      • Get ramp history for wallet address
      • Register new ramp process
      • Start ramp process
      • Update ramp process
    • Reference Data
      • Supported Countries
      • Supported Cryptocurrencies
      • Supported Fiat Currencies
      • Supported Payment Methods
    • Public Key
      • Public Key
    • Webhooks
      • Register Webhook
      • Delete Webhook
    • Account Management
      • Create user or retry KYC
      • Get user's KYC status
      • Get selfie liveness URL
      • Get KYC document upload URLs
      • Get user information
      • Get user's remaining transaction limits
      • Submit KYC level 1 data
      • Validate Pix key
    • Schemas
      • AccountMeta
      • AveniaDocumentType
      • AveniaKYCDataUploadRequest
      • AveniaKYCDataUploadResponse
      • BrlaAddress
      • BrlaErrorResponse
      • BrlaGetSelfieLivenessUrlResponse
      • BrlaValidatePixKeyResponse
      • CleanupPhase
      • CountryCode
      • CreateBestQuoteRequest
      • CreateQuoteRequest
      • CreateSubaccountRequest
      • CreateSubaccountResponse
      • DestinationType
      • DocumentUploadEntry
      • ErrorResponse
      • FiatToken
      • GetKycStatusResponse
      • GetRampErrorLogsResponse
      • GetRampHistoryResponse
      • GetRampHistoryTransaction
      • GetUserRemainingLimitResponse
      • GetUserResponse
      • GetWidgetUrlLocked
      • GetWidgetUrlRefresh
      • KYCDataUploadFileFiles
      • KYCDocType
      • KycLevel1Payload
      • KycLevel1Response
      • Networks
      • OnChainToken
      • PaymentData
      • PaymentMethod
      • PresignedTx
      • QuoteResponse
      • RampCurrency
      • RampDirection
      • RampErrorLog
      • RampPhase
      • RampProcess
      • RegisterRampRequest
      • SimpleStatus
      • StartKYC2Request
      • StartKYC2Response
      • StartRampRequest
      • TaxIdType
      • TriggerOfframpRequest
      • TriggerOfframpResponse
      • UnsignedTx
      • UpdateRampRequest
      • ValidatePixKeyResponse
  1. Documentation

Quotes And Pricing

Quotes are the entry point for every Vortex ramp. A quote pins down the route, input amount, expected output, fee breakdown, payment method, network, and expiry timestamp. Once you register a ramp against a quote, the quote is consumed; you cannot reuse it.

Endpoints#

POST /v1/quotes — create a quote for a known route and network.
POST /v1/quotes/best — let Vortex pick the best eligible route for an amount and currency pair.
GET /v1/quotes/{id} — fetch a previously created quote. Public; do not treat quote IDs as confidential, but also do not expose them unnecessarily.
POST /v1/quotes/best is not currently called by @vortexfi/sdk. Call it directly when you want Vortex to choose the route, then pass the returned quote into sdk.registerRamp(quote, …).

Creating A Quote#

{
  "rampType": "BUY",
  "from": "pix",
  "to": "polygon",
  "inputAmount": "150",
  "inputCurrency": "BRL",
  "outputCurrency": "USDC",
  "apiKey": "pk_live_..."
}
rampType is "BUY" (onramp, fiat → crypto) or "SELL" (offramp, crypto → fiat).
from / to are either a fiat rail ("pix", "sepa") or a network identifier ("polygon", "base", "ethereum", "arbitrum", "bsc", "avalanche", "assethub", "stellar", "moonbeam").
inputAmount is a decimal string in the smallest commonly used unit of inputCurrency (e.g. "150" for 150 BRL, "100" for 100 USDC). Do not pass raw chain base units.
apiKey (optional) is the partner public key pk_live_* / pk_test_*. Required for partner attribution and discount eligibility.

Quote Response#

{
  "id": "quote_...",
  "rampType": "BUY",
  "from": "pix",
  "to": "polygon",
  "inputAmount": "150",
  "inputCurrency": "BRL",
  "outputAmount": "27.41",
  "outputCurrency": "USDC",
  "fee": {
    "network": "0.42",
    "anchor": "1.50",
    "vortex": "0.75",
    "partner": "0.00",
    "total": "2.67",
    "currency": "BRL"
  },
  "expiresAt": "2025-05-18T12:35:00.000Z"
}
All monetary fields are decimal strings, not numbers; preserve them as strings end-to-end.
fee.currency is the currency in which the fee fields are denominated.
expiresAt is short (typically a few minutes). Register the ramp promptly or request a new quote.

Best-Quote Selection#

Same request body as POST /v1/quotes, except to (for buys) or from (for sells) may be omitted; Vortex evaluates eligible routes and returns a single quote optimized for the input amount. The response shape matches POST /v1/quotes.

Quote Expiry#

Quotes are immutable and short-lived. If the user takes too long to confirm, or if you delay before calling POST /v1/ramp/register, the quote expires and the register call rejects it. Catch the expiry error, create a fresh quote, and re-prompt the user before registering.

Partner Pricing#

Pass the partner public key as apiKey in the quote body to apply partner pricing and attribution. When a ramp later specifies a partnerId, the request must be authenticated with the matching partner secret key in X-API-Key. See Authentication And Partner Keys.

Modified at 2026-05-19 08:55:33
Previous
Ephemeral Key Custody
Next
Webhooks
Built with