# Paystack

Nigerian financial technology company that offers payment processing services to businesses in Africa.

- **Category:** payment processing
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 112
- **Triggers:** 0
- **Slug:** `PAYSTACK`
- **Version:** 20260227_00

## Tools

### Add Products to Page

**Slug:** `PAYSTACK_ADD_PRODUCTS_TO_PAGE`

Tool to add products to a Paystack payment page. Use when you need to add products to an existing page that was created with 'product' type. This action adds the specified products to the page, allowing customers to select from multiple products when making a payment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or slug of the payment page. Only pages created with 'product' type can have products added. |
| `products` | array | Yes | List of product IDs to add to the payment page. Each product must already exist in your Paystack 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 |

### Add Products to Storefront

**Slug:** `PAYSTACK_ADD_PRODUCTS_TO_STOREFRONT`

Tool to add previously created products to a Storefront. Use when you need to associate existing products with a specific storefront.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront |
| `products` | array | Yes | An array of product IDs to add to the storefront |

#### 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 |

### Add Split Code to Virtual Terminal

**Slug:** `PAYSTACK_ADD_SPLIT_CODE_TO_VIRTUAL_TERMINAL`

Tool to add a split code to a virtual terminal. Use when you need to assign payment splitting configuration to a virtual terminal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Code of the Virtual Terminal to update |
| `split_code` | string | Yes | The split code to assign to the virtual terminal |

#### 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 |

### Add Subaccount to Split

**Slug:** `PAYSTACK_ADD_SUBACCOUNT_TO_SPLIT`

Tool to add a subaccount to a split configuration, or update the share of an existing subaccount. Use this when you need to modify the payment distribution by adding new partners/customers to a split or adjusting their allocation. The split must already exist before adding subaccounts to it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the split configuration to update |
| `share` | integer | Yes | The percentage or flat quota allocated to this subaccount. The value depends on the split type (percentage vs flat amount). |
| `subaccount` | string | Yes | Subaccount code of the customer or partner to add to the split. This code starts with 'ACCT_'. |

#### 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 |

### Archive Payment Request

**Slug:** `PAYSTACK_ARCHIVE_PAYMENT_REQUEST`

Tool to archive a payment request to clean up records. Use when you need to remove a payment request from active listings. An archived payment request cannot be verified and will not appear when listing payment requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a previously created payment request. Once archived, the payment request cannot be verified and will not be returned when listing payment requests. |

#### 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 |

### Assign Destination to Virtual Terminal

**Slug:** `PAYSTACK_ASSIGN_DESTINATION_TO_VIRTUAL_TERMINAL`

Tool to assign WhatsApp destinations to a Virtual Terminal for payment notifications. Use when you need to add recipients who will receive notifications for payments made through a specific Virtual Terminal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Code of the Virtual Terminal to assign destinations to |
| `destinations` | array | Yes | Array of destination objects containing recipients for payment notifications. Each destination must have a name and WhatsApp number (target) |

#### 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 |

### Check Pending Charge

**Slug:** `PAYSTACK_CHECK_PENDING_CHARGE`

Tool to check the status of a pending charge transaction. Use when you receive a 'pending' status from a charge endpoint or need to verify if a charge status has changed. Wait at least 10 seconds after initiating a charge before calling this endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reference` | string | Yes | The reference of the ongoing transaction to check |

#### 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 |

### Check Slug Availability

**Slug:** `PAYSTACK_CHECK_SLUG_AVAILABILITY`

Tool to check if a custom slug is available for use when creating a payment page. Use when you need to verify a slug is not already taken before creating a new payment page.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | Yes | The custom slug to check for availability. Used when creating a payment page. |

#### 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 |

### Bulk Create Transfer Recipients

**Slug:** `PAYSTACK_CREATE_BULK_TRANSFER_RECIPIENT`

Create multiple transfer recipients in batches. Use when you need to add multiple recipients at once for transfers. Duplicate account numbers automatically return existing recipient records instead of creating duplicates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `batch` | array | Yes | Array of recipient objects to create in bulk. Each object must contain type, name, account_number, and bank_code. Duplicate account numbers will return the existing recipient record instead of creating a new one. |

#### 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 Charge

**Slug:** `PAYSTACK_CREATE_CHARGE`

Tool to initiate a payment by integrating the payment channel of your choice. Use when you need to charge a customer using authorization code, bank account, mobile money, or USSD.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pin` | string | No | Customer's 4-digit PIN (required for local cards in some countries) |
| `bank` | object | No | Bank account details for bank charge. |
| `ussd` | object | No | USSD details for USSD charge. |
| `email` | string | Yes | Customer's email address (required) |
| `amount` | integer | Yes | Amount in subunit of the currency (e.g., kobo for NGN, pesewas for GHS, cents for ZAR). For example, 10000 kobo = 100 NGN |
| `birthday` | string | No | Customer's birthday in YYYY-MM-DD format (required for some payment channels) |
| `metadata` | object | No | Custom metadata object for storing additional transaction information |
| `device_id` | string | No | Device ID for fraud detection |
| `reference` | string | No | Unique transaction reference. If not provided, Paystack will generate one |
| `mobile_money` | object | No | Mobile money details for mobile money charge. |
| `authorization_code` | string | No | Authorization code for recurring charges. Use this to charge a customer using a previously saved authorization |

#### 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 Customer

**Slug:** `PAYSTACK_CREATE_CUSTOMER`

Tool to create a customer on your Paystack integration. Use when you need to add a new customer with their email address and optional details like name and phone number.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Customer's email address (required) |
| `phone` | string | No | Customer's phone number |
| `metadata` | object | No | Custom metadata object for storing additional customer information |
| `last_name` | string | No | Customer's last name |
| `first_name` | string | No | Customer's first 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 Payment Page

**Slug:** `PAYSTACK_CREATE_PAYMENT_PAGE`

Tool to create a payment page on your Paystack integration. Use when you need to create a payment page that customers can visit to make payments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the payment page |
| `plan` | string | No | The ID of the plan to subscribe customers on this payment page to when type is set to subscription |
| `slug` | string | No | URL slug you would like to be associated with this page. Page will be accessible at https://paystack.com/pay/[slug] |
| `type` | string ("payment" | "subscription" | "product" | "plan") | No | Type options for payment pages. |
| `amount` | integer | No | Amount for the page in subunit (kobo if currency is NGN, pesewas if currency is GHS, and cents if currency is ZAR). If omitted, customer can enter the amount. |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "KES" | "USD") | No | Currency options for payment pages. |
| `metadata` | object | No | JSON object of custom data |
| `split_code` | string | No | The split code of the transaction split. e.g. SPL_98WF13Eb3w |
| `description` | string | No | Description of the payment page |
| `fixed_amount` | boolean | No | Specifies whether to collect a fixed amount on the payment page. If true, amount must be passed. |
| `redirect_url` | string | No | If you would like Paystack to redirect to a URL upon successful payment, specify the URL here |
| `collect_phone` | boolean | No | Specify whether to collect phone numbers on the payment page |
| `custom_fields` | array | No | If you would like to accept custom fields, specify them here |
| `success_message` | string | No | A success message to display to the customer after a successful transaction |
| `notification_email` | string | No | An email address that will receive transaction notifications for this payment page |

#### 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 Request

