# Flutterwave

Flutterwave is a payments technology company that provides payment infrastructure and APIs enabling businesses to accept and send payments in Africa and globally.

- **Category:** payment processing
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 53
- **Triggers:** 0
- **Slug:** `FLUTTERWAVE`
- **Version:** 20260312_00

## Tools

### Cancel Payment Plan

**Slug:** `FLUTTERWAVE_CANCEL_PAYMENT_PLAN`

Tool to cancel a payment plan. Use when you need to prevent all future subscriptions under this plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the payment plan to cancel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Beneficiary

**Slug:** `FLUTTERWAVE_CREATE_BENEFICIARY`

Tool to create a new transfer beneficiary. Use when you need to add a beneficiary before making a transfer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_bank` | string | Yes | The beneficiary's bank code. Retrieve valid codes via the get_banks endpoint. |
| `account_number` | string | Yes | The beneficiary's account number. Example: '0690000041' |
| `beneficiary_name` | string | No | Optional: The full name of the beneficiary, if different from the account holder name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Bulk Tokenized Charge

**Slug:** `FLUTTERWAVE_CREATE_BULK_TOKENIZED_CHARGE`

Tool to create a bulk tokenized charge batch for charging multiple previously tokenized cards. Use when you need to process multiple recurring or subscription charges in a single batch. Each charge must reference a valid card token obtained from prior tokenization.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Descriptive title identifying this bulk charge batch |
| `bulk_data` | array | Yes | List of individual charge items to process. Each must have a unique tx_ref |
| `retry_strategy` | object | No | Configuration for automatic charge retry behavior. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Bulk Virtual Account Numbers

**Slug:** `FLUTTERWAVE_CREATE_BULK_VIRTUAL_ACCOUNT_NUMBERS`

Tool to create multiple virtual account numbers. Use when you need to generate multiple static virtual accounts for customers in a single request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `batch_ref` | string | Yes | Unique reference to identify this batch of virtual accounts. |
| `bulk_data` | array | Yes | List of virtual account details for each customer in the batch. |
| `narration` | string | No | Context or reason for this bulk creation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Payment Link

**Slug:** `FLUTTERWAVE_CREATE_PAYMENT_LINK`

Tool to create a hosted payment link. Use when you need a shareable payment URL for one-time transactions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | string | Yes | Amount to charge; must be greater than 0 |
| `tx_ref` | string | Yes | Unique transaction reference |
| `currency` | string | Yes | ISO 4217 currency code |
| `customer` | object | Yes | Customer contact information |
| `redirect_url` | string | Yes | URL to redirect customer after payment |
| `customizations` | object | No | Optional customization for the payment link. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Payment Plan

**Slug:** `FLUTTERWAVE_CREATE_PAYMENT_PLAN`

Tool to create a new payment plan. Use after confirming plan and customer details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the payment plan. Appears on subscription reminder emails. |
| `amount` | string | No | The amount to charge each billing cycle. If omitted, uses the amount from subscription initiation. |
| `currency` | string | No | Currency code (ISO 4217). Defaults to 'NGN'. |
| `duration` | integer | No | The duration in billing cycles. For example, 5 for five months if interval='monthly'. If unset, the plan continues indefinitely. |
| `interval` | string | Yes | The billing interval; one of 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'quarterly', 'bi-annually', or custom like 'every five months'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Refund

**Slug:** `FLUTTERWAVE_CREATE_REFUND`

Tool to create a refund for a transaction. Use when you need to initiate a refund after confirming the transaction ID and refund amount.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the transaction to refund |
| `amount` | string | Yes | Amount to refund as a string. Must not exceed the original transaction amount. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Subaccount

**Slug:** `FLUTTERWAVE_CREATE_SUBACCOUNT`

Tool to create a new subaccount. Use when you need to configure split disbursement accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | array | No | Additional metadata as list of name/value pairs |
| `country` | string | No | Country code for the subaccount |
| `split_type` | string ("percentage" | "flat") | Yes | Split type: 'percentage' or 'flat' |
| `split_value` | number | Yes | Split value for disbursement. For 'percentage' type, use decimal format (e.g., 0.10 for 10%, 0.25 for 25%). For 'flat' type, use the actual amount in the local currency. |
| `account_bank` | string | Yes | Bank ISO code for the subaccount |
| `business_name` | string | Yes | Business name for the subaccount |
| `account_number` | string | Yes | Bank account number for the subaccount |
| `business_email` | string | Yes | Business email address |
| `business_mobile` | string | No | Primary business contact mobile number |
| `business_contact` | string | No | Business contact person name |
| `business_contact_mobile` | string | No | Business contact mobile number |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Virtual Account

**Slug:** `FLUTTERWAVE_CREATE_VIRTUAL_ACCOUNT`

Tool to create a new virtual account number. Use after confirming customer details when assigning a unique account for bank transfers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bvn` | string | No | Customer's Bank Verification Number; required if is_permanent is true. |
| `email` | string | Yes | Customer's email address. |
| `amount` | number | Yes | Exact amount to be collected per transaction (minimum 1). |
| `tx_ref` | string | No | Merchant's transaction reference to echo with incoming payments. |
| `duration` | integer | No | Number of days before a dynamic account expires. |
| `lastname` | string | No | Customer's last name. |
| `firstname` | string | No | Customer's first name. |
| `frequency` | integer | No | Number of times a dynamic account can be used before expiring. |
| `narration` | string | No | Description shown when retrieving account details. |
| `phonenumber` | string | No | Customer's phone number with country code. |
| `is_permanent` | boolean | No | Set to true for a static (permanent) virtual account; defaults to false (dynamic account). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Beneficiary

