Sending funds from sub-accounts
Sub-accounts — 5. Payouts
This guide covers making payouts from a sub-account to an external beneficiary. The flow mirrors the standard Global Clearing payout guides, with two key differences specific to sub-accounts.
Authenticate as the sub-account using theSub-Account Login endpoint before proceeding. Use the returned JWT token in all requests.
Key differences from the standard payout flow
| Global Clearing | Sub-account payouts | |
|---|---|---|
| Authentication | Parent account JWT | Sub-account JWT — login with sub-account credentials |
| Sender object | Required for downstream/POBO flows | Not required — sender identity is inherited from the sub-account's KYB data |
| FX | Fund payout currency before payout | Same — see note below on FX options |
FX before payout
Before initiating a payout, ensure the sub-account wallet holds a balance in the payout currency. There are two ways to achieve this:
- FX within the sub-account — authenticate as the sub-account and follow the standard FX guide to convert funds directly within the sub-account wallet.
- Sweep to parent, FX at parent level, sweep back — transfer funds to the parent wallet using the Transfer to Another Wallet endpoint, perform FX at the parent level, then sweep the converted funds back to the sub-account before initiating the payout. This is useful if you have PnL/revenue that needs to remain at the parent account level.
Payout flow
The payout flow is identical to the standard Global Clearing two-step flow. Follow the steps below, authenticated as the sub-account throughout.
Step 1 — Validate the beneficiary account (optional, NGN only)
Optionally validate the destination account using the Get Account Name endpoint before creating the beneficiary.
Step 2 — Create a beneficiary
Create a beneficiary using the Create Beneficiary endpoint. Only beneficiaries with a status of approved can receive payments.
See the Bank codes & market requirements guide for country-specific requirements.
Step 3 — Check wallet balance
Confirm the sub-account wallet has sufficient funds using the Get Wallet endpoint before initiating the payout.
Step 4 — Request a payout
Submit the payout using the Create Payment Request endpoint.
{
"beneficiaryId": 278,
"purposeId": 12,
"amount": 100,
"walletId": 1,
"clientReference": "your-reference",
"paymentId": "a7600e0e-a973-4d26-b15c-89de5836e900"
}
Sender object not requiredUnlike the Global Clearing flow, you do not need to include a
senderobject. Sender identity is inherited automatically from the sub-account's KYB data.
Step 5 — Track payment status
| State | Description |
|---|---|
requested | Payment created and queued for processing. Sub-account wallet has been debited. |
completed | Funds have been sent out successfully. Note this does not confirm the beneficiary has received the funds. |
archived | Payment cancelled or failed. Funds returned to the sub-account wallet. |
refunded | Payment refunded. Funds returned to the sub-account wallet. |
Compliance holdsOn rare occasions payments may be held for compliance review. Verto will reach out with an RFI if this occurs. You can check payment status at any time using the
paymentIdvia the Get Payment endpoint.
