# Flutterwave MCP connector

The Flutterwave connector brings customers, charges, payment methods, wallet balances and transfers into Claude, ChatGPT, Cursor and any MCP client, so your team can look up a payment or start a payout while signed in as themselves.

Source: https://elaichi.ai/connectors/flutterwave/

## Facts

| | |
| --- | --- |
| Application | Flutterwave |
| Category | Payment Gateway |
| AI tools | 57 |
| Authentication | App credentials |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 57 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Flutterwave is connected

- Show Flutterwave charges created this week by payment method.
- Find the Flutterwave customer for this email address.
- List failed charges over 50,000 from the last 30 days.

## Connect Flutterwave in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Flutterwave.
2. Optionally set Share with, then press Connect.
3. Paste your Flutterwave app credentials. Flutterwave authenticates the app rather than a person. One person supplies the credentials once, and everyone else works through Share with.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Flutterwave tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Flutterwave to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Flutterwave to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Flutterwave to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Flutterwave to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Flutterwave tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Flutterwave through Elaichi

### Check a payment before you reply

Finance. Ask for a customer's recent Flutterwave charges by name or email and see whether the payment went through, how much was collected and when, before writing back.

### Find the customer behind a failed charge

Support. Search Flutterwave customers from a support ticket, pull the charge in question and update the customer's details if the email or phone number on file was wrong.

### Know what is in every wallet

Treasury. Read Flutterwave wallet balances across currencies and pull a statement for the period, so the morning cash position is a question rather than a spreadsheet.

### Send a payout without the bank form

Operations. Resolve the recipient's account, pick the right bank or branch from the Flutterwave list, and create the transfer, then check its status a few minutes later.

### Set up a new customer to bill

Sales. Create the Flutterwave customer when a deal closes, add their payment method and raise the first charge from the same conversation.

### Reconcile transfers at month end

Finance. List the Flutterwave transfers that went out this month, pull any single transfer by ID and match it against the wallet statement without opening the dashboard.

## Frequently asked questions

### How do I connect Flutterwave to Claude?

First connect Flutterwave in Elaichi by pasting the app credentials from your Flutterwave dashboard; there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the Elaichi endpoint https://api.elaichi.ai/mcp. Sign in to Elaichi as yourself when Claude asks, and Flutterwave customers, charges, wallets and transfers are available in the chat.

### Does Flutterwave work with ChatGPT and Cursor as well as Claude?

Yes. Once Flutterwave is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Flutterwave once and every client you use picks it up.

### What can an AI agent actually do with my Flutterwave data?

It can search Flutterwave customers, create or update a customer, list and create charges and payment methods, read wallet balances and statements, look up banks and branches, resolve an account number and create or check transfers. In practice that means asking whether a customer paid, what a wallet holds today or where a payout is. Flutterwave exposes many actions, so short, specific asks like "show this week's transfers" work better than long paragraphs.

### Does connecting Flutterwave give the AI access to our whole account and balances?

No. Everything the AI does in Flutterwave runs through the connection your organization set up and the Elaichi account of the person asking, so it can reach only what those Flutterwave credentials already reach. Elaichi can narrow that further with roles and restrictions, and it never widens it beyond what Flutterwave itself allows.

### Can my team share one Flutterwave connection?

Yes. One person connects Flutterwave in Elaichi and shares the connection with a team, and nobody else ever handles the credentials. Each teammate still signs in to Elaichi as themselves, so every charge, customer change or transfer in the audit log names the person who did it.

### Can I stop an agent from moving money or changing things in Flutterwave?

Yes. Restrictions in Elaichi work per action, so you can allow reading Flutterwave customers, charges and balances while blocking creating transfers or updating charges. A blocked action is never shown to Claude, ChatGPT or any other client at all, so no prompt, however worded, can reach it.

### What happens to a Flutterwave connection when someone leaves?

