Virtual Accounts
Virtual accounts let your customers receive bank transfers into their 1Money balance. Each account gives you receiving details to share with a payer.
A business might use separate virtual accounts for subscriptions and wholesale orders. Each has its own receiving details, and both pay into the same balance.
Receive your first payment
Start by listing the customer's virtual accounts. They may already have a default account with the bank details they need. If they want another account for a separate payment purpose, create an additional USD account and give it a useful nickname.
Creation can take time. If the response is 202 with status: PENDING, save the returned virtual_account_id and check again later. You will also receive a virtual_account.active webhook when the account becomes active.
Once the account is active, retrieve its details and choose a payment network from networks. Show the payer that network's bank and beneficiary details, account identifier, and any required memo.
Follow deposit webhooks for the payment. deposit.completed confirms that the money has been credited. Use its transaction_id to retrieve the transaction. When the receiving virtual account can be identified, receiving_virtual_account contains its ID and nickname; otherwise, the field is null.
Keep the accounts useful to your customer
You can rename an additional account as its purpose changes, deactivate it for a temporary pause, or delete it when it is no longer needed. Deletion cannot be undone. Stop sharing the receiving details before deactivating or deleting an account, since transfers sent to those details may still arrive and need manual review.
Additional accounts have a monthly fee based on the customer's pricing schedule. The API returns the current price in fee. See Virtual Accounts for status meanings, monthly billing, and payment reconciliation.
If your integration uses the deprecated Fiat Deposit Accounts endpoint, follow Migrate to Virtual Accounts.
Updated 4 days ago
