Paying workers via Virtual Accounts

Overview

This guide details the steps needed to pay worker wallets via dedicated unique virtual accounts.


flowchart TD
    %% ───── PLATFORM & WALLETS ─────
    subgraph PLATFORM
        direction TB
        P[Platform onboards woekrs]

        subgraph USER_WALLETS
            direction LR
            W1[User Wallet #1<br /><small>USD virtual acct</small>]
            W2[User Wallet #2<br /><small>USD virtual acct</small>]
            Wn[User Wallet …]
        end
    end

    %% ───── EXTERNAL FUNDING ─────
    ACH[(External Bank)]

    %% ───── FUNDING PATHS ─────
    ACH -- "ACH credit" --> W1
    ACH -- "ACH credit" --> W2
    ACH -- "ACH credit" --> Wn

Pre-Requisites

Please work with your account manager to make sure your platform has access enabled for these unique USD virtual accounts.

Wallet Onboarding

Once a worker wallet is created, the user has to go through an onboarding flow to get complete access to their account. The onboarding flow consists of:

  • Completing KYC (biometrics plus government ID checks)
  • Completing any tax forms depending on the location of the user (e.g W8BEN, W8BENE, W9)
  • Completing the financial disclosures
📘

In some cases additional information about the user or their work history may be required to complete their onboarding.

You can use webhooks or rely on polling to get the latest status of a user's onboarding.

Once a user onboarding is completed and their compliance checks approved, unique dedicated account funding details are assigned to each wallet that can be used for funding.


Virtual Account Creation

After a user completes onboarding and passes all compliance checks, you can provision and assign unique funding details to their wallet. To proceed, verify that both identity and address KYC have been approved. You can confirm this by either:

  • Checking the user's KYC status directly, or
  • Listening for the user.kyc.updated event to be notified when compliance details are approved.

Steps to Create and Manage Virtual Accounts

  1. Create a Virtual Account: Use the Create Virtual Account endpoint to generate a dedicated funding account for the user's wallet.

  2. Retrieve Virtual Account Details: Access the Retrieve Virtual Account endpoint to fetch the account's funding information.

  3. Monitor Account Status: Implement webhooks to receive real-time updates on the status of requested virtual accounts.

Once a virtual account is active, it can be used to fund the user's wallet. For details on event types and webhook payloads, see the Virtual Accounts Event Reference.


Supported Countries

Restricted

Virtual accounts services will be facilitated for these jurisdictions, with additional monitoring and controls.

CountryISO alpha-3US ACH/FedWire
AlbaniaALBYes
AngolaAGOYes
BarbadosBRBYes
Bosnia-HerzegovinaBIHYes
BotswanaBWAYes
Burkina FasoBFAYes
CameroonCMRYes
Central African RepublicCAFYes
Côte d’IvoireCIVYes
CroatiaHRVYes
EritreaERIYes
EthiopiaETHYes
JamaicaJAMYes
Lao People’s Democratic RepublicLAOYes
MonacoMCOYes
NamibiaNAMYes
NigeriaNGAYes
SenegalSENYes
South AfricaZAFYes
TanzaniaTZAYes
Trinidad & TobagoTTOYes
TurkeyTURYes
UgandaUGAYes
UkraineUKRYes
VanuatuVUTYes
VietnamVNMYes

Not High Risk

Virtual accounts services will be facilitated for these jurisdictions, with regular monitoring and controls.

CountryISO alpha-3US ACH/FedWire
ArubaABWYes
AnguillaAIAYes
Åland IslandsALAYes
AndorraANDYes
Antigua and BarbudaATGYes
ArgentinaARGYes
ArmeniaARMYes
AustraliaAUSYes
AustriaAUTYes
BahamasBHSYes
BahrainBHRYes
BelgiumBELYes
BelizeBLZYes
BeninBENYes
BermudaBMUYes
BoliviaBOLYes
BrazilBRAYes
Brunei DarussalamBRNYes
BulgariaBGRYes
CambodiaKHMYes
CanadaCANYes
Cayman IslandsCYMYes
ChileCHLYes
ColombiaCOLYes
Costa RicaCRIYes
CuraçaoCUWYes
CyprusCYPYes
CzechiaCZEYes
DenmarkDNKYes
DominicaDMAYes
Dominican RepublicDOMYes
EcuadorECUYes
EgyptEGYYes
El SalvadorSLVYes
EstoniaESTYes
EswatiniSWZYes
FijiFJIYes
FinlandFINYes
FranceFRAYes
GeorgiaGEOYes
GermanyDEUYes
GhanaGHAYes
GibraltarGIBYes
GreeceGRCYes
GreenlandGRLYes
GuatemalaGTMYes
GuyanaGUYYes
Hong KongHKGYes
HungaryHUNYes
IcelandISLYes
IndiaINDYes
IndonesiaIDNYes
IrelandIRLYes
Isle of ManIMNYes
IsraelISRYes
ItalyITAYes
JapanJPNYes
JordanJORYes
KazakhstanKAZYes
Korea (Republic of)KORYes
KuwaitKWTYes
KyrgyzstanKGZYes
LatviaLVAYes
LiechtensteinLIEYes
LithuaniaLTUYes
LuxembourgLUXYes
MacauMACYes
MadagascarMDGYes
MalawiMWIYes
MalaysiaMYSYes
MaldivesMDVYes
MaltaMLTYes
Marshall IslandsMHLYes
MartiniqueMTQYes
MauritaniaMRTYes
MauritiusMUSYes
MayotteMYTYes
MexicoMEXYes
MoldovaMDAYes
MongoliaMNGYes
MontenegroMNEYes
MontserratMSRYes
NetherlandsNLDYes
New CaledoniaNCLYes
New ZealandNZLYes
Norfolk IslandNFKYes
Northern Mariana IslandsMNPYes
NauruNRUYes
NiueNIUYes
NorwayNORYes
OmanOMNYes
PanamaPANYes
Papua New GuineaPNGYes
ParaguayPRYYes
PeruPERYes
PhilippinesPHLYes
PitcairnPCNYes
PolandPOLYes
PortugalPRTYes
Puerto RicoPRIYes
RéunionREUYes
RomaniaROUYes
RwandaRWAYes
Saudi ArabiaSAUYes
SingaporeSGPYes
South Georgia and the South Sandwich IslandsSGSYes
Saint Helena, Ascension and Tristan da CunhaSHNYes
Svalbard and Jan MayenSJMYes
Solomon IslandsSLBYes
Sierra LeoneSLEYes
San MarinoSMRYes
Saint Pierre and MiquelonSPMYes
SerbiaSRBYes
Sao Tome and PrincipeSTPYes
SurinameSURYes
SlovakiaSVKYes
SloveniaSVNYes
SwedenSWEYes
SeychellesSYCYes
Turks and Caicos IslandsTCAYes
ChadTCDYes
TogoTGOYes
ThailandTHAYes
TajikistanTJKYes
TokelauTKLYes
TurkmenistanTKMYes
Timor-LesteTLSYes
TongaTONYes
TunisiaTUNYes
TuvaluTUVYes
Taiwan, Province of ChinaTWNYes
United States Minor Outlying IslandsUMIYes
UruguayURYYes
United States of AmericaUSAYes
UzbekistanUZBYes
Holy SeeVATYes
Saint Vincent and the GrenadinesVCTYes
Virgin Islands (British)VGBYes
Virgin Islands (U.S.)VIRYes
Wallis and FutunaWLFYes
SamoaWSMYes
ZambiaZMBYes

Next Steps

With these steps, you should have successfully created and paid workers into their wallets. Check out the full API documentation for the rest of the functionality Full API Reference .