**Slug:** `FLUTTERWAVE_DELETE_BENEFICIARY`

Tool to delete a beneficiary by ID. Use when you need to remove a saved transfer beneficiary by its unique ID after confirming the ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the beneficiary to delete, obtained via the list-all-beneficiaries endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Subaccount

**Slug:** `FLUTTERWAVE_DELETE_SUBACCOUNT`

Tool to delete a subaccount by ID. Use when you need to remove a subaccount from your Flutterwave account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The numeric ID of the subaccount to delete (e.g., from the 'id' field returned when creating a subaccount, not the 'subaccount_id' field which starts with RS_) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Disable Payment Link

**Slug:** `FLUTTERWAVE_DISABLE_PAYMENT_LINK`

Tool to disable a Flutterwave payment link. Use when you need to prevent further payments from an existing link after confirming the link is valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link` | string | Yes | The full URL of the payment link to disable. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Beneficiary

**Slug:** `FLUTTERWAVE_FETCH_BENEFICIARY`

Tool to retrieve details of a specific beneficiary by ID. Use after obtaining a beneficiary ID to fetch its full details from Flutterwave.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the beneficiary to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Subaccount

**Slug:** `FLUTTERWAVE_FETCH_SUBACCOUNT`

Tool to retrieve details of a specific subaccount by ID. Use when you need full subaccount info after creating or updating splits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The numeric ID of the subaccount to retrieve (e.g., from the 'id' field returned when creating a subaccount, not the 'subaccount_id' field which starts with RS_) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Transaction Reference

**Slug:** `FLUTTERWAVE_GENERATE_TRANSACTION_REFERENCE`

Tool to generate a unique transaction reference. Use when initiating a new Flutterwave transaction requires a unique reference to prevent duplication.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Subscriptions

**Slug:** `FLUTTERWAVE_GET_ALL_SUBSCRIPTIONS`

Tool to retrieve all subscriptions, including cancelled ones. Use when you need a comprehensive list of subscription records for auditing or reporting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (>= 1) |
| `per_page` | integer | No | Number of records per page (>= 1) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve all transactions

**Slug:** `FLUTTERWAVE_GET_ALL_TRANSACTIONS`

Tool to retrieve a list of all transactions with optional filters. Use when you need to paginate or filter transaction history after confirming valid API credentials.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (>= 1) |
| `status` | string ("successful" | "failed") | No | Filter transactions by status ('successful' or 'failed') |
| `tx_ref` | string | No | Filter transactions by transaction reference |
| `to_date` | string | No | End date for fetching transactions (YYYY-MM-DD) |
| `currency` | string | No | Filter transactions by currency (e.g., 'NGN', 'USD') |
| `from_date` | string | No | Start date for fetching transactions (YYYY-MM-DD) |
| `customer_email` | string | No | Filter transactions by customer email |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Wallet Balances

**Slug:** `FLUTTERWAVE_GET_ALL_WALLET_BALANCES`

Tool to retrieve all wallet balances across currencies. Use when reconciling balances after authentication.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Balances per Currency

**Slug:** `FLUTTERWAVE_GET_BALANCES_PER_CURRENCY`

Tool to retrieve wallet balance for a specific currency. Use after transactions to confirm available and ledger balances in a given currency.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `currency` | string | Yes | Three-letter ISO currency code of the wallet, e.g., 'NGN', 'USD' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bank Branches

**Slug:** `FLUTTERWAVE_GET_BANK_BRANCHES`

Tool to retrieve branch codes for a specific bank. Use when you need branch information for transfers in countries like Ghana that require branch codes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the bank to retrieve branches for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Banks by Country

**Slug:** `FLUTTERWAVE_GET_BANKS_BY_COUNTRY`

Tool to retrieve all banks in a specified country. Use when you need to get available banks for transfers or payments in a specific country.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `country` | string | Yes | ISO 3166-1 alpha-2 country code (e.g., NG for Nigeria, GH for Ghana, KE for Kenya, UG for Uganda, ZA for South Africa, TZ for Tanzania). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bill Categories

**Slug:** `FLUTTERWAVE_GET_BILL_CATEGORIES`

Tool to retrieve available bill categories. Use after authenticating to Flutterwave to display bill payment options to users.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bulk Tokenized Charge Status

**Slug:** `FLUTTERWAVE_GET_BULK_TOKENIZED_CHARGE`

Tool to retrieve the status of a bulk tokenized charge operation by ID. Use after initiating a bulk tokenized charge to check its processing status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bulk_id` | string | Yes | Unique identifier of the bulk tokenized charge to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bulk Virtual Account

