Skip to main content
POST
Initiates a payment to fund a member’s wallet (the member is identified by id in the path). The member’s wallet is credited with amount, while the payer is charged totalCharge (amount plus the processor fee). This is the member-scoped twin of the organisation funding. The wallet credited is the member’s, not your organisation’s. The member must already belong to your organisation — an accepted invitation — or the request is rejected with 403. There is no token purchase here. To fund and invest in one flow, use Fund and Invest instead. When paymentMethod is bank_transfer and currency is NGN, the response returns a virtual account to transfer to. For every other payment method, the response returns a Flutterwave payment link to complete the payment.
string
required
The member’s user ID.
integer
required
The amount to credit to the member’s wallet. Must be ≥ 1.
string
required
The funding currency. One of NGN, USD, KES, GHS, ZAR, GBP, EUR.
string
URL to redirect to after payment. Required unless paymentMethod is bank_transfer.
string
required
The payment method to use. One of card, bank_transfer, ussd, mobilemoney. Defaults to card.

After the payment

The payer comes back to your redirectUrl with the outcome appended as query parameters:
That status travels through the browser, so treat it as a hint. Take the tx_ref and call GET api/transactions/{reference} for the real outcome, and to know whether the member’s wallet has been credited yet. The wallet.funded webhook fires to your organisation once the credit is processed, with the member as the user.

Errors