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 the

Sub-Account Login endpoint before proceeding. Use the returned JWT token in all requests.


Key differences from the standard payout flow

Global ClearingSub-account payouts
AuthenticationParent account JWTSub-account JWT — login with sub-account credentials
Sender objectRequired for downstream/POBO flowsNot required — sender identity is inherited from the sub-account's KYB data
FXFund payout currency before payoutSame — 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 required

Unlike the Global Clearing flow, you do not need to include a sender object. Sender identity is inherited automatically from the sub-account's KYB data.

Step 5 — Track payment status

StateDescription
requestedPayment created and queued for processing. Sub-account wallet has been debited.
completedFunds have been sent out successfully. Note this does not confirm the beneficiary has received the funds.
archivedPayment cancelled or failed. Funds returned to the sub-account wallet.
refundedPayment refunded. Funds returned to the sub-account wallet.
📘

Compliance holds

On 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 paymentId via the Get Payment endpoint.