Offboarding that person in Elaichi ends their access to Flutterwave at once, in every client they used. A shared Flutterwave connection keeps working for everyone else on the team. If you later want Flutterwave gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

## All 57 Flutterwave tools

Every tool below is callable through https://api.elaichi.ai/mcp once Flutterwave is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Flutterwave customers** (List). List Flutterwave customers. Returns: id, email, address, name, phone, meta, created_datetime. Max 10 records per page.
- **Create a Flutterwave customer** (Create). Create a new Flutterwave customer. Returns the created customer object including id, email, address, name, phone, and created_datetime.
- **Get single Flutterwave customer by ID** (Get). Retrieve a single Flutterwave customer by id. Returns the customer object including id, email, name, phone, address, meta, and created_datetime. Required: id.
- **Flutterwave customers search** (Search). Search Flutterwave customers. Returns: id, email, address, name, phone, meta, created_datetime.
- **Update a Flutterwave customer by ID** (Update). Update a Flutterwave customer by id. Returns the updated customer object including id, email, address, name, phone, and created_datetime. Required: id.
- **List all Flutterwave charges** (List). List charges in flutterwave, optionally filtered by status, date range, customer, payment method, or order. Returns: id, tx_ref, flw_ref, device_fingerprint, amount, currency, charged_amount, app_fee, merchant_fee, processor_response, auth_model, ip, narration, status, auth_url, payment_type, fraud_status, charge_type, created_at, account_id, order_id, redirect_url, amount_settled, reference,…
- **Create a Flutterwave charge** (Create). Create a charge in flutterwave to initiate a payment via card or mobile money. Returns: id, tx_ref, device_fingerprint, amount, currency, created_at, redirect_url, meta. Required: tx_ref, amount, currency, email.
- **Get single Flutterwave charge by ID** (Get). Retrieve a single charge in flutterwave by its id. Returns: id, status, created_at, meta. Required: id.
- **Update a Flutterwave charge by ID** (Update). Update a charge in flutterwave by its id. Returns: id, tx_ref, device_fingerprint, amount, currency, status, created_at, redirect_url, meta. Required: id.
- **Create a Flutterwave orchestration direct charge** (Create). Create a direct charge using the Flutterwave Orchestrator helper. Returns status, message, and a data object containing the charge id, amount, status, reference, redirect_url, next_action, payment_method_details, processor_response, and created_datetime.
- **List all Flutterwave payment methods** (List). List payment methods in Flutterwave. Returns a collection of payment method objects including id and attributes. Max 10 items per page.
- **Create a Flutterwave payment method** (Create). Create a payment method in Flutterwave. Returns the created payment method object including id and attributes.
- **Get single Flutterwave payment method by ID** (Get). Retrieve a single Flutterwave payment method by id. Returns the payment method object including id, type, customer_id, created_datetime, client_ip, device_fingerprint, meta, and mobile_money details. Required: id.
- **List all Flutterwave mobile networks** (List). List supported mobile networks in Flutterwave for a given country, returning individual network records from the response data array. Returns mobile network records including id. Required: country.
- **List all Flutterwave banks** (List). List all flutterwave banks supported in a specified country. Returns a collection of bank records each containing id, code, and name. Required: country.
- **List all Flutterwave bank branches** (List). List all flutterwave bank branches for a given bank. Returns: id, branch_code, branch_name, swift_code, bic, bank_id. Required: bank_id.
- **Create a Flutterwave wallets account resolve** (Create). Verify wallet account information in Flutterwave by performing a wallet account lookup. Returns the resolved account details including account_number and account_name.
- **List all Flutterwave wallets statements** (List). List Flutterwave wallet statement transactions. Returns: amount, currency, balance_before, balance_after, reference, date, remarks, sent_currency, rate_used, sent_amount, statement_type, payout_id, transaction_type.
- **Create a Flutterwave direct transfer** (Create). Initiate a direct transfer in Flutterwave via the Orchestrator helper. Returns status, message, and data containing the queued transfer object including id, account_number, currency, amount, fee, status, reference, bank_name, and created_at. Required: account_bank, account_number, amount, currency, narration.
- **List all Flutterwave wallets balances** (List). List all Flutterwave wallet balances across every supported currency. Returns one record per currency with currency, available_balance, and ledger_balance.
- **Get single Flutterwave wallets balance by ID** (Get). Get the Flutterwave wallet balance for a specific currency by id. Returns: status, message, data. Required: id.
- **List all Flutterwave transfers** (List). List flutterwave transfers with optional filters by status, date range, currency, sender, recipient, or bulk ID. Returns: id, account_number, bank_code, full_name, created_at, currency, debit_currency, amount, fee, status, reference, meta, narration, approver, complete_message, requires_approval, is_approved, bank_name, debit_currency_amount, rate.
- **Create a Flutterwave transfer** (Create). Create a flutterwave transfer to a bank account or mobile money wallet. Returns the queued transfer object including id, account_number, bank_code, full_name, currency, amount, fee, status, reference, narration, and bank_name. Required: account_bank, account_number, amount, currency.
- **Get single Flutterwave transfer by ID** (Get). Retrieve a single flutterwave transfer by id. Returns the transfer record including id, account_number, bank_code, full_name, created_at, currency, amount, fee, status, reference, narration, complete_message, requires_approval, is_approved, and bank_name. Required: id.
- **Update a Flutterwave transfer by ID** (Update). Update instructions for a deferred payout flutterwave transfer by id. Only applicable to deferred payout transfers. Returns: id, account_number, created_at, currency, debit_currency, amount, reference, meta, narration. Required: id.
- **Create a Flutterwave transfer retry** (Create). Retry a failed Flutterwave transfer or duplicate a successful one. Returns: status, message, data. Required: transfer_id.
- **List all Flutterwave transfer retries** (List). List all retry attempts for a Flutterwave transfer. Returns: id, account_number, bank_code, bank_name, full_name, currency, debit_currency, amount, fee, status, reference, narration, complete_message, meta, requires_approval, is_approved, created_at. Required: transfer_id.
- **List all Flutterwave transfers recipients** (List). List all Flutterwave transfer recipients. Returns: id.
- **Create a Flutterwave transfers recipient** (Create). Create a new Flutterwave transfer recipient. Returns: id.
- **Get single Flutterwave transfers recipient by ID** (Get). Retrieve a single Flutterwave transfer recipient by id. Returns: id. Required: id.
- **Delete a Flutterwave transfers recipient by ID** (Delete). Delete a Flutterwave transfer recipient by id. Returns an empty 204 response on success. Required: id.
- **List all Flutterwave transfers senders** (List). List all transfer senders in Flutterwave. Returns an array of sender records; each record includes id and attributes.
- **Create a Flutterwave transfers sender** (Create). Create a new transfer sender in Flutterwave. Requires a JSON request body following the Flutterwave sender_in schema. Returns: id.
- **Get single Flutterwave transfers sender by ID** (Get). Retrieve a single transfer sender by id from Flutterwave. Returns: id. Required: id.
- **Delete a Flutterwave transfers sender by ID** (Delete). Delete a transfer sender by id from Flutterwave. Returns an empty 204 response on success. Required: id.
- **Create a Flutterwave transfers rate** (Create). Retrieve an international transfer rate conversion in Flutterwave. Returns: status, message, and data containing the conversion rate, source currency/amount, and destination currency/amount. Required: amount, destination_currency, source_currency.
- **Get single Flutterwave transfers rate by ID** (Get). Get a Flutterwave transfer rate conversion by its unique identifier. Returns: status, message, data. Required: id.
- **List all Flutterwave settlements** (List). List Flutterwave settlements. Returns: id, account_id, merchant_name, merchant_email, settlement_account, bank_code, transaction_date, due_date, processed_date, status, is_local, currency, gross_amount, app_fee, merchant_fee, chargeback, refund, stampduty_charge, net_amount, transaction_count, processor_ref, disburse_ref, disburse_message, channel, destination, fx_data, flag_message,…
- **Get single Flutterwave settlement by ID** (Get). Retrieve a single Flutterwave settlement by id. Returns the full settlement object including id, status, currency, gross_amount, net_amount, merchant_name, merchant_email, transaction_date, disburse_ref, and a transactions array with individual charge details. Required: id.
- **List all Flutterwave chargebacks** (List). List flutterwave chargebacks, optionally filtered by date range or transaction reference. Returns: id, amount, flw_ref, status, stage, comment, meta, due_date, settlement_id, created_at, transaction_id, tx_ref.
- **Create a Flutterwave chargeback** (Create). Create a new chargeback in flutterwave. Returns the created chargeback object including id, amount, flw_ref, status, stage, comment, meta, due_date, settlement_id, created_at, and transaction_id.
- **Get single Flutterwave chargeback by ID** (Get). Get a single flutterwave chargeback by id. Returns: id, status, meta, created_at. Required: id.
- **Update a Flutterwave chargeback by ID** (Update). Update a flutterwave chargeback by id (accept or decline it). Returns the updated chargeback object including id, amount, flw_ref, status, stage, comment, meta, due_date, settlement_id, created_at, and transaction_id. Required: id, action, comment.
- **List all Flutterwave refunds** (List). List all refunds in Flutterwave, optionally filtered by date range. Returns: id, amount_refunded, status, flw_ref, comment, settlement_id, meta, created_at, account_id, transaction_id.
- **Create a Flutterwave refund** (Create). Create a refund in Flutterwave. Returns the created refund record including id, amount_refunded, status, flw_ref, comment, settlement_id, created_at, account_id, and transaction_id.
- **Get single Flutterwave refund by ID** (Get). Retrieve a single Flutterwave refund by id. Returns: id, amount_refunded, status, flw_ref, comment, settlement_id, meta, created_at, account_id, transaction_id. Required: id.
- **Get single Flutterwave fee by ID** (Get). Retrieve transaction fees from Flutterwave for a given payment scenario. Returns: status, message, data.
- **List all Flutterwave orders** (List). List Flutterwave orders. Returns: id, amount, fee, tx_ref, order_reference, created_at, total_amount, flw_ref, meta. Optionally filter by status. Max 10 items per page.
- **Create a Flutterwave order** (Create). Create a new order in Flutterwave. Returns the created order object including id, amount, fee, tx_ref, order_reference, total_amount, and created_at.
- **Get single Flutterwave order by ID** (Get). Retrieve a single Flutterwave order by id. Returns: id, created_at, meta. Required: id.
- **Update a Flutterwave order by ID** (Update). Update an existing Flutterwave order by id. Returns the updated order object including id, amount, fee, tx_ref, order_reference, total_amount, flw_ref, and meta. Required: id.
- **Create a Flutterwave orchestration direct order** (Create). Create a direct order in Flutterwave using the orchestration helper. Returns: status, message, and a data object containing the order details including amount, fee, tx_ref, order_reference, created_at, and total_amount.
- **List all Flutterwave virtual accounts** (List). List all virtual accounts in flutterwave. Returns virtual account objects including id and account-specific attributes. Optionally filter results by reference, from_datetime, or to_datetime.
- **Create a Flutterwave virtual account** (Create). Create a new virtual account in flutterwave. Returns the created virtual account object including id and account-specific attributes.
- **Get single Flutterwave virtual account by ID** (Get). Retrieve a single flutterwave virtual account by id. Returns the virtual account object including id and account-specific attributes. Required: id.
- **Update a Flutterwave virtual account by ID** (Update). Update a flutterwave virtual account by id. Returns the updated virtual account object including id and account-specific attributes. Required: id.
- **Create a Flutterwave bank account resolve** (Create). Resolve a Flutterwave bank account to retrieve the account holder's details. Returns: account_number, account_name.