**Slug:** `PAYSTACK_CREATE_PAYMENT_REQUEST`

Create a new payment request by issuing an invoice to a customer. Use this when you need to request payment from a customer for goods or services.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tax` | array | No | Array of taxes to apply to the payment request |
| `draft` | boolean | No | Indicate if request should be saved as draft. Defaults to false and overrides send_notification |
| `amount` | integer | Yes | Payment request amount in subunit (e.g., kobo for NGN, cents for USD). Only useful if line_items and tax values are ignored. The endpoint will throw a friendly warning if neither is available. |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "USD") | No | Currency options for payment requests. |
| `customer` | string | Yes | Customer ID or customer code to issue the payment request to |
| `due_date` | string | No | ISO 8601 representation of request due date |
| `line_items` | array | No | Array of line items for the payment request |
| `split_code` | string | No | The split code of the transaction split. This allows you to split the payment with one or more accounts |
| `description` | string | No | A short description of the payment request |
| `has_invoice` | boolean | No | Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) even if there are no line_items or tax passed |
| `invoice_number` | integer | No | Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. |
| `send_notification` | boolean | No | Indicates whether Paystack sends an email notification to customer. Defaults to true |

#### 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 Plan

**Slug:** `PAYSTACK_CREATE_PLAN`

Tool to create a plan for recurring payments on Paystack. Use when you need to set up subscription billing or recurring payment schedules. The plan defines the amount, interval, and other settings for recurring charges to customers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the plan |
| `amount` | integer | Yes | Amount to charge in subunit (kobo if NGN, pesewas if GHS, cents if ZAR or USD) |
| `currency` | string | No | Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD |
| `interval` | string ("daily" | "weekly" | "monthly" | "biannually" | "annually") | Yes | Payment interval for recurring charges |
| `send_sms` | boolean | No | Set to false if you don't want text messages to be sent to your customers |
| `description` | string | No | A description for this plan |
| `invoice_limit` | integer | No | Number of invoices to raise during subscription to this plan. Can be overridden by specifying an invoice_limit while subscribing |
| `send_invoices` | boolean | No | Set to false if you don't want invoices to be sent to your customers |

#### 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:** `PAYSTACK_CREATE_REFUND`

Tool to initiate a refund for a previously completed transaction on Paystack. Use when a customer requests a refund or when you need to reverse a payment. The refund can be for the full transaction amount or a partial amount.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | integer | No | Amount to refund in subunit (kobo for NGN, pesewas for GHS, cents for USD/ZAR/KES). If not specified, the full transaction amount will be refunded. Cannot exceed the original transaction amount. |
| `currency` | string ("GHS" | "KES" | "NGN" | "USD" | "ZAR") | No | Supported currencies for Paystack refunds. |
| `transaction` | string | Yes | Transaction reference or ID of the previously completed transaction to refund. |
| `customer_note` | string | No | Note to send to the customer explaining the reason for the refund. |
| `merchant_note` | string | No | Internal note for the merchant's record. Not visible to the customer. |

#### 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 Split Configuration

**Slug:** `PAYSTACK_CREATE_SPLIT`

Tool to create a split configuration for transaction revenue sharing. Use when you need to configure how transaction revenue should be split between multiple subaccounts (e.g., for marketplace platforms, revenue sharing, or commission distribution).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name for the transaction split configuration |
| `type` | string ("percentage" | "flat") | Yes | The type of transaction split - 'percentage' for percentage-based splits or 'flat' for fixed amount splits |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "USD" | "KES") | Yes | The transaction currency for this split configuration |
| `bearer_type` | string ("subaccount" | "account" | "all-proportional" | "all") | Yes | Specifies who bears the Paystack transaction charges. 'subaccount' means a specific subaccount bears it, 'account' means the main account bears it, 'all-proportional' distributes charges proportionally, 'all' means all parties share charges |
| `subaccounts` | array | Yes | List of subaccounts with their respective share allocations. Each subaccount specifies the subaccount code and the share amount |
| `bearer_subaccount` | string | No | Subaccount code that will bear the transaction charges. Required only when bearer_type is 'subaccount'. This subaccount will be charged for the Paystack fees |

#### 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 Storefront

**Slug:** `PAYSTACK_CREATE_STOREFRONT`

Create a digital storefront on Paystack to manage and display products. Use this when you need to set up a new online shop for selling digital or physical products.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the storefront |
| `slug` | string | Yes | A unique identifier to access your store. Once the storefront is created, it can be accessed from https://paystack.shop/your-slug |
| `currency` | string ("GHS" | "KES" | "NGN" | "USD" | "ZAR") | Yes | Currency for prices of products in your storefront. Must be one of: GHS, KES, NGN, USD, ZAR |
| `description` | string | No | The description of the storefront |

#### 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:** `PAYSTACK_CREATE_SUBACCOUNT`

Tool to create a subaccount on your Paystack integration. Use when you need to set up a new subaccount with bank details and settlement information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `metadata` | string | No | Stringified JSON object of custom data |
| `description` | string | No | A description for this subaccount |
| `business_name` | string | Yes | Name of business for subaccount |
| `account_number` | string | Yes | Bank account number |
| `settlement_bank` | string | Yes | Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. |
| `percentage_charge` | number | Yes | Percentage of transaction amount charged by the subaccount |
| `primary_contact_name` | string | No | The name of the contact person for this subaccount |
| `primary_contact_email` | string | No | A contact email for the subaccount |
| `primary_contact_phone` | string | No | A phone number to call for this subaccount |

#### 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 Transfer Recipient

**Slug:** `PAYSTACK_CREATE_TRANSFER_RECIPIENT`

Tool to create a new recipient for transfers. Use when you need to set up a recipient before initiating a transfer. Note: A duplicate account number will lead to retrieval of the existing record rather than creating a new one.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The recipient's name according to their account registration. This is the name that will appear on transfer receipts. |
| `type` | string ("nuban" | "ghipss" | "mobile_money" | "basa" | "authorization") | Yes | Recipient type. Options: 'nuban' (Nigerian bank account), 'ghipss' (Ghanaian bank account), 'mobile_money' (mobile money account), 'basa' (South African bank account), 'authorization' (Paystack authorization code from previous transaction). |
| `email` | string | No | Email address of the recipient. Optional but recommended for better record-keeping and communication. |
| `currency` | string | No | Currency for the account receiving the transfer. If not provided, defaults to NGN (Nigerian Naira). Common values: 'NGN', 'GHS' (Ghanaian Cedi), 'ZAR' (South African Rand), 'USD'. |
| `metadata` | object | No | JSON object of custom data. You can store additional information about the recipient here. Maximum of 10 key-value pairs allowed. |
| `bank_code` | string | Yes | Recipient's bank code. Required for bank account types. You can get the list of bank codes by calling the List Banks endpoint. For Nigerian banks, this is typically a 3-digit code (e.g., '044' for Access Bank). |
| `description` | string | No | A description for this recipient. Helpful for identifying the purpose or context of this recipient in your records. |
| `account_number` | string | Yes | Recipient's bank account number. Required for bank account types (nuban, ghipss, basa). Must be a valid account number for the specified bank. |
| `authorization_code` | string | No | An authorization code from a previous transaction. Required when type is 'authorization'. This allows creating a recipient from a previously authorized payment method. |

#### 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 Terminal

**Slug:** `PAYSTACK_CREATE_VIRTUAL_TERMINAL`

Create a Virtual Terminal on your Paystack integration to accept payments. Use this when you need to set up a new payment terminal for in-person or remote transactions with custom notification settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the virtual terminal |
| `metadata` | object | No | Additional custom data as key-value pairs to store with the virtual terminal |
| `split_code` | string | No | Split code to associate with the virtual terminal for automatic payment splitting |
| `destinations` | array | Yes | Array of recipients who will receive payment notifications for transactions on this Virtual Terminal. Each destination must have a name and target (phone number or 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 |

### Deactivate Authorization

**Slug:** `PAYSTACK_DEACTIVATE_AUTHORIZATION`

Tool to deactivate an authorization when a card or payment method needs to be forgotten. Use when customers want to remove saved payment methods from their account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `authorization_code` | string | Yes | Authorization code for the card or payment method to deactivate (e.g., 'AUTH_56wcbzw51e'). This removes the saved payment method. |

#### 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 |

### Deactivate Virtual Terminal

**Slug:** `PAYSTACK_DEACTIVATE_VIRTUAL_TERMINAL`

Tool to deactivate a Virtual Terminal on your integration. Use when you need to disable a terminal and prevent it from accepting further payments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Code of the Virtual Terminal to deactivate (e.g., 'VT_MCK5292Z'). This will disable the terminal and prevent it from accepting payments. |

#### 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 Product

**Slug:** `PAYSTACK_DELETE_PRODUCT`

Delete a previously created product from Paystack by its ID. Use this when you need to remove a product from your catalog. The deletion is permanent and cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product to delete. You can obtain product IDs from PAYSTACK_CREATE_PRODUCT, PAYSTACK_UPDATE_PRODUCT, or by listing products. |

#### 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 Storefront

**Slug:** `PAYSTACK_DELETE_STOREFRONT`

Delete a previously created storefront from Paystack by its ID. Use this when you need to remove a storefront. The deletion is permanent and cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the storefront to delete. You can obtain storefront IDs from PAYSTACK_CREATE_STOREFRONT or by listing storefronts. |

#### 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 Transfer Recipient

**Slug:** `PAYSTACK_DELETE_TRANSFER_RECIPIENT`

Tool to delete a transfer recipient by setting it to inactive status. Use when you need to remove a recipient from the active transfer list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Transfer recipient code to delete (e.g., 'RCP_5ap8rcimmcj8lbi'). This sets the recipient to inactive status. |

#### 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 OTP for Transfers

**Slug:** `PAYSTACK_DISABLE_OTP_FOR_TRANSFERS`

Tool to disable OTP requirement for programmatic transfers. Use when you want to complete transfers without OTP verification. Returns an OTP needed to finalize the request.

#### 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 Subscription

**Slug:** `PAYSTACK_DISABLE_SUBSCRIPTION`

Tool to disable a subscription on your Paystack integration. Use when you need to stop recurring charges for a customer subscription. Requires the subscription code and email verification token sent to the customer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Subscription code to disable |
| `token` | string | Yes | Email token sent to the customer for verification |

#### 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 |

### Duplicate Storefront

**Slug:** `PAYSTACK_DUPLICATE_STOREFRONT`

Tool to duplicate a previously created Storefront. Use when you need to create a copy of an existing storefront with the same configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront to duplicate. |

#### 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 |

### Enable OTP for Transfers

**Slug:** `PAYSTACK_ENABLE_OTP_REQUIREMENT_FOR_TRANSFERS`

Tool to enable OTP requirement for transfers. Use when a customer wants to stop being able to complete transfers programmatically and require OTP verification instead.

#### 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 |

### Export Transactions

**Slug:** `PAYSTACK_EXPORT_TRANSACTIONS`

Tool to export transactions from Paystack for a specific timeframe. Use when you need to download transaction data for reporting, analysis, or record-keeping purposes. The API returns a download link that expires after a certain time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for the export range in ISO 8601 format (e.g., 2024-06-30T13:36:54Z). If not provided, exports up to the latest transaction. |
| `from` | string | No | The start date for the export range in ISO 8601 format (e.g., 2024-06-01T00:00:01Z). If not provided, exports from the earliest transaction. |
| `status` | string ("success" | "failed" | "abandoned" | "reversed" | "all") | No | Transaction status filter values. |
| `customer` | integer | No | Filter transactions by customer ID (numeric identifier for the customer). |
| `settlement` | integer | No | Filter transactions by settlement ID (numeric identifier for the settlement). |
| `subaccount_code` | string | No | Filter transactions by subaccount code (e.g., ACCT_dskvlw3y3dMukmt). |

#### 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 Balance

**Slug:** `PAYSTACK_FETCH_BALANCE`

Tool to fetch the available balance on your Paystack integration. Use when you need to check account balance across different currencies.

#### 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 balance ledger

**Slug:** `PAYSTACK_FETCH_BALANCE_LEDGER`

Tool to fetch all pay-ins and pay-outs that went into your Paystack balance. Use when you need to view transaction history and balance changes over time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for filtering ledger entries. Format: YYYY-MM-DD or ISO 8601 timestamp. |
| `from` | string | No | The start date for filtering ledger entries. Format: YYYY-MM-DD or ISO 8601 timestamp. |
| `page` | integer | No | The section to retrieve. Use this to navigate through paginated results (e.g., page 1, 2, 3, etc.). |
| `perPage` | integer | No | Number of records to fetch per page. Allows you to control pagination size for the ledger results. |

#### 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 Bulk Charge Batch

**Slug:** `PAYSTACK_FETCH_BULK_CHARGE_BATCH`

Tool to retrieve a specific bulk charge batch by code. Use when you need to check the progress of a bulk charge batch via its total_charges and pending_charges attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The code for the charge whose batches you want 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 Customer

**Slug:** `PAYSTACK_FETCH_CUSTOMER`

Tool to get details of a customer on your integration. Use when you need to retrieve customer information using their customer code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The code for the customer gotten from the response of the customer 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 |

### Fetch Mandate Authorizations

**Slug:** `PAYSTACK_FETCH_MANDATE_AUTHORIZATIONS`

Tool to fetch the list of direct debit mandate authorizations associated with a customer. Use when you need to retrieve all mandate authorizations for a specific customer ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The customer ID for the authorizations to fetch |

#### 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 Payment Page

**Slug:** `PAYSTACK_FETCH_PAYMENT_PAGE`

Tool to fetch details of a payment page on your Paystack integration. Use when you need to retrieve information about a specific payment page by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a payment page |

#### 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 Payment Request Details

**Slug:** `PAYSTACK_FETCH_PAYMENT_REQUEST`

Tool to fetch details of a payment request from Paystack. Use when you need to retrieve comprehensive information about a previously created payment request, including customer details, payment status, line items, and associated metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a previously created payment request |

#### 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 Payment Session Timeout

**Slug:** `PAYSTACK_FETCH_PAYMENT_SESSION_TIMEOUT`

Tool to fetch the payment session timeout configured on your Paystack integration. Use when you need to check the current timeout duration for payment sessions.

#### 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 Plan

**Slug:** `PAYSTACK_FETCH_PLAN`

Tool to get details of a plan on your integration. Use when you need to retrieve plan information using the plan code or ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The plan ID or code you want to fetch |

#### 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 Product

**Slug:** `PAYSTACK_FETCH_PRODUCT`

Tool to get details of a product on your integration. Use when you need to retrieve product information by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product |

#### 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 Product Orders

**Slug:** `PAYSTACK_FETCH_PRODUCT_ORDERS`

Tool to fetch all orders for a particular product on your Paystack integration. Use when you need to retrieve order history and details for a specific product by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product |

#### 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 Refund

**Slug:** `PAYSTACK_FETCH_REFUND`

Tool to get details of a refund on your integration. Use when you need to retrieve comprehensive information about a specific refund, including status, amount, customer details, and timestamps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The identifier of the refund to fetch. |

#### 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 Split

**Slug:** `PAYSTACK_FETCH_SPLIT`

Tool to get details of a split configuration for a transaction. Use when you need to retrieve split payment configuration information by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the split configuration to fetch |

#### 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 Storefront

**Slug:** `PAYSTACK_FETCH_STOREFRONT`

Tool to get the details of a previously created Storefront. Use when you need to retrieve information about a specific storefront including its products, contacts, and configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront to fetch |

#### 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 Storefront Orders

**Slug:** `PAYSTACK_FETCH_STOREFRONT_ORDERS`

Tool to fetch all orders in a Paystack storefront. Use when you need to retrieve order information for a specific storefront using its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront |

#### 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:** `PAYSTACK_FETCH_SUBACCOUNT`

Tool to get details of a subaccount on your integration. Use when you need to retrieve subaccount information using the subaccount code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The subaccount code you want to fetch |

#### 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 Subscription

**Slug:** `PAYSTACK_FETCH_SUBSCRIPTION`

Tool to get details of a subscription on your integration. Use when you need to retrieve subscription information using the subscription code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The subscription code for the subscription you want to fetch |

#### 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 Transaction

**Slug:** `PAYSTACK_FETCH_TRANSACTION`

Tool to get details of a transaction carried out on your integration. Use when you need to retrieve comprehensive information about a specific transaction, including payment status, customer details, authorization info, and timestamps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the transaction to fetch |

#### 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 Transaction Timeline

**Slug:** `PAYSTACK_FETCH_TRANSACTION_TIMELINE`

Tool to fetch the timeline of a transaction showing the steps taken from initiation to completion. Use when you need to debug payment flows or understand where customers encountered issues during the payment process.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the transaction to fetch the timeline 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 |

### Fetch Transfer Recipient

**Slug:** `PAYSTACK_FETCH_TRANSFER_RECIPIENT`

Tool to fetch details of a transfer recipient. Use when you need to retrieve information about an existing recipient using their recipient code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The transfer recipient code obtained when the recipient was created. This unique code identifies the recipient in your integration. |

#### 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 Virtual Terminal

**Slug:** `PAYSTACK_FETCH_VIRTUAL_TERMINAL`

Tool to fetch a Virtual Terminal on your Paystack integration. Use when you need to retrieve details about an existing virtual terminal, including its configuration, payment methods, and active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Code of the Virtual Terminal |

#### 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 |

### Finalize Payment Request

**Slug:** `PAYSTACK_FINALIZE_PAYMENT_REQUEST`

Tool to finalize the creation of a draft payment request for a customer. Use when you need to convert a draft payment request into an active one that can be paid by the customer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a draft payment request to finalize |

#### 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 Update Subscription Link

**Slug:** `PAYSTACK_GENERATE_UPDATE_SUBSCRIPTION_LINK`

Tool to generate a link for updating the card on a subscription. Use when you need to allow a customer to update their payment card for an active subscription.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Subscription code for which to generate the update 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 |

### Get Payment Request Totals

**Slug:** `PAYSTACK_GET_PAYMENT_REQUEST_TOTALS`

Tool to retrieve metrics for all pending and successful payment requests. Use when you need an overview of payment request amounts grouped by currency and status.

#### 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 Totals

**Slug:** `PAYSTACK_GET_TRANSACTION_TOTALS`

Tool to get the total amount received on your Paystack account. Use when you need to retrieve transaction totals and pending transfers, optionally filtered by date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for the totals calculation in ISO 8601 format (e.g., 2024-06-30T13:36:54Z). If not provided, calculates up to the latest transaction. |
| `from` | string | No | The start date for the totals calculation in ISO 8601 format (e.g., 2024-06-01T00:00:01Z). If not provided, calculates from the earliest 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 |

### Initialize Authorization

**Slug:** `PAYSTACK_INITIALIZE_AUTHORIZATION`

Tool to initialize a reusable authorization for recurring transactions. Use when you need to create a direct debit mandate that allows charging a customer's account repeatedly without requiring them to provide payment details each time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Customer's email address for the authorization |
| `account` | object | No | Customer's bank account details for direct debit authorization. |
| `address` | object | No | Customer's address information for authorization. |
| `channel` | string ("direct_debit") | Yes | Authorization channel. Currently only direct_debit is supported for creating reusable authorizations |
| `callback_url` | string | No | Fully qualified URL (e.g. https://example.com/) to redirect the customer to after authorization |

#### 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 |

### Initialize Transaction

**Slug:** `PAYSTACK_INITIALIZE_TRANSACTION`

Tool to initialize a transaction from your backend. Returns an authorization URL to redirect the customer to for payment. Use when you need to start a payment flow and get a checkout URL for the customer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `plan` | string | No | If transaction is to create a subscription to a predefined plan, provide plan code here. This would invalidate the value provided in amount |
| `email` | string | Yes | Customer's email address (required) |
| `label` | string | No | Used to replace the email address shown on the Checkout form |
| `split` | object | No | Split configuration for transactions. |
| `amount` | integer | Yes | Amount should be in the smallest denomination of the currency (subunit). For example, 10000 kobo = 100 NGN, 10000 pesewas = 100 GHS |
| `bearer` | string ("account" | "subaccount") | No | Who bears the transaction charge. |
| `channels` | array | No | An array of payment channels to control what channels you want to make available to the user to make a payment with |
| `currency` | string ("GHS" | "KES" | "NGN" | "ZAR" | "USD") | No | Supported currencies for Paystack transactions. |
| `metadata` | object | No | JSON object of custom data to include with the transaction |
| `reference` | string | No | Unique transaction reference. Only alphanumeric characters, hyphens, periods, and equals signs allowed. If not provided, Paystack will generate one |
| `split_code` | string | No | The split code of the transaction split. Use this to split payment between multiple accounts |
| `subaccount` | string | No | The code for the subaccount that owns the payment. This overrides the split configuration if provided |
| `callback_url` | string | No | Fully qualified URL to redirect the customer to after a successful payment. Use this to override the callback URL provided on the dashboard for this transaction |
| `invoice_limit` | integer | No | Number of times to charge customer during subscription to plan |
| `transaction_charge` | integer | No | A flat fee to charge the subaccount for this transaction in subunit. This overrides the split percentage set when the subaccount was created |

#### 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 Bulk Charge

**Slug:** `PAYSTACK_INITIATE_BULK_CHARGE`

Tool to initiate a bulk charge on your integration. Use when you need to charge multiple customers at once using their authorization codes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `charges` | array | Yes | Array of charge objects with authorization, amount, and optional reference. Each object represents a charge to be processed |

#### 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 Banks

**Slug:** `PAYSTACK_LIST_BANKS`

Tool to get a list of all supported banks and their properties on Paystack. Use when you need to retrieve available banks for payments, transfers, or account verification.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `page` | integer | No | The offset to retrieve data from (page number) |
| `type` | string ("ghipps" | "mobile_money" | "nuban" | "kepss" | "basa") | No | Types of financial channels. |
| `country` | string ("ghana" | "kenya" | "nigeria" | "south africa") | No | Supported countries for bank listings. |
| `gateway` | string ("emandate" | "digitalbankmandate") | No | Gateway types for Nigerian banks. |
| `perPage` | integer | No | The number of records to fetch per request |
| `currency` | string ("GHS" | "KES" | "NGN" | "ZAR") | No | Supported currencies for bank listings. |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |
| `pay_with_bank` | boolean | No | A flag to filter for banks a customer can pay directly from |
| `include_nip_sort_code` | boolean | No | A flag that returns Nigerian banks with their NIP institution code. The returned value can be used in identifying institutions on NIP. |
| `pay_with_bank_transfer` | boolean | No | A flag to filter for available banks a customer can make a transfer to complete a payment |
| `enabled_for_verification` | boolean | No | A flag to filter the banks that are supported for account verification in South Africa. You need to combine this with either the currency or country filter. |

#### 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 Bulk Charge Batches

**Slug:** `PAYSTACK_LIST_BULK_CHARGE_BATCHES`

Tool to list bulk charge batches created on your integration. Use when you need to view all bulk charge batches, optionally filtering by status (active, paused, or complete) and paginating through results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The page number to retrieve. Use this to navigate through paginated results. |
| `status` | string ("active" | "paused" | "complete") | No | Status filter options for bulk charge batches. |
| `perPage` | integer | No | Number of records to fetch per page. Controls pagination size for the batch results. |

#### 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 Charges in Batch

**Slug:** `PAYSTACK_LIST_CHARGES_IN_BATCH`

Tool to retrieve the charges associated with a specified bulk charge batch. Use when you need to inspect individual charge details within a batch to monitor charge statuses or retrieve charge-level information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The batch code for the bulk charge whose charges you want to retrieve |
| `page` | integer | No | The offset to retrieve data from (page number) |
| `status` | string ("success" | "failed" | "pending" | "error" | "inactive_authorization") | No | Status values for filtering charges. |
| `perPage` | integer | No | Number of records to fetch per page |

#### 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 countries

**Slug:** `PAYSTACK_LIST_COUNTRIES`

Tool to retrieve a list of countries that Paystack currently supports. Use when you need to know which countries are available for Paystack operations.

#### 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 Customers

**Slug:** `PAYSTACK_LIST_CUSTOMERS`

Tool to list customers available on your integration. Use when you need to retrieve all customers with optional filtering by date range and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `page` | string | No | The offset to retrieve data from (page number) |
| `perPage` | string | No | The number of records to fetch per request |
| `to_date` | string | No | The end date for filtering customers |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `from_date` | string | No | The start date for filtering customers |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |

#### 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 Disputes

**Slug:** `PAYSTACK_LIST_DISPUTES`

Tool to list transaction disputes filed by customers on your Paystack integration. Use when you need to retrieve disputes with optional filtering by status, transaction, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for filtering disputes (ISO 8601 format or YYYY-MM-DD) |
| `from` | string | No | The start date for filtering disputes (ISO 8601 format or YYYY-MM-DD) |
| `page` | integer | No | The section to retrieve (page number) |
| `status` | string ("awaiting-merchant-feedback" | "awaiting-bank-feedback" | "pending" | "resolved") | No | Status values for dispute filtering. |
| `perPage` | integer | No | Number of records to fetch per page |
| `transaction` | string | No | Transaction ID to filter disputes |

#### 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 Apple Pay Domains

**Slug:** `PAYSTACK_LIST_DOMAINS`

Tool to list all registered Apple Pay domains on your integration. Use when you need to retrieve domains configured for Apple Pay payments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |

#### 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 Mandate Authorizations

**Slug:** `PAYSTACK_LIST_MANDATE_AUTHORIZATIONS`

Tool to get a list of all direct debit mandates on your integration. Use when you need to retrieve mandate authorizations with optional filtering by status and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | The cursor value of the next set of authorizations to fetch. You can get this from the meta object of the response |
| `status` | string ("pending" | "active" | "revoked") | No | Status values for mandate authorizations. |
| `per_page` | integer | No | The number of authorizations to fetch per request |

#### 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 Orders

**Slug:** `PAYSTACK_LIST_ORDERS`

Tool to list orders available on your integration. Use when you need to retrieve all orders with optional filtering by date range and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The section to retrieve |
| `perPage` | integer | No | Number of records to fetch per page |
| `to_date` | string | No | The end date for filtering orders |
| `from_date` | string | No | The start date for filtering orders |

#### 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 Payment Pages

**Slug:** `PAYSTACK_LIST_PAYMENT_PAGES`

Tool to list payment pages available on your Paystack integration. Use when you need to retrieve all payment pages with optional filtering by date range and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date in ISO 8601 format (YYYY-MM-DD) |
| `from` | string | No | The start date in ISO 8601 format (YYYY-MM-DD) |
| `page` | integer | No | The section to retrieve |
| `perPage` | integer | No | Number of records to fetch per page |

#### 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 Payment Requests

**Slug:** `PAYSTACK_LIST_PAYMENT_REQUESTS`

Tool to list all previously created payment requests to your customers. Use when you need to retrieve a list of payment requests with optional filters for customer, status, currency, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for filtering payment requests (ISO 8601 format) |
| `from` | string | No | The start date for filtering payment requests (ISO 8601 format) |
| `page` | integer | No | The section to retrieve (page number) |
| `status` | string ("draft" | "pending" | "success" | "failed") | No | Status options for filtering payment requests. |
| `perPage` | integer | No | Number of records to fetch per page |
| `currency` | string | No | If your integration supports more than one currency, choose the one to filter by (e.g., NGN, GHS, ZAR, USD) |
| `customer` | string | No | Customer ID to filter payment requests for a specific customer |

#### 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 Plans

**Slug:** `PAYSTACK_LIST_PLANS`

Tool to list all subscription plans available on your integration. Use when you need to retrieve plans, optionally filtering by interval, amount, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | Filter plans created up to this date (ISO 8601 format or YYYY-MM-DD). |
| `from` | string | No | Filter plans created from this date (ISO 8601 format or YYYY-MM-DD). |
| `page` | integer | No | The page number to retrieve. Use this to navigate through paginated results. |
| `amount` | integer | No | Filter plans by amount in subunit (kobo if NGN, pesewas if GHS, cents if ZAR or USD). |
| `perPage` | integer | No | Number of records to fetch per page. Controls pagination size for the plan results. |
| `interval` | string ("daily" | "weekly" | "monthly" | "biannually" | "annually") | No | Plan billing interval options. |

#### 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 Products

**Slug:** `PAYSTACK_LIST_PRODUCTS`

Tool to list products available on your integration. Use when you need to retrieve all products with optional filtering by date range, active status, and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The section to retrieve (page number) |
| `active` | boolean | No | The state of the product - filter by active status |
| `perPage` | integer | No | Number of records to fetch per page |
| `to_date` | string | No | The end date for filtering products |
| `from_date` | string | No | The start date for filtering products |

#### 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 Refunds

**Slug:** `PAYSTACK_LIST_REFUNDS`

Tool to list refunds available on your integration. Use when you need to retrieve a list of refunds with optional filters for date range and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | The end date for filtering refunds (ISO 8601 format) |
| `from` | string | No | The start date for filtering refunds (ISO 8601 format) |
| `page` | integer | No | The section to retrieve (page number) |
| `perPage` | integer | No | Number of records to fetch per page |

#### 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 Settlements

**Slug:** `PAYSTACK_LIST_SETTLEMENTS`

Tool to list settlements made to your settlement accounts. Use when you need to retrieve settlement information with optional pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The offset to retrieve data from (page number for pagination). |
| `perPage` | integer | No | The number of records to fetch per request. Controls pagination size. |

#### 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 Splits

**Slug:** `PAYSTACK_LIST_SPLITS`

Tool to list the transaction splits available on your integration. Use when you need to retrieve all split configurations with optional filtering by name, status, subaccount, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The name of the split to filter by |
| `page` | integer | No | The offset to retrieve data from (page number) |
| `active` | boolean | No | The status of the split - true for active splits, false for inactive splits |
| `to_date` | string | No | The end date for filtering splits |
| `per_page` | integer | No | The number of records to fetch per request |
| `from_date` | string | No | The start date for filtering splits |
| `subaccount_code` | string | No | Filter by subaccount code |

#### 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 states for address verification

**Slug:** `PAYSTACK_LIST_STATES_AVS`

Tool to retrieve a list of states for a country for address verification. Use when you need to get available states/provinces for a specific country code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `country` | string | Yes | The country code of the states to list. It is gotten after the charge request. |

#### 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 Storefront Products

**Slug:** `PAYSTACK_LIST_STOREFRONT_PRODUCTS`

Tool to list all products in a Paystack storefront. Use when you need to retrieve product information for a specific storefront using its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront |

#### 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 Storefronts

**Slug:** `PAYSTACK_LIST_STOREFRONTS`

Tool to list storefronts available on your integration. Use when you need to retrieve all storefronts with optional filtering by status and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The offset to retrieve data from. Use this to navigate through paginated results. |
| `status` | string ("active" | "inactive") | No | Storefront status options. |
| `perPage` | integer | No | Number of records to fetch per request. Controls pagination size for the storefront results. |

#### 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 Subaccounts

**Slug:** `PAYSTACK_LIST_SUBACCOUNTS`

Tool to list subaccounts available on your integration. Use when you need to retrieve all subaccounts with optional filtering by active status and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The offset to retrieve data from |
| `active` | boolean | No | Filter by the state of the subaccounts |
| `perPage` | integer | No | Number of records to fetch per request |

#### 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 Subscriptions

**Slug:** `PAYSTACK_LIST_SUBSCRIPTIONS`

Tool to list all subscriptions available on your integration. Use when you need to retrieve subscriptions, optionally filtering by plan, customer, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | Filter subscriptions created up to this date (ISO 8601 format or YYYY-MM-DD). |
| `from` | string | No | Filter subscriptions created from this date (ISO 8601 format or YYYY-MM-DD). |
| `page` | integer | No | The page number to retrieve. Use this to navigate through paginated results. |
| `plan` | integer | No | Filter subscriptions by plan ID. Use this to retrieve subscriptions for a specific plan. |
| `perPage` | integer | No | Number of records to fetch per page. Controls pagination size for the subscription results. |
| `customer` | string | No | Filter subscriptions by customer ID. Use this to retrieve subscriptions for a specific customer. |

#### 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 Transactions

**Slug:** `PAYSTACK_LIST_TRANSACTIONS`

Tool to list transactions that have occurred on your integration. Use when you need to retrieve all transactions with optional filtering by date range, status, source, channel, customer, and other criteria. Supports both cursor-based and page-based pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `page` | integer | No | The offset to retrieve data from |
| `amount` | integer | No | Filter transactions by a specific amount |
| `source` | string ("merchantApi" | "checkout" | "pos" | "virtualTerminal") | No | Transaction source values. |
| `status` | string ("success" | "failed" | "abandoned" | "reversed") | No | Transaction status values. |
| `channel` | string ("card" | "pos" | "bank" | "dedicated_nuban" | "ussd" | "bank_transfer") | No | Payment channel values. |
| `to_date` | string | No | The end date for filtering transactions |
| `per_page` | integer | No | The number of records to fetch per request |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `from_date` | string | No | The start date for filtering transactions |
| `settlement` | integer | No | The settlement ID to filter for settled transactions |
| `split_code` | string | No | Filter transaction by split code |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |
| `terminal_id` | string | No | Filter transactions by a terminal ID |
| `customer_code` | string | No | Filter transactions by a customer code |
| `subaccount_code` | string | No | Filter transaction by subaccount code |
| `virtual_account_number` | string | No | Filter transactions by a virtual account 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 |

### List Transfer Recipients

**Slug:** `PAYSTACK_LIST_TRANSFER_RECIPIENTS`

Tool to list transfer recipients available on your integration. Use when you need to retrieve all recipients with optional pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `page` | integer | No | The offset to retrieve data from |
| `per_page` | integer | No | The number of records to fetch per request |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |

#### 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:** `PAYSTACK_LIST_TRANSFERS`

Tool to list all transfers carried out on your integration. Use when you need to retrieve transfer history with optional filtering by status, recipient, or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data |
| `page` | integer | No | The offset to retrieve data from (page number) |
| `status` | string ("pending" | "success" | "failed" | "otp" | "abandoned" | "reversed" | "blocked" | "rejected" | "received") | No | Transfer status filter options. |
| `to_date` | string | No | The end date for filtering transfers (YYYY-MM-DD format) |
| `per_page` | integer | No | The number of records to fetch per request |
| `previous` | string | No | An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data |
| `from_date` | string | No | The start date for filtering transfers (YYYY-MM-DD format) |
| `recipient` | string | No | Filter transfer by the recipient code |
| `use_cursor` | boolean | No | A flag to indicate if cursor based pagination should be used |

#### 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 Virtual Terminals

**Slug:** `PAYSTACK_LIST_VIRTUAL_TERMINALS`

Tool to list virtual terminals available on your integration. Use when you need to retrieve all virtual terminals with pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The offset to retrieve data from. Use this to navigate through paginated results. |
| `perPage` | integer | No | The number of records to fetch per request. Controls pagination size for the results. |

#### 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 |

### Pause Bulk Charge

**Slug:** `PAYSTACK_PAUSE_BULK_CHARGE`

Tool to pause processing of a bulk charge batch. Use when you need to temporarily stop a bulk charge batch from processing further charges.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The batch code for the bulk charge you want to pause |

#### 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 |

### Publish Storefront

**Slug:** `PAYSTACK_PUBLISH_STOREFRONT`

Tool to make a Storefront publicly available on Paystack. Use this when you need to publish a previously created storefront so that customers can access and purchase from it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront to publish. You can obtain storefront IDs from PAYSTACK_CREATE_STOREFRONT or by listing storefronts. |

#### 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 |

### Remove Subaccount from Split

**Slug:** `PAYSTACK_REMOVE_SUBACCOUNT_FROM_SPLIT`

Tool to remove a subaccount from a split configuration. Use this when you need to stop payment distribution to a specific partner or customer in an existing split. The share parameter must match the subaccount's current allocation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the split configuration to update |
| `share` | integer | Yes | The share amount currently allocated to this subaccount in the split. This value must match the subaccount's current share allocation. |
| `subaccount` | string | Yes | Subaccount code of the customer or partner to remove from the split. This code starts with 'ACCT_'. |

#### 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 |

### Resend OTP for Transfer

**Slug:** `PAYSTACK_RESEND_OTP_FOR_TRANSFER`

Tool to resend OTP for a transfer. Use when a customer is having trouble receiving their OTP and needs a new one sent to complete their transfer.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reason` | string ("disable_otp" | "transfer") | Yes | Specify the flag to indicate the purpose of the OTP. Valid values are 'disable_otp' or 'transfer' |
| `transfer_code` | string | Yes | The transfer code that requires an OTP validation |

