Skip to main content

Virtual accounts

A virtual account is a bank account issued for one of your customers. They pay into it from their own bank, and you are notified and settled in USD. Accounts are dedicated (permanent) or dynamic (one exact amount, then it expires).

The flow

Statuses

statusReason is { "code", "message" }. Codes: declined (the account was declined), verification_failed (identity or business verification was not approved). All events are in Webhooks.

Payments

Each payment becomes a transaction. It is credited straight away, or held for review when it needs a decision: an underpayment or overpayment on a dynamic account, a second payment to a paid dynamic account, a payment above the review limit, a payment from a sender whose name does not match the customer where that is switched on, or a payment the bank is holding. See Webhooks.

Currencies

What each currency needs: Virtual account requirements. Customer fields: Customers. Identification by country: Identification requirements.

Before you start

  • Set a webhook URL and secret in your dashboard. Creating an account without a secret returns 400 with webhook_secret_required.
  • Customers belong to your account, and are created and changed through the API.
  • You can also request an account from a customer’s page in the dashboard.