What is a Virtual Account?
A Virtual Account provides a unique set of banking details for each customer:- Customer sends fiat to their dedicated VA
- Coinut detects the incoming transfer
- Funds are automatically associated with the correct customer
- No manual reconciliation needed
Supported Currencies
| Currency | Account Format | Key Fields | Geographic Focus |
|---|---|---|---|
| AUD | BSB + Account Number | payId, bsb, accountNumber | Australia |
| EUR | IBAN | iban, swift | Europe |
| GBP | IBAN / Sort Code | iban, swift | United Kingdom |
| SGD / USD | Corridor-specific | Confirm exact receiving fields with Coinut before shipping UX | Enabled in the current create schema but not fully described in narrative guides |
VA Lifecycle
PENDING status after creation. Once compliance review completes, it transitions to VERIFIED. Deposits can typically be received while PENDING, but may be held until verification completes.
Creating VAs
The customer ID returned from
POST /customer/createThe fiat currency for the requested virtual account. Current OpenAPI enum:
AUD, EUR, GBP, SGD, USD.For AUD only. Pre-registers one allowed sender bank account during VA creation. Uses
bsbNumber, accountNumber, and optional accountName.PayID address for AUD accounts (e.g.,
john.doe@example.com)BSB code for AUD accounts (e.g.,
062000)Account number for AUD accounts
IBAN for EUR and GBP accounts
SWIFT/BIC code for EUR and GBP accounts
AUD Virtual Accounts & PayID
PayID is an email-address-style identifier for instant bank transfers in Australia. It replaces the need to share BSB and account numbers.- Format:
john.doe@example.com - Speed: Near-instant (via NPP/Osko)
- Availability: 24/7, including weekends
Display Format
EUR/GBP Virtual Accounts
For European and UK customers, VAs use IBAN format:EUR (SEPA)
- Supports SEPA transfers
- Settlement typically 1 business day
- Available for EU/EEA customers
GBP (Faster Payments / BACS)
- Supports Faster Payments (near-instant, up to GBP 1M)
- Supports BACS (3 business days)
- Settlement typically 1 business day
Whitelist Management (AUD Only)
AUD virtual accounts support a whitelist that restricts which bank accounts can send funds. This adds an extra layer of compliance control.| Endpoint | Method | Description |
|---|---|---|
/virtual-account/create-aud-whitelist | POST | Create a new whitelist for an AUD VA |
/virtual-account/update-aud-whitelist | POST | Update an existing whitelist |
/virtual-account/get-aud-whitelist | GET | Retrieve the current whitelist |
Whitelist Format
Best Practices
- One VA per customer per currency. Don’t create multiple VAs for the same customer+currency pair.
- Store VA details in your database alongside the customer record for quick lookups.
- Display banking details clearly with copy-to-clipboard buttons in your UI.
- Generate QR codes for PayID to simplify mobile banking.
- Monitor
DEPOSIT_RECEIVEDwebhook for incoming funds — don’t rely on polling alone. - Handle
ACTION_REQUIREDdeposits — manual follow-up may be needed for some incoming transfers.