#### 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:** `PAYSTACK_RESOLVE_CARD_BIN`

Tool to get basic information about a card BIN (Bank Identification Number). Use when you need to retrieve card details such as brand, issuing bank, country, and card type from the first 6 digits of a card.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bin` | integer | Yes | The card bank identification number (first 6 digits of the card) |

#### 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 |

### Resume Bulk Charge Batch

**Slug:** `PAYSTACK_RESUME_BULK_CHARGE_BATCH`

Tool to resume processing of a previously paused bulk charge batch. Use when you need to restart a paused bulk charge batch using its batch code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The batch code for the bulk charge you want to resume |

#### 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 |

### Send Payment Request Notification

**Slug:** `PAYSTACK_SEND_PAYMENT_REQUEST_NOTIFICATION`

Tool to send an email notification to a customer for a previously created payment request. Use when you need to remind a customer about an unpaid invoice or payment request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a previously created payment request. This action will trigger an email reminder to the customer. |

#### 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 |

### Send Subscription Update Link

**Slug:** `PAYSTACK_SEND_SUBSCRIPTION_UPDATE_LINK`

Tool to send an email to the customer with a link to update the card on their subscription. Use when a customer needs to update their payment card for an active subscription and you want to notify them via email.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Subscription code for which to send the update link email. This code identifies the subscription whose payment card details need updating. |

#### 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 |

### Set Risk Action

**Slug:** `PAYSTACK_SET_RISK_ACTION`

Tool to set a customer's risk action by whitelisting or blacklisting them. Use when you need to apply fraud prevention rules to a specific customer by setting their risk action to 'allow' (whitelist), 'deny' (blacklist), or 'default' (no special action).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customer` | string | Yes | Customer code or email address to set risk action for |
| `risk_action` | string ("allow" | "deny" | "default") | No | Risk action types that can be applied to a customer. |

