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

    Production Checklist

    Before going live, verify the following:
    Use the SDK unless you have a clear reason to integrate directly with the raw API.
    Store secret API keys only in trusted server-side environments.
    Never expose sk_live_* or sk_test_* keys in browser or mobile code.
    Store ephemeral account secrets securely until ramps complete and recovery is no longer needed.
    If using the SDK's default storeEphemeralKeys: true, run the SDK from a directory with restricted filesystem permissions, or set storeEphemeralKeys: false and implement encrypted local storage.
    Persist quoteId, rampId, user/session ID, partner order ID, and webhook IDs.
    Handle quote expiry by creating fresh quotes.
    Use webhooks for transaction lifecycle events and verify every webhook signature against GET /v1/public-key (RSA-PSS / SHA-256).
    Poll GET /v1/ramp/{id} for user-facing status screens and GET /v1/ramp/{id}/errors for support tooling.
    Test failed, delayed, and retried ramp states in sandbox.
    Define a support process for users who close the app before a ramp finishes.
    Rotate partner keys if they are exposed or no longer needed.
    For BRL flows: confirm your user onboarding path produces a Supabase-authenticated user before invoking the ramp.
    Direct API integrations should also verify that their signing implementation only signs the transactions returned by Vortex for the current ramp and phase. Never sign arbitrary transaction payloads without validating their destination, amount, asset, network, and signer.
    Modified at 2026-05-16 09:40:50
    Previous
    BRL / KYC notes
    Next
    Quotes And Pricing
    Built with