1. Webhooks
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 KYC document upload URLs
    • Get user information
    • Create user or retry KYC
    • Submit KYC level 1 data
    • Get selfie liveness URL
    • Get user's KYC status
    • Validate Pix key
  • Webhooks
    • Overview
    • Webhooks
    • Register Webhook
      POST
    • Delete Webhook
      DELETE
  • 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
  1. Webhooks

Webhooks

Webhooks let partner systems receive transaction lifecycle events without continuously polling the ramp status endpoint.
Register a webhook against either a quote or a widget session:
{
  "url": "https://partner.example.com/vortex/webhook",
  "quoteId": "quote_...",
  "events": ["TRANSACTION_CREATED", "STATUS_CHANGE"]
}
The request body must include exactly one of quoteId or sessionId. Use sessionId when subscribing to events from a widget-hosted ramp instead of a partner-created quote.
Webhook URLs must use HTTPS. Store the returned webhook ID so that the endpoint can be deleted later.
Delete a webhook:

Verification#

Verify every webhook before trusting it. Fetch the current public key:
The endpoint returns an RSA-PSS 2048-bit public key in PEM format. Vortex signs every webhook payload with the corresponding private key. Verify the signature on each delivery using RSA-PSS with SHA-256 and the key from this endpoint. Reject requests that fail signature verification, contain malformed payloads, or do not match the expected event structure.
Polling GET /v1/ramp/{id} is still useful for user-facing status screens, but webhooks are preferable for reconciliation, back-office automation, and support workflows.
Modified at 2026-05-16 09:52:20
Previous
Overview
Next
Register Webhook
Built with