Virtual Accounts

Available Currencies

Virtual accounts are created and managed by Walapay on behalf of your Customer. You can collect and hold money in the following fiat currencies: USD, EUR, GBP, AUD, NZD, CAD, PLN, HKD, SGD, CNH, MXN, THB, IDR, JPY, AED. All but JPY and AED accounts are dedicated and held in the name of the customer.

Currency

Named

Collect & Hold

🇺🇸

United States Dollar (USD)

🇪🇺

Euro (EUR)

🇬🇧

British Pound (GBP)

🇦🇺

Australian Dollar (AUD)

🇳🇿

New Zealand Dollar (NZD)

🇨🇦

Canadian Dollar (CAD)

🇵🇱

Polish Zloty (PLN)

🇭🇰

Hong Kong Dollar (HKD)

🇸🇬

Singapore Dollar (SGD)

🇨🇳

Chinese Yuan (CNH)

🇲🇽

Mexican Peso (MXN)

🇹🇭

Thai Baht (THB)

🇮🇩

Indonesian Rupiah (IDR)

🇯🇵

Japanese Yen (JPY)

*

🇦🇪

United Arab Emirates Dirham (AED)

Tether USD (USDT)

Circle USD (USDC)

*Note that JPY accounts are coming live Q2 2025.

📘

Team Configuration

Before being able to create Virtual Accounts, your team must first provide the list of desired currencies to the Walapay team to properly configure your account.

Virtual Bank Account

Request

curl --request POST \
  --url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
  --data '{
    "type": "VIRTUAL_BANK_ACCOUNT",
    "currencyCode": "USD"
  }'

Unlike External Accounts, you should not provide any information regarding the bank details (i.e., address, name).

Response

{
    "id": "cm40psd0g0001xnyhdy6nmzmj",
    "createdAt": "2024-11-28T02:47:33.088Z",
    "updatedAt": "2024-11-28T02:47:33.088Z",
    "type": "VIRTUAL_BANK_ACCOUNT",
    "currencyCode": "USD",
    "status": "PENDING"
}

Once the account has been provisioned, the status will be updated to APPROVED and account details (e.g., bank name, bank address, account number) will be automatically added to the record and you will be able to query them through the GET endpoint (or receive them directly through the Accounts webhook).

Virtual Digital Asset Wallet

Request

curl --request POST \
  --url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
  --data '{
    "type": "VIRTUAL_DIGITAL_ASSET_WALLET",
    "chain": "POLYGON"
  }'

Digital Asset wallets created in sandbox will automatically be deployed on the test network of the selected chain (ex: Polygon Amoy for Polygon). Since these wallets automatically work with USDC or USDT, no currency is specified.

Response

{
    "id": "cm40psd0g0001xnyhdy6nmzmj",
    "createdAt": "2024-11-28T02:47:33.088Z",
    "updatedAt": "2024-11-28T02:47:33.088Z",
    "type": "VIRTUAL_DIGITAL_ASSET_WALLET",
    "chain": "POLYGON",
    "address": "0x123456789987654rfghjuytgh",
    "status": "APPROVED"
}

Automatic Conversion

Virtual accounts can be set up to automatically convert the receiving currency into another currency and send it to another account (either Virtual or External). For example, you can set up a Virtual Bank Account to receive USD and have it automatically converted to USDC, which are sent to your External Digital Asset Wallet.

Request

curl --request POST \
  --url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
  --data '{
    "type": "VIRTUAL_BANK_ACCOUNT",
    "currencyCode": "USD",
    "liquidationInformation": {
        "currencyCode": "USDC",
        "chain": "ETHEREUM",
        "address": "0x7525342b0d9364aa9205ab7af7c016644abcd9f6"
    }
  }'