Skip to content

Virtual Accounts

Issue dedicated bank account numbers (GBP, EUR) to your customers powered by Verto. Incoming transfers to these accounts are automatically credited to your platform balance.

Auth required: JWT + KYC approved
Permission required: virtual_account:manage
Base path: /api/v1/virtual-accounts


Create Virtual Account

http
POST /api/v1/virtual-accounts/create
Authorization: Bearer <token>
Content-Type: application/json
json
{
  "currency": "GBP",
  "customer_reference": "customer_12345",
  "customer_name": "Jane Doe"
}

Response

json
{
  "id": "va_abc123",
  "account_number": "12345678",
  "sort_code": "04-00-75",
  "bank_name": "Verto",
  "currency": "GBP",
  "status": "active",
  "customer_reference": "customer_12345"
}

List Virtual Accounts

http
GET /api/v1/virtual-accounts
Authorization: Bearer <token>

Response

json
{
  "accounts": [
    {
      "id": "va_abc123",
      "account_number": "12345678",
      "sort_code": "04-00-75",
      "currency": "GBP",
      "status": "active",
      "customer_reference": "customer_12345",
      "created_at": "2025-06-01T10:00:00Z"
    }
  ],
  "total": 1
}

How Incoming Payments Work

  1. Customer shares their virtual account number with their bank
  2. Bank transfer arrives at Verto
  3. Verto fires a webhook to /webhooks/verto
  4. The platform credits the corresponding business balance
  5. You receive a push notification (if registered)

Rach Payments API