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.


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 .