1. Documentation
Vortex
  • Documentation
    • Overview
    • Quick Start With The SDK
    • Authentication And API Keys
    • Ramp Lifecycle
    • Ephemeral Key Custody
    • Quotes And Pricing
    • Webhooks
    • Widget Integration
    • Fiat Corridors
    • Sandbox
    • Production Checklist
    • AI Agent Integration
    • KYB Deep Link
  • 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
    • Authentication
      • List the user's API keys
      • Create a user-linked API key pair
      • Revoke an API key
      • Request an email OTP
      • Verify an email OTP
    • 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
      • ListUserApiKeysResponse
      • Networks
      • OnChainToken
      • PaymentData
      • PaymentMethod
      • PresignedTx
      • QuoteResponse
      • RampCurrency
      • RampDirection
      • RampErrorLog
      • RampPhase
      • RampProcess
      • RegisterRampRequest
      • SimpleStatus
      • StartKYC2Request
      • StartKYC2Response
      • StartRampRequest
      • TaxIdType
      • TriggerOfframpRequest
      • TriggerOfframpResponse
      • UnsignedTx
      • UpdateRampRequest
      • UserApiKeyErrorResponse
      • UserApiKeyPairResponse
      • ValidatePixKeyResponse
  1. Documentation

KYB Deep Link

The KYB deep link takes a business user straight into KYB (Know Your Business) verification from a single widget URL — no quote required. Use it when you want a partner's users to complete business verification ahead of, or independently from, any ramp.
It is a variant of the hosted widget: instead of POST /v1/session/create, you link the user directly to the widget with a KYB query parameter.

Flow#

?kyb / ?kybLocked  →  email + OTP sign-in  →  region selector  →  provider KYB  →  "KYB Completed" screen
Brazil routes to the local payment partner's KYB flow. The user enters the company name and CNPJ together on the company form, then completes the partner's hosted company and representative verification.
Mexico / Colombia / USA route to the local payment partner's business KYB form (the business customer type is preselected).
Europe is intentionally excluded — it is individual KYC only and requires a connected wallet, so it cannot complete a quote-less KYB deep link.
After verification the user lands on a KYB Completed screen. Continue returns them to the standard quote form with the session still authenticated and the deep-link parameters stripped from the URL.

URL Parameters#

Append one of these to the widget URL (e.g. https://www.vortexfinance.co/widget?kyb):
URLBehavior
?kybKYB mode; the region selector is shown.
?kyb=BR | MX | CO | USSelector shown with the region preselected. The user can still change it.
?kybLocked=BR | MX | CO | USSelector skipped, region pinned, back navigation into the selector disabled.
?kybLocked=BR (specifically)Additionally defaults the widget locale to pt-BR. An explicit locale in the path still wins (e.g. /en/widget?kybLocked=BR stays English).
unknown or empty region code (e.g. ?kybLocked=ZZ, ?kybLocked)Degrades gracefully to the open selector; the region is not treated as locked.
Query keys are case-sensitive: use kyb and kybLocked exactly. Region codes are case-insensitive.

Attribution#

externalSessionId, partnerId, and apiKey are forwarded in KYB mode exactly as in the quoted widget flow, so partner and session attribution work the same way:
https://www.vortexfinance.co/widget?kybLocked=BR&externalSessionId=my-session-id&partnerId=my-partner&apiKey=pk_live_...
Pass your partner public key (pk_live_* / pk_test_*) as apiKey for attribution. externalSessionId is your own opaque identifier and is echoed back in webhook payloads.

Embedding#

The KYB deep link is a normal widget URL, so the same embed options apply:

Underlying KYB Onboarding#

For Brazil, the deep link drives POST /v1/brla/createSubaccount without a quoteId — the subaccount is created from the company name and CNPJ collected on the form, and the optional quote association is simply omitted. See Fiat Corridors for how BRL onboarding relates to the ramp flow.

Modified at 2026-07-10 09:54:20
Previous
AI Agent Integration
Next
Create widget session
Built with