#### 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 |

### Submit Phone

**Slug:** `PAYSTACK_SUBMIT_PHONE`

Tool to submit phone number when requested during a charge transaction. Use this when a charge requires phone number submission for verification or authentication purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `phone` | string | Yes | Customer's mobile phone number |
| `reference` | string | Yes | The reference of the ongoing 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 |

### Trigger direct debit activation charge

**Slug:** `PAYSTACK_TRIGGER_DIRECT_DEBIT_ACTIVATION_CHARGE`

Tool to trigger an activation charge on an inactive direct debit mandate for a customer. Use when a mandate needs to be reactivated or retried.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The customer ID attached to the authorization. This identifies the customer whose direct debit mandate needs activation. |
| `authorization_id` | integer | Yes | The authorization ID obtained from the direct debit initiation response. This identifies the specific mandate to activate. |

#### 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 |

### Unassign Destination from Virtual Terminal

**Slug:** `PAYSTACK_UNASSIGN_DESTINATION_FROM_VIRTUAL_TERMINAL`

Tool to unassign WhatsApp destinations from a Virtual Terminal. Use when you need to remove recipients who should no longer receive payment notifications for a specific Virtual Terminal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Code of the Virtual Terminal to unassign destinations from |
| `targets` | array | Yes | Array of WhatsApp numbers in international format (E.164) to unassign from the Virtual Terminal, e.g., +2548012345678 |

