Recieving Funds

Atlas for Platform — Receiving Funds

This guide covers generating collection account details for your sub-account wallets and monitoring incoming payments via webhook.

📘

Authenticate as a sub-account

Before performing any actions scoped to a sub-account, you must authenticate using the Sub-Account Login endpoint. Use the returned JWT token to authorize all subsequent sub-account requests.

Wallets form the foundation of how funds are held and moved within your Verto Atlas account. Each wallet represents a dedicated balance in a single currency and can be used to collect, hold, or transfer funds.

You can create wallets for multiple currencies, manage them via the dashboard or API, and view all associated balances in one consolidated view.

Key Capabilities

Hold and Manage Balances – Securely store client or operational funds under each wallet.

Internal Transfers – Instantly move money between wallets within the same parent account.

Transaction Statements – Retrieve full transaction histories for reconciliation or reporting.

Step 1 — Create a wallet

Open dedicated wallets for your sub acocunts in supported currencies (e.g. USD, GBP, EUR, NGN, KES, etc.) using the Create Wallet endpoint.

FieldDescriptionMandatory
currencyISO 4217 currency code (e.g. USD, KES, NGN)Yes
typeWallet type — use standard for everyday transactionsYes
customerReferenceLabelOptional custom name to identify the walletNo

The response returns a unique walletId used in the next step.

💡

We recommend always creating wallets explicitly via API to ensure a consistent implementation regardless of which currencies have default wallets.


Step 2 — Generate collection account details

Call the Get Funding Methods endpoint with autoCreate=true to generate collection account details for the wallet.

GET /:companyId/wallets/:walletId/fundingMethods?autoCreate=true
⚠️

autoCreate must be set to true to generate new account details. Without it the endpoint will only return existing details.

Verto supports two types of collection account details depending on the market:

Unique virtual accounts

Dedicated account details tied exclusively to the sub-account wallet. Any funds sent to these details are automatically credited — no payment reference required.

    {
      "id": "3535",
      "accountType": "LOCAL",
      "fundsType": "SEGERATED",
      "accountName": "Test 2",
      "accountNumber": "96566308",
      "bankCode": "608382",
      "bankName": "BankingCircle",
      "bankAddress": "AMERIKA PLADS 38, KOEBENHAVN, 2900, Denmark",
      "smartWalletRef": null,
      "virtualAccountId": "3535",
      "notes": [
        "Receive into this local account via CHAPS, BACS & Faster Payments.",
        "Incoming payments are typically received in minutes but can take up a few hours during peak times."
      ]
    },
{
      "id": "3534",
      "accountType": "GLOBAL",
      "fundsType": "SEGERATED",
      "accountName": "Test 1",
      "accountNumber": "GB93SAPY60838296566308",
      "bankCode": "SAPYGB2L",
      "bankName": "BankingCircle",
      "bankAddress": "AMERIKA PLADS 38, KOEBENHAVN, 2900, Denmark",
      "smartWalletRef": null,
      "virtualAccountId": "3534",
      "notes": [
        "Receive into this International account via International Transfers (SWIFT).",
        "Incoming payments are typically received in 1-5 working days.",
        "You can recieve payments from the countries on <a target=\"_blank\" href=\"https://support.vertofx.com/en/articles/6156317-what-countries-can-i-receive-payments-from\">this list</a>"
      ]
    }

Pooled accounts with SmartWallet ID

For markets where unique virtual accounts are not available. The sender must include the smartWalletRef in the payment reference of every inbound transfer. Verto handles reconciliation automatically.

{
  "id": 4562,
  "accountType": "local",
  "fundsType": "pooled",
  "accountName": "Verto Pooled Account",
  "accountNumber": "12345678",
  "bankCode": "608382",
  "smartWalletRef": "SW-00123456"
}
⚠️

For pooled accounts, your client's sender must include the smartWalletRef

in the payment reference on every transfer. Missing references will prevent automatic allocation and require manual reconciliation. Communicate this requirement clearly to your clients.

Account types

TypePayment networkDescription
LocalLocal payment railsFunds received via the local payment network for that market. Typically faster and lower cost.
GlobalSWIFTFunds received via international SWIFT transfer. Typical settlement 1–5 business days.
TypeHow it worksReference required
SEGREGATEDDedicated to a single wallet — auto-credits related wallet on receiptNo
POOLEDShared account— account name typically in Verto's name, and allocation driven by SmartWallet ID in referenceYes — must include smartWalletRef

Step 3 — Monitor incoming payments

We recommend subscribing to webhooks to receive real-time notifications for incoming payments rather than polling. See the Webhooks guide for setup instructions.

You can then send email or app notifications or to your customers using these when recieved, for real time payment information.

Inbound payments pass through two statuses:

StateDescription
requestedPayment received into the collection account. Pending transaction screening — not yet credited to the wallet.
completedPayment cleared screening and credited to the sub-account wallet.
archivedPayment returned and transaction cancelled.

Requested webhook

{
  "payload": {
    "id": 38313,
    "amount": "1234.00",
    "reference": "TO-07112024-050",
    "state": "requested",
    "currency": "GBP",
    "type": "iban_to_wallet",
    "walletId": 25832,
    "createdDate": "2024-11-07T11:26:55.000Z",
    "completedDate": null,
    "companyId": "4109"
  }
}

Completed webhook

{
  "payload": {
    "id": 38313,
    "amount": "1234.00",
    "reference": "TO-07112024-050",
    "state": "completed",
    "currency": "GBP",
    "type": "iban_to_wallet",
    "account": {
      "accountNumber": "123456789",
      "beneficiaryCompanyName": "Acme Logistics Ltd",
      "beneficiaryEntityType": "company",
      "currency": "GBP",
      "status": "approved"
    },
    "walletId": 25832,
    "createdDate": "2024-11-07T11:26:55.000Z",
    "completedDate": "2024-11-07T11:27:01.820Z",
    "companyId": "4109"
  }
}
💡

Use companyId and walletId in the webhook payload to identify which

sub-account and wallet received the funds.


Wallet-to-wallet transfers

Funds can be transferred between wallets within the same sub-account using the Transfer to Another Wallet endpoint. This is useful for internal fund allocation or currency segregation within the sub-account.

⚠️

PARTNER_REFERRED accounts cannot sweep funds to the parent account.

All funds must remain within the sub-account and be managed at that level.