Wallets
Create and manage wallets, use the migrated wallet list and detail routes, scope wallets to the right account context, and support collections, transfers, reconciliation, and payouts.
Wallets
Create wallets to hold balances, scope funds by currency, and power receive, exchange, transfer, and payout flows across the Verto platform.
Baseline UnlockStandard operational wallets (for your own business) are unlocked 1-3 weeks after Stage 1 KYB completion. View Go-Live Timeline →
✅ Before you create a wallet
Complete these steps before you provision wallets:
- Authenticate and confirm you can send authorized API requests.
- Choose the wallet currency you need for the flow you are building.
- If you are creating the wallet for a downstream customer, create or identify the sub-account first.
- Use the
X-Sub-Account-Idheader whenever the wallet should belong to a specific sub-account.
🏗️ Core Wallet Architecture
Every wallet in Verto is more than just a balance; it is a gateway to domestic and international rail connectivity.
| Feature | Capability |
|---|---|
| Multi-Currency | Hold USD, GBP, EUR, NGN, KES, and 30+ more natively. |
| Real-Time Ledger | Atomic state updates for every credit/debit. |
| Linked Accounts | Automatically attach vIBANs or local account numbers for collection. |
| Stateless Querying | Instantly fetch balance, reserved, and pending snapshots. |
🚀 Atlas Multi-Tenancy Logic
How you interact with wallets depends on your integration pathway.
🏦 Atlas for Fintech
You manage Master Wallets for corporate treasury, global clearing, and wholesale FX liquidity.
- Header: Standard Bearer Authentication.
- Context: Operates on the primary tenant ledger.
🏢 Atlas for Platforms
You manage Managed Wallets on behalf of your end-users (sub-accounts).
- Header: Requires the
X-Sub-Account-Idrouting header. - Context: Operates on the siloed sub-tenant ledger.
Crucial Step: For platforms, create the sub-account first, then create wallets inside that customer context withX-Sub-Account-Id. See Login as a Sub-Account →.
🛠️ Lifecycle Management
1️⃣ Creating a Wallet
Provision a new ledger entity via a simple POST request.
curl -X POST https://api.sandbox.vertofx.com/wallets \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "X-Sub-Account-Id: sub_customer_123" \
-H "Content-Type: application/json" \
-d '{
"currency": "GBP",
"customerReferenceLabel": "Operating Wallet",
"type": "standard"
}'When this request succeeds, store the returned wallet ID because you will use it in receive, exchange, transfer, statement, and payout operations.
2️⃣ Viewing Details
Fetch real-time snapshots of available liquidity with the migrated wallet service routes.
| Method | Endpoint | Description |
|---|---|---|
GET | https://api-wallet-sandbox.vertofx.com/{companyId}/wallets | List all wallets for the authenticated company or scoped context. |
GET | https://api-wallet-sandbox.vertofx.com/{companyId}/wallets/{walletId} | Get specific wallet metadata and balance breakdown. |
Use the companyId returned by login and the walletId returned by wallet creation or listing. Do not use the legacy api-v3-sandbox.vertofx.com/profile/v2.2/wallets routes for new wallet list or wallet detail integrations.
Use wallet queries to power balance views, determine which wallet to debit, and verify that a collection or transfer was applied to the correct ledger.
🔄 Internal Transfers & Sweeping
Move capital instantly between wallets within the same parent or sub-account context. No SWIFT/SEPA latency—transfers are atomic.
- Primary Use Case: Sweeping multi-currency revenue into a single "Sweep Wallet" for mass FX conversion.
- Latency: < 100ms (Ledger-to-Ledger).
If you sweep sub-account funds, wait until the inbound receive event is confirmed before you move value out of the wallet.
🧩 Automated Reconciliation (Statement API)
For platforms managing high-velocity flows, manual reconciliation is impossible. The Statement API allows you to programmatically match your internal ledger against the Verto system.
Reconciliation Workflow
- Fetch Wallet ID: Identify the specific ledger you want to audit.
- Request Statement: Call
GET /v2/statements?walletId=...&format=json. - Listen for Webhook: (For large datasets) Verto emits the
wallet.statement.generatedwebhook when your historic CSV or JSON payload is ready for download. - Parse and Match: Ingest the JSON payload. Cross-reference the
clientReferencefield injected during the payout with the lines in the statement.
Troubleshooting
| Issue | What to check |
|---|---|
| Wallet creation fails | Confirm the currency is supported for your account and that you are using the correct auth context. |
| Wallet created in the wrong customer context | Check whether X-Sub-Account-Id was missing, incorrect, or intended for a different sub-account. |
| Balance looks wrong | Re-query the wallet, inspect recent receive or transfer webhooks, and compare against the statement export. |
| Funds cannot be moved | Confirm the wallet has sufficient balance and that the next operation is approved for your account and corridor. |
🎯 Next Steps
| Accounts Guide → Issue account details for wallet-based collections. | Exchange → Convert funds between wallets and currencies. |
Updated 23 days ago
