Flutterwave MCP server
53 operations0 webhooks
Payments API for accepting charges and payment links, and managing transfers, beneficiaries, subaccounts, virtual accounts, subscriptions, settlements, refunds, bills, banks, and wallet balances.
Try Flutterwave with your agent
Connect Flutterwave, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Flutterwave on my account, then run one read-only example and show me the result.
Flutterwave tools and triggers
Tools are what your agent can do in Flutterwave through Corsair's MCP server. Triggers are the Flutterwave events a routine can start from.
Transactions
- Generate ReferenceRead-only
Generate a unique transaction reference.
transactions.generateReference
- GetRead-only
Get a transaction by ID.
transactions.get
- Get FeeRead-only
Get transaction fee estimate.
transactions.getFee
- ListRead-only
Retrieve all transactions.
transactions.list
- Verify By ReferenceRead-only
Verify a transaction by tx_ref.
transactions.verifyByReference
- View TimelineRead-only
View transaction timeline.
transactions.viewTimeline
Bills
- Get CategoriesRead-only
Get bill categories.
bills.getCategories
- List BillersRead-only
List billers in a category.
bills.listBillers
- List ProductsRead-only
List biller products.
bills.listProducts
- List RecurringRead-only
List recurring bill payments.
bills.listRecurring
- Validate ItemRead-only
Validate a bill item before payment.
bills.validateItem
Payment Plans
- CancelWrite
Cancel a Flutterwave payment plan by ID.
paymentPlans.cancel
- CreateWrite
Create a payment plan.
paymentPlans.create
- GetRead-only
Get a payment plan by ID.
paymentPlans.get
- ListRead-only
List payment plans.
paymentPlans.list
- UpdateWrite
Update a payment plan.
paymentPlans.update
Subaccounts
- CreateWrite
Create a subaccount.
subaccounts.create
- DeleteDestructive
Delete a subaccount by ID.
subaccounts.delete
- GetRead-only
Fetch a subaccount by ID.
subaccounts.get
- ListRead-only
List all subaccounts.
subaccounts.list
- UpdateWrite
Update a subaccount.
subaccounts.update
Beneficiaries
- CreateWrite
Create a transfer beneficiary.
beneficiaries.create
- DeleteDestructive
Delete a beneficiary by ID.
beneficiaries.delete
- GetRead-only
Fetch a beneficiary by ID.
beneficiaries.get
- ListRead-only
List all beneficiaries.
beneficiaries.list
Banks
- Get BranchesRead-only
Get branches for a bank.
banks.getBranches
- Get By CountryRead-only
Get banks by country.
banks.getByCountry
- Resolve AccountRead-only
Resolve bank account details.
banks.resolveAccount
Refunds
- CreateWrite
Create a refund for a transaction.
refunds.create
- GetRead-only
Get refund details by ID.
refunds.get
- ListRead-only
List refund transactions with filters.
refunds.list
Transfers
- Get FeeRead-only
Get transfer fee estimate.
transfers.getFee
- Get RatesRead-only
Get transfer exchange rates.
transfers.getRates
- ListRead-only
List transfers.
transfers.list
Wallets
- Get Balance By CurrencyRead-only
Get wallet balance by currency.
wallets.getBalanceByCurrency
- Get StatementRead-only
Get wallet statement.
wallets.getStatement
- List BalancesRead-only
Get wallet balances across currencies.
wallets.listBalances
Bulk Tokenized Charges
- CreateWrite
Create a bulk tokenized charge batch.
bulkTokenizedCharges.create
- GetRead-only
Get status of bulk tokenized charges.
bulkTokenizedCharges.get
Bulk Virtual Accounts
- CreateWrite
Create bulk virtual account numbers.
bulkVirtualAccounts.create
- GetRead-only
Get details for a bulk virtual account batch.
bulkVirtualAccounts.get
Payment Links
- CreateWrite
Create a hosted payment link.
paymentLinks.create
- DisableWrite
Disable an existing payment link.
paymentLinks.disable
Payout Subaccounts
- ListRead-only
List payout subaccounts.
payoutSubaccounts.list
- List RefundsRead-only
List payout subaccount refunds.
payoutSubaccounts.listRefunds
Virtual Accounts
- CreateWrite
Create a virtual account number.
virtualAccounts.create
- GetRead-only
Get virtual account number details by order reference.
virtualAccounts.get
Cards
- Resolve BinRead-only
Resolve card BIN details.
cards.resolveBin
Chargebacks
- ListRead-only
List chargebacks.
chargebacks.list
Charges
- Initiate Mobile Money TanzaniaWrite
Initiate mobile money charge in Tanzania.
charges.initiateMobileMoneyTanzania
Settlements
- ListRead-only
List settlements.
settlements.list
Subscriptions
- ListRead-only
Get all subscriptions, including cancelled.
subscriptions.list
Verification
- Initiate BvnWrite
Initiate BVN verification.
verification.initiateBvn
Connect Flutterwave to Claude, ChatGPT or Cursor
- 1
Connect Flutterwave in Corsair
Add your Flutterwave API key once in Corsair. Corsair stores the credential encrypted and makes the Flutterwave API calls for your agent, so it never goes into a prompt or a config file. Connect Flutterwave
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Flutterwave. On a ChatGPT personal plan, connect Flutterwave here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Flutterwave's read and write operations run right away and its 2 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/flutterwave, add the Flutterwave plugin, and connect with an API key. Then call methods like corsair.flutterwave.api.banks.getBranches() from your app. Corsair keeps each tenant isolated.
Yes. Flutterwave requires an API key from your Flutterwave account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Flutterwave, GitHub, Notion, Stripe, and the rest. Trigger Flutterwave from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for payments api for accepting charges and payment links, and managing transfers, beneficiaries, subaccounts, virtual accounts, subscriptions, settlements, refunds, bills, banks, and wallet balances. Common builds include sync jobs, admin tooling, and agents that call Flutterwave APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Flutterwave API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/flutterwave in the open repo. When Flutterwave ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Flutterwave data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Flutterwave data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Flutterwave on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 2 destructive Flutterwave operations. You can change a link's mode at hub.corsair.dev/me.