{
"amount": 1000000,
"currency": "NGN",
"redirectUrl": "https://google.com",
"paymentMethod": "bank_transfer"
}
{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentMethod": "bank_transfer",
"reference": "GETXN_FI_WX6FLTAVVNVGWG_PMCKDU_1",
"email": "wilpat45677@yopmail.com",
"virtualAccount": {
"bankName": "Mock Bank",
"accountNumber": "0067100155",
"amount": "1002000.00",
"note": "Mock note",
"expiresAt": "2026-07-04 12:32:36 PM"
},
"amountToPay": 1002000,
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 2000,
"total": 2000
},
"totalCharge": 1002000
}
}
{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentLink": "https://checkout.flutterwave.com/v3/hosted/pay/1a2b3c4d5e6f",
"reference": "GETXN_FI_WX6FLTAVVNVGWG",
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 14000,
"total": 14000
},
"totalCharge": 1014000
}
}
{
"status": "failed",
"message": "This member does not belong to your organisation."
}
Members
Fund member wallet
Initiate a payment to fund a member’s wallet
POST
api
/
members
/
{id}
/
wallet
/
fund
{
"amount": 1000000,
"currency": "NGN",
"redirectUrl": "https://google.com",
"paymentMethod": "bank_transfer"
}
{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentMethod": "bank_transfer",
"reference": "GETXN_FI_WX6FLTAVVNVGWG_PMCKDU_1",
"email": "wilpat45677@yopmail.com",
"virtualAccount": {
"bankName": "Mock Bank",
"accountNumber": "0067100155",
"amount": "1002000.00",
"note": "Mock note",
"expiresAt": "2026-07-04 12:32:36 PM"
},
"amountToPay": 1002000,
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 2000,
"total": 2000
},
"totalCharge": 1002000
}
}
{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentLink": "https://checkout.flutterwave.com/v3/hosted/pay/1a2b3c4d5e6f",
"reference": "GETXN_FI_WX6FLTAVVNVGWG",
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 14000,
"total": 14000
},
"totalCharge": 1014000
}
}
{
"status": "failed",
"message": "This member does not belong to your organisation."
}
Initiates a payment to fund a member’s wallet (the member is identified by
That
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.
{
"amount": 1000000,
"currency": "NGN",
"redirectUrl": "https://google.com",
"paymentMethod": "bank_transfer"
}
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.{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentMethod": "bank_transfer",
"reference": "GETXN_FI_WX6FLTAVVNVGWG_PMCKDU_1",
"email": "wilpat45677@yopmail.com",
"virtualAccount": {
"bankName": "Mock Bank",
"accountNumber": "0067100155",
"amount": "1002000.00",
"note": "Mock note",
"expiresAt": "2026-07-04 12:32:36 PM"
},
"amountToPay": 1002000,
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 2000,
"total": 2000
},
"totalCharge": 1002000
}
}
{
"status": "success",
"message": "Payment initiated successfully. Complete payment to fund this member's wallet.",
"data": {
"paymentLink": "https://checkout.flutterwave.com/v3/hosted/pay/1a2b3c4d5e6f",
"reference": "GETXN_FI_WX6FLTAVVNVGWG",
"amount": 1000000,
"currency": "NGN",
"fees": {
"flutterwave": 14000,
"total": 14000
},
"totalCharge": 1014000
}
}
{
"status": "failed",
"message": "This member does not belong to your organisation."
}
After the payment
The payer comes back to yourredirectUrl with the outcome appended as query parameters:
?status=successful&tx_ref=GETXN_FI_WX6FLTAVVNVGWG&transaction_id=10459445
?status=cancelled&tx_ref=GETXN_FI_KGBW0Y3O2W2GNN
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
| HTTP | Message (example) | When |
|---|---|---|
| 400 | child "Amount" fails because ["Amount" must be larger than or equal to 1] | amount below 1, or not a number. |
| 400 | child "Currency" fails because ["Currency" must be one of [NGN, USD, KES, GHS, ZAR, GBP, EUR]] | Unsupported/invalid currency. |
| 400 | child "Redirect URL" fails because ["Redirect URL" is required] | redirectUrl omitted for a non-bank_transfer method. |
| 403 | This member does not belong to your organisation. | id is a real user, but not one of your members. |
| 404 | This member does not exist. | Invalid id. |
| 502 | Failed to create virtual account | Flutterwave rejected the virtual-account or payment-link call. |
Was this page helpful?
