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 | Automatic Conversion Possible | Business / Individual |
---|---|---|---|
🇺🇸 United States Dollar (USD) | ✅ | ✅ | Business / Individual |
🇪🇺 Euro (EUR) | ✅ | ✅ | Business / Individual |
🇬🇧 British Pound (GBP) | ✅ | Business | |
🇦🇺 Australian Dollar (AUD) | ✅ | Business | |
🇳🇿 New Zealand Dollar (NZD) | ✅ | Business | |
🇨🇦 Canadian Dollar (CAD) | ✅ | Business | |
🇵🇱 Polish Zloty (PLN) | ✅ | Business | |
🇭🇰 Hong Kong Dollar (HKD) | ✅ | Business | |
🇸🇬 Singapore Dollar (SGD) | ✅ | Business | |
🇨🇳 Chinese Yuan (CNH) | ✅ | Business | |
🇲🇽 Mexican Peso (MXN) | ✅ | ✅ | Business |
🇹🇭 Thai Baht (THB) | ✅ | Business | |
🇮🇩 Indonesian Rupiah (IDR) | ✅ | Business | |
🇯🇵 Japanese Yen (JPY)* | |||
🇦🇪 United Arab Emirates Dirham (AED) | |||
Tether USD (USDT) | ✅ | Business | |
Circle USD (USDC) | ✅ | Business |
*Note that JPY accounts are coming live Q4 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
This method will create an account that receives and stores funds in USD. If you would like to receive funds in one currency and have it automatically converted into another currency, please take a look the Automatic Conversion section.
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",
"currencyCode": "USDC"
"digitalAssetWallet": {
"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).
Response
{
"id": "cmay6rlk400016649ioxg58yh",
"createdAt": "2025-05-21T16:57:28.804Z",
"updatedAt": "2025-05-21T16:57:28.804Z",
"name": null,
"type": "VIRTUAL_DIGITAL_ASSET_WALLET",
"isDefault": false,
"currencyCode": "USDC",
"status": "APPROVED",
"customerId": "62da5e79-514a-4373-b41c-68e3fcdb9953",
"isThirdParty": false,
...
}
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.
Sandbox
Note that in sandbox, liquidating from EUR is not possible. Please test using USD instead.
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"
}
}'
Updated 9 days ago