**Slug:** `FLUTTERWAVE_GET_BULK_VIRTUAL_ACCOUNT`

Tool to fetch bulk virtual account details using batch ID. Use this after creating bulk virtual accounts to retrieve the generated account numbers and their details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `batch_id` | string | Yes | Unique identifier for the batch of virtual accounts to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Multiple Refund Transactions

**Slug:** `FLUTTERWAVE_GET_MULTIPLE_REFUND_TRANSACTIONS`

Tool to retrieve multiple refund transactions with optional filters. Use when you need to fetch paginated refund data after confirming valid API credentials.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (>= 1) |
| `status` | string ("completed" | "pending") | No | Filter refunds by status ('completed' or 'pending') |
| `flw_ref` | string | No | Filter refunds by Flutterwave reference |
| `to_date` | string | No | End date for filtering refunds (YYYY-MM-DD) |
| `from_date` | string | No | Start date for filtering refunds (YYYY-MM-DD) |
| `page_size` | integer | No | Number of records per page (>= 1) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Payment Plan

**Slug:** `FLUTTERWAVE_GET_PAYMENT_PLAN`

Tool to retrieve details of a specific payment plan by ID. Use after obtaining the payment plan ID to fetch its details from Flutterwave.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the payment plan to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Payment Plans

**Slug:** `FLUTTERWAVE_GET_PAYMENT_PLANS`

Tool to retrieve a list of all payment plans. Use when you need to fetch and present your account’s configured billing plans.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Refund

**Slug:** `FLUTTERWAVE_GET_REFUND`

Tool to retrieve details of a specific refund by ID. Use after obtaining the refund ID to fetch its details from Flutterwave.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the refund to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transaction

**Slug:** `FLUTTERWAVE_GET_TRANSACTION`

Tool to retrieve details of a specific transaction by ID. Use after obtaining the transaction ID to fetch its details from Flutterwave.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the transaction to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transaction Fee

**Slug:** `FLUTTERWAVE_GET_TRANSACTION_FEE`

Tool to retrieve the fee for a specific transaction. Use when you need to calculate the total charge including fees before initiating the transaction.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | number | Yes | The amount to be charged from the customer (must be non-negative) |
| `currency` | string | Yes | Currency code in ISO 4217 format, e.g., NGN or USD |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transfer Fee

**Slug:** `FLUTTERWAVE_GET_TRANSFER_FEE`

