Skip to main content
Virtual Accounts (VAs) are dedicated fiat bank accounts assigned to each customer for receiving payments. Funds deposited to a VA are automatically linked to that customer’s deposits in the Coinut system.

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

VA Lifecycle

A VA starts in 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

string
required
The customer ID returned from POST /customer/create
string
required
The fiat currency for the requested virtual account. Current OpenAPI enum: AUD, EUR, GBP, SGD, USD.
object
For AUD only. Pre-registers one allowed sender bank account during VA creation. Uses bsbNumber, accountNumber, and optional accountName.
string
PayID address for AUD accounts (e.g., john.doe@example.com)
string
BSB code for AUD accounts (e.g., 062000)
string
Account number for AUD accounts
string
IBAN for EUR and GBP accounts
string
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.

Whitelist Format

When a whitelist is active, deposits from non-whitelisted accounts may be rejected or held for manual review.

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_RECEIVED webhook for incoming funds — don’t rely on polling alone.
  • Handle ACTION_REQUIRED deposits — manual follow-up may be needed for some incoming transfers.