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-accountBefore 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.
| Field | Description | Mandatory |
|---|---|---|
currency | ISO 4217 currency code (e.g. USD, KES, NGN) | Yes |
type | Wallet type — use standard for everyday transactions | Yes |
customerReferenceLabel | Optional custom name to identify the wallet | No |
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
autoCreatemust be set totrueto 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 thesmartWalletRefin 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
| Type | Payment network | Description |
|---|---|---|
| Local | Local payment rails | Funds received via the local payment network for that market. Typically faster and lower cost. |
| Global | SWIFT | Funds received via international SWIFT transfer. Typical settlement 1–5 business days. |
| Type | How it works | Reference required |
|---|---|---|
| SEGREGATED | Dedicated to a single wallet — auto-credits related wallet on receipt | No |
| POOLED | Shared account— account name typically in Verto's name, and allocation driven by SmartWallet ID in reference | Yes — 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:
| State | Description |
|---|---|
requested | Payment received into the collection account. Pending transaction screening — not yet credited to the wallet. |
completed | Payment cleared screening and credited to the sub-account wallet. |
archived | Payment 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"
}
}
UsecompanyIdandwalletIdin the webhook payload to identify whichsub-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.