Tool to retrieve the fee for initiating a transfer. Use when you need to estimate transfer costs before creating a transfer. Example: "Calculate the fee for transferring NGN 5000 to an account."

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("account" | "mobilemoney" | "barter") | No | Type of transfer: 'account', 'mobilemoney', or 'barter'. |
| `amount` | integer | Yes | The amount to be transferred. Must be a positive integer. |
| `currency` | string | No | ISO 4217 currency code for the transfer (e.g., 'NGN', 'USD'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transfer Rates

**Slug:** `FLUTTERWAVE_GET_TRANSFER_RATES`

Tool to retrieve exchange rates for transfers between currencies. Use when you need to calculate conversion rates before initiating a cross-currency transfer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | number | Yes | The destination amount for which to calculate transfer rates. Must be a positive number. |
| `source_currency` | string | Yes | ISO 4217 currency code for the source currency (e.g., 'NGN', 'KES', 'GHS'). |
| `destination_currency` | string | Yes | ISO 4217 currency code for the destination currency (e.g., 'USD', 'EUR', 'GBP'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Virtual Account Number

**Slug:** `FLUTTERWAVE_GET_VIRTUAL_ACCOUNT_NUMBER`

Tool to fetch details of a virtual account number by order reference. Use when you need to retrieve account details after creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_ref` | string | Yes | The order reference returned when the virtual account was created (e.g., URF_1771052916369_342835) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Wallet Statement

**Slug:** `FLUTTERWAVE_GET_WALLET_STATEMENT`

Tool to retrieve wallet balance history with optional filters. Use when you need to view transaction history and balance changes over a period.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `to_date` | string | No | End date for transaction history (format: YYYY-MM-DD) |
| `currency` | string | No | Filter by currency (e.g., USD, NGN, GHS) |
| `from_date` | string | No | Start date for transaction history (format: YYYY-MM-DD) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Initiate BVN Verification

**Slug:** `FLUTTERWAVE_INITIATE_BVN_VERIFICATION`

Tool to initiate BVN verification consent. Use when you need to verify a customer's Bank Verification Number (BVN) by obtaining their consent first. The customer will be redirected to a consent page where they provide approval to access their BVN data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bvn` | string | Yes | The Bank Verification Number (11 digits) |
| `lastname` | string | Yes | The customer's last name |
| `firstname` | string | Yes | The customer's first name |
| `redirect_url` | string | Yes | The URL where the customer will be redirected after consent is granted or declined |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Initiate Mobile Money Tanzania

**Slug:** `FLUTTERWAVE_INITIATE_MOBILE_MONEY_TANZANIA`

Tool to initiate a mobile money payment in Tanzania. Use after collecting customer details to charge via Tanzanian mobile money networks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Additional custom metadata as key/value pairs |
| `email` | string | Yes | Customer's email address |
| `amount` | number | Yes | Amount to charge; must be greater than 0 |
| `tx_ref` | string | Yes | Unique transaction reference for this payment |
| `network` | string | No | Mobile money network, e.g., 'Halopesa' |
| `currency` | string | Yes | Currency code in ISO 4217 format; must be 'TZS' |
| `fullname` | string | No | Customer's full name |
| `client_ip` | string | No | Customer's IP address |
| `phone_number` | string | Yes | Customer's mobile number in international format (e.g., +255712345678) |
| `device_fingerprint` | string | No | Device fingerprint for enhanced fraud detection |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Beneficiaries

**Slug:** `FLUTTERWAVE_LIST_ALL_BENEFICIARIES`

Tool to list all saved beneficiaries. Use when you need to retrieve all transfer beneficiaries associated with your account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Biller Products

**Slug:** `FLUTTERWAVE_LIST_BILLER_PRODUCTS`

Tool to retrieve all products available under a specific biller. Use after getting bill categories to display available products for bill payment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Biller code to retrieve products for (e.g., 'BIL136'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Billers

**Slug:** `FLUTTERWAVE_LIST_BILLERS`

Tool to retrieve available billers. Use after authenticating to Flutterwave to display bill payment biller options to users.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chargebacks

**Slug:** `FLUTTERWAVE_LIST_CHARGEBACKS`

Tool to retrieve a list of chargebacks with optional filtering by Flutterwave reference. Use when you need to view all chargebacks or search for a specific chargeback by transaction reference.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `flw_ref` | string | No | Flutterwave reference to filter chargebacks by specific transaction |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payout Subaccount Refunds

**Slug:** `FLUTTERWAVE_LIST_PAYOUT_SUBACCOUNT_REFUNDS`

Tool to list all payout subaccount refunds with pagination support. Use when you need to retrieve payout subaccount refund history with optional page filtering.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (>= 1) |
| `per_page` | integer | No | Number of records per page (>= 1) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payout Subaccounts

**Slug:** `FLUTTERWAVE_LIST_PAYOUT_SUBACCOUNTS`

Tool to list all payout subaccounts. Use when you need to retrieve all payout subaccounts associated with your Flutterwave account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recurring Bills

**Slug:** `FLUTTERWAVE_LIST_RECURRING_BILLS`

Tool to retrieve all recurring bill payments. Use when you need to view scheduled or active recurring billing arrangements.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List all settlements

**Slug:** `FLUTTERWAVE_LIST_SETTLEMENTS`

Tool to retrieve all settlements with optional filters. Use when you need to fetch settlement records, view transaction settlements, or track payment disbursements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve (>= 1) |
| `to_date` | string | No | End date for filtering settlements (YYYY-MM-DD format) |
| `from_date` | string | No | Start date for filtering settlements (YYYY-MM-DD format) |
| `subaccount_id` | string | No | Filter settlements by subaccount ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Subaccounts

**Slug:** `FLUTTERWAVE_LIST_SUBACCOUNTS`

Tool to fetch all collection subaccounts. Use when you need to retrieve the complete list of subaccounts for split disbursements.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Transfers

**Slug:** `FLUTTERWAVE_LIST_TRANSFERS`

Tool to fetch a list of bulk transfers from your Flutterwave account. Use when you need to retrieve transfer history, check transfer statuses, or filter transfers by reference or status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch (>= 1). Used for pagination. |
| `status` | string | No | Filter transfers by status (e.g., 'successful', 'failed', 'pending', 'new') |
| `reference` | string | No | Filter transfers by reference. Use this to find a specific transfer by its reference. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resolve Bank Account

**Slug:** `FLUTTERWAVE_RESOLVE_BANK_ACCOUNT`

Tool to verify and resolve bank account details. Use when you need to retrieve the account holder name for a Nigerian bank account by providing the account number and bank code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_bank` | string | Yes | Bank code for the account. Retrieve valid codes via the get banks endpoint. Example: '044' for Access Bank. |
| `account_number` | string | Yes | Bank account number to resolve. Example: '0690000034' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resolve Card BIN

**Slug:** `FLUTTERWAVE_RESOLVE_CARD_BIN`

Tool to resolve and retrieve card BIN information from Flutterwave. Use when you need to get issuer details, card type, and country information for a 6-digit BIN.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bin` | string | Yes | 6-digit Bank Identification Number (BIN) to resolve. The BIN is the first 6 digits of a card number. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Payment Plan

**Slug:** `FLUTTERWAVE_UPDATE_PAYMENT_PLAN`

Tool to update an existing payment plan. Use when you need to modify a payment plan's name or status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the payment plan to update. |
| `name` | string | No | The new name for the payment plan. If provided, updates the plan name. |
| `status` | string | No | The new status for the payment plan. Common values include 'active' or 'cancelled'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Subaccount

**Slug:** `FLUTTERWAVE_UPDATE_SUBACCOUNT`

Tool to update an existing subaccount. Use when you need to modify split disbursement settings or business details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The numeric ID of the subaccount to update (e.g., from the 'id' field returned when creating a subaccount, not the 'subaccount_id' field which starts with RS_) |
| `split_type` | string ("percentage" | "flat") | No | Updated split type: 'percentage' or 'flat' |
| `split_value` | string | No | Updated split value for disbursement. For 'percentage' type, use the percentage value (e.g., '10' for 10%). For 'flat' type, use the actual amount in the local currency (e.g., '250'). Pass as string to match API expectations. |
| `account_bank` | string | No | Updated bank ISO code for the subaccount |
| `business_name` | string | No | Updated business name for the subaccount |
| `account_number` | string | No | Updated bank account number for the subaccount |
| `business_email` | string | No | Updated business email address |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Bill Item

**Slug:** `FLUTTERWAVE_VALIDATE_BILL_ITEM`

Tool to validate a bill service before payment. Use before initiating a bill payment to confirm the customer identifier (account number, meter number, etc.) is valid and retrieve customer details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Biller code (e.g., BIL119 for DSTV in test mode) |
| `customer` | string | Yes | Customer identifier to validate (e.g., account number, meter number, or phone number) |
| `item_code` | string | Yes | Product/item code to validate (e.g., CB141 for DSTV in test mode) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Verify Transaction by Reference

**Slug:** `FLUTTERWAVE_VERIFY_TRANSACTION_BY_REFERENCE`

Tool to verify a transaction using its transaction reference. Use when you have a transaction reference (tx_ref) and need to confirm the transaction status and retrieve its details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tx_ref` | string | Yes | Transaction reference to verify. This is the unique reference provided during transaction initiation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### View Transaction Timeline

**Slug:** `FLUTTERWAVE_VIEW_TRANSACTION_TIMELINE`

Tool to retrieve the event timeline for a transaction. Use after obtaining the transaction ID to audit or track the sequence of events.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the transaction to retrieve its event timeline (>=1). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