#### 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 |

### Unregister Apple Pay Domain

**Slug:** `PAYSTACK_UNREGISTER_APPLE_PAY_DOMAIN`

Tool to unregister a top-level domain or subdomain previously used for Apple Pay integration. Use when you need to remove a domain from your Apple Pay configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domainName` | string | Yes | The domain name or subdomain to unregister from Apple Pay integration. Must be a previously registered domain. |

#### 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 Customer

**Slug:** `PAYSTACK_UPDATE_CUSTOMER`

Tool to update a customer's details on your Paystack integration. Use when you need to modify existing customer information such as name, phone number, or metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The code for the customer gotten from the response of the customer creation |
| `phone` | string | No | Customer's phone number |
| `metadata` | string | No | Stringified JSON object of custom data |
| `last_name` | string | No | Customer's last name |
| `first_name` | string | No | Customer's first 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 |

### Update Payment Page

**Slug:** `PAYSTACK_UPDATE_PAYMENT_PAGE`

Tool to update a payment page on your Paystack integration. Use when you need to modify details of an existing payment page such as name, description, amount, or active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the payment page to update |
| `name` | string | No | Name of the payment page |
| `active` | boolean | No | Set to false to deactivate page url |
| `amount` | integer | No | Amount should be in the subunit of the currency (kobo if currency is NGN, pesewas if currency is GHS, and cents if currency is ZAR) |
| `description` | string | No | The description of the page |

#### 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 Request

**Slug:** `PAYSTACK_UPDATE_PAYMENT_REQUEST`

Tool to update a payment request on your Paystack integration. Use when you need to modify details of an existing payment request such as amount, description, due date, or other attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of a previously created payment request |
| `tax` | array | No | Array of taxes to apply to the payment request |
| `draft` | boolean | No | Indicate if request should be saved as draft. Defaults to false and overrides send_notification |
| `amount` | integer | No | Payment request amount in subunit (e.g., kobo for NGN, cents for USD). Only useful if line_items and tax values are ignored. The endpoint will throw a friendly warning if neither is available. |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "USD") | No | Currency options for payment requests. |
| `customer` | string | No | Customer id or code |
| `due_date` | string | No | ISO 8601 representation of request due date |
| `line_items` | array | No | Array of line items for the payment request |
| `split_code` | string | No | The split code of the transaction split. This allows you to split the payment with one or more accounts |
| `description` | string | No | A short description of the payment request |
| `has_invoice` | boolean | No | Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) even if there are no line_items or tax passed |
| `invoice_number` | integer | No | Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. |
| `send_notification` | boolean | No | Indicates whether Paystack sends an email notification to customer. Defaults to true |

#### 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 Session Timeout

**Slug:** `PAYSTACK_UPDATE_PAYMENT_SESSION_TIMEOUT`

Tool to update the payment session timeout on your Paystack integration. Use when you need to change the duration before a payment session expires.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `timeout` | integer | Yes | Timeout before canceling session in seconds. Valid range is 60-3600 seconds (1 minute to 1 hour). Set to 0 to disable session timeouts entirely. |

#### 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 Plan

**Slug:** `PAYSTACK_UPDATE_PLAN`

Tool to update a plan's details on your Paystack integration. Use when you need to modify an existing plan's name, amount, interval, or other settings. Only the fields you provide will be updated; other fields remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The plan code you want to update |
| `name` | string | No | Name of the plan |
| `amount` | integer | No | Amount to charge in subunit (kobo if currency is NGN, pesewas if currency is GHS, cents if currency is ZAR or USD) |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "USD") | No | Supported currencies for plans |
| `interval` | string ("daily" | "weekly" | "monthly" | "biannually" | "annually") | No | Interval for recurring payments |
| `send_sms` | boolean | No | Set to false if you don't want text messages to be sent to your customers |
| `description` | string | No | A description for this plan |
| `invoice_limit` | integer | No | Number of invoices to raise during subscription to this plan. Can be overridden by specifying an invoice_limit while subscribing |
| `send_invoices` | boolean | No | Set to false if you don't want invoices to be sent to your customers |

#### 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 Product

**Slug:** `PAYSTACK_UPDATE_PRODUCT`

Tool to update a product on your integration. Use when you need to modify product details like name, description, price, or currency.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the product to update |
| `name` | string | No | Name of product |
| `price` | integer | No | Price should be in kobo if currency is NGN, pesewas if currency is GHS, and cents if currency is ZAR |
| `currency` | string ("NGN" | "GHS" | "ZAR" | "USD") | No | Supported currency codes for Paystack products. |
| `metadata` | object | No | JSON object of custom data |
| `quantity` | integer | No | Number of products in stock. Use if unlimited is false |
| `unlimited` | boolean | No | Set to true if the product has unlimited stock. Leave as false if the product has limited stock |
| `split_code` | string | No | The split code if sharing the transaction with partners |
| `description` | string | No | The description of the product |

#### 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 Split Configuration

**Slug:** `PAYSTACK_UPDATE_SPLIT`

Tool to update a split configuration for transactions. Use when you need to modify split settings such as name, active status, or bearer type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID or code of the split configuration to update |
| `name` | string | No | Name of the transaction split |
| `active` | boolean | No | Toggle status of split. When true, the split is active, else it's inactive |
| `bearer_type` | string ("subaccount" | "account" | "all-proportional" | "all") | No | Who bears the Paystack transaction charges. |
| `bearer_subaccount` | string | No | Subaccount code that will bear the transaction charges. This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type |

#### 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 Storefront

**Slug:** `PAYSTACK_UPDATE_STOREFRONT`

Tool to update the details of a previously created Storefront. Use when you need to modify storefront information such as name, description, or slug.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the Storefront to update |
| `name` | string | No | Name of the storefront |
| `slug` | string | No | A unique identifier to access your store. Once the storefront is created, it can be accessed from https://paystack.shop/your-slug |
| `description` | string | No | The description of the storefront |

#### 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:** `PAYSTACK_UPDATE_SUBACCOUNT`

Tool to update a subaccount's details on your Paystack integration. Use when you need to modify existing subaccount information such as business name, bank details, contact information, or activation status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The subaccount code you want to update |
| `active` | boolean | No | Activate or deactivate a subaccount |
| `metadata` | string | No | Stringified JSON object of custom data |
| `description` | string | No | A description for this subaccount |
| `business_name` | string | No | Name of business for subaccount |
| `account_number` | string | No | Bank account number |
| `settlement_bank` | string | No | Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. |
| `percentage_charge` | number | No | Percentage of transaction amount charged by the subaccount |
| `primary_contact_name` | string | No | The name of the contact person for this subaccount |
| `primary_contact_email` | string | No | A contact email for the subaccount |
| `primary_contact_phone` | string | No | A phone number to call for this subaccount |

#### 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 Transfer Recipient

**Slug:** `PAYSTACK_UPDATE_TRANSFER_RECIPIENT`

Tool to update the details of a transfer recipient. Use when you need to modify an existing recipient's name or email address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The transfer recipient code obtained when the recipient was created. This unique code identifies the recipient to be updated. |
| `name` | string | No | The recipient's name according to their account registration. This is the name that will appear on transfer receipts. |
| `email` | string | No | Email address of the recipient. Optional but recommended for better record-keeping and communication. |

#### 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 Bank Account

**Slug:** `PAYSTACK_VALIDATE_BANK_ACCOUNT`

Tool to validate the authenticity of a customer's bank account before sending money. Use when you need to confirm account details are correct and the account is active and can receive funds.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bank_code` | string | Yes | The bank code of the customer's bank (required). You can fetch the bank codes by using the List Banks endpoint. |
| `account_name` | string | Yes | Customer's first and last name registered with their bank (required) |
| `account_type` | string ("personal" | "business") | Yes | The type of the customer's account number (required) |
| `country_code` | string | Yes | The two digit ISO code of the customer's bank (required) |
| `document_type` | string ("identityNumber" | "passportNumber" | "businessRegistrationNumber") | Yes | Customer's mode of identity (required) |
| `account_number` | string | Yes | Customer's account number (required) |
| `document_number` | string | No | Customer's mode of identity 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 |

