Additional steps workflow
Configure, complete, and review Source of Funds / Source of Wealth and Selfie checks.
This walkthrough follows one self-hosted wallet verification from creation through customer completion and VASP review. The example requests both supported additional steps:
- Source of Funds / Source of Wealth collects documents and always requires manual review.
- Selfie collects guided images and a short video for backend liveness analysis. A passing analysis can verify the step automatically when automatic approval is enabled.
Wallet ownership and additional steps have separate statuses. A verification is operationally complete only when the wallet ownership result and every step required by your policy have reached an acceptable state.
For request schemas, evidence limits, status values, and API examples, see the Additional Steps integration guide.
1. Create the verification
Open Wallet Verifications
In the Client Dashboard, open Wallet Verifications and select Create. The list shows existing requests and their current combined operational status, which helps reviewers identify pending and action-required cases.
You can also create the same request through the Wallet Verification API.
Configure wallet ownership and additional steps
Enter the wallet address, blockchain, asset, allowed ownership methods, and expiry. Under Additional steps, select Source of Funds / Wealth, Selfie, or both.
When Selfie is selected, choose whether Automatically approve the selfie should be enabled:
- Enabled: a passing backend liveness result changes the Selfie step to
VERIFIEDwithout a VASP reviewer. - Disabled: the liveness result and evidence are still available, but a reviewer decides whether to verify or decline the step.
Source of Funds / Source of Wealth submissions always require manual review.
Share or embed the customer journey
After creation, copy the generated URL and share it with the customer. The URL remains valid until the request expiry shown in the verification record.
Instead of sending a link manually, you can integrate the same journey into an existing customer flow:
- Embed the web component described in the Widget Integration guide.
- Redirect to the hosted standalone flow described in the Widget Integration guide.
- Build a custom experience with the Wallet Verification API.
2. The customer verifies wallet ownership
Start the verification
The customer opens the hosted page or embedded widget and chooses one of the ownership methods allowed when the request was created. Additional steps appear only after wallet ownership has been completed.
Complete the selected ownership method
In this example, the customer uses Signature Proof and approves the signing request in their wallet. Other allowed methods can be used without changing the additional-step sequence.
After CryptoSwift records the ownership result, the widget opens the first pending additional step.
3. The customer completes additional steps
Upload Source of Funds / Source of Wealth documents
The customer uploads the documents requested by the VASP. The combined SoW/SoF step accepts up to 10 supported documents, with each file up to 50 MB. Submitting them changes this step to ACTION_REQUIRED so a reviewer can inspect the evidence.
Start the guided selfie
The Selfie screen explains what will be captured before the camera starts. The customer should use good lighting and keep their face visible inside the positioning guide.
CryptoSwift generates a random sequence of three distinct actions for each request. Actions can include looking left or right, looking up or down, and blinking. During capture, the widget:
- positions the customer's face in the guide
- displays each action and progress on the camera feed
- captures an image for each requested action
- captures a final selfie and a short video without audio
- submits the evidence automatically
The customer does not choose the actions, and an integration must not replace the sequence returned by the API.
Wait for liveness analysis
After all requested actions are captured, the widget submits the images, video, and capture metadata. CryptoSwift analyses whether the evidence follows the expected sequence and passes the liveness checks.
When automatic selfie approval is enabled, the widget waits for the backend result. A passing result verifies the Selfie step automatically. If analysis fails, returns an error, or automatic approval is disabled, the evidence remains available for VASP review.
Finish the customer journey
When no more customer input is required, the widget displays the final outcome. This example still requires manual Source of Funds / Source of Wealth review, so the customer is told that the evidence was received and is under review.
If Selfie is the only additional step and automatic approval is enabled, a passing liveness result completes the verification without manual VASP action and the customer sees the standard success screen.
4. Review the result
Inspect verification and evidence details
Open the verification in the Client Dashboard. The verification checks show wallet ownership and each additional step separately. In this example:
- Wallet ownership is
VERIFIED. - Source of Funds / Source of Wealth is
ACTION_REQUIRED. - Selfie is
VERIFIEDbecause liveness passed with automatic approval enabled.
The additional-step details include document links, the liveness status and analysis details, labelled action images, the final selfie, the liveness video, and related metadata. The same verification and analysis data can be retrieved through the API.
Review Source of Funds / Source of Wealth
Select Review, open the submitted documents, record the review reasoning, and either verify or decline the step. The evidence should be assessed according to your Source of Funds / Source of Wealth and transaction-monitoring policies.
If Selfie requires manual review, use the same review flow to inspect the liveness result, images, and video before making a decision.
Confirm the completed state
After the reviewer accepts the remaining SoW/SoF step, the dashboard shows wallet ownership, Source of Funds / Source of Wealth, and Selfie as verified. Review reasoning and submitted evidence remain on the verification record for operational and audit use.
Webhook and API handling
When a webhook URL is configured under CryptoSwift settings, wallet-verification notifications are emitted as customer submissions and reviewer decisions update the verification. Your backend should:
- receive and validate the webhook notification
- use the verification ID to retrieve the latest record
- evaluate the top-level wallet
status - evaluate every required item in
additionalSteps - store the outcome with the related customer, wallet, transaction, or compliance case
Design webhook processing to be idempotent and keep API polling available for recovery and for customer interfaces waiting on Selfie analysis. See Webhooks, webhook signatures, and testing webhook notifications.
Next steps
- Additional Steps integration guide
- Self-hosted wallet verification
- Wallet Verification Widget
- Wallet Verification API