approved and is payable straight away. Store the pd_... against your payee and reuse it.
This pays out of your own balance. To give each payee a balance of their own, see Giving each payee their own balance.
Paying out of your own balance
What the destination call gives you
The first call returns the destination with the bank’s own answer filled in:account_name is the name the bank holds on that account, not a value you sent. Show it to the payee to confirm before paying.
Bank codes come from GET /v1/reference/banks?country=NG. POST /v1/misc/bank-accounts/resolve runs the same lookup on its own, if you want the account name in your form before submitting.
Payouts are asynchronous. pending becomes completed or failed, and you learn which from the payout.paid and payout.failed webhooks. Do not tell anyone they have been paid on the 201.
What a destination is
A destination is where money leaves to. It belongs to a balance and holds one currency.- The account is verified once, at creation. Payouts after that reference the
pd_...id. - A payee can have several. One is
is_default; name any of them per payout. - A schedule can pay to the default one, on a balance fed by your own collections. See Payout schedules.
Pay the same person again
Reuse thepd_...:
GET /v1/payouts/destinations lists them with the full account number, bank name and holder name, so a settings screen can render from the API.
To change a bank account, create a new destination and use its id. PATCH restates a destination in full, so changing an account number sends it back for review. Only name and is_default are safe to patch.
Giving each payee their own balance
A payee can have a recipient account: their own balance, their own destinations, and their own payout history. You fund it with a transfer, and pay out of it by acting as that account.
A recipient account only receives money. To let a payee collect payments directly, it needs the
merchant configuration too, which is a longer onboarding. See Choose your integration.
1
Create the recipient account
configuration and the account can never be paid out to. Store the acct_....2
Submit the holder and their destination
The name activates
transfers and the destination activates payouts, so one call takes the account live.account_name is required here, and ignored on POST /v1/payouts/destinations where the bank’s answer always wins.3
Fund their balance
A recipient account holds no payment-accepting capability, so it never collects money itself. You move money into it with a transfer. A transfer debits whoever is authenticated, so send no Transfers move one currency and do not convert, so send the currency the payee’s destination is registered in. The transfer posts against both balances at once.
X-Account-Id to fund a payee from your own balance.4
Pay out of their balance
X-Account-Id makes any call above act as that payee:Hand this to your coding agent
Copy this into Claude Code, Cursor, or whatever you build with.Agent prompt
Next steps
- Payout schedules: automatic payouts, minimums and anchor times.
- Payouts in Connect: giving each payee their own balance.
- Payouts: the full payout reference.
- Payout networks: which rails and currencies pay out today.