### Validate Customer

**Slug:** `PAYSTACK_VALIDATE_CUSTOMER`

Tool to validate a customer's identity on your Paystack integration. Use when you need to verify customer identification details such as BVN and bank account information. The verification happens asynchronously, and Paystack sends a webhook event when verification is complete.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bvn` | string | Yes | Customer's Bank Verification Number |
| `code` | string | Yes | The code for the customer gotten from the response of the customer creation |
| `type` | string | Yes | Predefined types of identification. Typically 'bank_account' |
| `value` | string | No | Customer's identification number |
| `country` | string | Yes | Two-letter country code of identification issuer |
| `bank_code` | string | Yes | Bank code. You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank) |
| `last_name` | string | Yes | Customer's last name |
| `first_name` | string | Yes | Customer's first name |
| `middle_name` | string | No | Customer's middle name |
| `account_number` | string | Yes | Customer's bank account 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 |

### Validate Order

**Slug:** `PAYSTACK_VALIDATE_ORDER`

Tool to validate a pay for me order on Paystack. Use when you need to verify the details and status of a previously created order using its unique order code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The unique code of a previously created order |

#### 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 Payment Request

**Slug:** `PAYSTACK_VERIFY_PAYMENT_REQUEST`

Tool to verify the status of a previously created payment request on Paystack. Use when you need to check if a payment request has been paid or to retrieve details about a specific payment request using its request code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The payment request code (e.g., PRQ_xxxxx) of a previously created payment request. Note: Despite the parameter name 'id', this endpoint requires the request_code string, not the numeric 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 |

### Verify Storefront Slug

**Slug:** `PAYSTACK_VERIFY_STOREFRONT_SLUG`

Tool to verify the availability of a slug before using it for a Storefront. Use when you need to check if a slug is available before creating a new storefront.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | Yes | The custom slug to verify for storefront availability. Used when creating a storefront. |

#### 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

**Slug:** `PAYSTACK_VERIFY_TRANSACTION`

Tool to confirm the status of a transaction using its reference. Use when you need to verify a payment was successful or check the current state of a transaction after customer completes checkout.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reference` | string | Yes | The transaction reference to verify |

#### 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 |
