User Onboarding

Overview of the user onboarding flow from wallet creation to KYC completion.

Before You Start

Read the following guides before proceeding:

GuideWhy
Getting StartedPlatform overview and setup
Api BasicsRequired headers and request configuration
AuthenticationHow to obtain access tokens
Wallet DeploymentSmart Wallet deployment
WebhooksReceive status notifications

Overview

User onboarding in Wirex BaaS follows a three-step process:

  1. Create Smart Wallet — Deploy an Account Abstraction wallet on-chain
  2. Register User — Create a user record in Wirex via API
  3. Complete KYC — Verify user identity through one of the available flows

Step 1: Create Smart Wallet

Deploy an Account Abstraction wallet for the user and register it in the Wirex Accounts contract.

Requirements:

  • Deploy Smart Wallet with required modules (executor + policy)
  • Call createUserAccountWithWallet on the Accounts contract
  • Wait for /v2/webhooks/wallets webhook confirmation

See Wallet Deployment for implementation details.


Step 2: Register User

After wallet confirmation, create a user record in Wirex by calling the registration API.

Endpoint: POST /api/v2/user

The request payload varies based on your chosen onboarding flow (see Step 3).

Important: The wallet_address parameter must be the user's EOA address (the signer), not the Smart Wallet address.


Step 3: Complete KYC

Choose an onboarding flow based on your integration requirements:

FlowUse CaseGuide
Wirex Hosted KYCYou collect basic data; user completes KYC in Wirex-hosted flowWirex Hosted KYC
Sharing Data Through SumSubUser already verified via SumSub; share verification with WirexSharing Data Through SumSub
RelianceYou handle full KYC; provide complete verified data to WirexReliance

Flow Comparison

AspectWirex HostedSumSub SharedReliance
KYC responsibilityWirexYou (via SumSub)You
Data required at registrationEmail + countrySharing token + emailFull profile + address + documents
User interactionHosted KYC widget or SumSub SDKNone (already verified)None (already verified)
Setup complexityLowMedium (3-sided agreement)High (requires Wirex approval)

Webhooks

Wirex sends webhook notifications as onboarding progresses.

Wallet Confirmation

After on-chain registration completes:

Endpoint: POST {your_webhook_base_url}/v2/webhooks/wallets

See Wallet Deployment - Webhooks for payload details.

User Status Updates

After API registration and during KYC verification:

Endpoint: POST {your_webhook_base_url}/webhook/users

Note: This is a legacy webhook format that will be replaced with a v2 model in a future release.

See Webhooks for payload details and verification status values.


Verification Statuses

StatusDescription
NoneNo verification submitted
AppliedUser has unfinished steps in SumSub SDK, or incomplete data was provided during Shared/Reliance flows
PendingVerification checks are being executed on Wirex side
InReviewVerification checks are being executed on Wirex side
ApprovedVerification approved — user is ready to use all features
CanceledVerification was rejected — contact Wirex support to resolve
RejectedVerification was rejected — contact Wirex support to resolve

What Happens Next

Available immediately after wallet deployment:

  • Withdraw crypto to external wallets

Available after KYC approval:

  • Issue virtual or physical cards
  • Make card payments
  • Transfer funds via SEPA or ACH