import * as _$openapi_fetch0 from "openapi-fetch";
import { Client, MaybeOptionalInit } from "openapi-fetch";

//#region src/openapi-types.d.ts
/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */
interface paths {
  "/transaction/initialize": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Initialize Transaction
     * @description Create a new transaction
     */
    post: operations["transaction_initialize"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/charge_authorization": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Charge Authorization
     * @description Charge all authorizations marked as reusable with this endpoint whenever you need to receive payments
     */
    post: operations["transaction_chargeAuthorization"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/partial_debit": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Partial Debit
     * @description Retrieve part of a payment from a customer
     */
    post: operations["transaction_partialDebit"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/check_authorization": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Check Authorization
     * @description Check if an authorization code can be used for a charge.
     */
    post: operations["transaction_checkAuthorization"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/verify/{reference}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Verify Transaction
     * @description Verify a previously initiated transaction using it's reference
     */
    get: operations["transaction_verify"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Transactions
     * @description List transactions carried out on your integration
     */
    get: operations["transaction_list"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Transaction
     * @description Fetch a transaction to get its details
     */
    get: operations["transaction_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/{id}/event": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Get Transaction Event
     * @description Fetch the event for a specific transaction.
     */
    get: operations["transaction_event"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/{id}/session": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Get Transaction Session
     * @description Fetch the session for a specific transaction.
     */
    get: operations["transaction_session"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/timeline/{id_or_reference}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Transaction Timeline
     * @description Fetch the steps taken from the initiation to the completion of a transaction
     */
    get: operations["transaction_timeline"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/totals": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Transaction Totals
     * @description Get the total amount of all transactions
     */
    get: operations["transaction_totals"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transaction/export": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Export Transactions
     * @description Download transactions that occurred on your integration for a specific timeframe
     */
    get: operations["transaction_export"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Create Charge
     * @description Initiate a payment by integrating the payment channel of your choice.
     */
    post: operations["charge_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/submit_pin": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Submit PIN
     * @description Submit PIN to continue a charge
     */
    post: operations["charge_submitPin"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/submit_otp": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Submit OTP
     * @description Submit OTP to complete a charge
     */
    post: operations["charge_submitOtp"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/submit_phone": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Submit Phone
     * @description Submit phone number when requested
     */
    post: operations["charge_submitPhone"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/submit_birthday": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Submit Birthday
     * @description Submit the customer's birthday when requested
     */
    post: operations["charge_submitBirthday"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/submit_address": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Submit Address
     * @description Send the details of the customer's address for address verification
     */
    post: operations["charge_submitAddress"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/charge/{reference}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Check pending charge
     * @description When you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should.
     */
    get: operations["charge_check"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bulkcharge": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Bulk Charge Batches
     * @description List all bulk charge batches.
     */
    get: operations["bulkCharge_list"];
    put?: never;
    /**
     * Initiate Bulk Charge
     * @description Charge multiple customers in batches
     */
    post: operations["bulkCharge_initiate"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bulkcharge/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the charge whose batches you want to retrieve.
         * @example BCH_180tl7oq7cayggh
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Bulk Charge Batch
     * @description This endpoint retrieves a specific batch code. It also returns useful information on its progress by
     *     way of the `total_charges` and `pending_charges` attributes.
     */
    get: operations["bulkCharge_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bulkcharge/{id_or_code}/charges": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Charges in a Batch
     * @description This endpoint retrieves the charges associated with a specified batch code
     */
    get: operations["bulkCharge_charges"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bulkcharge/pause/{code}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Pause Bulk Charge Batch
     * @description Pause the processing of a charge batch
     */
    get: operations["bulkCharge_pause"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bulkcharge/resume/{code}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Resume Bulk Charge Batch
     * @description Resume the processing of a previously paused charge batch
     */
    get: operations["bulkCharge_resume"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subaccount": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Subaccounts
     * @description List subaccounts available on your integration
     */
    get: operations["subaccount_list"];
    put?: never;
    /**
     * Create Subaccount
     * @description Create a subacount for a partner
     */
    post: operations["subaccount_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subaccount/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The subaccount ID or code you want to fetch
         * @example ACCT_6uujpqtzmnufzkw
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Subaccount
     * @description Get details of a subaccount on your integration
     */
    get: operations["subaccount_fetch"];
    /**
     * Update Subaccount
     * @description Update a subaccount details on your integration
     */
    put: operations["subaccount_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/split": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Splits
     * @description List the transaction splits available on your integration
     */
    get: operations["split_list"];
    put?: never;
    /**
     * Create Split
     * @description Create a split configuration for transactions
     */
    post: operations["split_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/split/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Split
     * @description Get details of a split configuration for a transaction
     */
    get: operations["split_fetch"];
    /**
     * Update Split
     * @description Update a split configuration for transactions
     */
    put: operations["split_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/split/{id}/subaccount/add": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Add Subaccount to Split
     * @description Add a subaccount to a split configuration, or update the share of an existing subaccount
     */
    post: operations["split_addSubaccount"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/split/{id}/subaccount/remove": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Remove Subaccount from split
     * @description Remove a subaccount from a split configuration
     */
    post: operations["split_removeSubaccount"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/{id}/event": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Send Event
     * @description Send an event from your application to the Paystack Terminal
     */
    post: operations["terminal_sendEvent"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/{terminal_id}/event/{event_id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Event Status
     * @description Check the status of an event sent to the Terminal
     */
    get: operations["terminal_fetchEventStatus"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/{terminal_id}/presence": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Terminal Status
     * @description Check the availiability of a Terminal before sending an event to it
     */
    get: operations["terminal_fetchTerminalStatus"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Terminals
     * @description List the Terminals available on your integration
     */
    get: operations["terminal_list"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/{terminal_id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        terminal_id: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Terminal
     * @description Get the details of a Terminal
     */
    get: operations["terminal_fetch"];
    /**
     * Update Terminal
     * @description Update the details of a Terminal
     */
    put: operations["terminal_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/commission_device": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Commission Terminal
     * @description Activate your debug device by linking it to your integration
     */
    post: operations["terminal_commission"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/terminal/decommission_device": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Decommission Terminal
     * @description Unlink your debug device from your integration
     */
    post: operations["terminal_decommission"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Virtual Terminals
     * @description List Virtual Terminals on your integration
     */
    get: operations["virtualTerminal_list"];
    put?: never;
    /**
     * Create Virtual Terminal
     * @description Create a Virtual Terminal on your integration
     */
    post: operations["virtualTerminal_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal/{code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Virtual Terminal
     * @description Fetch a Virtual Terminal on your integration
     */
    get: operations["virtualTerminal_fetch"];
    /**
     * Update Virtual Terminal
     * @description Update a Virtual Terminal on your integration
     */
    put: operations["virtualTerminal_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal/{code}/deactivate": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    get?: never;
    /**
     * Deactivate Virtual Terminal
     * @description Deactivate a Virtual Terminal on your integration
     */
    put: operations["virtualTerminal_deactivate"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal/{code}/destination/assign": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Assign Destination to Virtual Terminal
     * @description Add a destination (WhatsApp number) to a Virtual Terminal on your integration
     */
    post: operations["virtualTerminal_destinationAssign"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal/{code}/destination/unassign": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Unassign Destination from Virtual Terminal
     * @description Unassign a destination (WhatsApp Number) from a Virtual Terminal on your integration
     */
    post: operations["virtualTerminal_destinationUnassign"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/virtual_terminal/{code}/split_code": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    get?: never;
    /**
     * Add Split Code to Virtual Terminal
     * @description Add Split Code to Virtual Terminal
     */
    put: operations["virtualTerminal_addSplitCode"];
    post?: never;
    /**
     * Remove Split Code from Virtual Terminal
     * @description Remove Split Code from Virtual Terminal
     */
    delete: operations["virtualTerminal_deleteSplitCode"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Customers
     * @description List customers available on your integration
     */
    get: operations["customer_list"];
    put?: never;
    /**
     * Create Customer
     * @description Create a customer on your integration
     */
    post: operations["customer_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/{email_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An email or customer code for the customer you want to fetch
         * @example CUS_c6wqvwmvwopw4ms
         */
        email_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Customer
     * @description Get details of a customer on your integration.
     */
    get: operations["customer_fetch"];
    /**
     * Update Customer
     * @description Update a customer's details on your integration
     */
    put: operations["customer_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/set_risk_action": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Set Risk Action
     * @description Set customer's risk action by whitelisting or blacklisting the customer
     */
    post: operations["customer_riskAction"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/{customer_code}/identification": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Customer code
         * @example CUS_c6wqvwmvwopw4ms
         */
        customer_code: string;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Validate Customer
     * @description Validate a customer's identity
     */
    post: operations["customer_validate"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/authorization/initialize": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Initialize Authorization
     * @description Initiate a request to create a reusable authorization code for recurring transactions
     */
    post: operations["customer_initializeAuthorization"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/authorization/verify/{reference}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Verify Authorization
     * @description Check the status of an authorization request
     */
    get: operations["customer_verifyAuthorization"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/authorization/deactivate": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Deactivate Authorization
     * @description Deactivate an authorization for any payment channel.
     */
    post: operations["customer_deactivateAuthorization"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/{id}/initialize-direct-debit": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the customer to initialize the direct debit for
         * @example 297346561
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Initialize Direct Debit
     * @description Initialize the process of linking an account to a customer for Direct Debit transactions
     */
    post: operations["customer_initializeDirectDebit"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/{id}/directdebit-activation-charge": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    /**
     * Direct Debit Activation Charge
     * @description Trigger an activation charge on an inactive mandate on behalf of your customer
     */
    put: operations["customer_directDebitActivationCharge"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/customer/{id}/directdebit-mandate-authorizations": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Mandate Authorizations
     * @description Get the list of direct debit mandates associated with a customer
     */
    get: operations["customer_fetchMandateAuthorizations"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/directdebit/activation-charge": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    /**
     * Trigger Activation Charge
     * @description Trigger activation charge for specified customers
     */
    put: operations["directdebit_triggerActivationCharge"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/directdebit/mandate-authorizations": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Mandate Authorizations
     * @description Get a list of all the direct debit mandates on your integration
     */
    get: operations["directdebit_listMandateAuthorizations"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Dedicated Accounts
     * @description List dedicated virtual accounts available on your integration.
     */
    get: operations["dedicatedAccount_list"];
    put?: never;
    /**
     * Create Dedicated Account
     * @description Create a dedicated virtual account for an existing customer
     */
    post: operations["dedicatedAccount_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account/assign": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Assign Dedicated Account
     * @description With this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer.
     */
    post: operations["dedicatedAccount_assign"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description ID of dedicated virtual account */id: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Dedicated Account
     * @description Get details of a dedicated virtual account on your integration.
     */
    get: operations["dedicatedAccount_fetch"];
    put?: never;
    post?: never;
    /**
     * Deactivate Dedicated Account
     * @description Deactivate a dedicated virtual account on your integration.
     */
    delete: operations["dedicatedAccount_deactivate"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account/requery": {
    parameters: {
      query?: {
        /**
         * @description Virtual account number to requery
         * @example 0033322211
         */
        account_number?: string;
        /**
         * @description The bank's slug in lowercase, without spaces.
         * @example titan-paystack
         */
        provider_slug?: string; /** @description The day the transfer was made */
        date?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Requery Dedicated Account
     * @description Requery Dedicated Virtual Account for new transactions
     */
    get: operations["dedicatedAccount_requery"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account/split": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Split Dedicated Account Transaction
     * @description Split a dedicated virtual account transaction with one or more accounts
     */
    post: operations["dedicatedAccount_addSplit"];
    /**
     * Remove Split from Dedicated Account
     * @description If you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint
     */
    delete: operations["dedicatedAccount_removeSplit"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dedicated_account/available_providers": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Bank Providers
     * @description Get available bank providers for a dedicated virtual account
     */
    get: operations["dedicatedAccount_availableProviders"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/apple-pay/domain": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Domains
     * @description Lists all registered domains on your integration. Returns an empty array if no domains have been added.
     */
    get: operations["applePay_listDomain"];
    put?: never;
    /**
     * Register Domain
     * @description Register a top-level domain or subdomain for your Apple Pay integration.
     *
     *     > This endpoint can only be called with one domain or subdomain at a time.
     */
    post: operations["applePay_registerDomain"];
    /**
     * Unregister Domain
     * @description Unregister a top-level domain or subdomain previously used for your Apple
     *     Pay integration.
     */
    delete: operations["applePay_unregisterDomain"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/capitec-pay/requery/{ref}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Requery Transaction
     * @description Check the status of a charge made with Capitec Pay. This endpoint should be used from your frontend application as it requires the use of your public key for request authorization.
     */
    post: operations["capitecPay_requery"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization/initialize": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Initialize Preauthorization
     * @description Initialize a preauthorization transaction for a new customer
     */
    post: operations["preauthorization_initialize"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization/capture": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Capture Preauthorization
     * @description Charge a preauthorized transaction upon service delivery
     */
    post: operations["preauthorization_capture"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization/reserve_authorization": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Reserve Preauthorization
     * @description Hold an amount using an existing customer's authorization that's marked reusable.
     */
    post: operations["preauthorization_reserve_authorization"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization/verify/{reference}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description The transaction reference used to intiate the transaction */reference: string;
      };
      cookie?: never;
    };
    /**
     * Verify Preauthorization
     * @description Fetch and confirm the status of a preauthorized transaction.
     */
    get: operations["preauthorization_verify"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization/release": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Release Preauthorization
     * @description For when a customer cancels an order or you want to release the hold from their card.
     */
    post: operations["preauthorization_release"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/preauthorization": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Preauthorizations
     * @description List preauthorizations carried out on your integration
     */
    get: operations["preauthorization_list"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/plan": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Plans
     * @description List all recurring payment plans
     */
    get: operations["plan_list"];
    put?: never;
    /**
     * Create Plan
     * @description Create a plan for recurring payments
     */
    post: operations["plan_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/plan/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The plan ID or code you want to fetch
         * @example PLN_gx2wn530m0i3w3m
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Plan
     * @description Get the details of a payment plan
     */
    get: operations["plan_fetch"];
    /**
     * Update Plan
     * @description Update a plan details on your integration
     */
    put: operations["plan_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Subscriptions
     * @description List all subscriptions available on your integration
     */
    get: operations["subscription_list"];
    put?: never;
    /**
     * Create Subscription
     * @description Create a subscription a customer
     */
    post: operations["subscription_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The subscription ID or code you want to fetch
         * @example SUB_5co81xgmwg78x3d
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Subscription
     * @description Get details of a customer's subscription
     */
    get: operations["subscription_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription/disable": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Disable Subscription
     * @description Disable a subscription on your integration
     */
    post: operations["subscription_disable"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription/enable": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Enable Subscription
     * @description Enable a subscription on your integration
     */
    post: operations["subscription_enable"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription/{code}/manage/link": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Generate Update Subscription Link
     * @description Generate a link for updating the card on a subscription
     */
    get: operations["subscription_manageLink"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/subscription/{code}/manage/email": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Send Update Subscription Link
     * @description Email a customer a link for updating the card on their subscription
     */
    post: operations["subscription_manageEmail"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transferrecipient": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Transfer Recipients
     * @description List transfer recipients available on your integration
     */
    get: operations["transferrecipient_list"];
    put?: never;
    /**
     * Create Transfer Recipient
     * @description Creates a new recipient. A duplicate account number will lead to the retrieval of the existing record.
     */
    post: operations["transferrecipient_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transferrecipient/bulk": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Bulk Create Transfer Recipient
     * @description Create multiple transfer recipients in batches. A duplicate account number will lead to the retrieval of the existing record.
     */
    post: operations["transferrecipient_bulk"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transferrecipient/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the recipient whose details you want to receive.
         * @example RCP_5ap8rcimmcj8lbi
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Transfer recipient
     * @description Fetch the details of a transfer recipient
     */
    get: operations["transferrecipient_fetch"];
    /**
     * Update Transfer Recipient
     * @description Update the details of a transfer recipient
     */
    put: operations["transferrecipient_update"];
    post?: never;
    /**
     * Delete Transfer Recipient
     * @description Delete a transfer recipient (sets the transfer recipient to inactive)
     */
    delete: operations["transferrecipient_delete"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Transfers
     * @description List the transfers made on your integration
     */
    get: operations["transfer_list"];
    put?: never;
    /**
     * Initiate Transfer
     * @description Send money to your customers
     */
    post: operations["transfer_initiate"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/finalize_transfer": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Finalize Transfer
     * @description Finalize an initiated transfer
     */
    post: operations["transfer_finalize"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/bulk": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Initiate Bulk Transfer
     * @description Batch multiple transfers in a single request.
     *
     *     You need to disable the Transfers OTP requirement to use this endpoint.
     */
    post: operations["transfer_bulk"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The transfer ID or code you want to fetch
         * @example TRF_1ptvuv321ahaa7q
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Transfer
     * @description Get details of a transfer on your integration
     */
    get: operations["transfer_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/verify/{reference}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Verify Transfer
     * @description Verify the status of a transfer on your integration
     */
    get: operations["transfer_verify"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/export": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Export Transfers
     * @description Export a list of transfers carried out on your integration
     */
    get: operations["transfer_exportTransfer"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/resend_otp": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Resend OTP for Transfer
     * @description Generates and send a new OTP to customer in the event they are having trouble receiving one.
     */
    post: operations["transfer_resendOtp"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/disable_otp": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Disable OTP for Transfers
     * @description This is used in the event that you want to be able to complete transfers programmatically without use of OTPs.
     *     No arguments required. You will get an OTP to complete the request.
     */
    post: operations["transfer_disableOtp"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/disable_otp_finalize": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Finalize Disabling OTP for Transfers
     * @description Finalize the request to disable OTP on your transfers
     */
    post: operations["transfer_disableOtpFinalize"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/transfer/enable_otp": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Enable OTP requirement for Transfers
     * @description In the event that a customer wants to stop being able to complete transfers programmatically, this endpoint helps turn OTP requirement back on.
     *     No arguments required.
     */
    post: operations["transfer_enableOtp"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/balance": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Balance
     * @description Fetch the available balance on your integration
     */
    get: operations["balance_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/balance/ledger": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Balance Ledger
     * @description Fetch all pay-ins and pay-outs that occured on your integration
     */
    get: operations["balance_ledger"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Payment Request
     * @description List all previously created payment requests to your customers
     */
    get: operations["paymentRequest_list"];
    put?: never;
    /**
     * Create Payment Request
     * @description Create a new payment request by issuing an invoice to a customer
     */
    post: operations["paymentRequest_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/{id_or_code}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The payment request ID or code you want to fetch
         * @example 18823736
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Payment Request
     * @description Fetch a previously created payment request
     */
    get: operations["paymentRequest_fetch"];
    /**
     * Update Payment Request
     * @description Update a previously created payment request
     */
    put: operations["paymentRequest_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/verify/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Verify Payment Request
     * @description Verify the status of a previously created payment request
     */
    get: operations["paymentRequest_verify"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/notify/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Send Notification
     * @description Trigger an email reminder to a customer for a previously created payment request
     */
    post: operations["paymentRequest_notify"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/totals": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Payment Request Total
     * @description Get the metric of all pending and successful payment requests
     */
    get: operations["paymentRequest_totals"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/finalize/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a draft payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Finalize Payment Request
     * @description Finalise the creation of a draft payment request for a customer
     */
    post: operations["paymentRequest_finalize"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/paymentrequest/archive/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Archive Payment Request
     * @description Archive a payment request to clean up your records. An archived payment request cannot be verified and will not
     *     be returned when listing all previously created payment requests.
     */
    post: operations["paymentRequest_archive"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/product": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Products
     * @description List all previously created products
     */
    get: operations["product_list"];
    put?: never;
    /**
     * Create Product
     * @description Create a new product on your integration
     */
    post: operations["product_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/product/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the product
         * @example 2196244
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Fetch Product
     * @description Fetch a previously created product
     */
    get: operations["product_fetch"];
    /**
     * Update product
     * @description Update a previously created product
     */
    put: operations["product_update"];
    post?: never;
    /**
     * Delete Product
     * @description Delete a previously created product
     */
    delete: operations["product_delete"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Storefronts
     * @description List the storefronts you previously created
     */
    get: operations["storefront_list"];
    put?: never;
    /**
     * Create Storefront
     * @description Create a digital shop to manage and display your products
     */
    post: operations["storefront_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Fetch Storefront
     * @description Get the details of a previously created Storefront
     */
    get: operations["storefront_fetch"];
    /**
     * Update Storefront
     * @description Update the details of a previously created Storefront
     */
    put: operations["storefront_update"];
    post?: never;
    /**
     * Delete Storefront
     * @description Delete a previously created Storefront
     */
    delete: operations["storefront_delete"];
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/verify/{slug}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The custom slug to check
         * @example struct_and_faces
         */
        slug: string;
      };
      cookie?: never;
    };
    /**
     * Verify Storefront Slug
     * @description Verify the availability of a slug before using it for your Storefront
     */
    get: operations["storefront_verifySlug"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/{id}/order": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Storefront Orders
     * @description Fetch all orders in your Storefront
     */
    get: operations["storefront_fetchOrders"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/{id}/product": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * List Storefront Products
     * @description List the products in a Storefront
     */
    get: operations["storefront_listProducts"];
    put?: never;
    /**
     * Add Products to Storefront
     * @description Add previously created products to a Storefront
     */
    post: operations["storefront_addProducts"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/{id}/publish": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Publish Storefront
     * @description Make your Storefront publicly available
     */
    post: operations["storefront_publish"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/storefront/{id}/duplicate": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Duplicate Storefront
     * @description Duplicate a previously created Storefront
     */
    post: operations["storefront_duplicate"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/order": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Orders
     * @description List the previously created orders
     */
    get: operations["order_list"];
    put?: never;
    /**
     * Create Order
     * @description Create an order for selected items
     */
    post: operations["order_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/order/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the order
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Fetch Order
     * @description Fetch the details of a previously created order
     */
    get: operations["order_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/order/product/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the order
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Fetch Product Orders
     * @description Fetch all orders for a particular product
     */
    get: operations["order_product"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/order/{code}/validate": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique code of a previously created order
         * @example ORD_6z0lqwpmxrm7dsp
         */
        code: string;
      };
      cookie?: never;
    };
    /**
     * Validate Order
     * @description Validate a pay for me order
     */
    get: operations["order_validate"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/page": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Pages
     * @description List all previously created payment pages
     */
    get: operations["page_list"];
    put?: never;
    /**
     * Create Page
     * @description Create a webpage to receive payments
     */
    post: operations["page_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/page/{id_or_slug}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The page ID or slug you want to fetch
         * @example 1891222
         */
        id_or_slug: string;
      };
      cookie?: never;
    };
    /**
     * Fetch Page
     * @description Get a previously created payment page
     */
    get: operations["page_fetch"];
    /**
     * Update Page
     * @description Update a previously created payment page
     */
    put: operations["page_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/page/check_slug_availability/{slug}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The custom slug to check
         * @example risky-burger
         */
        slug: string;
      };
      cookie?: never;
    };
    /**
     * Check Slug Availability
     * @description Check if a custom slug is available for use when creating a payment page
     */
    get: operations["page_checkSlugAvailability"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/page/{id}/product": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        id: string;
      };
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Add Products
     * @description Add products to a previously created payment page. You can only add products to pages
     *     that was created with a `product` type.
     */
    post: operations["page_addProducts"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/settlement": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Settlements
     * @description List settlements made to your settlement accounts
     */
    get: operations["settlements_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/settlement/{id}/transactions": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Settlement Transactions
     * @description Get the transactions that make up a particular settlement
     */
    get: operations["settlements_transaction"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/integration/payment_session_timeout": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Payment Session Timeout
     * @description Fetch the session timeout of a transaction
     */
    get: operations["integration_fetchPaymentSessionTimeout"];
    /**
     * Update Payment Session Timeout
     * @description Update the session timeout of a transaction
     */
    put: operations["integration_updatePaymentSessionTimeout"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/refund": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Refunds
     * @description List previously created refunds
     */
    get: operations["refund_list"];
    put?: never;
    /**
     * Create Refund
     * @description Initiate a refund for a previously completed transaction
     */
    post: operations["refund_create"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/refund/retry_with_customer_details/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Retry Refund
     * @description Retry a refund with a `needs-attention` status by providing the bank account details of a customer.
     */
    post: operations["refund_retry"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/refund/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Refund
     * @description Get a previously created refund
     */
    get: operations["refund_fetch"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Disputes
     * @description List transaction disputes filed by customers
     */
    get: operations["dispute_list"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 1801929
         */
        id: number;
      };
      cookie?: never;
    };
    /**
     * Fetch Dispute
     * @description Fetch a transaction dispute
     */
    get: operations["dispute_fetch"];
    /**
     * Update Dispute
     * @description Update a transaction dispute
     */
    put: operations["dispute_update"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/{id}/upload_url": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Fetch Upload URL
     * @description Get the URL to upload a dispute evidence
     */
    get: operations["dispute_uploadUrl"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/export": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Export Disputes
     * @description Export the disputes available on your integration
     */
    get: operations["dispute_download"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/transaction/{id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Transaction Disputes
     * @description List all disputes filed for a transaction
     */
    get: operations["dispute_transaction"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/{id}/resolve": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    /**
     * Resolve Dispute
     * @description Resolve a transaction dispute
     */
    put: operations["dispute_resolve"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/dispute/{id}/evidence": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Add Evidence
     * @description Provide evidence for a dispute
     */
    post: operations["dispute_evidence"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bank": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Banks
     * @description Get a list of all supported banks and their properties
     */
    get: operations["bank_list"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bank/resolve": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Resolve Account Number
     * @description Resolve an account number to confirm the name associated with it
     */
    get: operations["bank_resolveAccountNumber"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/bank/validate": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Validate Bank Account
     * @description Confirm the authenticity of a customer's account number before sending money
     */
    post: operations["bank_validateAccountNumber"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/decision/bin/{bin}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Resolve Card BIN
     * @description Get the details of a card BIN
     */
    get: operations["miscellaneous_resolveCardBin"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/country": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Countries
     * @description List all supported countries on Paystack
     */
    get: operations["miscellaneous_listCountries"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/address_verification/states": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List States (AVS)
     * @description Get a list of states for a country for address verification
     */
    get: operations["miscellaneous_avs"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/___internal___": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Internal path for schema generation
     * @description This path is internal and used to ensure that schemas like WebhookEvent are considered 'used' for SDK generation and linting.
     */
    get: operations["misc_generateWebhookEventTypes"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
}
interface components {
  schemas: {
    WebhookEvent: {
      /** @description The type of event that occurred. */event?: string; /** @description The payload of the event. */
      data?: Record<string, never>;
    } & ({
      /** @enum {string} */event: "charge.success";
      data: components["schemas"]["data"];
    } | {
      /** @enum {string} */event: "transfer.success";
      data: components["schemas"]["data-2"];
    } | {
      /** @enum {string} */event: "transfer.failed";
      data: components["schemas"]["data-2"];
    } | {
      /** @enum {string} */event: "transfer.reversed";
      data: components["schemas"]["data-2"];
    } | {
      /** @enum {string} */event: "subscription.create";
      data: components["schemas"]["data-3"];
    } | {
      /** @enum {string} */event: "subscription.disable";
      data: components["schemas"]["data-3"];
    } | {
      /** @enum {string} */event: "subscription.not_renew";
      data: components["schemas"]["data-3"];
    } | {
      /** @enum {string} */event: "invoice.create";
      data: components["schemas"]["data-4"];
    } | {
      /** @enum {string} */event: "invoice.update";
      data: components["schemas"]["data-4"];
    } | {
      /** @enum {string} */event: "invoice.failed";
      data: components["schemas"]["data-4"];
    } | {
      /** @enum {string} */event: "dedicatedaccount.assign.success";
      data: components["schemas"]["data-5"];
    } | {
      /** @enum {string} */event: "dedicatedaccount.assign.failed";
      data: components["schemas"]["data-5"];
    } | {
      /** @enum {string} */event: "refund.processed";
      data: components["schemas"]["data-6"];
    } | {
      /** @enum {string} */event: "refund.failed";
      data: components["schemas"]["data-6"];
    } | {
      /** @enum {string} */event: "charge.dispute.create";
      data: components["schemas"]["data-7"];
    } | {
      /** @enum {string} */event: "charge.dispute.resolve";
      data: components["schemas"]["data-7"];
    });
    /**
     * @description List of all support currencies
     * @example GHS
     * @enum {string}
     */
    Currency: "GHS" | "KES" | "NGN" | "ZAR" | "USD" | "XOF";
    /**
     * @example {
     *       "subaccount": "ACCT_6uujpqtzmnufzkw",
     *       "share": 50
     *     }
     */
    SplitSubaccounts: {
      /** @description Subaccount code of the customer or partner */subaccount?: string; /** @description The percentage or flat quota of the customer or partner */
      share?: number;
    };
    /**
     * @description Split configuration for transactions
     * @example {
     *       "name": "Halfsies",
     *       "type": "percentage",
     *       "currency": "NGN",
     *       "subaccounts": [
     *         {
     *           "subaccount": "ACCT_6uujpqtzmnufzkw",
     *           "share": 50
     *         }
     *       ]
     *     }
     */
    SplitCreate: {
      /** @description Name of the transaction split */name: string;
      /**
       * @description The type of transaction split you want to create.
       * @enum {string}
       */
      type: "percentage" | "flat"; /** @description A list of object containing subaccount code and number of shares */
      subaccounts: components["schemas"]["SplitSubaccounts"][];
      /**
       * @description The transaction currency
       * @enum {string}
       */
      currency: "NGN" | "GHS" | "ZAR" | "USD" | "XOF";
      /**
       * @description This allows you specify how the transaction charge should be processed
       * @enum {string}
       */
      bearer_type?: "subaccount" | "account" | "all-proportional" | "all"; /** @description This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type */
      bearer_subaccount?: string;
    };
    /**
     * @description Initialize a transaction
     * @example {
     *       "email": "test@demo.com",
     *       "amount": 10000
     *     }
     */
    TransactionInitialize: {
      /** @description Customer's email address */email: string;
      /**
       * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
       *
       *     Minimum amounts:
       *      - NGN: ₦50.00 (5000 kobo)
       *      - GHS: ₵0.10 (10 pesewas)
       *      - ZAR: R1.00 (100 cents)
       *      - KES: Ksh 3.00 (300 cents)
       *      - USD: $2.00 (200 cents)
       *      - XOF: 1.00 (1 XOF)
       */
      amount: number | string;
      currency?: components["schemas"]["Currency"]; /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */
      reference?: string; /** @description An array of payment channels to control what channels you want to make available to the user to make a payment with */
      channels?: ("apple_pay" | "bank" | "bank_transfer" | "capitec_pay" | "card" | "eft" | "mobile_money" | "payattitude" | "qr" | "ussd")[]; /** @description Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction */
      callback_url?: string;
      /**
       * @description If transaction is to create a subscription to a predefined plan, provide plan code here.
       *     This would invalidate the value provided in amount
       */
      plan?: string; /** @description Number of times to charge customer during subscription to plan */
      invoice_limit?: number; /** @description The split code of the transaction split */
      split_code?: string;
      split?: components["schemas"]["SplitCreate"]; /** @description The code for the subaccount that owns the payment */
      subaccount?: string;
      /**
       * @description A flat fee to charge the subaccount for a transaction.
       *     This overrides the split percentage set when the subaccount was created
       */
      transaction_charge?: number;
      /**
       * @description The bearer of the transaction charge
       * @enum {string}
       */
      bearer?: "account" | "subaccount"; /** @description Used to replace the email address shown on the Checkout */
      label?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    };
    TransactionInitializeResponse: {
      status: boolean;
      message: string;
      data: {
        authorization_url: string;
        access_code: string;
        reference: string;
      };
    }; /** @description Extra diagnostic information to help resolve an error */
    ErrorMeta: {
      /** @description A suggested next action to take to resolve the error */nextStep?: string;
    };
    /**
     * @description Error response returned when a transaction is initialized with incorrect parameters
     * @example {
     *       "status": false,
     *       "message": "Duplicate Transaction Reference",
     *       "meta": {
     *         "nextStep": "Try and create the Transaction or Charge with a new reference"
     *       },
     *       "type": "validation_error",
     *       "code": "duplicate_reference",
     *       "errorCodeMappingNotFound": false
     *     }
     */
    TransactionInitializeBadRequestModel: {
      /** @description An indicator for the state of the request */status?: boolean; /** @description A short description of the error */
      message?: string;
      meta?: components["schemas"]["ErrorMeta"];
      /**
       * @description A tag to indicate the type of the error
       * @enum {string}
       */
      type?: "validation_error" | "processor_error" | "api_error"; /** @description The error code */
      code?: string; /** @description An indicator for error mapping for the request */
      errorCodeMappingNotFound?: boolean;
    }; /** @description Standard error response returned when a Paystack API request fails. */
    Error: {
      /** @description An indicator for the state of the request */status?: boolean; /** @description A short description of the error */
      message?: string;
      meta?: components["schemas"]["ErrorMeta"];
      /**
       * @description A category describing the kind of error that occurred
       * @enum {string}
       */
      type?: "api_error" | "validation_error" | "processor_error"; /** @description A Paystack-defined machine-readable code for the error */
      code?: string; /** @description An indicator for error mapping for the request */
      errorCodeMappingNotFound?: boolean;
    };
    /**
     * @example {
     *       "email": "jb@email.com",
     *       "amount": 30000,
     *       "authorization_code": "AUTH_df1l5ehnym"
     *     }
     */
    TransactionChargeAuthorization: {
      /** @description Customer's email address */email: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount: unknown; /** @description Valid authorization code to charge */
      authorization_code: string; /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */
      reference?: string;
      currency?: components["schemas"]["Currency"]; /** @description Send us 'card' or 'bank' or 'card','bank' as an array to specify what options to show the user paying */
      channels?: ("card" | "bank")[]; /** @description The split code of the transaction split */
      split_code?: string;
      split?: components["schemas"]["SplitCreate"]; /** @description The code for the subaccount that owns the payment */
      subaccount?: string;
      /**
       * @description A flat fee to charge the subaccount for a transaction.
       *     This overrides the split percentage set when the subaccount was created
       */
      transaction_charge?: number;
      /**
       * @description The bearer of the transaction charge
       * @enum {string}
       */
      bearer?: "account" | "subaccount"; /** @description Stringified JSON object of custom data */
      metadata?: string | Record<string, never>; /** @description If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. */
      queue?: boolean;
    };
    ChargeAuthorizationResponse: {
      status: boolean;
      message: string;
      data: {
        amount: number;
        currency: string;
        transaction_date: string;
        status: string;
        reference: string;
        domain: string;
        metadata: (string | {
          [key: string]: unknown;
        }) | null;
        gateway_response: string;
        message: string | null;
        channel: string;
        ip_address: unknown;
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number | null;
        authorization: {
          authorization_code: string;
          bin: string | null;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: string | null;
        };
        customer: {
          id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: {
            [key: string]: unknown;
          } | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: unknown;
        id: number;
      };
    };
    /**
     * @example {
     *       "email": "tap@email.com",
     *       "amount": 40510,
     *       "authorization_code": "AUTH_df1l5ehnym",
     *       "currency": "NGN"
     *     }
     */
    TransactionPartialDebit: {
      /** @description Customer's email address */email: string;
      /**
       * Format: int64
       * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
       */
      amount: number | string; /** @description Valid authorization code to charge */
      authorization_code: string;
      /**
       * @description Specified as NGN or GHS
       * @enum {string}
       */
      currency: "NGN" | "GHS"; /** @description Minimum amount to charge */
      at_least?: string; /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */
      reference?: string;
    };
    TransactionPartialDebitResponse: {
      status: boolean;
      message: string;
      data: {
        amount: number;
        currency: string;
        transaction_date: string;
        status: string;
        reference: string;
        domain: string;
        metadata: (string | Record<string, never>) | null;
        gateway_response: string;
        message: unknown;
        channel: string;
        ip_address: unknown;
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number;
        authorization: {
          authorization_code: string;
          bin: string;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: string | null;
        };
        customer: {
          id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: number;
        requested_amount: number;
        id: number;
      };
    };
    TransactionCheckAuthorization: {
      /** @description Customer's email address */email: string;
      /**
       * Format: int32
       * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, send the amount multiplied by 100 even though the currency does not use fractional subunits.
       */
      amount: number; /** @description Valid authorization code to charge */
      authorization_code?: string; /** @description The transaction currency */
      currency?: string;
    };
    Response: {
      status?: boolean;
      message?: string;
      data?: Record<string, never>;
    };
    VerifyResponse: {
      status: boolean;
      message: string;
      data: {
        /** Format: int64 */id: number;
        domain: string;
        status: string;
        reference: string;
        receipt_number: string | null;
        amount: number;
        message: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: (string | Record<string, never> | number) | null;
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string;
          bin?: string | null;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: string;
          account_name?: string | null;
          receiver_bank_account_number?: string | null;
          receiver_bank?: string | null;
        };
        customer: {
          /** Format: int64 */id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: (string | Record<string, never>) | null;
        split: Record<string, never> | null;
        order_id: unknown;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: unknown;
        connect: unknown;
        transaction_date: string;
        plan_object: {
          id?: number;
          name?: string;
          plan_code?: string;
          description?: unknown;
          amount?: number;
          interval?: string;
          send_invoices?: boolean;
          send_sms?: boolean;
          currency?: string;
        } & (Record<string, never> | (unknown & unknown));
        subaccount: Record<string, never> | null;
      };
    };
    TransactionListResponseArray: {
      id: number;
      domain: string;
      status: string;
      reference: string;
      amount: number;
      message: unknown;
      gateway_response: string;
      paid_at: string | null;
      created_at: string;
      channel: string;
      currency: string;
      ip_address: string | null;
      metadata: (string | {
        [key: string]: unknown;
      }) | null;
      log: {
        start_time: number;
        time_spent: number;
        attempts: number;
        errors: number;
        success: boolean;
        mobile: boolean;
        input: unknown[];
        history: {
          type: string;
          message: string;
          time: number;
        }[];
      } | null;
      fees: number | null;
      fees_split: number | null;
      customer: {
        id: number;
        first_name: string | null;
        last_name: string | null;
        email: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        customer_code: string;
        risk_action: string;
      };
      authorization: {
        authorization_code: string | null;
        bin: string | null;
        last4: string | null;
        exp_month: string | null;
        exp_year: string | null;
        channel: string | null;
        card_type: string | null;
        bank: string | null;
        country_code: string | null;
        brand: string | null;
        reusable: boolean;
        signature: string | null;
        account_name: string | null;
      };
      plan: Record<string, never>;
      split: Record<string, never>;
      subaccount: Record<string, never>;
      order_id: unknown;
      requested_amount: number;
      source: {
        source?: string;
        type?: string;
        identifier?: string | null;
        entry_point?: string;
      } | null;
      connect: Record<string, never> | null;
      pos_transaction_data: unknown;
    };
    Meta: {
      total: number;
      skipped: number;
      perPage: number | string;
      page: number;
      pageCount: number;
    };
    MetaWithVolume: components["schemas"]["Meta"] & {
      total_volume: number;
    };
    CursorMeta: {
      next: string | null;
      previous: string | null;
      perPage: number;
    };
    TransactionListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TransactionListResponseArray"][];
      meta: components["schemas"]["MetaWithVolume"] | components["schemas"]["CursorMeta"];
    };
    TransactionFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        receipt_number: unknown;
        amount: number;
        message: unknown;
        gateway_response: string;
        helpdesk_link: unknown;
        paid_at: string;
        created_at: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: (string | {
          [key: string]: unknown;
        }) | null;
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number;
        fees_split: number | null;
        authorization: {
          authorization_code: string;
          bin: string;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: string | null;
          receiver_bank_account_number?: string | null;
          receiver_bank?: string | null;
        };
        customer: {
          id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        subaccount: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: unknown;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: {
          type?: string;
          source?: string;
          identifier?: string | null;
        } | null;
        fees_breakdown: unknown;
        connect: unknown;
      };
    };
    TransactionTimelineResponse: {
      status: boolean;
      message: string;
      data: Record<string, never>;
    };
    TransactionTotalVolumeByCurrencyArray: {
      currency: string;
      amount: number;
    };
    TransactionPendingTransfersByCurrencyArray: {
      currency: string;
      amount: number;
    };
    TransactionTotalsResponse: {
      status: boolean;
      message: string;
      data: {
        total_transactions: number;
        total_volume: number;
        total_volume_by_currency: components["schemas"]["TransactionTotalVolumeByCurrencyArray"][];
        pending_transfers: number;
        pending_transfers_by_currency: components["schemas"]["TransactionPendingTransfersByCurrencyArray"][];
      };
    };
    TransactionExportResponse: {
      status: boolean;
      message: string;
      data: {
        path: string;
        expiresAt: string;
      };
    };
    /**
     * @example {
     *       "email": "customer@email.com",
     *       "amount": 350000,
     *       "authorization_code": "AUTH_df1l5ehnym"
     *     }
     */
    ChargeCreate: {
      /** @description Customer's email address */email: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount: number; /** @description An authorization code to charge. */
      authorization_code?: string; /** @description 4-digit PIN (send with a non-reusable authorization code) */
      pin?: string; /** @description Unique transaction reference. Only -, .`, = and alphanumeric characters allowed. */
      reference?: string;
      /**
       * Format: date
       * @description The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16
       */
      birthday?: string;
      /**
       * @description This is the unique identifier of the device a user uses in making payment.
       *     Only -, .`, = and alphanumeric characters are allowed.
       */
      device_id?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    }; /** @description The bank object if charging a bank account */
    Bank: {
      /** @description Customer's bank code */code?: string; /** @description Customer's account number */
      account_number?: string;
    }; /** @description Details of the mobile service provider */
    MobileMoney: {
      /** @description Customer's phone number */phone?: string; /** @description The telco provider of customer's phone number. This can be fetched from the List Bank endpoint */
      provider?: string;
    }; /** @description The USSD code for the provider to charge */
    USSD: {
      /**
       * @description The three-digit USSD code.
       * @enum {string}
       */
      type?: "737" | "919" | "822" | "966";
    }; /** @description Details of the EFT provider */
    EFT: {
      /** @description The EFT provider */provider?: string;
    };
    ChargeCreateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        receipt_number?: string | null;
        amount: number;
        message: string | null;
        gateway_response: string;
        paid_at?: string;
        created_at?: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: (string | {
          [key: string]: unknown;
        }) | null;
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number;
        fees_split?: number | null;
        authorization: {
          authorization_code: string;
          bin: string;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: string | null;
          receiver_bank_account_number?: string | null;
          receiver_bank?: string | null;
        };
        customer: {
          id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: unknown;
        split?: Record<string, never> | null;
        order_id?: unknown;
        requested_amount?: number;
        pos_transaction_data?: unknown;
        source?: Record<string, never> | null;
        fees_breakdown?: Record<string, never> | null;
        connect?: Record<string, never> | null;
        transaction_date: string;
        plan_object?: Record<string, never>;
        subaccount?: Record<string, never>;
      };
    };
    /**
     * @example {
     *       "pin": "1234",
     *       "reference": "5bwib5v6anhe9xa"
     *     }
     */
    ChargeSubmitPin: {
      /** @description Customer's PIN for the ongoing transaction */pin: string; /** @description Transaction reference that requires the PIN */
      reference: string;
    };
    ChargeSubmitPinResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message?: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: Record<string, never> | null;
        log: unknown;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string | null;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: unknown;
          account_name?: unknown;
        };
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: unknown;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: string | null;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: Record<string, never> | null;
        connect: Record<string, never> | null;
        transaction_date: string;
        plan_object: Record<string, never>;
        subaccount: Record<string, never>;
      };
    };
    /**
     * @example {
     *       "otp": "123456",
     *       "reference": "5bwib5v6anhe9xa"
     *     }
     */
    ChargeSubmitOTP: {
      /** @description Customer's OTP for ongoing transaction */otp: string; /** @description The reference of the ongoing transaction */
      reference: string;
    };
    ChargeSubmitOtpResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message?: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: Record<string, never> | null;
        log: unknown;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string | null;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: unknown;
          account_name?: unknown;
        };
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: unknown;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: string | null;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: Record<string, never> | null;
        connect: Record<string, never> | null;
        transaction_date: string;
        plan_object: Record<string, never>;
        subaccount: Record<string, never>;
      };
    };
    /**
     * @example {
     *       "phone": "08012345678",
     *       "reference": "5bwib5v6anhe9xa"
     *     }
     */
    ChargeSubmitPhone: {
      /** @description Customer's mobile number */phone: string; /** @description The reference of the ongoing transaction */
      reference: string;
    };
    ChargeSubmitPhoneResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message?: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: Record<string, never> | null;
        log: unknown;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string | null;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: unknown;
          account_name?: unknown;
        };
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: unknown;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: string | null;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: Record<string, never> | null;
        connect: Record<string, never> | null;
        transaction_date: string;
        plan_object: Record<string, never>;
        subaccount: Record<string, never>;
      };
    };
    /**
     * @example {
     *       "birthday": "1961-09-21",
     *       "reference": "5bwib5v6anhe9xa"
     *     }
     */
    ChargeSubmitBirthday: {
      /**
       * Format: date
       * @description Customer's birthday in the format YYYY-MM-DD e.g 2016-09-21
       */
      birthday: string; /** @description The reference of the ongoing transaction */
      reference: string;
    };
    ChargeSubmitBirthdayResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message?: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: Record<string, never> | null;
        log: unknown;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string | null;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: unknown;
          account_name?: unknown;
        };
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: unknown;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: string | null;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: Record<string, never> | null;
        connect: Record<string, never> | null;
        transaction_date: string;
        plan_object: Record<string, never>;
        subaccount: Record<string, never>;
      };
    };
    /**
     * @example {
     *       "address": "140 N 2ND ST",
     *       "city": "Stroudsburg",
     *       "state": "PA",
     *       "zip_code": "18360",
     *       "reference": "5bwib5v6anhe9xa"
     *     }
     */
    ChargeSubmitAddress: {
      /** @description Customer's address */address: string; /** @description Customer's city */
      city: string; /** @description Customer's state */
      state: string; /** @description Customer's zipcode */
      zip_code: string; /** @description The reference of the ongoing transaction */
      reference: string;
    };
    ChargeCheckPendingResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message?: string | null;
        gateway_response: string;
        channel: string;
        currency: string;
        ip_address: string | null;
        metadata: Record<string, never> | null;
        log: unknown;
        fees: number | null;
        fees_split: unknown;
        authorization: {
          authorization_code?: string | null;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: unknown;
          account_name?: unknown;
        };
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: unknown;
          risk_action: string;
          international_format_phone?: string | null;
        };
        plan: Record<string, never> | null;
        split: Record<string, never> | null;
        order_id: string | null;
        paidAt: string | null;
        createdAt: string;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: Record<string, never> | null;
        connect: Record<string, never> | null;
        transaction_date: string;
        plan_object: Record<string, never>;
        subaccount: Record<string, never>;
      };
    };
    BulkChargeListResponseArray: {
      domain: string;
      batch_code: string;
      status: string;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    BulkChargeListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["BulkChargeListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @description A list of charge object
     * @example {
     *       "authorization": "AUTH_ncx8hews93",
     *       "amount": 250000,
     *       "reference": "dam1266638dhhd"
     *     }
     */
    BulkChargeInitiate: {
      /** @description Customer's card authorization code */authorization: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount: number; /** @description A unique identifier containing lowercase letters `(a-z)`, digits `(0-9)` and these symbols: dash (`-`), underscore(`_`) */
      reference?: string; /** @description A flag to indicate if you want us to try recouping lower amounts when the customer has insufficient fund */
      attempt_partial_debit?: boolean;
      /**
       * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
       *     Minimum amount to charge if the attempt_partial_debit flag is set.
       */
      at_least?: number; /** @description JSON object of custom data */
      metadata?: Record<string, never>;
    };
    BulkChargeInitiateResponse: {
      status: boolean;
      message: string;
      data: {
        batch_code: string;
        reference: string;
        id: number;
        integration: number;
        domain: string;
        status: string;
        total_charges: number;
        pending_charges: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    BulkChargeFetchResponse: {
      status: boolean;
      message: string;
      data: {
        batch_code: string;
        id: number;
        domain: string;
        status: string;
        total_charges: number;
        pending_charges: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    MetadataCustomFieldsArray: {
      value: string;
      display_name: string;
      variable_name: string;
    };
    BulkChargeFetchBulkBatchChargesResponseArray: {
      integration: number;
      bulkcharge: number;
      customer: {
        id: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string;
        metadata: {
          calling_code?: string;
        };
        risk_action: string;
        international_format_phone: string;
      };
      authorization: {
        authorization_code: string;
        bin: string;
        last4: string;
        exp_month: string;
        exp_year: string;
        channel: string;
        card_type: string;
        bank: string;
        country_code: string;
        brand: string;
        reusable: boolean;
        signature: string;
        account_name: unknown;
      };
      domain: string;
      amount: number;
      at_least: number;
      currency: string;
      reference: string;
      metadata: {
        custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
      };
      status: string;
      message: string;
      attempt_partial_debit: boolean;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    BulkChargeFetchBulkBatchChargesResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["BulkChargeFetchBulkBatchChargesResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    BulkChargePauseResponse: {
      status: boolean;
      message: string;
    };
    BulkChargeResumeResponse: {
      status: boolean;
      message: string;
    };
    SubaccountListResponseArray: {
      id: number;
      subaccount_code: string;
      business_name: string;
      description: string | null;
      primary_contact_name: string | null;
      primary_contact_email: string | null;
      primary_contact_phone: string | null;
      metadata: unknown;
      percentage_charge: number;
      settlement_bank: string;
      bank_id: number;
      account_number: string;
      currency: string;
      active: number;
    };
    SubaccountListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["SubaccountListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "business_name": "Oasis",
     *       "account_number": "0123456047",
     *       "settlement_bank": "058",
     *       "percentage_charge": 30
     *     }
     */
    SubaccountCreate: {
      /** @description Name of business for subaccount */business_name: string; /** @description Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. */
      settlement_bank: string; /** @description Bank account number */
      account_number: string;
      /**
       * Format: float
       * @description The percentage the main account receives from each payment made to the subaccount
       */
      percentage_charge: number; /** @description A description for this subaccount */
      description?: string; /** @description A contact email for the subaccount */
      primary_contact_email?: string; /** @description The name of the contact person for this subaccount */
      primary_contact_name?: string; /** @description A phone number to call for this subaccount */
      primary_contact_phone?: string; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never>;
    };
    SubaccountCreateResponse: {
      status: boolean;
      message: string;
      data: {
        business_name: string;
        account_name?: string | null;
        description?: string | null;
        primary_contact_name?: string | null;
        primary_contact_email?: string | null;
        primary_contact_phone?: string | null;
        metadata?: unknown;
        account_number: string;
        percentage_charge: number;
        settlement_bank: string;
        currency: string;
        bank: number;
        integration: number;
        domain: string;
        product: string;
        managed_by_integration?: number;
        subaccount_code: string;
        is_verified: boolean;
        settlement_schedule: string;
        active: boolean;
        migrate: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    SubaccountFetchResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        account_name: string | null;
        bank: number;
        managed_by_integration: number;
        domain: string;
        subaccount_code: string;
        business_name: string;
        description: string | null;
        primary_contact_name: string | null;
        primary_contact_email: string | null;
        primary_contact_phone: string | null;
        metadata: Record<string, never> | null;
        percentage_charge: number;
        is_verified: boolean;
        settlement_bank: string;
        account_number: string;
        settlement_schedule: string;
        active: boolean;
        migrate: boolean;
        currency: string;
        product: string;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "business_name": "Sandalwood"
     *     }
     */
    SubaccountUpdate: {
      /** @description Name of business for subaccount */business_name?: string; /** @description Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. */
      settlement_bank?: string; /** @description Bank account number */
      account_number?: string; /** @description Activate or deactivate a subaccount */
      active?: boolean;
      /**
       * Format: float
       * @description The percentage the main account receives from each payment made to the subaccount
       */
      percentage_charge?: number; /** @description A description for this subaccount */
      description?: string; /** @description A contact email for the subaccount */
      primary_contact_email?: string; /** @description The name of the contact person for this subaccount */
      primary_contact_name?: string; /** @description A phone number to call for this subaccount */
      primary_contact_phone?: string; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never> | number;
    };
    SubaccountUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        domain: string;
        subaccount_code: string;
        account_name?: string | null;
        business_name: string;
        description?: string | null;
        primary_contact_name?: string | null;
        primary_contact_email?: string | null;
        primary_contact_phone?: string | null;
        metadata?: unknown;
        percentage_charge: number;
        is_verified: boolean;
        settlement_bank: string;
        account_number: string;
        settlement_schedule: string;
        active: boolean;
        migrate: boolean;
        currency: string;
        product: string;
        id: number;
        integration: number;
        bank: number;
        managed_by_integration: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    SplitSubaccountsArray: {
      subaccount: {
        id: number;
        subaccount_code: string;
        business_name: string;
        description: string;
        primary_contact_name: string;
        primary_contact_email: string;
        primary_contact_phone: string;
        metadata: string;
        settlement_bank: string;
        currency: string;
        account_number: string;
      };
      share: number;
    };
    SplitListResponseArray: {
      id: number;
      name: string;
      type: string;
      currency: string;
      integration: number;
      domain: string;
      split_code: string;
      active: boolean;
      bearer_type: string;
      bearer_subaccount: number | null;
      createdAt: string;
      updatedAt: string;
      is_dynamic: boolean;
      subaccounts: components["schemas"]["SplitSubaccountsArray"][];
      total_subaccounts: number;
    };
    SplitListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["SplitListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    SplitCreateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        type: string;
        currency: string;
        integration: number;
        domain: string;
        split_code: string;
        active: boolean;
        bearer_type: string;
        bearer_subaccount?: number;
        createdAt: string;
        updatedAt: string;
        is_dynamic: boolean;
        subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        total_subaccounts: number;
      };
    };
    SplitFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        type: string;
        currency: string;
        integration: number;
        domain: string;
        split_code: string;
        active: boolean;
        bearer_type: string;
        bearer_subaccount: number;
        createdAt: string;
        updatedAt: string;
        is_dynamic: boolean;
        subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        total_subaccounts: number;
      };
    };
    SplitUpdate: {
      /** @description Name of the transaction split */name?: string; /** @description Toggle status of split. When true, the split is active, else it's inactive */
      active?: boolean;
      /**
       * @description This allows you specify how the transaction charge should be processed
       * @enum {string}
       */
      bearer_type?: "subaccount" | "account" | "all-proportional" | "all"; /** @description This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type */
      bearer_subaccount?: string;
    };
    SplitUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        type: string;
        currency: string;
        integration: number;
        domain: string;
        split_code: string;
        active: boolean;
        bearer_type: string;
        bearer_subaccount: number;
        createdAt: string;
        updatedAt: string;
        is_dynamic: boolean;
        subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        total_subaccounts: number;
      };
    };
    SplitAddUpdateSubaccountResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        type: string;
        currency: string;
        integration: number;
        domain: string;
        split_code: string;
        active: boolean;
        bearer_type: string;
        bearer_subaccount: number;
        createdAt: string;
        updatedAt: string;
        is_dynamic: boolean;
        subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        total_subaccounts: number;
      };
    };
    /**
     * @example {
     *       "subaccount": "ACCT_eg4sob4590pq9vb"
     *     }
     */
    SplitSubaccountRemove: {
      /** @description This is the sub account code */subaccount: string;
    };
    SplitRemoveSubaccountResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @description The parameters needed to perform the specified action
     * @example {
     *       "id": 7895939,
     *       "reference": "4634337895939"
     *     }
     */
    TerminalSendEventData: {
      /**
       * Format: int64
       * @description The invoice or transaction  ID you want to push to the Terminal
       */
      id?: number; /** @description The offline_reference from the Payment Request response */
      reference?: string;
    };
    /**
     * @example {
     *       "type": "invoice",
     *       "action": "process",
     *       "data": {
     *         "id": 7895939,
     *         "reference": "4634337895939"
     *       }
     *     }
     */
    TerminalSendEvent: {
      /**
       * @description The type of event to push
       * @enum {string}
       */
      type?: "invoice" | "transaction";
      /**
       * @description The action the Terminal needs to perform. For the invoice type, the action can either be process or view.
       *     For the transaction type, the action can either be process or print.
       * @enum {string}
       */
      action?: "process" | "view" | "print";
      data?: components["schemas"]["TerminalSendEventData"];
    };
    TerminalGetStatusResponse: {
      status: boolean;
      message: string;
      data: {
        online: boolean;
        available: boolean;
      };
    };
    TerminalListsResponseArray: {
      id: number;
      serial_number: string | null;
      device_make: string | null;
      terminal_id: string;
      integration: number;
      domain: string;
      name: string | null;
      address: string | null;
      status: string;
    };
    TerminalListsResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TerminalListsResponseArray"][];
      meta: components["schemas"]["CursorMeta"];
    };
    TerminalGetResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        serial_number: string;
        device_make: string | null;
        terminal_id: string;
        integration: number;
        domain: string;
        name: string | null;
        address: string | null;
        status: string;
        split_code: string | null;
      };
    };
    /**
     * @example {
     *       "name": "Oreos",
     *       "address": "Somewhere on earth"
     *     }
     */
    TerminalUpate: {
      /** @description The new name for the Terminal */name?: string; /** @description The new address for the Terminal */
      address?: string;
    };
    TerminalUpdateResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @description Model for activating and deactivating a debug Terminal
     * @example {
     *       "serial_number": "1111150412230003899"
     *     }
     */
    TerminalActivationToggle: {
      /** @description Device Serial Number */serial_number: string;
    };
    TerminalCommissionDeviceResponse: {
      status: boolean;
      message: string;
    };
    TerminalDecommissionDeviceResponse: {
      status: boolean;
      message: string;
    };
    VirtualTerminalListResponseArray: {
      id: number;
      code: string;
      name: string;
      integration: number;
      domain: string;
      paymentMethods: unknown[];
      active: boolean;
      created_at: string;
      currency: string;
    };
    VirtualTerminalListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["VirtualTerminalListResponseArray"][];
      meta: components["schemas"]["CursorMeta"];
    };
    /**
     * @example {
     *       "name": "Sample Terminal",
     *       "destinations": [
     *         {
     *           "target": "+2548012345678",
     *           "name": "John Doe"
     *         },
     *         {
     *           "target": "+2548098765432",
     *           "name": "Jane Smith"
     *         }
     *       ]
     *     }
     */
    VirtualTerminalCreate: {
      /** @description Name of the Virtual Terminal */name: string; /** @description An array of objects containing the notification recipients for payments to the Virtual Terminal. Each object includes a target parameter for the Whatsapp phone number to send notifications to, and a name parameter for a descriptive label. */
      destinations: {
        /** @description The Whatsapp phone number to send notifications to */target?: string; /** @description A descriptive label for the destination */
        name?: string;
      }[]; /** @description Stringified JSON object of custom data. Kindly check the Metadata page for more information */
      metadata?: Record<string, never>; /** @description The transaction currency for the Virtual Terminal. Defaults to your integration currency */
      currency?: string; /** @description An array of objects representing custom fields to display on the form. Each object contains a display_name parameter, representing what will be displayed on the Virtual Terminal page, and variable_name parameter for referencing the custom field programmatically */
      custom_fields?: {
        display_name?: string;
        variable_name?: string;
      }[];
    };
    VirtualTerminalCreateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        integration: number;
        domain: string;
        code: string;
        paymentMethods: unknown[];
        active: boolean;
        metadata: unknown;
        destinations: {
          target?: string;
          type?: string;
          name?: string;
        }[];
        currency: string;
      };
    };
    VirtualTerminalFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        code: string;
        name: string;
        integration: number;
        domain: string;
        paymentMethods: unknown[];
        active: boolean;
        created_at: string;
        connect_account_id: unknown;
        destinations: {
          target?: string;
          type?: string;
          name?: string;
          created_at?: string;
        }[];
        currency: string;
      };
    };
    /**
     * @example {
     *       "name": "Lagos_Mainland_Zone_1"
     *     }
     */
    VirtualTerminalUpdate: {
      /** @description Name of the virtual terminal */name: string;
    };
    VirtualTerminalUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        code: string;
        name: string;
        integration: number;
        domain: string;
        paymentMethods: unknown[];
        active: boolean;
        created_at: string;
        connect_account_id: unknown;
        destinations: {
          target?: string;
          type?: string;
          name?: string;
          created_at?: string;
        }[];
        currency: string;
      };
    };
    VirtualTerminalDeactivateResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @example {
     *       "destinations": [
     *         {
     *           "target": "+2548012345678",
     *           "name": "John Doe"
     *         },
     *         {
     *           "target": "+2548098765432",
     *           "name": "Jane Smith"
     *         }
     *       ]
     *     }
     */
    VirtualTerminalDestinationAssign: {
      /** @description Array of objects containing recipients for payment notifications for the Virtual Terminal. */destinations: {
        /** @description The WhatsApp number to receive payment notifications */target?: string; /** @description The name of the associated WhatsApp number */
        name?: string;
      }[];
    };
    VirtualTerminalDestinationAssignResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        target: string;
        name: string;
        type: string;
        id: number;
        createdAt: string;
        updatedAt: string;
      }[];
    };
    /**
     * @example {
     *       "targets": [
     *         "+2548012345678",
     *         "+2548098765432"
     *       ]
     *     }
     */
    VirtualTerminalDestinationUnassign: {
      /** @description Array of destination targets to unassign */targets: string[];
    };
    VirtualTerminalDestinationUnassignResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @example {
     *       "split_code": "SPL_1234567890abcdef"
     *     }
     */
    VirtualTerminalAddSplitCode: {
      /** @description The split code to assign to the virtual terminal */split_code: string;
    };
    VirtualTerminalAddSplitCodeResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        type: string;
        currency: string;
        integration: number;
        domain: string;
        split_code: string;
        active: boolean;
        bearer_type: string;
        bearer_subaccount: unknown;
        createdAt: string;
        updatedAt: string;
        is_dynamic: boolean;
        subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        total_subaccounts: number;
      };
    };
    /**
     * @example {
     *       "split_code": "SPL_1234567890abcdef"
     *     }
     */
    VirtualTerminalDeleteSplitCode: {
      /** @description The split code to assign to the virtual terminal */split_code: string;
    };
    VirtualTerminalDeleteSplitCodeResponse: {
      status: boolean;
      message: string;
    };
    CustomerListResponseArray: {
      integration: number;
      first_name: string | null;
      last_name: string | null;
      email: string;
      phone: string | null;
      metadata: Record<string, never> | null;
      domain: string;
      customer_code: string;
      risk_action: string;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    CustomerListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["CustomerListResponseArray"][];
      meta: components["schemas"]["Meta"] | components["schemas"]["CursorMeta"];
    };
    /**
     * @example {
     *       "email": "rock@sandy.com",
     *       "first_name": "Rock",
     *       "last_name": "Sandy"
     *     }
     */
    CustomerCreate: {
      /** @description Customer's email address */email: string; /** @description Customer's first name */
      first_name?: string; /** @description Customer's last name */
      last_name?: string; /** @description Customer's phone number */
      phone?: string; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never>;
    };
    CustomerCreateResponse: {
      status: boolean;
      message: string;
      data: {
        email: string;
        integration: number;
        domain: string;
        customer_code: string;
        id: number;
        identified: boolean;
        identifications: unknown;
        createdAt: string;
        updatedAt: string;
      };
    };
    CustomerFetchResponse: {
      status: boolean;
      message: string;
      data: {
        transactions: unknown[];
        subscriptions: unknown[];
        authorizations: unknown[];
        first_name: string | null;
        last_name: string | null;
        email: string;
        phone: string | null;
        metadata: {
          [key: string]: unknown;
        } | null;
        domain: string;
        customer_code: string;
        risk_action: string;
        id: number;
        integration: number;
        createdAt: string;
        updatedAt: string;
        total_transactions: number;
        total_transaction_value: unknown[];
        dedicated_account: unknown;
        dedicated_accounts?: unknown[] | null;
        identified: boolean;
        identifications: unknown;
      };
    };
    /**
     * @example {
     *       "first_name": "Cecilia",
     *       "last_name": "Jones"
     *     }
     */
    CustomerUpdate: {
      /** @description Customer's first name */first_name?: string; /** @description Customer's last name */
      last_name?: string; /** @description Customer's phone number */
      phone?: string; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never> | number;
    };
    CustomerUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        first_name: string;
        last_name: string;
        email: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        identified: boolean;
        identifications: unknown;
        domain: string;
        customer_code: string;
        id: number;
        transactions: unknown[];
        subscriptions: unknown[];
        authorizations: unknown[];
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "customer": "CUS_c6wqvwmvwopw4ms",
     *       "risk_action": "deny"
     *     }
     */
    CustomerRiskAction: {
      /** @description The customer code from the response of the customer creation */customer: string;
      /**
       * @description This determines the fraud rules that should be applied to the customer
       * @default default
       * @enum {string}
       */
      risk_action: "allow" | "deny" | "default";
    };
    CustomerWhitelistBlacklistResponse: {
      status: boolean;
      message: string;
      data: {
        transactions: unknown[];
        subscriptions: unknown[];
        authorizations: unknown[];
        first_name: string | null;
        last_name: string | null;
        email: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        domain: string;
        customer_code: string;
        risk_action: string;
        id: number;
        integration: number;
        createdAt: string;
        updatedAt: string;
        identified: boolean;
        identifications: unknown;
      };
    };
    /**
     * @example {
     *       "first_name": "Jabal",
     *       "last_name": "Cedar",
     *       "country": "NG",
     *       "type": "bank_account",
     *       "account_number": "0123456789",
     *       "bank_code": "007",
     *       "bvn": "20012345677"
     *     }
     */
    CustomerValidate: {
      /** @description Customer's first name */first_name: string; /** @description Customer's middle name */
      middle_name?: string; /** @description Customer's last name */
      last_name: string;
      /**
       * @description Predefined types of identification.
       * @default bank_account
       */
      type: string; /** @description Customer's identification number. */
      value?: string; /** @description Two-letter country code of identification issuer */
      country: string; /** @description Customer's Bank Verification Number */
      bvn: string; /** @description You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). */
      bank_code: string; /** @description Customer's bank account number. */
      account_number: string;
    };
    CustomerValidateResponse: {
      status: boolean;
      message: string;
    };
    CustomerAuthorizationInitializeAccount: {
      /**
       * @description The customer's account number
       * @example 0123456789
       */
      number: string;
      /**
       * @description The code representing the customer's bank
       * @example 058
       */
      bank_code: string;
    };
    CustomerAuthorizationInitializeAddress: {
      /**
       * @description The customer's street
       * @example 123 Main Street
       */
      street: string;
      /**
       * @description The customer's city
       * @example Lagos
       */
      city: string;
      /**
       * @description The customer's state
       * @example Lagos
       */
      state: string;
    };
    CustomerAuthorizationInitializeRequest: {
      /**
       * @description Customer's email address
       * @example ravi@demo.com
       */
      email: string;
      /**
       * @description direct_debit is the only supported option for now
       * @example direct_debit
       * @enum {string}
       */
      channel: "direct_debit";
      /**
       * @description Fully qualified url (e.g. https://example.com/) to redirect your customer to
       * @example http://test.url.com
       */
      callback_url?: string;
      account?: components["schemas"]["CustomerAuthorizationInitializeAccount"];
      address?: components["schemas"]["CustomerAuthorizationInitializeAddress"];
    };
    CustomerAuthorizationInitializeResponseData: {
      /** @example https://checkout.paystack.com/82t4mp5b5mfn51h */redirect_url: string; /** @example 82t4mp5b5mfn51h */
      access_code: string; /** @example dfbzfotsrbv4n5s82t4mp5b5mfn51h */
      reference: string;
    };
    CustomerAuthorizationInitializeResponse: {
      /** @example true */status: boolean; /** @example Authorization initialized */
      message: string;
      data: components["schemas"]["CustomerAuthorizationInitializeResponseData"];
    };
    CustomerAuthorizationVerifyResponseCustomer: {
      /** @example CUS_24lze1c8i2zl76y */code: string; /** @example ravi@demo.com */
      email: string;
    };
    CustomerAuthorizationVerifyResponseData: {
      /** @example AUTH_JV4T9Wawdj */authorization_code: string; /** @example direct_debit */
      channel: string; /** @example Guaranty Trust Bank */
      bank: string; /** @example true */
      active: boolean;
      customer: components["schemas"]["CustomerAuthorizationVerifyResponseCustomer"];
    };
    CustomerAuthorizationVerifyResponse: {
      /** @example true */status: boolean; /** @example Authorization retrieved successfully */
      message: string;
      data: components["schemas"]["CustomerAuthorizationVerifyResponseData"];
    };
    /**
     * @example {
     *       "authorization_code": "AUTH_xxxIjkZVj5"
     *     }
     */
    CustomerDeactivateAuthorization: {
      /** @description Authorization code to be deactivated */authorization_code: string;
    };
    CustomerDeactivateAuthorizationResponse: {
      status: boolean;
      message: string;
    };
    CustomerInitializeDirectDebitAccount: {
      /**
       * @description The customer's account number
       * @example 0123456789
       */
      number: string;
      /**
       * @description The code representing the customer's bank
       * @example 058
       */
      bank_code: string;
    };
    CustomerInitializeDirectDebitAddress: {
      /**
       * @description The customer's street
       * @example Some Where
       */
      street: string;
      /**
       * @description The customer's city
       * @example Ikeja
       */
      city: string;
      /**
       * @description The customer's state
       * @example Lagos
       */
      state: string;
    };
    CustomerInitializeDirectDebitRequest: {
      account: components["schemas"]["CustomerInitializeDirectDebitAccount"];
      address: components["schemas"]["CustomerInitializeDirectDebitAddress"];
    };
    CustomerInitializeDirectDebitResponseData: {
      /** @example https://link.paystack.com/ll6b0szngj1f27k */redirect_url: string; /** @example ll6b0szngj1f27k */
      access_code: string; /** @example 1er945lpy4txyki */
      reference: string;
    };
    CustomerInitializeDirectDebitResponse: {
      /** @example true */status: boolean; /** @example Authorization initialized */
      message: string;
      data: components["schemas"]["CustomerInitializeDirectDebitResponseData"];
    };
    CustomerDirectDebitActivationChargeRequest: {
      /**
       * @description The authorization ID gotten from the initiation response
       * @example 1069309917
       */
      authorization_id: number;
    };
    CustomerDirectDebitActivationChargeResponse: {
      /** @example true */status: boolean; /** @example Mandate is queued for retry */
      message: string;
    };
    CustomerFetchMandateAuthorizationsResponseData: {
      /** @example 164098 */id: number; /** @example active */
      status: string; /** @example 512003 */
      mandate_id: number; /** @example 110049014 */
      authorization_id: number; /** @example AUTH_8Lol0pNt14 */
      authorization_code: string; /** @example 463433 */
      integration_id: number; /** @example 0123456789 */
      account_number: string; /** @example 032 */
      bank_code: string; /** @example null */
      bank_name?: string | null;
      customer: {
        /** @example 43975700 */id?: number; /** @example CUS_2eusy8uwe34s23fy */
        customer_code?: string; /** @example customer@email.com */
        email?: string; /** @example Smith */
        first_name?: string; /** @example Bel */
        last_name?: string;
      };
      /**
       * Format: date-time
       * @example 2024-09-27T10:57:53.824Z
       */
      authorized_at: string;
    };
    CustomerFetchMandateAuthorizationsResponseMeta: {
      /** @example 50 */per_page: number; /** @example null */
      next?: string | null; /** @example 1 */
      count: number; /** @example 1 */
      total: number;
    };
    CustomerFetchMandateAuthorizationsResponse: {
      /** @example true */status: boolean; /** @example Mandate authorizations retrieved successfully */
      message: string;
      data: components["schemas"]["CustomerFetchMandateAuthorizationsResponseData"][];
      meta: components["schemas"]["CustomerFetchMandateAuthorizationsResponseMeta"];
    };
    DirectDebitActivationChargeRequest: {
      /**
       * @description Array of customer IDs to trigger activation charge for
       * @example [
       *       28958104,
       *       983697220
       *     ]
       */
      customer_ids: number[];
    };
    DirectDebitActivationChargeResponse: {
      /** @example true */status: boolean; /** @example Mandate is queued for retry */
      message: string;
    };
    DedicatedNubanListResponseArray: {
      customer: {
        id: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string | null;
        risk_action: string;
        international_format_phone: string | null;
      };
      bank: {
        name: string;
        id: number;
        slug: string;
      };
      id: number;
      account_name: string;
      account_number: string;
      created_at: string;
      updated_at: string;
      currency: string;
      split_config: (string | {
        subaccount: string;
      }) | null;
      active: boolean;
      assigned: boolean;
    };
    DedicatedNubanListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["DedicatedNubanListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "customer": "CUS_bo732eugpb2qrg6",
     *       "preferred_bank": "titan-paystack"
     *     }
     */
    DedicatedVirtualAccountCreate: {
      /** @description The code for the previously created customer */customer: string; /** @description The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint */
      preferred_bank?: string; /** @description Subaccount code of the account you want to split the transaction with */
      subaccount?: string; /** @description Split code consisting of the lists of accounts you want to split the transaction with */
      split_code?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    };
    DedicatedNubanCreateResponse: {
      status: boolean;
      message: string;
      data: {
        bank: {
          name: string;
          id: number;
          slug: string;
        };
        account_name: string;
        account_number: string;
        assigned: boolean;
        currency: string;
        metadata: unknown;
        active: boolean;
        id: number;
        created_at: string;
        updated_at: string;
        assignment: {
          integration: number;
          assignee_id: number;
          assignee_type: string;
          expired: boolean;
          account_type: string;
          assigned_at: string;
          expired_at: unknown;
        };
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
      };
    };
    /**
     * @example {
     *       "email": "salmon.orange@email.com",
     *       "first_name": "Salmon",
     *       "last_name": "Orange",
     *       "phone": "+2348100000000",
     *       "preferred_bank": "titan-paystack",
     *       "country": "NG"
     *     }
     */
    DedicatedVirtualAccountAssign: {
      /** @description Customer's email address */email: string; /** @description Customer's first name */
      first_name: string; /** @description Customer's last name */
      last_name: string; /** @description Customer's phone name */
      phone: string;
      /**
       * @description The bank slug for preferred bank. To get a list of available banks,
       *     use the List Banks endpoint, passing `pay_with_bank_transfer=true` query parameter
       */
      preferred_bank: string;
      /**
       * @description The two letter code country
       * @enum {string}
       */
      country: "NG" | "GH"; /** @description Customer's account number */
      account_number?: string; /** @description Customer's Bank Verification Number */
      bvn?: string; /** @description Customer's bank code */
      bank_code?: string; /** @description Subaccount code of the account you want to split the transaction with */
      subaccount?: string; /** @description Split code consisting of the lists of accounts you want to split the transaction with */
      split_code?: string;
    };
    DedicatedNubanFetchResponse: {
      status: boolean;
      message: string;
      data: {
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        bank: {
          name: string;
          id: number;
          slug: string;
        };
        id: number;
        account_name: string;
        account_number: string;
        created_at: string;
        updated_at: string;
        currency: string;
        split_config: (string | Record<string, never>) | null;
        active: boolean;
        assigned: boolean;
      };
    };
    DedicatedNubanDeactivateResponse: {
      status: boolean;
      message: string;
      data: {
        bank: {
          name: string;
          id: number;
          slug: string;
        };
        account_name: string;
        account_number: string;
        assigned: boolean;
        currency: string;
        metadata: unknown;
        active: boolean;
        id: number;
        created_at: string;
        updated_at: string;
        assignment: {
          assignee_id: number;
          assignee_type: string;
          assigned_at: string;
          integration: number;
          account_type: string;
        };
      };
    };
    /**
     * @example {
     *       "account_number": "0033322211",
     *       "split_code": "SPL_e7jnRLtzla"
     *     }
     */
    DedicatedVirtualAccountSplit: {
      /** @description Valid Dedicated virtual account */account_number: string; /** @description Subaccount code of the account you want to split the transaction with */
      subaccount?: string; /** @description Split code consisting of the lists of accounts you want to split the transaction with */
      split_code?: string;
    };
    /**
     * @example {
     *       "account_number": "0033322211"
     *     }
     */
    DedicatedVirtualAccountRemoveSplit: {
      /** @description Valid Dedicated virtual account */account_number: string;
    };
    ApplePayDomainsResponse: {
      status: boolean;
      message: string;
      data: {
        domainNames: string[];
      };
    };
    /**
     * @example {
     *       "domainName": "example.com"
     *     }
     */
    ApplePayParam: {
      /** @description The domain or subdomain for your application */domainName: string;
    };
    /**
     * @example {
     *       "status": true,
     *       "message": "Domain successfully registered on Apple Pay"
     *     }
     */
    ApplePayCreateOkModel: {
      /** @description An indicator */status?: boolean; /** @description A short description of the response */
      message?: string;
    };
    CapitecPayRequeryResponse: {
      status: boolean;
      type: string;
      code: string;
      data: {
        status: string;
      };
      message: string;
    };
    PreAuthorizationInitialize: {
      /** @description Amount should be in the subunit of the supported currency */amount: string; /** @description Customer's email address */
      email: string;
      /**
       * @description Only ZAR is supported for now
       * @enum {string}
       */
      currency: "ZAR"; /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */
      reference?: string; /** @description Fully qualified url, e.g. https://example.com/ . Use this to override the callback url provided on the dashboard for this transaction */
      callback_url?: string; /** @description Stringified JSON object of custom data. */
      metadata?: string | Record<string, never>; /** @description The split code of the transaction split. e.g. SPL_98WF13Eb3w */
      split_code?: string; /** @description The code for the subaccount that owns the payment. e.g. ACCT_8f4s1eq7ml6rlzj */
      subaccount?: string; /** @description An amount used to override the split configuration for a single split payment. If set, the amount specified goes to the main account regardless of the split configuration. */
      transaction_charge?: number;
      /**
       * @description Specifies who will pay the Paystack transaction charges for this transaction. Either account or subaccount (defaults to account).
       * @enum {string}
       */
      bearer?: "account" | "subaccount";
      /**
       * @description Specify the action to take on the expiry date. It’s either capture or release. Defaults to release.
       * @enum {string}
       */
      expire_action?: "capture" | "release"; /** @description The number of days until the expire_action is executed. The minimum is 1 day and maximum 30 days. Defaults to 5 days. */
      expire_after_days?: number;
    };
    PreAuthorizationInitializeResponse: {
      status: boolean;
      message: string;
      data: {
        authorization_url: string;
        access_code: string;
        reference: string;
      };
    };
    PreAuthorizationCapture: {
      /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */reference: string;
      /**
       * @description Only ZAR is supported for now
       * @enum {string}
       */
      currency: "ZAR"; /** @description Amount should be in the subunit of the supported currency */
      amount: string;
    };
    FormulaSubaccountsArray: {
      original_share: number;
      fees: number;
      share: number;
      subaccount_code: string;
      id: number;
      name: string;
      integration: string;
    };
    ShareSubaccountsArray: {
      amount: number;
      original_share: number;
      fees: number;
      subaccount_code: string;
      id: number;
      integration: string;
    };
    PreAuthorizationCaptureResponse: {
      status: boolean;
      message: string;
      data: {
        amount: number;
        status: string;
        gateway_response: string;
        transaction: {
          currency: string;
          transaction_date: string;
          status: string;
          reference: string;
          domain: string;
          metadata: (string | {
            [key: string]: unknown;
          }) | null;
          gateway_response: string;
          message: string | null;
          channel: string;
          fees: number;
          authorization: {
            authorization_code: string;
            bin: string;
            last4: string;
            exp_month: string;
            exp_year: string;
            channel: string;
            card_type: string;
            bank: string;
            country_code: string;
            brand: string;
            reusable: boolean;
            signature: string;
            account_name: string | null;
          };
          customer: {
            id: number;
            first_name: string;
            last_name: string;
            email: string;
            customer_code: string;
            phone: string;
            metadata: Record<string, never> | null;
            risk_action: string;
            international_format_phone?: string | null;
          };
          id: number;
          split?: {
            id: number;
            name: string;
            split_code: string;
            formula: {
              type: string;
              bearer_type: string;
              bearer_subaccount: number;
              subaccounts: components["schemas"]["FormulaSubaccountsArray"][];
              integration: number;
            };
            shares: {
              paystack: number;
              subaccounts: components["schemas"]["ShareSubaccountsArray"][];
              integration: number;
              original_share: number;
              fees: number;
            };
          };
        };
        amount_released?: number;
        split_code: string | null;
        split: {
          type: string;
          bearer_type: string;
          subaccounts: components["schemas"]["SplitSubaccountsArray"][];
        } | null;
      };
    };
    PreAuthorizationReserve: {
      /** @description Customer's email address */email: string; /** @description Amount should be in the subunit of the supported currency */
      amount: string; /** @description This is the code that is used to charge and identify a customer's previously used card */
      authorization_code: string;
      /**
       * @description Only ZAR is supported for now
       * @enum {string}
       */
      currency: "ZAR"; /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */
      reference?: string;
    };
    PreAuthorizationReserveWithAuthCodeResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message: string;
        created_at: string;
        released_at: string | null;
        authorized_at: string | null;
        expiry_date: string | null;
        currency: string;
        metadata: Record<string, never> | null;
        fees: number;
        authorization: {
          authorization_code: string;
          bin: string;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: string | null;
        };
        customer: {
          id: number;
          first_name: string | null;
          last_name: string | null;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        merchant_id: number;
        merchant_name: string;
        expire_action: string;
        split_code: string | null;
        split: Record<string, never> | null;
      };
    };
    PreAuthorizationVerifyResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message: string;
        currency: string;
        redirecturl?: string;
      };
    };
    PreAuthorizationRelease: {
      /** @description Unique transaction reference. Only -, ., = and alphanumeric characters allowed. */reference: string;
    };
    PreAuthorizationReleaseResponse: {
      status: boolean;
      message: string;
      data: {
        status: string;
        reference: string;
      };
    };
    PreAuthorizationListResponseArray: {
      domain: string;
      status: string;
      reference: string;
      amount: number;
      created_at: string;
      transaction_id: string | null;
      captured_at: string | null;
      released_at: string | null;
      currency: string;
      fees: number;
      customer: {
        id: number;
        first_name: string | null;
        last_name: string | null;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      id: number;
    };
    PreAuthorizationListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["PreAuthorizationListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    PlanListResponseArray: {
      subscriptions: unknown[];
      integration: number;
      domain: string;
      name: string;
      plan_code: string;
      description: unknown;
      amount: number;
      interval: string;
      invoice_limit: number;
      send_invoices: boolean;
      send_sms: boolean;
      hosted_page: boolean;
      hosted_page_url: unknown;
      hosted_page_summary: unknown;
      currency: string;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    PlanListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["PlanListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "name": "Basic",
     *       "amount": 150000,
     *       "interval": "monthly"
     *     }
     */
    PlanCreate: {
      /** @description Name of plan */name: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount: number;
      /**
       * @description Payment interval
       * @enum {string}
       */
      interval: "daily" | "weekly" | "monthly" | "biannually" | "annually"; /** @description A description for this plan */
      description?: string; /** @description Set to false if you don't want invoices to be sent to your customers */
      send_invoices?: boolean; /** @description Set to false if you don't want text messages to be sent to your customers */
      send_sms?: boolean; /** @description Currency in which amount is set. Allowed values are NGN, GHS, ZAR, USD or XOF */
      currency?: string;
      /**
       * @description Number of invoices to raise during subscription to this plan.
       *     Can be overridden by specifying an invoice_limit while subscribing.
       */
      invoice_limit?: number; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never> | number;
    };
    PlanCreateResponse: {
      status: boolean;
      message: string;
      data: {
        currency: string;
        name: string;
        amount: number;
        interval: string;
        integration: number;
        domain: string;
        plan_code: string;
        send_invoices: boolean;
        send_sms: boolean;
        hosted_page: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    PlanFetchResponse: {
      status: boolean;
      message: string;
      data: {
        subscriptions: unknown[];
        integration: number;
        domain: string;
        name: string;
        plan_code: string;
        description: unknown;
        amount: number;
        interval: string;
        invoice_limit?: number | null;
        send_invoices: boolean;
        send_sms: boolean;
        hosted_page: boolean;
        hosted_page_url: unknown;
        hosted_page_summary: unknown;
        currency: string;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "name": "Starter"
     *     }
     */
    PlanUpdate: {
      /** @description Name of plan */name?: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, send the amount multiplied by 100 even though the currency does not use fractional subunits. */
      amount?: number;
      /**
       * @description Payment interval
       * @enum {string}
       */
      interval?: "daily" | "weekly" | "monthly" | "biannually" | "annually"; /** @description A description for this plan */
      description?: string; /** @description Stringified JSON object or JSON object of custom data */
      metadata?: string | Record<string, never> | number; /** @description Set to false if you don't want invoices to be sent to your customers */
      send_invoices?: boolean; /** @description Set to false if you don't want text messages to be sent to your customers */
      send_sms?: boolean; /** @description Currency in which amount is set. Allowed values are NGN, GHS, ZAR, USD or XOF */
      currency?: string;
      /**
       * @description Number of invoices to raise during subscription to this plan.
       *     Can be overridden by specifying an invoice_limit while subscribing.
       */
      invoice_limit?: number;
    };
    PlanUpdateResponse: {
      status: boolean;
      message: string;
    };
    SubscriptionListResponseArray: {
      id: number;
      domain: string;
      status: string;
      start: number;
      quantity: number;
      subscription_code: string;
      email_token: string;
      amount: number;
      cron_expression: string | null;
      next_payment_date: string | null;
      open_invoice: unknown;
      createdAt: string;
      integration: number;
      plan: {
        id: number;
        domain: string;
        name: string;
        plan_code: string;
        description: unknown;
        amount: number;
        interval: string;
        send_invoices: boolean;
        send_sms: boolean;
        currency: string;
        integration: number;
        createdAt: string;
        updatedAt: string;
      };
      authorization: {
        authorization_code: string;
        bin: string | null;
        last4: string;
        exp_month: string;
        exp_year: string;
        channel: string;
        card_type: string | null;
        bank: string;
        country_code: string;
        brand: string;
        reusable: number;
        signature: string | null;
        account_name: unknown;
      };
      customer: {
        first_name: string;
        last_name: string;
        email: string;
        phone: string;
        metadata: unknown;
        domain: string;
        customer_code: string;
        risk_action: string;
        id: number;
        integration: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    SubscriptionListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["SubscriptionListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "customer": "CUS_xnxdt6s1zg1f4nx",
     *       "plan": "PLN_gx2wn530m0i3w3m"
     *     }
     */
    SubscriptionCreate: {
      /** @description Customer's email address or customer code */customer: string; /** @description Plan code */
      plan: string;
      /**
       * @description If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here.
       *     If this is not supplied, the customer's most recent authorization would be used
       */
      authorization?: string;
      /**
       * Format: date-time
       * @description Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00
       */
      start_date?: string;
    };
    SubscriptionCreateResponse: {
      status: boolean;
      message: string;
      data: {
        customer: number;
        plan: number;
        integration: number;
        domain: string;
        start: number;
        status: string;
        quantity: number;
        amount: number;
        authorization: {
          authorization_code?: string;
          bin?: string;
          last4?: string;
          exp_month?: string;
          exp_year?: string;
          channel?: string;
          card_type?: string;
          bank?: string;
          country_code?: string;
          brand?: string;
          reusable?: boolean;
          signature?: string;
          account_name?: unknown;
        };
        subscription_code: string;
        email_token: string;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    SubscriptionFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        status: string;
        subscription_code: string;
        email_token: string;
        amount: number;
        cron_expression: string;
        next_payment_date: string;
        open_invoice: unknown;
        createdAt: string;
        integration: number;
        plan: {
          domain: string;
          id: number;
          integration: number;
          name: string;
          plan_code: string;
          description: unknown;
          amount: number;
          interval: string;
          send_invoices: boolean;
          send_sms: boolean;
          hosted_page: boolean;
          hosted_page_url: unknown;
          hosted_page_summary: unknown;
          currency: string;
          createdAt: string;
          updatedAt: string;
        };
        authorization: {
          authorization_code: string;
          bin: string;
          last4: string;
          exp_month: string;
          exp_year: string;
          channel: string;
          card_type: string;
          bank: string;
          country_code: string;
          brand: string;
          reusable: boolean;
          signature: string;
          account_name: unknown;
        };
        customer: {
          domain: string;
          id: number;
          integration: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never>;
          createdAt: string;
          updatedAt: string;
          risk_action?: string;
          international_format_phone?: string | null;
        };
        start: number;
        quantity: number;
        invoices: unknown[];
      };
    };
    /**
     * @example {
     *       "code": "SUB_vsyqdmlzble3uii",
     *       "token": "d7gofp6yppn3qz7"
     *     }
     */
    SubscriptionToggle: {
      /** @description Subscription code */code: string; /** @description Email token */
      token: string;
    };
    SubscriptionDisableResponse: {
      status: boolean;
      message: string;
    };
    TransferRecipientListResponseArray: {
      active: boolean;
      createdAt: string;
      currency: string;
      description?: string | null;
      domain: string;
      email?: string | null;
      id: number;
      integration?: number;
      metadata?: Record<string, never> | null;
      name: string;
      recipient_code: string;
      type: string;
      updatedAt: string;
      is_deleted?: boolean;
      isDeleted?: boolean;
      details: {
        authorization_code: string | null;
        account_number: string | null;
        account_name: string | null;
        bank_code: string;
        bank_name: string;
      };
    };
    TransferRecipientListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TransferRecipientListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "type": "nuban",
     *       "name": "Smith Taplo",
     *       "account_number": "01000000010",
     *       "bank_code": "058"
     *     }
     */
    TransferRecipientCreate: {
      /**
       * @description Recipient Type
       * @enum {string}
       */
      type: "nuban" | "ghipss" | "mobile_money" | "basa" | "authorization"; /** @description The recipient's name according to their account registration. */
      name: string; /** @description Recipient's bank account number */
      account_number: string; /** @description Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint */
      bank_code: string; /** @description A description for this recipient */
      description?: string; /** @description Currency for the account receiving the transfer */
      currency?: string; /** @description An authorization code from a previous transaction */
      authorization_code?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    };
    TransferRecipientCreateResponse: {
      status: boolean;
      message: string;
      data: {
        active: boolean;
        createdAt: string;
        currency: string;
        description?: string | null;
        domain: string;
        email?: string | null;
        id: number;
        integration?: number;
        metadata?: Record<string, never> | null;
        name: string;
        recipient_code: string;
        type: string;
        updatedAt: string;
        is_deleted?: boolean;
        isDeleted?: boolean;
        details: {
          authorization_code: string | null;
          account_number: string | null;
          account_name: string | null;
          bank_code: string;
          bank_name: string;
        };
      };
    };
    TransferRecipientBulk: {
      /** @description A list of transfer recipient object. */batch: components["schemas"]["TransferRecipientCreate"][];
    };
    ErrorRecordsArray: {
      type: string;
      name: string;
      description: string;
      account_number: string;
      bank_code: string;
      currency: string;
      email: string;
    };
    TransferRecipientErrorsArray: {
      message: string;
      records: components["schemas"]["ErrorRecordsArray"][];
    };
    TransferRecipientBulkCreateResponse: {
      status: boolean;
      message: string;
      data: {
        success: unknown[];
        errors: components["schemas"]["TransferRecipientErrorsArray"][];
      };
    };
    TransferRecipientFetchResponse: {
      status: boolean;
      message: string;
      data: {
        integration?: number;
        domain: string;
        type: string;
        currency: string;
        name: string;
        details: {
          account_number: string | null;
          account_name: string | null;
          bank_code: string;
          bank_name: string;
        };
        description?: string | null;
        metadata?: Record<string, never> | null;
        recipient_code: string;
        active: boolean;
        recipient_account?: string | null;
        institution_code?: string | null;
        email?: string | null;
        id: number;
        isDeleted?: boolean;
        is_deleted?: boolean;
        createdAt: string;
        updatedAt: string;
      };
    };
    TransferRecipientUpdate: {
      /** @description Recipient's name */name?: string; /** @description Recipient's email address */
      email?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    };
    TransferRecipientUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        type: string;
        name: string;
        metadata: Record<string, never> | null;
        domain: string;
        details: {
          account_number: string;
          account_name: string | null;
          bank_code: string;
          bank_name: string;
        };
        currency: string;
        recipient_code: string;
        active: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    TransferRecipientDeleteResponse: {
      status: boolean;
      message: string;
    };
    TransferListResponseArray: {
      amount: number;
      createdAt: string;
      currency: string;
      domain: string;
      failures: unknown;
      id: number;
      integration: number;
      reason: string;
      reference: string;
      source: string;
      source_details: Record<string, never> | null;
      status: string;
      titan_code: string | null;
      transfer_code: string;
      updatedAt: string;
      recipient: {
        active: boolean;
        createdAt: string;
        currency: string;
        description?: string | null;
        domain: string;
        email?: string | null;
        id: number;
        integration: number;
        metadata?: Record<string, never> | null;
        name: string;
        recipient_code: string;
        type: string;
        updatedAt: string;
        is_deleted?: boolean;
        isDeleted?: boolean;
        details: {
          authorization_code: unknown;
          account_number: string;
          account_name: string | null;
          bank_code: string;
          bank_name: string;
        };
      };
    };
    TransferListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TransferListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "amount": 120000,
     *       "recipient": "RCP_gd9vgag7n5lr5ix",
     *       "reference": "acv_9ee55786-2323-4760-98e2-6380c9cb3f68"
     *     }
     */
    TransferBase: {
      /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */amount: number; /** @description The transfer recipient's code */
      recipient: string; /** @description To ensure idempotency, you need to provide e a unique identifier for the request.  The identifier should be a lowercase alphanumeric string with only -,_  symbols allowed. */
      reference: string; /** @description The reason or narration for the transfer. */
      reason?: string; /** @description JSON object or stringified JSON of custom data */
      metadata?: string | Record<string, never> | number;
    }; /** @description Transfer initiation model */
    TransferInitiate: components["schemas"]["TransferBase"] & {
      /**
       * @description The source of funds to send from
       * @default balance
       */
      source: string;
      /**
       * @description Specify the currency of the transfer.
       * @default NGN
       * @enum {string}
       */
      currency: "NGN" | "ZAR" | "KES" | "GHS";
    };
    TransferCreateResponse: {
      status: boolean;
      message: string;
      data: {
        transfersessionid: unknown[];
        transfertrials: unknown[];
        domain: string;
        amount: number;
        currency: string;
        reference: string;
        source: string;
        source_details: unknown;
        reason: string;
        status: string;
        failures: unknown;
        transfer_code: string;
        titan_code: unknown;
        transferred_at: unknown;
        id: number;
        integration: number;
        request: number;
        recipient: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "transfer_code": "TRF_vsyqdmlzble3uii",
     *       "otp": "928783"
     *     }
     */
    TransferFinalize: {
      /** @description The transfer code you want to finalize */transfer_code: string; /** @description OTP sent to business phone to verify transfer */
      otp: string;
    };
    /**
     * @example {
     *       "source": "balance",
     *       "transfers": [
     *         {
     *           "amount": 120000,
     *           "recipient": "RCP_gd9vgag7n5lr5ix",
     *           "reference": "acv_9ee55786-2323-4760-98e2-6380c9cb3f68"
     *         }
     *       ]
     *     }
     */
    TransferBulk: {
      /**
       * @description The source of funds for the transfer.
       * @default balance
       */
      source: string;
      /**
       * @description Specify the currency of the transfer.
       * @default NGN
       * @enum {string}
       */
      currency: "NGN" | "ZAR" | "KES" | "GHS" | "XOF"; /** @description A list of transfer object */
      transfers: components["schemas"]["TransferBase"][];
    };
    TransferBulkResponseArray: {
      reference: string;
      recipient: string;
      amount: number;
      transfer_code: string;
      currency: string;
      status: string;
    };
    TransferBulkResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TransferBulkResponseArray"][];
    };
    TransferFeesBreakdownArray: {
      amount: string;
      formula: unknown;
      type: string;
    };
    TransferFetchResponse: {
      status: boolean;
      message: string;
      data: {
        amount: number;
        createdAt: string;
        currency: string;
        domain: string;
        failures: Record<string, never> | null;
        id: number;
        integration: number;
        reason: string;
        reference: string;
        source: string;
        source_details: Record<string, never> | null;
        status: string;
        titan_code: string | null;
        transfer_code: string;
        request: number;
        transferred_at: string | null;
        updatedAt: string;
        recipient: {
          active: boolean;
          createdAt: string;
          currency: string;
          description?: string | null;
          domain: string;
          email?: string | null;
          id: number;
          integration: number;
          metadata?: Record<string, never> | null;
          name: string;
          recipient_code: string;
          type: string;
          updatedAt: string;
          is_deleted?: boolean;
          isDeleted?: boolean;
          details: {
            authorization_code: unknown;
            account_number: string;
            account_name: string | null;
            bank_code: string;
            bank_name: string;
          };
        };
        session: {
          provider: string | null;
          id: string | null;
        };
        fee_charged: number;
        fees_breakdown: components["schemas"]["TransferFeesBreakdownArray"][] | null;
        gateway_response: string | null;
      };
    };
    TransferVerifyResponse: {
      status: boolean;
      message: string;
      data: {
        amount: number;
        createdAt: string;
        currency: string;
        domain: string;
        failures: Record<string, never> | null;
        id: number;
        integration: number;
        reason: string;
        reference: string;
        source: string;
        source_details: Record<string, never> | null;
        status: string;
        titan_code: string | null;
        transfer_code: string;
        transferred_at: string | null;
        updatedAt: string;
        recipient: {
          active: boolean;
          createdAt: string;
          currency: string;
          description?: string | null;
          domain: string;
          email?: string | null;
          id: number;
          integration: number;
          metadata?: Record<string, never> | null;
          name: string;
          recipient_code: string;
          type: string;
          updatedAt: string;
          is_deleted?: boolean;
          isDeleted?: boolean;
          details: {
            authorization_code: unknown;
            account_number: string;
            account_name: string;
            bank_code: string;
            bank_name: string;
          };
        };
        session: {
          provider: string | null;
          id: string | null;
        };
        gateway_response: string | null;
      };
    };
    /**
     * @example {
     *       "transfer_code": "TRF_vsyqdmlzble3uii",
     *       "reason": "resend_otp"
     *     }
     */
    TransferResendOTP: {
      /** @description The transfer code that requires an OTP validation */transfer_code: string;
      /**
       * @description Specify the flag to indicate the purpose of the OTP
       * @default transfer
       * @enum {string}
       */
      reason: "disable_otp" | "resend_otp" | "transfer";
    };
    TransferResendsOtpResponse: {
      status: boolean;
      message: string;
    };
    TransferDisablesOtpResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @example {
     *       "otp": "928783"
     *     }
     */
    TransferFinalizeDisableOTP: {
      /** @description OTP sent to business phone to verify disabling OTP requirement */otp: string;
    };
    TransferFinalizeDisablesOtpResponse: {
      status: boolean;
      message: string;
    };
    TransferEnablesOtpResponse: {
      status: boolean;
      message: string;
    };
    BalanceCheckResponseArray: {
      currency: string;
      balance: number;
    };
    BalanceCheckResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["BalanceCheckResponseArray"][];
    };
    BalanceFetchLedgerResponseArray: {
      integration: number;
      domain: string;
      balance: number;
      currency: string;
      difference: number;
      reason: string;
      model_responsible: string;
      model_row: number;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    BalanceFetchLedgerResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["BalanceFetchLedgerResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    PaymentRequestLineItemsArray: {
      name: string;
      amount: number;
      quantity: number;
    };
    PaymentRequestTaxArray: {
      name: string;
      amount: number;
    };
    PaymentRequestListResponseArray: {
      id: number;
      integration: number;
      domain: string;
      amount: number;
      currency: string;
      due_date: string | null;
      has_invoice: boolean;
      invoice_number: number | null;
      description: string | null;
      pdf_url: string | null;
      line_items: components["schemas"]["PaymentRequestLineItemsArray"][];
      tax: components["schemas"]["PaymentRequestTaxArray"][];
      request_code: string;
      status: string;
      paid: boolean;
      paid_at: string | null;
      metadata: Record<string, never> | null;
      notifications: unknown[];
      offline_reference: string;
      customer: {
        id: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      created_at: string;
      discount: Record<string, never> | null;
      split_code: string | null;
    };
    PaymentRequestListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["PaymentRequestListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "customer": "CUS_xqp6o5oja5cackf",
     *       "amount": 10000
     *     }
     */
    PaymentRequestCreate: {
      /** @description Customer id or code */customer: string;
      /**
       * @description Payment request amount. Only useful if line items and tax values are ignored.
       *     The endpoint will throw a friendly warning if neither is available.
       */
      amount: number; /** @description Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN */
      currency?: string;
      /**
       * Format: date-time
       * @description ISO 8601 representation of request due date
       */
      due_date?: string; /** @description A short description of the payment request */
      description?: string; /** @description Array of line items */
      line_items?: Record<string, never>[]; /** @description Array of taxes */
      tax?: Record<string, never>[]; /** @description Indicates whether Paystack sends an email notification to customer. Defaults to true */
      send_notification?: boolean; /** @description Indicate if request should be saved as draft. Defaults to false and overrides send_notification */
      draft?: boolean; /** @description 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 */
      has_invoice?: boolean; /** @description 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. */
      invoice_number?: number; /** @description The split code of the transaction split. */
      split_code?: string;
    };
    PaymentRequestCreateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        integration: number;
        domain: string;
        amount: number;
        currency: string;
        due_date: string | null;
        has_invoice: boolean;
        invoice_number: number | null;
        description: string | null;
        line_items: unknown[];
        tax: unknown[];
        request_code: string;
        status: string;
        paid: boolean;
        metadata: Record<string, never> | null;
        notifications: unknown[];
        offline_reference: string;
        customer: number;
        created_at: string;
        discount: unknown;
        split_code: string | null;
      };
    };
    PaymentRequestNotificationsArray: {
      sent_at: string;
      channel: string;
    };
    PaymentRequestViewResponse: {
      status: boolean;
      message: string;
      data: {
        domain: string;
        request_code: string;
        description: string | null;
        line_items: components["schemas"]["PaymentRequestLineItemsArray"][];
        tax: components["schemas"]["PaymentRequestTaxArray"][];
        amount: number;
        discount: number | null;
        currency: string;
        due_date: string | null;
        status: string;
        paid: boolean;
        paid_at: string | null;
        metadata: Record<string, never> | null;
        has_invoice: boolean;
        invoice_number: number | null;
        offline_reference: string;
        pdf_url: string | null;
        notifications: components["schemas"]["PaymentRequestNotificationsArray"][];
        archived: boolean;
        source: string;
        payment_method: string | null;
        note: string | null;
        amount_paid: number | null;
        split_code: string | null;
        id: number;
        integration: number;
        customer: {
          first_name: string;
          last_name: string;
          email: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          customer_code: string;
          risk_action: string;
          id: number;
          international_format_phone?: string | null;
        };
        createdAt: string;
        updatedAt: string;
        pending_amount: number;
      };
    };
    /**
     * @example {
     *       "amount": 15000
     *     }
     */
    PaymentRequestUpdate: {
      /** @description Customer id or code */customer?: string;
      /**
       * @description Payment request amount. Only useful if line items and tax values are ignored.
       *     The endpoint will throw a friendly warning if neither is available.
       */
      amount?: number; /** @description Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN */
      currency?: string;
      /**
       * Format: date-time
       * @description ISO 8601 representation of request due date
       */
      due_date?: string; /** @description A short description of the payment request */
      description?: string; /** @description Array of line items */
      line_items?: Record<string, never>[]; /** @description Array of taxes */
      tax?: Record<string, never>[]; /** @description Indicates whether Paystack sends an email notification to customer. Defaults to true */
      send_notification?: boolean; /** @description Indicate if request should be saved as draft. Defaults to false and overrides send_notification */
      draft?: boolean; /** @description 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 */
      has_invoice?: boolean; /** @description 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. */
      invoice_number?: number; /** @description The split code of the transaction split. */
      split_code?: string;
    };
    PaymentRequestUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        amount: number;
        currency: string;
        due_date: string | null;
        has_invoice: boolean;
        invoice_number: number | null;
        description: string | null;
        pdf_url: string | null;
        line_items: unknown[];
        tax: unknown[];
        request_code: string;
        status: string;
        paid: boolean;
        paid_at: string | null;
        metadata: Record<string, never> | null;
        notifications: components["schemas"]["PaymentRequestNotificationsArray"][];
        offline_reference: string;
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        created_at: string;
        discount?: Record<string, never> | null;
        split_code?: string | null;
      };
    };
    PaymentRequestVerifyResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        integration: {
          key: string;
          name: string;
          logo: string;
          allowed_currencies: string[];
        };
        domain: string;
        amount: number;
        currency: string;
        due_date: string | null;
        has_invoice: boolean;
        invoice_number: number | null;
        description: string | null;
        pdf_url: string | null;
        line_items: unknown[];
        tax: unknown[];
        request_code: string;
        status: string;
        paid: boolean;
        paid_at: string | null;
        metadata: Record<string, never> | null;
        notifications: components["schemas"]["PaymentRequestNotificationsArray"][];
        offline_reference: string;
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        created_at: string;
        discount?: Record<string, never> | null;
        split_code?: string | null;
        pending_amount: number;
      };
    };
    PaymentRequestSendNotificationResponse: {
      status: boolean;
      message: string;
    };
    PaymentRequestPendingArray: {
      currency: string;
      amount: number;
    };
    PaymentRequestSuccessfulArray: {
      currency: string;
      amount: number;
    };
    PaymentRequestTotalArray: {
      currency: string;
      amount: number;
    };
    PaymentRequestTotalResponse: {
      status: boolean;
      message: string;
      data: {
        pending: components["schemas"]["PaymentRequestPendingArray"][];
        successful: components["schemas"]["PaymentRequestSuccessfulArray"][];
        total: components["schemas"]["PaymentRequestTotalArray"][];
      };
    };
    PaymentRequestFinalizeResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        domain: string;
        amount: number;
        currency: string;
        due_date: string | null;
        has_invoice: boolean;
        invoice_number: number | null;
        description: string | null;
        pdf_url: string | null;
        line_items: components["schemas"]["PaymentRequestLineItemsArray"][];
        tax: components["schemas"]["PaymentRequestTaxArray"][];
        request_code: string;
        status: string;
        paid: boolean;
        paid_at: string | null;
        metadata: Record<string, never> | null;
        notifications: unknown[];
        offline_reference: string;
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string | null;
          metadata: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        created_at: string;
        discount?: {
          type: string;
          amount: number;
        } | null;
        split_code?: string | null;
        pending_amount: number;
      };
    };
    PaymentRequestArchiveResponse: {
      status: boolean;
      message: string;
    };
    ProductListsResponseArray: {
      id: number;
      name: string;
      description: string;
      product_code: string;
      slug: string;
      currency: string;
      price: number;
      quantity: number;
      quantity_sold: number;
      active: boolean;
      domain: string;
      type: string;
      in_stock: boolean;
      unlimited: boolean;
      metadata: {
        background_color: string;
      };
      files: unknown[];
      success_message: string | null;
      redirect_url: string | null;
      split_code: string | null;
      notification_emails: string[] | null;
      minimum_orderable: number;
      maximum_orderable: number | null;
      createdAt: string;
      updatedAt: string;
      digital_assets: unknown[];
      variant_options: unknown[];
      is_shippable: boolean;
      shipping_fields: {
        delivery_note: string;
        shipping_address?: string;
        shipping_fees?: unknown[];
      };
      integration: number;
      low_stock_alert: number;
    };
    ProductListsResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["ProductListsResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "name": "Cups",
     *       "description": "Environment friendly paper cups",
     *       "price": 10000,
     *       "currency": "NGN"
     *     }
     */
    ProductCreate: {
      /** @description Name of product */name: string; /** @description The description of the product */
      description: string; /** @description Price should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the price is the same as the base units (not multiplied by 100). */
      price: number; /** @description Currency in which price is set. Allowed values are: NGN, GHS, ZAR, USD or XOF */
      currency: string;
      /**
       * @description Set to true if the product has unlimited stock. Leave as false if the
       *     product has limited stock
       */
      unlimited?: boolean; /** @description Number of products in stock. Use if limited is true */
      quantity?: number; /** @description The split code if sharing the transaction with partners */
      split_code?: string; /** @description Stringified JSON object of custom data */
      metadata?: string;
    };
    ProductCreateResponse: {
      status: boolean;
      message: string;
      data: {
        name: string;
        description: string;
        currency: string;
        price: number;
        quantity: number;
        is_shippable: boolean;
        unlimited: boolean;
        integration: number;
        domain: string;
        metadata: {
          background_color: string;
        };
        slug: string;
        product_code: string;
        quantity_sold: number;
        type: string;
        shipping_fields: {
          delivery_note: string;
        };
        active: boolean;
        in_stock: boolean;
        minimum_orderable: number;
        maximum_orderable: unknown;
        low_stock_alert: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    ProductFetchResponse: {
      status: boolean;
      message: string;
      data: {
        digital_assets: unknown[];
        integration: number;
        name: string;
        description: string;
        product_code: string;
        price: number;
        currency: string;
        quantity: number;
        quantity_sold: unknown;
        type: string;
        files: unknown[] | null;
        file_path: string | null;
        is_shippable: boolean;
        shipping_fields: {
          delivery_note: string;
          shipping_address?: string;
          shipping_fees?: unknown[];
        };
        unlimited: boolean;
        domain: string;
        active: boolean;
        features: Record<string, never> | null;
        in_stock: boolean;
        metadata: {
          background_color: string;
        };
        slug: string;
        success_message: string | null;
        redirect_url: string | null;
        split_code: string | null;
        notification_emails: string[] | null;
        minimum_orderable: number;
        maximum_orderable: number | null;
        low_stock_alert: boolean;
        stock_threshold: number | null;
        expires_in: number | null;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "name": "Spoon",
     *       "description": "Environment friendly paper spoons",
     *       "price": 5000,
     *       "currency": "NGN"
     *     }
     */
    ProductUpdate: {
      /** @description Name of product */name?: string; /** @description The description of the product */
      description?: string; /** @description Price should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the price is the same as the base units (not multiplied by 100). */
      price?: number; /** @description Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD */
      currency?: string;
      /**
       * @description Set to true if the product has unlimited stock. Leave as false if the
       *     product has limited stock
       */
      unlimited?: boolean; /** @description Number of products in stock. Use if limited is true */
      quantity?: number; /** @description The split code if sharing the transaction with partners */
      split_code?: string; /** @description JSON object of custom data */
      metadata?: Record<string, never>;
    };
    ProductUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        name: string;
        description: string;
        product_code: string;
        price: number;
        currency: string;
        quantity: number;
        quantity_sold: unknown;
        type: string;
        image_path: string;
        file_path: string;
        is_shippable: boolean;
        unlimited: boolean;
        domain: string;
        active: boolean;
        features: unknown;
        in_stock: boolean;
        metadata: unknown;
        id: number;
        integration: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    ProductDeleteResponse: {
      status: boolean;
      message: string;
    };
    StorefrontListResponseArray: {
      id: number;
      name: string;
      slug: string;
      description: string | null;
      status: string;
      currency: string;
      createdAt: string;
      updatedAt: string;
    };
    StorefrontListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["StorefrontListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "name": "Obi and Sons",
     *       "slug": "obi_and_sons",
     *       "currency": "NGN"
     *     }
     */
    StorefrontCreate: {
      /** @description Name of the storefront */name: string; /** @description A unique identifier to access your store. Once the storefront is created, it can be accessed from https://paystack.shop/your-slug */
      slug: string;
      /**
       * @description Currency for prices of products in your storefront.
       * @enum {string}
       */
      currency: "GHS" | "KES" | "NGN" | "USD" | "ZAR"; /** @description The description of the storefront */
      description?: string;
    };
    StorefrontCreateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        slug: string;
        description: string | null;
        status: string;
        currency: string;
        createdAt: string;
        updatedAt: string;
      };
    };
    StorefrontFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        name: string;
        slug: string;
        description: string | null;
        status: string;
        currency: string;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "description": "Import and Export"
     *     }
     */
    StorefrontUpdate: {
      /** @description Name of the storefront */name?: string;
      /**
       * @description A unique identifier to access your store. Once the storefront is created, it can be accessed from
       *     https://paystack.shop/your-slug
       */
      slug?: string; /** @description The description of the storefront */
      description?: string;
    };
    StorefrontUpdateResponse: {
      status: boolean;
      message: string;
    };
    StorefrontDeleteResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @example {
     *       "products": [
     *         2196244,
     *         2179824
     *       ]
     *     }
     */
    StorefrontAddProducts: {
      /** @description An array of product IDs */products: number[];
    };
    OrderListResponseArray: {
      id: number;
      code: string;
      amount: number;
      currency: string;
      status: string;
      customer: {
        email: string;
      };
      createdAt: string;
    };
    OrderListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["OrderListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @description The collection of items that make up the order
     * @example {
     *       "item": 2179824,
     *       "type": "product",
     *       "quantity": 200000,
     *       "amount": 2
     *     }
     */
    OrderItems: {
      /** @description The product ID of the item */item: number; /** @description The type of the item. `product` is currently the acceptable value */
      type: string; /** @description The number of items to get */
      quantity: number; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount: number;
    };
    /**
     * @description The shipping details of the order
     * @example {
     *       "street_line": "Somewhere on Earth",
     *       "city": "Atlantic",
     *       "state": "Pacific",
     *       "country": "Equator",
     *       "shipping_fee": 10000
     *     }
     */
    OrderShipping: {
      /** @description The address of for the delivery */street_line: string; /** @description The city of the delivery address */
      city: string; /** @description The state of the delivery address */
      state: string; /** @description The country of the delivery address */
      country: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      shipping_fee: number; /** @description Extra details to be aware of for the delivery */
      delivery_note?: string;
    };
    /**
     * @example {
     *       "email": "test@email.com",
     *       "first_name": "Demo",
     *       "last_name": "User",
     *       "phone": "+2348031245678",
     *       "currency": "NGN",
     *       "items": [
     *         {
     *           "item": 2179824,
     *           "type": "product",
     *           "quantity": 200000,
     *           "amount": 2
     *         }
     *       ],
     *       "shipping": {
     *         "street_line": "Somewhere on Earth",
     *         "city": "Atlantic",
     *         "state": "Pacific",
     *         "country": "Equator",
     *         "shipping_fee": 10000
     *       }
     *     }
     */
    OrderCreate: {
      /** @description The email of the customer placing the order */email: string; /** @description The customer's first name */
      first_name: string; /** @description The customer's last name */
      last_name: string; /** @description The customer's mobile number */
      phone: string;
      /**
       * @description Currency in which amount is set
       * @enum {string}
       */
      currency: "GHS" | "KES" | "NGN" | "USD" | "ZAR" | "XOF";
      items: components["schemas"]["OrderItems"][];
      shipping: components["schemas"]["OrderShipping"]; /** @description A flag to indicate if the order is for someone else */
      is_gift?: boolean; /** @description A flag to indicate if the someone else should pay for the order */
      pay_for_me?: boolean;
    };
    OrderCreateResponse: {
      status: boolean;
      message: string;
      data: {
        discounts: unknown[];
        currency: string;
        shipping_address: unknown;
        integration: number;
        domain: string;
        email: string;
        customer: number;
        amount: number;
        pay_for_me: boolean;
        shipping: {
          customer: number;
          integration: number;
          domain: string;
          fees: number;
          delivery_note: unknown;
          street_line: string;
          city: string;
          state: string;
          country: string;
          is_shipped: boolean;
          delivery_tracking_link: unknown;
          id: number;
          createdAt: string;
          updatedAt: string;
        } | null;
        shipping_fees: number;
        shipping_method?: {
          region: string;
          fee: number;
          currency: string;
        };
        metadata: Record<string, never>;
        order_code: string;
        status: string;
        refunded: boolean;
        is_viewed: boolean;
        expiration_date: unknown;
        id: number;
        createdAt: string;
        updatedAt: string;
        items: unknown[];
        pay_for_me_code: string;
        discount_amount: number;
      };
    };
    OrderFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        code: string;
        amount: number;
        currency: string;
        status: string;
        customer: {
          id: number;
          email: string;
        };
        line_items: {
          product: {
            id: number;
            name: string;
          };
          quantity: number;
          amount: number;
        }[];
        createdAt: string;
      };
    };
    OrderFetchProductResponseArray: {
      order_id: number;
      transaction: number;
      order_code: string;
      customer: number;
      first_name: string;
      last_name: string;
      customer_name: string;
      phone: string;
      email: string;
      product_code: string;
      product_id: number;
      product_name: string;
      price: number;
      quantity_sold: number;
      currency: string;
      quantity: number;
      variant_id: unknown;
      variant_price: unknown;
      variant_code: unknown;
      amount: number;
      shipping_method: unknown;
      status: string;
      shipping_address: unknown;
      refunded: boolean;
      shipping: unknown;
      paid_at: string;
      created_at: string;
      is_shipped: boolean;
      is_viewed: number;
      delivery_note: unknown;
      shipping_fee: unknown;
      amount_paid: number;
      storefront_slug: string;
    };
    OrderFetchProductResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["OrderFetchProductResponseArray"][];
      meta: components["schemas"]["Meta"] & {
        quantity_sold: number;
        revenue: number;
      };
    };
    OrderValidateResponse: {
      status: boolean;
      message: string;
      data: {
        order_code: string;
        domain: string;
        currency: string;
        amount: number;
        email: string;
        status: string;
        refunded: boolean;
        paid_at: unknown;
        shipping_address: unknown;
        metadata: unknown;
        shipping_fees: number;
        shipping_method: unknown;
        is_viewed: boolean;
        expiration_date: string;
        pay_for_me: boolean;
        id: number;
        integration: {
          key: string;
          name: string;
          logo: string;
          allowed_currencies: unknown[];
        };
        transaction: unknown;
        page: unknown;
        customer: {
          id: number;
          first_name: string;
          last_name: string;
          email: string;
          customer_code: string;
          phone: string;
          metadata: Record<string, never>;
          risk_action: string;
          international_format_phone: string;
        };
        shipping: unknown;
        createdAt: string;
        updatedAt: string;
        payer: unknown;
      };
    };
    PageListResponseArray: {
      integration: number;
      plan: unknown;
      domain: string;
      name: string;
      description: string | null;
      amount: number | null;
      currency: string;
      slug: string;
      custom_fields: unknown[] | null;
      type: string;
      redirect_url: string | null;
      success_message: string | null;
      collect_phone: boolean;
      active: boolean;
      published: boolean;
      migrate: boolean;
      notification_email: unknown;
      metadata: Record<string, never> | null;
      split_code: unknown;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    PageListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["PageListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    /**
     * @example {
     *       "name": "Extra Charges",
     *       "amount": 200000
     *     }
     */
    PageCreate: {
      /** @description Name of page */name: string; /** @description The description of the page */
      description?: string; /** @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100). */
      amount?: number;
      /**
       * @description The transaction currency. Defaults to your integration currency.
       * @enum {string}
       */
      currency?: "NGN" | "GHS" | "ZAR" | "KES" | "USD" | "XOF"; /** @description URL slug you would like to be associated with this page. Page will be accessible at `https://paystack.com/pay/[slug]` */
      slug?: string;
      /**
       * @description The type of payment page to create. Defaults to `payment` if no type is specified.
       * @enum {string}
       */
      type?: "payment" | "subscription" | "product" | "plan"; /** @description The ID of the plan to subscribe customers on this payment page to when `type` is set to `subscription`. */
      plan?: string; /** @description Specifies whether to collect a fixed amount on the payment page. If true, `amount` must be passed. */
      fixed_amount?: boolean; /** @description The split code of the transaction split. e.g. `SPL_98WF13Eb3w` */
      split_code?: string; /** @description JSON object of custom data */
      metadata?: Record<string, never>; /** @description If you would like Paystack to redirect to a URL upon successful payment, specify the URL here. */
      redirect_url?: string; /** @description A success message to display to the customer after a successful transaction */
      success_message?: string; /** @description An email address that will receive transaction notifications for this payment page */
      notification_email?: string; /** @description Specify whether to collect phone numbers on the payment page */
      collect_phone?: boolean; /** @description If you would like to accept custom fields, specify them here. */
      custom_fields?: Record<string, never>[];
    };
    PageCreateResponse: {
      status: boolean;
      message: string;
      data: {
        name: string;
        description?: string | null;
        amount: number | null;
        split_code?: string | null;
        integration: number;
        domain: string;
        slug: string;
        currency: string;
        type: string;
        collect_phone: boolean;
        active: boolean;
        published: boolean;
        migrate: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    PageProductsArray: {
      product_id: number;
      name: string;
      description: string;
      product_code: string;
      page: number;
      price: number;
      currency: string;
      quantity: number;
      type: string;
      features: unknown;
      is_shippable: number;
      domain: string;
      integration: number;
      active: number;
      in_stock: number;
    };
    PageFetchResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        domain: string;
        name: string;
        description?: string | null;
        amount: number | null;
        currency: string;
        slug: string;
        active: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
        products: components["schemas"]["PageProductsArray"][];
      };
    };
    /**
     * @example {
     *       "name": "Backyard Sale"
     *     }
     */
    PageUpdate: {
      /** @description Name of page */name?: string; /** @description The description of the page */
      description?: string; /** @description Amount should be in the subunit of the currency */
      amount?: number; /** @description Set to false to deactivate page url */
      active?: boolean;
    };
    PageUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        domain: string;
        name: string;
        description?: string | null;
        amount: number | null;
        currency: string;
        slug: string;
        active: boolean;
        id: number;
        integration: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    PageCheckSlugAvailabilityResponse: {
      status: boolean;
      message: string;
    };
    /**
     * @example {
     *       "products": [
     *         2196244,
     *         2179824
     *       ]
     *     }
     */
    PageProduct: {
      /** @description A list of IDs of products to add to a page. */products: number[];
    };
    PageAddProductsResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        plan: unknown;
        domain: string;
        name: string;
        description?: string | null;
        amount: number | null;
        currency: string;
        slug: string;
        custom_fields?: unknown;
        type: string;
        redirect_url?: unknown;
        success_message?: unknown;
        collect_phone: boolean;
        active: boolean;
        published: boolean;
        migrate: boolean;
        notification_email?: string | null;
        metadata?: Record<string, never> | null;
        split_code?: string | null;
        id: number;
        createdAt: string;
        updatedAt: string;
        products: components["schemas"]["PageProductsArray"][];
      };
    };
    SettlementListResponseArray: {
      id: number;
      domain: string;
      status: string;
      currency: string;
      integration: number;
      total_amount: number;
      effective_amount: number;
      total_fees: number;
      total_processed: number;
      deductions: number | null; /** Format: date-time */
      settlement_date: string;
      settled_by: string | null; /** Format: date-time */
      createdAt: string; /** Format: date-time */
      updatedAt: string;
    };
    SettlementListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["SettlementListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    SettlementTransactionsResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["TransactionListResponseArray"][];
      meta: components["schemas"]["MetaWithVolume"];
    };
    ControlPanelFetchPaymentSessionTimeoutResponse: {
      status: boolean;
      message: string;
      data: {
        payment_session_timeout: number;
      };
    };
    PaymentSession: {
      /**
       * @description Time in seconds before a transaction becomes invalid
       * @example 30
       */
      timeout: number;
    };
    ControlPanelUpdatePaymentSessionTimeoutResponse: {
      status: boolean;
      message: string;
      data: {
        payment_session_timeout: number;
      };
    };
    RefundListResponseArray: {
      id: number;
      integration: number;
      domain: string;
      transaction: number;
      dispute: number | null;
      amount: number;
      deducted_amount: number | null;
      currency: string;
      channel: string;
      settlement: number | null;
      refunded_by: string;
      refunded_at: string | null;
      expected_at: string;
      customer_note: string;
      merchant_note: string;
      fully_deducted: number | null;
      created_at: string;
      updated_at: string;
      status: string;
    };
    RefundListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["RefundListResponseArray"][];
    };
    /**
     * @example {
     *       "transaction": "mpkr39h74k"
     *     }
     */
    RefundCreate: {
      /** @description The reference of a previosuly completed transaction */transaction: string;
      /**
       * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
       *     Amount to be refunded to the customer. It cannot be more than the original transaction amount.
       */
      amount?: number;
      /**
       * @description Three-letter ISO currency
       * @enum {string}
       */
      currency?: "GHS" | "KES" | "NGN" | "USD" | "ZAR" | "XOF"; /** @description Customer reason */
      customer_note?: string; /** @description Merchant reason */
      merchant_note?: string;
    };
    RefundCreateResponse: {
      status: boolean;
      message: string;
      data: {
        transaction: {
          id: number;
          domain: string;
          reference: string;
          amount: number;
          paid_at: string;
          channel: string;
          currency: string;
          authorization: {
            exp_month: unknown;
            exp_year: unknown;
            account_name: unknown;
          };
          customer: {
            international_format_phone?: string | null;
          };
          plan: Record<string, never>;
          subaccount: {
            currency: unknown;
          };
          split: Record<string, never>;
          order_id: unknown;
          pos_transaction_data: unknown;
          source: unknown;
          fees_breakdown: unknown;
        };
        integration: number;
        deducted_amount: number;
        channel: unknown;
        merchant_note: string;
        customer_note: string;
        status: string;
        refunded_by: string;
        expected_at: string;
        currency: string;
        domain: string;
        amount: number;
        fully_deducted: boolean;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @description An object that contains the customer’s account details for refund
     * @example {
     *       "currency": "NGN",
     *       "account_number": "1234567890",
     *       "bank_id": "9"
     *     }
     */
    RefundRetryAccountDetails: {
      /** @description The currency of the customer's bank account. It should be the same as the currency the payment was made */currency: string; /** @description The customer's account number */
      account_number: string; /** @description The ID representing the customer's bank. You can get the list of bank IDs by calling the List Banks endpoint. */
      bank_id: string;
    };
    RefundRetry: {
      refund_account_details: components["schemas"]["RefundRetryAccountDetails"];
    }; /** Generated schema for Root */
    RefundRetryResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        transaction: number;
        dispute: Record<string, never>;
        settlement: Record<string, never>;
        id: number;
        domain: string;
        currency: string;
        amount: number;
        status: string;
        refunded_at: string | null;
        expected_at: string;
        channel: string;
        refunded_by: string;
        customer_note: string;
        merchant_note: string;
        deducted_amount: number;
        fully_deducted: boolean;
        bank_reference: string | null;
        reason: string;
        customer: Record<string, never>;
        initiated_by: string;
        reversed_at: string | null;
        session_id: string | null;
      };
    };
    RefundFetchResponse: {
      status: boolean;
      message: string;
      data: {
        integration: number;
        transaction: number;
        dispute: number | null;
        settlement: number | null;
        domain: string;
        amount: number;
        deducted_amount: number;
        fully_deducted: boolean;
        currency: string;
        channel: string;
        status: string;
        refunded_by: string;
        refunded_at: string;
        expected_at: string;
        customer_note: string;
        merchant_note: string;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    DisputeHistoryArray: {
      status: string;
      by: string;
      createdAt: string;
    };
    DisputeMessagesArray: {
      sender: string;
      body: string;
      createdAt: string;
    };
    DisputeListResponseArray: {
      id: number;
      refund_amount: number | null;
      currency: string | null;
      status: string;
      resolution?: unknown;
      domain: string;
      transaction: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        amount: number;
        message: unknown;
        gateway_response: string;
        paid_at?: string | null;
        created_at?: string;
        channel: string;
        currency: string;
        ip_address: string;
        metadata: {
          custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
        };
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number;
        fees_split: number | null;
        authorization: Record<string, never>;
        customer: unknown;
        plan: Record<string, never>;
        subaccount: Record<string, never>;
        split: Record<string, never>;
        order_id: unknown;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: unknown;
        connect: unknown;
      };
      transaction_reference?: unknown;
      category: string | null;
      customer: {
        id: number;
        first_name?: string;
        last_name?: string;
        email: string;
        customer_code: string;
        phone?: string | null;
        metadata?: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      bin: string | null;
      last4: string | null;
      dueAt?: unknown;
      resolvedAt?: unknown;
      evidence?: unknown;
      attachments?: unknown;
      note?: unknown;
      history: components["schemas"]["DisputeHistoryArray"][];
      messages: components["schemas"]["DisputeMessagesArray"][];
      createdAt: string;
      updatedAt: string;
    };
    DisputeListResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["DisputeListResponseArray"][];
      meta: components["schemas"]["Meta"];
    };
    DisputeFetchResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        refund_amount: number | null;
        currency: string | null;
        status: string;
        resolution?: unknown;
        domain: string;
        transaction: {
          id: number;
          domain: string;
          status: string;
          reference: string;
          receipt_number?: number | null;
          amount: number;
          message: unknown;
          gateway_response: string;
          paid_at: string;
          created_at: string;
          channel: string;
          currency: string;
          ip_address: string;
          metadata: {
            custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
          };
          log: {
            start_time: number;
            time_spent: number;
            attempts: number;
            errors: number;
            success: boolean;
            mobile: boolean;
            input: unknown[];
            history: {
              type: string;
              message: string;
              time: number;
            }[];
          } | null;
          fees: number;
          fees_split: number | null;
          authorization: {
            receiver_bank_account_number?: unknown;
            receiver_bank?: unknown;
          };
          customer: {
            international_format_phone?: string | null;
          };
          plan: Record<string, never>;
          subaccount: Record<string, never>;
          split: Record<string, never>;
          order_id: unknown;
          requested_amount: number;
          pos_transaction_data: unknown;
          source: unknown;
          fees_breakdown: unknown;
          connect: unknown;
        };
        transaction_reference?: unknown;
        category: string | null;
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        bin: string | null;
        last4: string | null;
        dueAt?: unknown;
        resolvedAt?: unknown;
        evidence?: unknown;
        attachments?: unknown;
        note?: unknown;
        history: components["schemas"]["DisputeHistoryArray"][];
        messages: components["schemas"]["DisputeMessagesArray"][];
        createdAt: string;
        updatedAt: string;
      };
    };
    /**
     * @example {
     *       "refund_amount": 50000
     *     }
     */
    DisputeUpdate: {
      /** @description The amount to refund, in the subunit of your currency */refund_amount: number; /** @description Filename of attachment returned via response from the Dispute upload URL */
      uploaded_filename?: string;
    };
    DisputeUpdateResponse: {
      status: boolean;
      message: string;
      data: {
        id: number;
        refund_amount: number | null;
        currency: string | null;
        status: string;
        resolution?: unknown;
        domain: string;
        transaction: {
          id: number;
          domain: string;
          status: string;
          reference: string;
          receipt_number?: number | null;
          amount: number;
          message: unknown;
          gateway_response: string;
          paid_at: string;
          created_at: string;
          channel: string;
          currency: string;
          ip_address: string;
          metadata: {
            custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
          };
          log: {
            start_time: number;
            time_spent: number;
            attempts: number;
            errors: number;
            success: boolean;
            mobile: boolean;
            input: unknown[];
            history: {
              type: string;
              message: string;
              time: number;
            }[];
          } | null;
          fees: number;
          fees_split: number | null;
          authorization: {
            receiver_bank_account_number?: unknown;
            receiver_bank?: unknown;
          };
          customer: {
            international_format_phone?: string | null;
          };
          plan: Record<string, never>;
          subaccount: Record<string, never>;
          split: Record<string, never>;
          order_id: unknown;
          requested_amount: number;
          pos_transaction_data: unknown;
          source: unknown;
          fees_breakdown: unknown;
          connect: unknown;
        };
        transaction_reference?: unknown;
        category: string | null;
        customer: {
          id: number;
          first_name?: string | null;
          last_name?: string | null;
          email: string;
          customer_code: string;
          phone?: string | null;
          metadata?: Record<string, never> | null;
          risk_action: string;
          international_format_phone?: string | null;
        };
        bin: string | null;
        last4: string | null;
        dueAt?: unknown;
        resolvedAt?: unknown;
        evidence?: unknown;
        attachments?: unknown;
        note?: unknown;
        history: components["schemas"]["DisputeHistoryArray"][];
        messages: components["schemas"]["DisputeMessagesArray"][];
        createdAt: string;
        updatedAt: string;
      };
    };
    DisputeUploadURLResponse: {
      status: boolean;
      message: string;
      data: {
        signedUrl: string;
        fileName: string;
      };
    };
    DisputeExportResponse: {
      status: boolean;
      message: string;
      data: {
        path: string;
        expiresAt: string;
      };
    };
    DisputeListTransactionResponse: {
      status: boolean;
      message: string;
      data: {
        history: components["schemas"]["DisputeHistoryArray"][];
        messages: components["schemas"]["DisputeMessagesArray"][];
        currency: string | null;
        last4: string | null;
        bin: string | null;
        transaction_reference?: unknown;
        merchant_transaction_reference: string | null;
        refund_amount: number | null;
        status: string;
        domain: string;
        resolution?: unknown;
        category: string | null;
        note?: unknown;
        attachments?: unknown;
        id: number;
        integration: number;
        transaction: {
          id: number;
          domain: string;
          status: string;
          reference: string;
          receipt_number?: number | null;
          amount: number;
          message: unknown;
          gateway_response: string;
          paid_at?: string | null;
          created_at?: string;
          channel: string;
          currency: string;
          ip_address: string;
          metadata: {
            custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
          };
          log: {
            start_time: number;
            time_spent: number;
            attempts: number;
            errors: number;
            success: boolean;
            mobile: boolean;
            input: unknown[];
            history: {
              type: string;
              message: string;
              time: number;
            }[];
          } | null;
          fees: number;
          fees_split: number | null;
          authorization: {
            receiver_bank_account_number?: unknown;
            receiver_bank?: unknown;
          };
          customer: {
            international_format_phone?: string | null;
          };
          plan: Record<string, never>;
          subaccount: Record<string, never>;
          split: Record<string, never>;
          order_id: unknown;
          requested_amount: number;
          pos_transaction_data: unknown;
          source: unknown;
          fees_breakdown: unknown;
          connect: Record<string, never> | null;
        };
        created_by: number | null;
        evidence?: unknown;
        resolvedAt?: unknown;
        createdAt: string;
        updatedAt: string;
        dueAt?: unknown;
      };
    };
    /**
     * @example {
     *       "resolution": "merchant-accepted",
     *       "message": "Merchant accepted",
     *       "refund_amount": 50000,
     *       "uploaded_filename": "qesp8a4df1xejihd9x5q"
     *     }
     */
    DisputeResolve: {
      /** @description Dispute resolution. Accepted values, merchant-accepted, declined */resolution: string; /** @description Reason for resolving */
      message: string; /** @description The amount to refund, in the subunit of your integration currency */
      refund_amount: number; /** @description Filename of attachment returned via response from the Dispute upload URL */
      uploaded_filename: string; /** @description Evidence Id for fraud claims */
      evidence?: number;
    };
    DisputeResolveResponse: {
      status: boolean;
      message: string;
      data: {
        currency: string;
        last4: string | null;
        bin: string | null;
        transaction_reference?: string | null;
        merchant_transaction_reference: string | null;
        refund_amount: number;
        status: string;
        domain: string;
        resolution: string;
        category: string;
        note?: unknown;
        attachments: string;
        id: number;
        integration?: number;
        transaction: Record<string, never>;
        created_by: number;
        evidence: number | null;
        resolvedAt: string;
        createdAt: string;
        updatedAt: string;
        dueAt?: unknown;
        message: {
          dispute: number;
          sender: string;
          body: string;
          id: number;
          createdAt: string;
          updatedAt: string;
        };
      };
    };
    /**
     * @example {
     *       "customer_email": "customer@email.com",
     *       "customer_name": "Mensah King",
     *       "customer_phone": "08012345678",
     *       "service_details": "claim for buying cups"
     *     }
     */
    DisputeEvidence: {
      /** @description Customer email */customer_email: string; /** @description Customer name */
      customer_name: string; /** @description Customer mobile number */
      customer_phone: string; /** @description Details of service offered */
      service_details: string; /** @description Delivery address */
      delivery_address?: string;
      /**
       * Format: date-time
       * @description ISO 8601 representation of delivery date (YYYY-MM-DD)
       */
      delivery_date?: string;
    };
    DisputeAddEvidenceResponse: {
      status: boolean;
      message: string;
      data: {
        customer_email: string;
        customer_name: string;
        customer_phone: string;
        service_details: string;
        delivery_address: string;
        delivery_date: string;
        dispute: number;
        id: number;
        createdAt: string;
        updatedAt: string;
      };
    };
    MiscellaneousListBanksResponseArray: {
      name: string;
      slug: string;
      code: string;
      longcode: string;
      gateway: string | null;
      pay_with_bank: boolean;
      supports_transfer: boolean;
      available_for_direct_debit: boolean;
      active: boolean;
      is_deleted: boolean | null;
      country: string;
      currency: string;
      type: string;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    MiscellaneousListBanksResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["MiscellaneousListBanksResponseArray"][];
    };
    VerificationResolveAccountNumberResponse: {
      status: boolean;
      message: string;
      data: {
        account_number: string;
        account_name: string;
      };
    };
    /**
     * @example {
     *       "account_name": "Ann Bron",
     *       "account_number": "0123456789",
     *       "account_type": "personal",
     *       "bank_code": "632005",
     *       "country_code": "ZA",
     *       "document_type": "identityNumber",
     *       "document_number": "1234567890123"
     *     }
     */
    BankValidateRequest: {
      /** @description Customer's first and last name registered with their bank */account_name: string; /** @description Customer's account number */
      account_number: string;
      /**
       * @description The type of the customer's account number
       * @enum {string}
       */
      account_type: "personal" | "business"; /** @description The bank code of the customer’s bank. You can fetch the bank codes by using our List Banks endpoint */
      bank_code: string; /** @description The two digit ISO code of the customer’s bank */
      country_code: string;
      /**
       * @description Customer’s mode of identity
       * @enum {string}
       */
      document_type: "identityNumber" | "passportNumber" | "businessRegistrationNumber"; /** @description Customer’s mode of identity number */
      document_number?: string;
    };
    VerificationValidateAccountResponse: {
      status: boolean;
      message: string;
      data: {
        verified: boolean;
        verificationMessage: string;
        accountAcceptsDebits: boolean;
        accountAcceptsCredits: boolean;
        accountOpenForMoreThanThreeMonths: boolean;
        accountHolderMatch: boolean;
        accountOpen: boolean;
      };
    };
    VerificationResolveCardBINResponse: {
      status: boolean;
      message: string;
      data: {
        bin: string;
        brand: string;
        sub_brand: string;
        country_code: string;
        country_name: string;
        card_type: string;
        bank: string;
        linked_bank_id: number;
      };
    };
    MiscellaneousListCountriesResponseArray: {
      id: number;
      active_for_dashboard_onboarding: boolean;
      name: string;
      iso_code: string;
      default_currency_code: string;
      integration_defaults: Record<string, never>;
      calling_code: string;
      pilot_mode: boolean;
      relationships: {
        currency: {
          type: string;
          data: string[];
          supported_currencies: {
            NGN: {
              bank: {
                bank_type: string;
                branch_code: boolean;
                branch_code_type: string;
                account_name: boolean;
                account_verification_required: boolean;
                account_number_label: string;
                account_number_pattern: {
                  exact_match: boolean;
                  pattern: string;
                };
                documents: unknown[];
                show_account_number_tooltip: boolean;
              };
            };
            USD: {
              bank: {
                bank_type: string;
                required_fields: string[];
                branch_code: boolean;
                branch_code_type: string;
                account_name: boolean;
                account_verification_required: boolean;
                account_number_label: string;
                account_number_pattern: {
                  exact_match: boolean;
                  pattern: string;
                };
                documents: unknown[];
                notices: string[];
              };
            };
          };
        };
        integration_feature: {
          type: string;
          data: unknown[];
        };
        integration_type: {
          type: string;
          data: string[];
        };
        payment_method: {
          type: string;
          data: string[];
        };
      };
    };
    MiscellaneousListCountriesResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["MiscellaneousListCountriesResponseArray"][];
    };
    MiscellaneousListStatesResponseArray: {
      name: string;
      slug: string;
      abbreviation: string;
    };
    MiscellaneousListStatesResponse: {
      status: boolean;
      message: string;
      data: components["schemas"]["MiscellaneousListStatesResponseArray"][];
    };
    data: {
      id: number;
      domain: string;
      status: string;
      reference: string;
      receipt_number: unknown;
      amount: number;
      message: unknown;
      gateway_response: string;
      helpdesk_link: unknown;
      paid_at: string;
      created_at: string;
      channel: string;
      currency: string;
      ip_address: string | null;
      metadata: (string | {
        [key: string]: unknown;
      }) | null;
      log: {
        start_time: number;
        time_spent: number;
        attempts: number;
        errors: number;
        success: boolean;
        mobile: boolean;
        input: unknown[];
        history: {
          type: string;
          message: string;
          time: number;
        }[];
      } | null;
      fees: number;
      fees_split: number | null;
      authorization: {
        authorization_code: string;
        bin: string;
        last4: string;
        exp_month: string;
        exp_year: string;
        channel: string;
        card_type: string;
        bank: string;
        country_code: string;
        brand: string;
        reusable: boolean;
        signature: string;
        account_name: string | null;
        receiver_bank_account_number?: string | null;
        receiver_bank?: string | null;
      };
      customer: {
        id: number;
        first_name: string | null;
        last_name: string | null;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      plan: Record<string, never> | null;
      subaccount: Record<string, never> | null;
      split: Record<string, never> | null;
      order_id: unknown;
      requested_amount: number;
      pos_transaction_data: unknown;
      source: {
        type?: string;
        source?: string;
        identifier?: string | null;
      } | null;
      fees_breakdown: unknown;
      connect: unknown;
    };
    "data-2": {
      amount: number;
      createdAt: string;
      currency: string;
      domain: string;
      failures: Record<string, never> | null;
      id: number;
      integration: number;
      reason: string;
      reference: string;
      source: string;
      source_details: Record<string, never> | null;
      status: string;
      titan_code: string | null;
      transfer_code: string;
      request: number;
      transferred_at: string | null;
      updatedAt: string;
      recipient: {
        active: boolean;
        createdAt: string;
        currency: string;
        description?: string | null;
        domain: string;
        email?: string | null;
        id: number;
        integration: number;
        metadata?: Record<string, never> | null;
        name: string;
        recipient_code: string;
        type: string;
        updatedAt: string;
        is_deleted?: boolean;
        isDeleted?: boolean;
        details: {
          authorization_code: unknown;
          account_number: string;
          account_name: string | null;
          bank_code: string;
          bank_name: string;
        };
      };
      session: {
        provider: string | null;
        id: string | null;
      };
      fee_charged: number;
      fees_breakdown: components["schemas"]["TransferFeesBreakdownArray"][] | null;
      gateway_response: string | null;
    };
    "data-3": {
      id: number;
      domain: string;
      status: string;
      subscription_code: string;
      email_token: string;
      amount: number;
      cron_expression: string;
      next_payment_date: string;
      open_invoice: unknown;
      createdAt: string;
      integration: number;
      plan: {
        domain: string;
        id: number;
        integration: number;
        name: string;
        plan_code: string;
        description: unknown;
        amount: number;
        interval: string;
        send_invoices: boolean;
        send_sms: boolean;
        hosted_page: boolean;
        hosted_page_url: unknown;
        hosted_page_summary: unknown;
        currency: string;
        createdAt: string;
        updatedAt: string;
      };
      authorization: {
        authorization_code: string;
        bin: string;
        last4: string;
        exp_month: string;
        exp_year: string;
        channel: string;
        card_type: string;
        bank: string;
        country_code: string;
        brand: string;
        reusable: boolean;
        signature: string;
        account_name: unknown;
      };
      customer: {
        domain: string;
        id: number;
        integration: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never>;
        createdAt: string;
        updatedAt: string;
        risk_action?: string;
        international_format_phone?: string | null;
      };
      start: number;
      quantity: number;
      invoices: unknown[];
    };
    "data-4": {
      id: number;
      integration: {
        key: string;
        name: string;
        logo: string;
        allowed_currencies: string[];
      };
      domain: string;
      amount: number;
      currency: string;
      due_date: string | null;
      has_invoice: boolean;
      invoice_number: number | null;
      description: string | null;
      pdf_url: string | null;
      line_items: unknown[];
      tax: unknown[];
      request_code: string;
      status: string;
      paid: boolean;
      paid_at: string | null;
      metadata: Record<string, never> | null;
      notifications: components["schemas"]["PaymentRequestNotificationsArray"][];
      offline_reference: string;
      customer: {
        id: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      created_at: string;
      discount?: Record<string, never> | null;
      split_code?: string | null;
      pending_amount: number;
    };
    "data-5": {
      customer: {
        id: number;
        first_name: string;
        last_name: string;
        email: string;
        customer_code: string;
        phone: string | null;
        metadata: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      bank: {
        name: string;
        id: number;
        slug: string;
      };
      id: number;
      account_name: string;
      account_number: string;
      created_at: string;
      updated_at: string;
      currency: string;
      split_config: (string | Record<string, never>) | null;
      active: boolean;
      assigned: boolean;
    };
    "data-6": {
      integration: number;
      transaction: number;
      dispute: number | null;
      settlement: number | null;
      domain: string;
      amount: number;
      deducted_amount: number;
      fully_deducted: boolean;
      currency: string;
      channel: string;
      status: string;
      refunded_by: string;
      refunded_at: string;
      expected_at: string;
      customer_note: string;
      merchant_note: string;
      id: number;
      createdAt: string;
      updatedAt: string;
    };
    "data-7": {
      id: number;
      refund_amount: number | null;
      currency: string | null;
      status: string;
      resolution?: unknown;
      domain: string;
      transaction: {
        id: number;
        domain: string;
        status: string;
        reference: string;
        receipt_number?: number | null;
        amount: number;
        message: unknown;
        gateway_response: string;
        paid_at: string;
        created_at: string;
        channel: string;
        currency: string;
        ip_address: string;
        metadata: {
          custom_fields: components["schemas"]["MetadataCustomFieldsArray"][];
        };
        log: {
          start_time: number;
          time_spent: number;
          attempts: number;
          errors: number;
          success: boolean;
          mobile: boolean;
          input: unknown[];
          history: {
            type: string;
            message: string;
            time: number;
          }[];
        } | null;
        fees: number;
        fees_split: number | null;
        authorization: {
          receiver_bank_account_number?: unknown;
          receiver_bank?: unknown;
        };
        customer: {
          international_format_phone?: string | null;
        };
        plan: Record<string, never>;
        subaccount: Record<string, never>;
        split: Record<string, never>;
        order_id: unknown;
        requested_amount: number;
        pos_transaction_data: unknown;
        source: unknown;
        fees_breakdown: unknown;
        connect: unknown;
      };
      transaction_reference?: unknown;
      category: string | null;
      customer: {
        id: number;
        first_name?: string | null;
        last_name?: string | null;
        email: string;
        customer_code: string;
        phone?: string | null;
        metadata?: Record<string, never> | null;
        risk_action: string;
        international_format_phone?: string | null;
      };
      bin: string | null;
      last4: string | null;
      dueAt?: unknown;
      resolvedAt?: unknown;
      evidence?: unknown;
      attachments?: unknown;
      note?: unknown;
      history: components["schemas"]["DisputeHistoryArray"][];
      messages: components["schemas"]["DisputeMessagesArray"][];
      createdAt: string;
      updatedAt: string;
    };
  };
  responses: {
    /** @description Responses from the Transaction Initialize endpoint */TransactionInitializeBadRequestResponse: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TransactionInitializeBadRequestModel"];
      };
    }; /** @description Unauthorized operation */
    Unauthorized: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        /**
         * @example {
         *       "status": false,
         *       "message": "Invalid key"
         *     }
         */
        "application/json": components["schemas"]["Error"];
      };
    }; /** @description Request successful */
    Ok: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["Response"];
      };
    }; /** @description Entity not found */
    NotFound: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        /**
         * @example {
         *       "status": false,
         *       "message": "Entity not found"
         *     }
         */
        "application/json": components["schemas"]["Error"];
      };
    }; /** @description Terminal Get Status response */
    TerminalGetStatusSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalGetStatusResponse"];
      };
    }; /** @description Terminal Lists response */
    TerminalListsSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalListsResponse"];
      };
    }; /** @description Terminal Get response */
    TerminalGetSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalGetResponse"];
      };
    }; /** @description Terminal Update response */
    TerminalUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalUpdateResponse"];
      };
    }; /** @description Terminal Commission Device response */
    TerminalCommissionDeviceSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalCommissionDeviceResponse"];
      };
    }; /** @description Terminal Decommission Device response */
    TerminalDecommissionDeviceSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["TerminalDecommissionDeviceResponse"];
      };
    }; /** @description Virtual Terminal Lists response */
    VirtualTerminalListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalListResponse"];
      };
    }; /** @description Virtual Terminal Create response */
    VirtualTerminalCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalCreateResponse"];
      };
    }; /** @description Virtual Terminal Fetch response */
    VirtualTerminalFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalFetchResponse"];
      };
    }; /** @description Virtual Terminal Update response */
    VirtualTerminalUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalUpdateResponse"];
      };
    }; /** @description Virtual Terminal Deactivate response */
    VirtualTerminalDeactivateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalDeactivateResponse"];
      };
    }; /** @description Virtual Terminal Deactivate response */
    VirtualTerminalDestinationAssignSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalDestinationAssignResponse"];
      };
    }; /** @description Virtual Terminal unassign response */
    VirtualTerminalDestinationUnassignSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalDestinationUnassignResponse"];
      };
    }; /** @description Virtual Terminal Split Assign response */
    VirtualTerminalAddSplitCodeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalAddSplitCodeResponse"];
      };
    }; /** @description Virtual Terminal Split Remove response */
    VirtualTerminalDeleteSplitCodeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VirtualTerminalDeleteSplitCodeResponse"];
      };
    }; /** @description Customer Authorization Initialize response */
    CustomerAuthorizationInitializeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["CustomerAuthorizationInitializeResponse"];
      };
    }; /** @description Customer Authorization Verify response */
    CustomerAuthorizationVerifySuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["CustomerAuthorizationVerifyResponse"];
      };
    }; /** @description Customer Initialize Direct Debit response */
    CustomerInitializeDirectDebitSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["CustomerInitializeDirectDebitResponse"];
      };
    }; /** @description Customer Direct Debit Activation Charge response */
    CustomerDirectDebitActivationChargeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["CustomerDirectDebitActivationChargeResponse"];
      };
    }; /** @description Customer Fetch Mandate Authorizations response */
    CustomerFetchMandateAuthorizationsSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["CustomerFetchMandateAuthorizationsResponse"];
      };
    }; /** @description Direct Debit Activation Charge response */
    DirectDebitActivationChargeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DirectDebitActivationChargeResponse"];
      };
    }; /** @description Apple Pay registered domains retrieved */
    ApplePayDomainsSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ApplePayDomainsResponse"];
      };
    }; /** @description Responses from the Transaction Initialize endpoint */
    ApplePayOkResponse: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ApplePayCreateOkModel"];
      };
    }; /** @description Plan List response */
    PlanListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PlanListResponse"];
      };
    }; /** @description Plan Create response */
    PlanCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PlanCreateResponse"];
      };
    }; /** @description Plan Fetch response */
    PlanFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PlanFetchResponse"];
      };
    }; /** @description Plan Update response */
    PlanUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PlanUpdateResponse"];
      };
    }; /** @description Subscription List response */
    SubscriptionListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["SubscriptionListResponse"];
      };
    }; /** @description Subscription Create response */
    SubscriptionCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["SubscriptionCreateResponse"];
      };
    }; /** @description Subscription Fetch response */
    SubscriptionFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["SubscriptionFetchResponse"];
      };
    }; /** @description Subscription Disable response */
    SubscriptionDisableSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["SubscriptionDisableResponse"];
      };
    }; /** @description Payment Request List response */
    PaymentRequestListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestListResponse"];
      };
    }; /** @description Payment Request Create response */
    PaymentRequestCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestCreateResponse"];
      };
    }; /** @description Payment Request fetch response */
    PaymentRequestViewSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestViewResponse"];
      };
    }; /** @description Payment Request Update response */
    PaymentRequestUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestUpdateResponse"];
      };
    }; /** @description Payment Request Verify response */
    PaymentRequestVerifySuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestVerifyResponse"];
      };
    }; /** @description Payment Request Send Notification response */
    PaymentRequestSendNotificationSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestSendNotificationResponse"];
      };
    }; /** @description Payment Request Total response */
    PaymentRequestTotalSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestTotalResponse"];
      };
    }; /** @description Payment Request Finalize response */
    PaymentRequestFinalizeSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestFinalizeResponse"];
      };
    }; /** @description Payment Request Archive response */
    PaymentRequestArchiveSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PaymentRequestArchiveResponse"];
      };
    }; /** @description Product Lists response */
    ProductListsSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ProductListsResponse"];
      };
    }; /** @description Product Create response */
    ProductCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ProductCreateResponse"];
      };
    }; /** @description Product Fetch response */
    ProductFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ProductFetchResponse"];
      };
    }; /** @description Product Update response */
    ProductUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ProductUpdateResponse"];
      };
    }; /** @description Product Delete response */
    ProductDeleteSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["ProductDeleteResponse"];
      };
    }; /** @description Storefront List response */
    StorefrontListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["StorefrontListResponse"];
      };
    }; /** @description Storefront Create response */
    StorefrontCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["StorefrontCreateResponse"];
      };
    }; /** @description Storefront Fetch response */
    StorefrontFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["StorefrontFetchResponse"];
      };
    }; /** @description Storefront Update response */
    StorefrontUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["StorefrontUpdateResponse"];
      };
    }; /** @description Storefront Delete response */
    StorefrontDeleteSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["StorefrontDeleteResponse"];
      };
    }; /** @description Order List response */
    OrderListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["OrderListResponse"];
      };
    }; /** @description Order Create response */
    OrderCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["OrderCreateResponse"];
      };
    }; /** @description Order Fetch response */
    OrderFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["OrderFetchResponse"];
      };
    }; /** @description Order Fetch Product response */
    OrderFetchProductSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["OrderFetchProductResponse"];
      };
    }; /** @description Order Validate response */
    OrderValidateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["OrderValidateResponse"];
      };
    }; /** @description Page List response */
    PageListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageListResponse"];
      };
    }; /** @description Page Create response */
    PageCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageCreateResponse"];
      };
    }; /** @description Page Fetch response */
    PageFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageFetchResponse"];
      };
    }; /** @description Page Update response */
    PageUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageUpdateResponse"];
      };
    }; /** @description Page Check Slug Availability response */
    PageCheckSlugAvailabilitySuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageCheckSlugAvailabilityResponse"];
      };
    }; /** @description Page Add Products response */
    PageAddProductsSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["PageAddProductsResponse"];
      };
    }; /** @description Refund List response */
    RefundListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["RefundListResponse"];
      };
    }; /** @description Refund Create response */
    RefundCreateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["RefundCreateResponse"];
      };
    }; /** @description Refund Create response */
    RefundRetrySuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["RefundRetryResponse"];
      };
    }; /** @description Refund Fetch response */
    RefundFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["RefundFetchResponse"];
      };
    }; /** @description Dispute List response */
    DisputeListSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeListResponse"];
      };
    }; /** @description Dispute Fetch response */
    DisputeFetchSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeFetchResponse"];
      };
    }; /** @description Dispute Update response */
    DisputeUpdateSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeUpdateResponse"];
      };
    }; /** @description Dispute Upload URL response */
    DisputeUploadURLSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeUploadURLResponse"];
      };
    }; /** @description Dispute Export response */
    DisputeExportSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeExportResponse"];
      };
    }; /** @description Dispute List Transaction response */
    DisputeListTransactionSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeListTransactionResponse"];
      };
    }; /** @description Dispute Resolve response */
    DisputeResolveSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeResolveResponse"];
      };
    }; /** @description Dispute Add Evidence response */
    DisputeAddEvidenceSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["DisputeAddEvidenceResponse"];
      };
    }; /** @description Miscellaneous List Banks response */
    MiscellaneousListBanksSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["MiscellaneousListBanksResponse"];
      };
    }; /** @description Verification Resolve Account Number response */
    VerificationResolveAccountNumberSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VerificationResolveAccountNumberResponse"];
      };
    }; /** @description Verification Validate Account response */
    VerificationValidateAccountSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VerificationValidateAccountResponse"];
      };
    }; /** @description Verification Resolve Card B I N response */
    VerificationResolveCardBINSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["VerificationResolveCardBINResponse"];
      };
    }; /** @description Miscellaneous List Countries response */
    MiscellaneousListCountriesSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["MiscellaneousListCountriesResponse"];
      };
    }; /** @description Miscellaneous List States response */
    MiscellaneousListStatesSuccess: {
      headers: {
        [name: string]: unknown;
      };
      content: {
        "application/json": components["schemas"]["MiscellaneousListStatesResponse"];
      };
    };
  };
  parameters: never;
  requestBodies: never;
  headers: never;
  pathItems: never;
}
interface operations {
  transaction_initialize: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransactionInitialize"];
        "application/x-www-form-urlencoded": components["schemas"]["TransactionInitialize"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionInitializeResponse"];
        };
      };
      400: components["responses"]["TransactionInitializeBadRequestResponse"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_chargeAuthorization: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransactionChargeAuthorization"];
        "application/x-www-form-urlencoded": components["schemas"]["TransactionChargeAuthorization"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeAuthorizationResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_partialDebit: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransactionPartialDebit"];
        "application/x-www-form-urlencoded": components["schemas"]["TransactionPartialDebit"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionPartialDebitResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_checkAuthorization: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/x-www-form-urlencoded": components["schemas"]["TransactionCheckAuthorization"];
        "application/json": components["schemas"]["TransactionCheckAuthorization"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_verify: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The transaction reference to verify
         * @example re4lyvq3s3
         */
        reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["VerifyResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_list: {
    parameters: {
      query?: {
        /**
         * @description A flag to indicate if cursor based pagination should be used
         * @example true
         */
        use_cursor?: boolean; /** @description An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data */
        next?: string; /** @description An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data */
        previous?: string; /** @description Specify how many records you want to retrieve per page. If not specified, we use a default value of 50. */
        perPage?: number; /** @description Specify exactly what page you want to retrieve. If not specified, we use a default value of 1. */
        page?: number; /** @description A timestamp from which to start listing transaction e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing transaction e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string; /** @description Filter transaction by status */
        status?: "success" | "failed" | "abandoned" | "reversed"; /** @description The origin of the payment */
        source?: "merchantApi" | "checkout" | "pos" | "virtualTerminal"; /** @description The Terminal ID for the transactions you want to retrieve */
        terminalid?: string; /** @description Filter transactions by a virtual account number */
        virtual_account_number?: string; /** @description Specify an ID for the customer whose transactions you want to retrieve */
        customer?: number;
        /**
         * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
         *     Filter transactions by a specific amount.
         */
        amount?: number; /** @description The settlement ID to filter for settled transactions */
        settlement?: number; /** @description The payment method the customer used to complete the transaction */
        channel?: "card" | "pos" | "bank" | "dedicated_nuban" | "ussd" | "bank_transfer"; /** @description Filter transaction by subaccount code */
        subaccount_code?: string; /** @description Filter transaction by split code */
        split_code?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the transaction to fetch
         * @example 4099260516
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_event: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description The ID of the transaction */id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_session: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description The ID of the transaction */id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_timeline: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID or the reference of the transaction
         * @example 3936799950
         */
        id_or_reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionTimelineResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_totals: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number;
        /**
         * @description The start date
         * @example 2024-06-01T00:00:01Z
         */
        from?: string;
        /**
         * @description The end date
         * @example 2024-06-30T13:36:54Z
         */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionTotalsResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transaction_export: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number;
        /**
         * @description The start date
         * @example 2024-06-01T00:00:01Z
         */
        from?: string;
        /**
         * @description The end date
         * @example 2024-06-30T13:36:54Z
         */
        to?: string;
        /**
         * @description Filter by the status of the transaction
         * @example success
         */
        status?: "success" | "failed" | "abandoned" | "reversed" | "all";
        /**
         * @description Filter by customer ID
         * @example 123172416
         */
        customer?: number; /** @description Specify the transaction currency to export */
        currency?: string;
        /**
         * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
         *     Filter transactions by amount.
         */
        amount?: number; /** @description Set to true to export only settled transactions. false for pending transactions. Leave undefined to export all transactions */
        settled?: boolean;
        /**
         * @description Filter by the settlement ID
         * @example 5687910
         */
        settlement?: number; /** @description Specify a payment page's id to export only transactions conducted on said page */
        payment_page?: number;
        /**
         * @deprecated
         * @description Filter by subaccount code
         * @example ACCT_dskvlw3y3dMukmt
         */
        subaccount_code?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransactionExportResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeCreate"] & {
          bank?: components["schemas"]["Bank"];
        } & {
          mobile_money?: components["schemas"]["MobileMoney"];
        } & {
          ussd?: components["schemas"]["USSD"];
        } & {
          eft?: components["schemas"]["EFT"];
        };
        "application/x-www-form-urlencoded": components["schemas"]["ChargeCreate"] & {
          bank?: components["schemas"]["Bank"];
        } & {
          mobile_money?: components["schemas"]["MobileMoney"];
        } & {
          ussd?: components["schemas"]["USSD"];
        } & {
          eft?: components["schemas"]["EFT"];
        };
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_submitPin: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeSubmitPin"];
        "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitPin"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeSubmitPinResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_submitOtp: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeSubmitOTP"];
        "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitOTP"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeSubmitOtpResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_submitPhone: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeSubmitPhone"];
        "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitPhone"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeSubmitPhoneResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_submitBirthday: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeSubmitBirthday"];
        "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitBirthday"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeSubmitBirthdayResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_submitAddress: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ChargeSubmitAddress"];
        "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitAddress"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeCheckPendingResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  charge_check: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The reference of the ongoing transaction
         * @example 5bwib5v6anhe9xa
         */
        reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ChargeCheckPendingResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The offset to retrieve data from */
        page?: number; /** @description A timestamp from which to start listing batches e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing batches e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargeListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_initiate: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["BulkChargeInitiate"][];
        "application/x-www-form-urlencoded": components["schemas"]["BulkChargeInitiate"][];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargeInitiateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the charge whose batches you want to retrieve.
         * @example BCH_180tl7oq7cayggh
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargeFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_charges: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The offset to retrieve data from */
        page?: number; /** @description Either one of these values: pending, success or failed */
        status?: "pending" | "success" | "failed"; /** @description A timestamp from which to start listing charges e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing charges e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string;
      };
      header?: never;
      path: {
        /**
         * @description An ID or code for the batch whose charges you want to retrieve.
         * @example BCH_180tl7oq7cayggh
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargeFetchBulkBatchChargesResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_pause: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The batch code for the bulk charge you want to pause
         * @example BCH_180tl7oq7cayggh
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargePauseResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bulkCharge_resume: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The batch code for the bulk charge you want to pause
         * @example BCH_180tl7oq7cayggh
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BulkChargeResumeResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subaccount_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per request */perPage?: number; /** @description The offset to retrieve data from */
        page?: number; /** @description A timestamp from which to start listing subaccounts e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing subaccounts e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SubaccountListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subaccount_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SubaccountCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["SubaccountCreate"];
      };
    };
    responses: {
      201: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SubaccountCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subaccount_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The subaccount ID or code you want to fetch
         * @example ACCT_6uujpqtzmnufzkw
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SubaccountFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subaccount_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The subaccount ID or code you want to fetch
         * @example ACCT_6uujpqtzmnufzkw
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SubaccountUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["SubaccountUpdate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SubaccountUpdateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_list: {
    parameters: {
      query?: {
        /**
         * @description Filter by subaccount code
         * @example ACCT_dskvlw3y3dMukmt
         */
        subaccount_code?: string; /** @description The name of the split */
        name?: string; /** @description The status of the split */
        active?: boolean; /** @description Sort by name, defaults to createdAt date */
        sort_by?: string; /** @description Number of splits per page. If not specified, we use a default value of 50. */
        perPage?: number; /** @description Page number to view. If not specified, we use a default value of 1. */
        page?: number; /** @description A timestamp from which to start listing splits e.g. 2019-09-24T00:00:05.000Z, 2019-09-21 */
        from?: string; /** @description A timestamp at which to stop listing splits e.g. 2019-09-24T00:00:05.000Z, 2019-09-21 */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SplitCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["SplitCreate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the split configuration to fetch
         * @example 4896895
         */
        id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SplitUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["SplitUpdate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitUpdateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_addSubaccount: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the split configuration to fetch
         * @example 4896895
         */
        id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SplitSubaccounts"];
        "application/x-www-form-urlencoded": components["schemas"]["SplitSubaccounts"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitAddUpdateSubaccountResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  split_removeSubaccount: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the split configuration to fetch
         * @example 4896895
         */
        id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SplitSubaccountRemove"];
        "application/x-www-form-urlencoded": components["schemas"]["SplitSubaccountRemove"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SplitRemoveSubaccountResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_sendEvent: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TerminalSendEvent"];
        "application/x-www-form-urlencoded": components["schemas"]["TerminalSendEvent"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_fetchEventStatus: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        terminal_id: string;
        /**
         * @description The ID of the event that was sent to the Terminal
         * @example 616d721e8c5cd40a0cdd54a6
         */
        event_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_fetchTerminalStatus: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        terminal_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["TerminalGetStatusSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_list: {
    parameters: {
      query?: {
        /** @description A cursor that indicates your place in the list. It can be used to fetch the next page of the list */next?: string; /** @description A cursor that indicates your place in the list. It should be used to fetch the previous page of the list after an intial next request */
        previous?: string; /** @description Specify how many records you want to retrieve per page. If not specified, we use a default value of 50. */
        perPage?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["TerminalListsSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        terminal_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["TerminalGetSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the Terminal the event should be sent to.
         * @example Z0R4orOU
         */
        terminal_id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TerminalUpate"];
        "application/x-www-form-urlencoded": components["schemas"]["TerminalUpate"];
      };
    };
    responses: {
      200: components["responses"]["TerminalUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_commission: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TerminalActivationToggle"];
        "application/x-www-form-urlencoded": components["schemas"]["TerminalActivationToggle"];
      };
    };
    responses: {
      200: components["responses"]["TerminalCommissionDeviceSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  terminal_decommission: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TerminalActivationToggle"];
        "application/x-www-form-urlencoded": components["schemas"]["TerminalActivationToggle"];
      };
    };
    responses: {
      200: components["responses"]["TerminalDecommissionDeviceSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_list: {
    parameters: {
      query?: {
        /** @description Filter by status ('active' or 'inactive') */status?: "active" | "inactive";
        /**
         * @description Number of records per page
         * @example 50
         */
        perPage?: number; /** @description Search query string */
        search?: string; /** @description Cursor for next page */
        next?: string; /** @description Cursor for previous page */
        previous?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["VirtualTerminalListSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalCreate"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["VirtualTerminalFetchSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalUpdate"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalUpdateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_deactivate: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["VirtualTerminalDeactivateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_destinationAssign: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalDestinationAssign"];
        "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDestinationAssign"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalDestinationAssignSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_destinationUnassign: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalDestinationUnassign"];
        "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDestinationUnassign"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalDestinationUnassignSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_addSplitCode: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalAddSplitCode"];
        "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalAddSplitCode"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalAddSplitCodeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server Error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  virtualTerminal_deleteSplitCode: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Code of the Virtual Terminal
         * @example VT_MCK5292Z
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["VirtualTerminalDeleteSplitCode"];
        "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDeleteSplitCode"];
      };
    };
    responses: {
      200: components["responses"]["VirtualTerminalDeleteSplitCodeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server Error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_list: {
    parameters: {
      query?: {
        /** @description A flag to indicate if cursor based pagination should be used */use_cursor?: boolean; /** @description An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data */
        next?: string; /** @description An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data */
        previous?: string; /** @description A timestamp from which to start listing customers e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing customers e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string; /** @description Specify how many records you want to retrieve per page. If not specified, we use a default value of 50. */
        perPage?: number; /** @description Specify exactly what page you want to retrieve. If not specified, we use a default value of 1. */
        page?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerCreate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An email or customer code for the customer you want to fetch
         * @example CUS_c6wqvwmvwopw4ms
         */
        email_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An email or customer code for the customer you want to fetch
         * @example CUS_c6wqvwmvwopw4ms
         */
        email_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerUpdate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerUpdateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_riskAction: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerRiskAction"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerRiskAction"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerWhitelistBlacklistResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_validate: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Customer code
         * @example CUS_c6wqvwmvwopw4ms
         */
        customer_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerValidate"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerValidate"];
      };
    };
    responses: {
      202: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerValidateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_initializeAuthorization: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["CustomerAuthorizationInitializeRequest"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerAuthorizationInitializeRequest"];
      };
    };
    responses: {
      200: components["responses"]["CustomerAuthorizationInitializeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_verifyAuthorization: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The reference returned in the initialization response
         * @example dfbzfotsrbv4n5s82t4mp5b5mfn51h
         */
        reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["CustomerAuthorizationVerifySuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_deactivateAuthorization: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerDeactivateAuthorization"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerDeactivateAuthorization"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CustomerDeactivateAuthorizationResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_initializeDirectDebit: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The ID of the customer to initialize the direct debit for
         * @example 297346561
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerInitializeDirectDebitRequest"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerInitializeDirectDebitRequest"];
      };
    };
    responses: {
      200: components["responses"]["CustomerInitializeDirectDebitSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_directDebitActivationCharge: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The customer ID attached to the authorization
         * @example 297346561
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["CustomerDirectDebitActivationChargeRequest"];
        "application/x-www-form-urlencoded": components["schemas"]["CustomerDirectDebitActivationChargeRequest"];
      };
    };
    responses: {
      200: components["responses"]["CustomerDirectDebitActivationChargeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  customer_fetchMandateAuthorizations: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The customer ID for the authorizations to fetch
         * @example 297346561
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["CustomerFetchMandateAuthorizationsSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  directdebit_triggerActivationCharge: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["DirectDebitActivationChargeRequest"];
      };
    };
    responses: {
      200: components["responses"]["DirectDebitActivationChargeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  directdebit_listMandateAuthorizations: {
    parameters: {
      query?: {
        /** @description The cursor value of the next set of authorizations to fetch. You can get this from the meta object of the response */cursor?: string; /** @description Filter by the authorization status */
        status?: "pending" | "active" | "revoked"; /** @description The number of authorizations to fetch per request */
        per_page?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["CustomerFetchMandateAuthorizationsSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_list: {
    parameters: {
      query?: {
        /**
         * @description Status of the dedicated virtual account
         * @example true
         */
        active?: boolean;
        /**
         * @description The customer's ID
         * @example 297346561
         */
        customer?: number; /** @description The currency of the dedicated virtual account */
        currency?: "NGN" | "GHS";
        /**
         * @description The bank's slug in lowercase, without spaces
         * @example titan-paystack
         */
        provider_slug?: string;
        /**
         * @description The bank's ID
         * @example 035
         */
        bank_id?: string; /** @description The number of records to fetch per request */
        perPage?: number; /** @description The offset to retrieve data from */
        page?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["DedicatedNubanListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DedicatedVirtualAccountCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountCreate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["DedicatedNubanCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_assign: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DedicatedVirtualAccountAssign"];
        "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountAssign"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description ID of dedicated virtual account */id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["DedicatedNubanFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_deactivate: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description ID of dedicated virtual account */id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["DedicatedNubanDeactivateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_requery: {
    parameters: {
      query?: {
        /**
         * @description Virtual account number to requery
         * @example 0033322211
         */
        account_number?: string;
        /**
         * @description The bank's slug in lowercase, without spaces.
         * @example titan-paystack
         */
        provider_slug?: string; /** @description The day the transfer was made */
        date?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_addSplit: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DedicatedVirtualAccountSplit"];
        "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountSplit"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_removeSplit: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DedicatedVirtualAccountRemoveSplit"];
        "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountRemoveSplit"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dedicatedAccount_availableProviders: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  applePay_listDomain: {
    parameters: {
      query?: {
        /**
         * @description Flag to enable cursor pagination on the endpoint
         * @example true
         */
        use_cursor?: boolean; /** @description A cursor that indicates your place in the list. It can be used to fetch the next page of the list */
        next?: string; /** @description A cursor that indicates your place in the list. It should be used to fetch the previous page of the list after an intial next request */
        previous?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["ApplePayDomainsSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  applePay_registerDomain: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ApplePayParam"];
        "application/x-www-form-urlencoded": components["schemas"]["ApplePayParam"];
      };
    };
    responses: {
      200: components["responses"]["ApplePayOkResponse"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  applePay_unregisterDomain: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ApplePayParam"];
        "application/x-www-form-urlencoded": components["schemas"]["ApplePayParam"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  capitecPay_requery: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The transaction reference from the previously initiated charge request
         * @example 123456789
         */
        ref: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["CapitecPayRequeryResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_initialize: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PreAuthorizationInitialize"];
        "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationInitialize"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationInitializeResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_capture: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PreAuthorizationCapture"];
        "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationCapture"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationCaptureResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_reserve_authorization: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PreAuthorizationReserve"];
        "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationReserve"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationReserveWithAuthCodeResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_verify: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /** @description The transaction reference used to intiate the transaction */reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationVerifyResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_release: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PreAuthorizationRelease"];
        "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationRelease"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationReleaseResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  preauthorization_list: {
    parameters: {
      query?: {
        /** @description Specify how many records you want to retrieve per page. If not specify we use a default value of 50. */perPage?: number; /** @description Specify exactly what page you want to retrieve. If not specify we use a default value of 1. */
        page?: number; /** @description A timestamp from which to start listing transaction e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing transaction e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string; /** @description Filter transactions by status. */
        status?: "authorized" | "captured" | "released" | "ongoing" | "failed" | "abandoned"; /** @description Filter transactions by amount using the supported currency code */
        amount?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["PreAuthorizationListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  plan_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description Filter list by plans with specified status */
        status?: string; /** @description Specify interval of the plan */
        interval?: "daily" | "weekly" | "monthly" | "quarterly" | "biannually" | "annually";
        /**
         * @description Amount should be in the subunit of the supported currency (e.g. kobo for NGN, pesewas for GHS, cents for ZAR/USD/KES). For XOF, the amount is the same as the base units (not multiplied by 100).
         *     Filter plans by a specific amount.
         */
        amount?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PlanListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  plan_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PlanCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["PlanCreate"];
      };
    };
    responses: {
      200: components["responses"]["PlanCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  plan_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The plan ID or code you want to fetch
         * @example PLN_gx2wn530m0i3w3m
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PlanFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  plan_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The plan ID or code you want to fetch
         * @example PLN_gx2wn530m0i3w3m
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PlanUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["PlanUpdate"];
      };
    };
    responses: {
      200: components["responses"]["PlanUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number;
        /**
         * @description Plan ID
         * @example 2697466
         */
        plan?: number; /** @description Filter by Customer ID */
        customer?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["SubscriptionListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SubscriptionCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["SubscriptionCreate"];
      };
    };
    responses: {
      200: components["responses"]["SubscriptionCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The subscription ID or code you want to fetch
         * @example SUB_5co81xgmwg78x3d
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["SubscriptionFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_disable: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SubscriptionToggle"];
        "application/x-www-form-urlencoded": components["schemas"]["SubscriptionToggle"];
      };
    };
    responses: {
      200: components["responses"]["SubscriptionDisableSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_enable: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["SubscriptionToggle"];
        "application/x-www-form-urlencoded": components["schemas"]["SubscriptionToggle"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_manageLink: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Subscription code
         * @example qlgwhpyq1ts9nsw
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  subscription_manageEmail: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Subscription code
         * @example qlgwhpyq1ts9nsw
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_list: {
    parameters: {
      query?: {
        /** @description Specify how many records you want to retrieve per page. If not specified, we use a default value of 50. */perPage?: number; /** @description Specify exactly what page you want to retrieve. If not specified, we use a default value of 1. */
        page?: number; /** @description A timestamp from which to start listing transfer recipients e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing transfer recipients e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferRecipientCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientCreate"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_bulk: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferRecipientBulk"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientBulk"];
      };
    };
    responses: {
      /** @description Sucessful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientBulkCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the recipient whose details you want to receive.
         * @example RCP_5ap8rcimmcj8lbi
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the recipient whose details you want to receive.
         * @example RCP_5ap8rcimmcj8lbi
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferRecipientUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientUpdate"];
      };
    };
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientUpdateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transferrecipient_delete: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description An ID or code for the recipient whose details you want to receive.
         * @example RCP_5ap8rcimmcj8lbi
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferRecipientDeleteResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_list: {
    parameters: {
      query?: {
        /** @description Specify how many records you want to retrieve per page. If not specify we use a default value of 50. */perPage?: number; /** @description Specify exactly what transfer you want to page. If not specify we use a default value of 1. */
        page?: number; /** @description A timestamp from which to start listing transfer e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        from?: string; /** @description A timestamp at which to stop listing transfer e.g. 2016-09-24T00:00:05.000Z, 2016-09-21 */
        to?: string; /** @description Filter by the recipient ID */
        recipient?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_initiate: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferInitiate"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferInitiate"];
      };
    };
    responses: {
      /** @description Successful operation */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferCreateResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_finalize: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferFinalize"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferFinalize"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_bulk: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferBulk"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferBulk"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferBulkResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The transfer ID or code you want to fetch
         * @example TRF_1ptvuv321ahaa7q
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Succesful operation */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferFetchResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_verify: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description Transfer reference
         * @example acv_9ee55786-2323-4760-98e2-6380c9cb3f67
         */
        reference: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferVerifyResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_exportTransfer: {
    parameters: {
      query?: {
        /** @description Export transfer by the recipient code */recipient?: string;
        /**
         * @description Export transfer by status
         * @example success
         */
        status?: "pending" | "success" | "failed" | "otp" | "abandoned" | "reversed" | "blocked" | "rejected" | "received"; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_resendOtp: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferResendOTP"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferResendOTP"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferResendsOtpResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_disableOtp: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferDisablesOtpResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_disableOtpFinalize: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["TransferFinalizeDisableOTP"];
        "application/x-www-form-urlencoded": components["schemas"]["TransferFinalizeDisableOTP"];
      };
    };
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferFinalizeDisablesOtpResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  transfer_enableOtp: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful response */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["TransferEnablesOtpResponse"];
        };
      };
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  balance_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BalanceCheckResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  balance_ledger: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["BalanceFetchLedgerResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description Customer ID */
        customer?: string;
        /**
         * @description Invoice status to filter
         * @example success
         */
        status?: "draft" | "pending" | "success" | "failed"; /** @description If your integration supports more than one currency, choose the one to filter */
        currency?: string; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PaymentRequestCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["PaymentRequestCreate"];
      };
    };
    responses: {
      200: components["responses"]["PaymentRequestCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The payment request ID or code you want to fetch
         * @example 18823736
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestViewSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The payment request ID or code you want to fetch
         * @example 18823736
         */
        id_or_code: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PaymentRequestUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["PaymentRequestUpdate"];
      };
    };
    responses: {
      200: components["responses"]["PaymentRequestUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_verify: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestVerifySuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_notify: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestSendNotificationSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_totals: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestTotalSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_finalize: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a draft payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestFinalizeSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  paymentRequest_archive: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of a previously created payment request
         * @example 18823736
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PaymentRequestArchiveSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  product_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number;
        /**
         * @description The state of the product
         * @example true
         */
        active?: boolean; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["ProductListsSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  product_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ProductCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["ProductCreate"];
      };
    };
    responses: {
      201: components["responses"]["ProductCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  product_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the product
         * @example 2196244
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["ProductFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  product_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the product
         * @example 2196244
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["ProductUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["ProductUpdate"];
      };
    };
    responses: {
      200: components["responses"]["ProductUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  product_delete: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the product
         * @example 2196244
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["ProductDeleteSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per request */perPage?: number; /** @description The offset to retrieve data from */
        page?: number; /** @example active */
        status?: "active" | "inactive";
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["StorefrontListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["StorefrontCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["StorefrontCreate"];
      };
    };
    responses: {
      200: components["responses"]["StorefrontCreateSuccess"];
      400: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["StorefrontFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["StorefrontUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["StorefrontUpdate"];
      };
    };
    responses: {
      200: components["responses"]["StorefrontUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_delete: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["StorefrontDeleteSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_verifySlug: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The custom slug to check
         * @example struct_and_faces
         */
        slug: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_fetchOrders: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_listProducts: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_addProducts: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["StorefrontAddProducts"];
        "application/x-www-form-urlencoded": components["schemas"]["StorefrontAddProducts"];
      };
    };
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_publish: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  storefront_duplicate: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the Storefront
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["Ok"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  order_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["OrderListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  order_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["OrderCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["OrderCreate"];
      };
    };
    responses: {
      200: components["responses"]["OrderCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  order_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the order
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["OrderFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  order_product: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the order
         * @example 1559046
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["OrderFetchProductSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  order_validate: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique code of a previously created order
         * @example ORD_6z0lqwpmxrm7dsp
         */
        code: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["OrderValidateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_list: {
    parameters: {
      query?: {
        /**
         * @description Number of records to fetch per page
         * @example 10
         */
        perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PageListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PageCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["PageCreate"];
      };
    };
    responses: {
      200: components["responses"]["PageCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The page ID or slug you want to fetch
         * @example 1891222
         */
        id_or_slug: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PageFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The page ID or slug you want to fetch
         * @example 1891222
         */
        id_or_slug: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PageUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["PageUpdate"];
      };
    };
    responses: {
      200: components["responses"]["PageUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_checkSlugAvailability: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The custom slug to check
         * @example risky-burger
         */
        slug: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["PageCheckSlugAvailabilitySuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  page_addProducts: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        id: string;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PageProduct"];
        "application/x-www-form-urlencoded": components["schemas"]["PageProduct"];
      };
    };
    responses: {
      200: components["responses"]["PageAddProductsSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  settlements_fetch: {
    parameters: {
      query?: {
        /**
         * @description Number of records to fetch per page
         * @example 50
         */
        perPage?: number;
        /**
         * @description The section to retrieve
         * @example 2
         */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string; /** @description Filter by status */
        status?: "success" | "failed" | "processing" | "pending"; /** @description Filter by subaccount ID. Set to `none` to return only main account settlements. */
        subaccount?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SettlementListResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  settlements_transaction: {
    parameters: {
      query?: {
        /**
         * @description Number of records to fetch per page
         * @example 50
         */
        perPage?: number;
        /**
         * @description The section to retrieve
         * @example 2
         */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path: {
        /**
         * @description The settlement ID in which you want to fetch its transactions
         * @example 8610870
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["SettlementTransactionsResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  integration_fetchPaymentSessionTimeout: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ControlPanelFetchPaymentSessionTimeoutResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  integration_updatePaymentSessionTimeout: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["PaymentSession"];
      };
    };
    responses: {
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ControlPanelUpdatePaymentSessionTimeoutResponse"];
        };
      };
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  refund_list: {
    parameters: {
      query?: {
        /** @description The transaction ID of the refunded transaction */transaction?: string; /** @description Any of the supported currency */
        currency?: string;
        /**
         * @description Number of records to fetch per page
         * @example 10
         */
        perPage?: number; /** @description The section to retrieve */
        page?: number; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["RefundListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  refund_create: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["RefundCreate"];
        "application/x-www-form-urlencoded": components["schemas"]["RefundCreate"];
      };
    };
    responses: {
      200: components["responses"]["RefundCreateSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  refund_retry: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The identifier of the refund
         * @example 15581137
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["RefundRetry"];
        "application/x-www-form-urlencoded": components["schemas"]["RefundRetry"];
      };
    };
    responses: {
      200: components["responses"]["RefundRetrySuccess"];
      422: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  refund_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The identifier of the refund
         * @example 15581137
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["RefundFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_list: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number;
        /**
         * @description Dispute status
         * @example awaiting-merchant-feedback
         */
        status?: "awaiting-merchant-feedback" | "awaiting-bank-feedback" | "pending" | "resolved"; /** @description Transaction ID */
        transaction?: string; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["DisputeListSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_fetch: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 1801929
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["DisputeFetchSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_update: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 1801929
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DisputeUpdate"];
        "application/x-www-form-urlencoded": components["schemas"]["DisputeUpdate"];
      };
    };
    responses: {
      200: components["responses"]["DisputeUpdateSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_uploadUrl: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 4734583785
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["DisputeUploadURLSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_download: {
    parameters: {
      query?: {
        /** @description Number of records to fetch per page */perPage?: number; /** @description The section to retrieve */
        page?: number; /** @example awaiting-merchant-feedback */
        status?: "awaiting-merchant-feedback" | "awaiting-bank-feedback" | "pending" | "resolved"; /** @description The start date */
        from?: string; /** @description The end date */
        to?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["DisputeExportSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_transaction: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the transaction
         * @example 4734583785
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["DisputeListTransactionSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_resolve: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 4734583785
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DisputeResolve"];
        "application/x-www-form-urlencoded": components["schemas"]["DisputeResolve"];
      };
    };
    responses: {
      200: components["responses"]["DisputeResolveSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  dispute_evidence: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The unique identifier of the dispute
         * @example 4734583785
         */
        id: number;
      };
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["DisputeEvidence"];
        "application/x-www-form-urlencoded": components["schemas"]["DisputeEvidence"];
      };
    };
    responses: {
      200: components["responses"]["DisputeAddEvidenceSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bank_list: {
    parameters: {
      query?: {
        /**
         * @description The country from which to obtain the list of supported banks. Accepted values are: ghana, kenya, nigeria, south africa
         * @example nigeria
         */
        country?: "ghana" | "kenya" | "nigeria" | "south africa";
        /**
         * @description One of the supported currency
         * @example NGN
         */
        currency?: "GHS" | "KES" | "NGN" | "ZAR"; /** @description A flag to indicate if cursor based pagination should be used */
        use_cursor?: boolean; /** @description The number of objects to return per page. Defaults to 50, and limited to 100 records per page. */
        perPage?: number; /** @description Specify exactly what page you want to retrieve. If not specified, we use a default value of 1. */
        page?: number;
        /**
         * @description An alphanumeric value returned for every cursor based retrieval, used to
         *     retrieve the next set of data
         */
        next?: string;
        /**
         * @description An alphanumeric value returned for every cursor based retrieval, used to
         *     retrieve the previous set of data
         */
        previous?: string; /** @description A flag to filter for available banks a customer can make a transfer to complete a payment */
        pay_with_bank_transfer?: boolean; /** @description A flag to filter for banks a customer can pay directly from */
        pay_with_bank?: boolean;
        /**
         * @description 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.
         */
        enabled_for_verification?: boolean; /** @description The gateway type of the bank */
        gateway?: "emandate" | "digitalbankmandate"; /** @description Type of financial channel. For Ghanaian channels, please use either mobile_money for mobile money channels OR ghipss for bank channels */
        type?: "ghipss" | "mobile_money" | "nuban" | "kepss" | "basa";
        /**
         * @description A flag that returns Nigerian banks with their NIP institution code.
         *     The returned value can be used in identifying institutions on NIP.
         */
        include_nip_sort_code?: boolean;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["MiscellaneousListBanksSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bank_resolveAccountNumber: {
    parameters: {
      query?: {
        /**
         * @description The account number of interest
         * @example 0022728151
         */
        account_number?: string;
        /**
         * @description The bank code associated with the account number
         * @example 063
         */
        bank_code?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["VerificationResolveAccountNumberSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  bank_validateAccountNumber: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: {
      content: {
        "application/json": components["schemas"]["BankValidateRequest"];
        "application/x-www-form-urlencoded": components["schemas"]["BankValidateRequest"];
      };
    };
    responses: {
      200: components["responses"]["VerificationValidateAccountSuccess"];
      401: components["responses"]["Unauthorized"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  miscellaneous_resolveCardBin: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        /**
         * @description The card bank identification number
         * @example 539983
         */
        bin: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["VerificationResolveCardBINSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  miscellaneous_listCountries: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["MiscellaneousListCountriesSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  miscellaneous_avs: {
    parameters: {
      query?: {
        /**
         * @description The country code of the states to list. It is gotten after the charge request
         * @example CA
         */
        country?: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      200: components["responses"]["MiscellaneousListStatesSuccess"];
      401: components["responses"]["Unauthorized"];
      404: components["responses"]["NotFound"]; /** @description Server error */
      default: {
        headers: {
          [name: string]: unknown;
        };
        content?: never;
      };
    };
  };
  misc_generateWebhookEventTypes: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description OK */200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["WebhookEvent"];
        };
      };
    };
  };
}
//#endregion
//#region src/client.d.ts
type PaystackPaths = paths;
type PaystackClient = Client<PaystackPaths>;
interface PaystackBrowserClientOptions {
  apiKey: string;
  baseUrl?: string;
  fetch?: typeof fetch;
  headers?: Record<string, string>;
  /** Abort the request if it takes longer than this many milliseconds. */
  timeoutMs?: number;
  /** Automatically retry transient failures (defaults to safe/idempotent methods only). */
  retry?: PaystackRetryOptions;
  /**
   * Adds an idempotency key header automatically on POST requests (useful for safe retries).
   * If you already set an Idempotency-Key header per request, this will not override it.
   */
  idempotencyKey?: string | (() => string);
  /** Header name to use for idempotency. Default: 'Idempotency-Key' */
  idempotencyHeader?: string;
}
interface PaystackRetryOptions {
  /** Number of retries after the initial attempt. Default: 2 */
  retries?: number;
  /** Minimum backoff delay. Default: 250 */
  minDelayMs?: number;
  /** Maximum backoff delay. Default: 2000 */
  maxDelayMs?: number;
  /** HTTP statuses to retry. Default: [408, 429, 500, 502, 503, 504] */
  retryOnStatuses?: number[];
  /** HTTP methods to retry. Default: ['GET','HEAD','OPTIONS'] */
  retryOnMethods?: string[];
}
declare function createPaystackClient(options: PaystackBrowserClientOptions): PaystackClient;
//#endregion
//#region src/errors.d.ts
declare const DEFAULT_REQUEST_ID_HEADERS: readonly ["x-paystack-request-id", "x-request-id"];
/**
 * Extracts a Paystack Request ID from response headers.
 */
declare function getPaystackRequestId(headers: Headers | HeadersInit): string | undefined;
type PaystackErrorType = "api_error" | "validation_error" | "processor_error" | (string & {});
interface PaystackErrorOptions {
  message: string;
  code?: string;
  type?: PaystackErrorType;
  status?: number;
  requestId?: string;
  meta?: Record<string, unknown>;
  /** Parsed Paystack response envelope or transport payload used to create this error. */
  raw?: unknown;
  /** Alias for raw, kept for callers that prefer body-oriented naming. */
  body?: unknown;
  /** Original transport/openapi-fetch error, when one exists. */
  cause?: unknown;
}
/**
 * Standard Paystack API Error
 */
declare class PaystackError extends Error {
  /** The machine-readable error code */
  readonly code?: string;
  /** The error type (e.g., api_error, validation_error, processor_error) */
  readonly type?: string;
  /** The HTTP status code */
  readonly status?: number;
  /** The request ID for debugging with Paystack support */
  readonly requestId?: string;
  /** Additional metadata from the error response */
  readonly meta?: Record<string, unknown>;
  /** Parsed Paystack response envelope or transport payload used to create this error. */
  readonly raw?: unknown;
  /** Alias for raw, kept for callers that prefer body-oriented naming. */
  readonly body?: unknown;
  constructor(options: PaystackErrorOptions);
  /**
   * Helper to determine if the error is a processor-level issue
   * (e.g., insufficient funds, card declined)
   */
  isProcessorError(): boolean;
  /**
   * Helper to determine if the error is due to invalid request parameters
   */
  isValidationError(): boolean;
}
/**
 * @deprecated Use PaystackError
 */
declare const PaystackApiError: typeof PaystackError;
/**
 * @deprecated Use PaystackError
 */
declare function isPaystackApiError(value: unknown): value is PaystackError;
//#endregion
//#region src/response.d.ts
/**
 * Base structure of a Paystack API response body
 */
interface PaystackRawResponse<T = unknown> {
  status: boolean;
  message: string;
  data: T;
  code?: string;
  type?: PaystackErrorType;
  meta?: Record<string, unknown>;
  errorCodeMappingNotFound?: boolean;
}
/**
 * Enhanced response wrapper for the Paystack SDK.
 * Provides .unwrap() and .data helpers for elegant error handling.
 */
declare class PaystackResponse<T> {
  /** The raw JSON data returned in the response body */
  readonly raw: PaystackRawResponse<T> | undefined;
  /** The error object if the request failed (from openapi-fetch) */
  readonly error: unknown;
  /** The raw fetch Response object */
  readonly response: Response;
  constructor(/** The raw JSON data returned in the response body */

  raw: PaystackRawResponse<T> | undefined, /** The error object if the request failed (from openapi-fetch) */

  error: unknown, /** The raw fetch Response object */

  response: Response);
  /**
   * The success indicator from the Paystack API body.
   */
  get status(): boolean;
  /**
   * The message from the Paystack API body.
   */
  get message(): string;
  /**
   * Helper to automatically check the Paystack status and throw a descriptive
   * PaystackError if it fails. Returns the unwrapped 'data' payload on success.
   *
   * @throws {PaystackError} if status is false or an HTTP error occurred.
   */
  unwrap(): T;
  /**
   * A convenience getter that returns the data payload after unwrapping.
   * Use this when you are confident the request succeeded or want to catch at a higher level.
   *
   * @throws {PaystackError} if status is false.
   */
  get data(): T;
}
declare function assertOk<T>(result: PaystackResponse<T>): T;
declare function toPaystackApiError<T>(result: PaystackResponse<T>): PaystackError | undefined;
//#endregion
//#region src/operations.d.ts
type InitArg<T, HasPath = false> = HasPath extends true ? [init?: Partial<T>] : undefined extends T ? [init?: Exclude<T, undefined>] : [init: T];
/**
 * List Domains
 *
 * Lists all registered domains on your integration. Returns an empty array if no domains have been added.
 */
declare function applePay_listDomain(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/apple-pay/domain"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Register Domain
 *
 * Register a top-level domain or subdomain for your Apple Pay integration.
 *
 * > This endpoint can only be called with one domain or subdomain at a time.
 *
 */
declare function applePay_registerDomain(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/apple-pay/domain"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Unregister Domain
 *
 * Unregister a top-level domain or subdomain previously used for your Apple
 * Pay integration.
 *
 */
declare function applePay_unregisterDomain(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/apple-pay/domain"], "delete">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Balance
 *
 * Fetch the available balance on your integration
 */
declare function balance_fetch(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/balance"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Balance Ledger
 *
 * Fetch all pay-ins and pay-outs that occured on your integration
 */
declare function balance_ledger(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/balance/ledger"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Banks
 *
 * Get a list of all supported banks and their properties
 */
declare function bank_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/bank"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Resolve Account Number
 *
 * Resolve an account number to confirm the name associated with it
 */
declare function bank_resolveAccountNumber(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/bank/resolve"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Validate Bank Account
 *
 * Confirm the authenticity of a customer's account number before sending money
 */
declare function bank_validateAccountNumber(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/bank/validate"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Charges in a Batch
 *
 * This endpoint retrieves the charges associated with a specified batch code
 *
 * @param id_or_code An ID or code for the batch whose charges you want to retrieve.
 */
declare function bulkCharge_charges(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge/{id_or_code}/charges"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Bulk Charge Batch
 *
 * This endpoint retrieves a specific batch code. It also returns useful information on its progress by
 * way of the `total_charges` and `pending_charges` attributes.
 *
 *
 * @param id_or_code An ID or code for the charge whose batches you want to retrieve.
 */
declare function bulkCharge_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Initiate Bulk Charge
 *
 * Charge multiple customers in batches
 */
declare function bulkCharge_initiate(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Bulk Charge Batches
 *
 * List all bulk charge batches.
 */
declare function bulkCharge_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Pause Bulk Charge Batch
 *
 * Pause the processing of a charge batch
 *
 * @param code The batch code for the bulk charge you want to pause
 */
declare function bulkCharge_pause(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge/pause/{code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Resume Bulk Charge Batch
 *
 * Resume the processing of a previously paused charge batch
 *
 * @param code The batch code for the bulk charge you want to pause
 */
declare function bulkCharge_resume(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/bulkcharge/resume/{code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Requery Transaction
 *
 * Check the status of a charge made with Capitec Pay. This endpoint should be used from your frontend application as it requires the use of your public key for request authorization.
 *
 * @param ref The transaction reference from the previously initiated charge request
 */
declare function capitecPay_requery(client: PaystackClient, ref: string, ...init: InitArg<MaybeOptionalInit<paths["/capitec-pay/requery/{ref}"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Check pending charge
 *
 * When you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should.
 *
 *
 * @param reference The reference of the ongoing transaction
 */
declare function charge_check(client: PaystackClient, reference: string, ...init: InitArg<MaybeOptionalInit<paths["/charge/{reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Charge
 *
 * Initiate a payment by integrating the payment channel of your choice.
 */
declare function charge_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Submit Address
 *
 * Send the details of the customer's address for address verification
 */
declare function charge_submitAddress(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge/submit_address"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Submit Birthday
 *
 * Submit the customer's birthday when requested
 */
declare function charge_submitBirthday(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge/submit_birthday"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Submit OTP
 *
 * Submit OTP to complete a charge
 */
declare function charge_submitOtp(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge/submit_otp"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Submit Phone
 *
 * Submit phone number when requested
 */
declare function charge_submitPhone(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge/submit_phone"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Submit PIN
 *
 * Submit PIN to continue a charge
 */
declare function charge_submitPin(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/charge/submit_pin"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Create Customer
 *
 * Create a customer on your integration
 */
declare function customer_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/customer"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Deactivate Authorization
 *
 * Deactivate an authorization for any payment channel.
 */
declare function customer_deactivateAuthorization(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/customer/authorization/deactivate"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Direct Debit Activation Charge
 *
 * Trigger an activation charge on an inactive mandate on behalf of your customer
 *
 * @param id The customer ID attached to the authorization
 */
declare function customer_directDebitActivationCharge(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/customer/{id}/directdebit-activation-charge"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Customer
 *
 * Get details of a customer on your integration.
 *
 * @param email_or_code An email or customer code for the customer you want to fetch
 */
declare function customer_fetch(client: PaystackClient, email_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/customer/{email_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Mandate Authorizations
 *
 * Get the list of direct debit mandates associated with a customer
 *
 * @param id The customer ID for the authorizations to fetch
 */
declare function customer_fetchMandateAuthorizations(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/customer/{id}/directdebit-mandate-authorizations"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Initialize Authorization
 *
 * Initiate a request to create a reusable authorization code for recurring transactions
 */
declare function customer_initializeAuthorization(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/customer/authorization/initialize"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Initialize Direct Debit
 *
 * Initialize the process of linking an account to a customer for Direct Debit transactions
 *
 * @param id The ID of the customer to initialize the direct debit for
 */
declare function customer_initializeDirectDebit(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/customer/{id}/initialize-direct-debit"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Customers
 *
 * List customers available on your integration
 */
declare function customer_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/customer"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Set Risk Action
 *
 * Set customer's risk action by whitelisting or blacklisting the customer
 */
declare function customer_riskAction(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/customer/set_risk_action"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Customer
 *
 * Update a customer's details on your integration
 *
 * @param email_or_code An email or customer code for the customer you want to fetch
 */
declare function customer_update(client: PaystackClient, email_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/customer/{email_or_code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Validate Customer
 *
 * Validate a customer's identity
 *
 * @param customer_code Customer code
 */
declare function customer_validate(client: PaystackClient, customer_code: string, ...init: InitArg<MaybeOptionalInit<paths["/customer/{customer_code}/identification"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Authorization
 *
 * Check the status of an authorization request
 *
 * @param reference The reference returned in the initialization response
 */
declare function customer_verifyAuthorization(client: PaystackClient, reference: string, ...init: InitArg<MaybeOptionalInit<paths["/customer/authorization/verify/{reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Split Dedicated Account Transaction
 *
 * Split a dedicated virtual account transaction with one or more accounts
 */
declare function dedicatedAccount_addSplit(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/split"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Assign Dedicated Account
 *
 * With this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer.
 */
declare function dedicatedAccount_assign(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/assign"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Bank Providers
 *
 * Get available bank providers for a dedicated virtual account
 */
declare function dedicatedAccount_availableProviders(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/available_providers"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Create Dedicated Account
 *
 * Create a dedicated virtual account for an existing customer
 */
declare function dedicatedAccount_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Deactivate Dedicated Account
 *
 * Deactivate a dedicated virtual account on your integration.
 *
 * @param id ID of dedicated virtual account
 */
declare function dedicatedAccount_deactivate(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/{id}"], "delete">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Dedicated Account
 *
 * Get details of a dedicated virtual account on your integration.
 *
 * @param id ID of dedicated virtual account
 */
declare function dedicatedAccount_fetch(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Dedicated Accounts
 *
 * List dedicated virtual accounts available on your integration.
 */
declare function dedicatedAccount_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Remove Split from Dedicated Account
 *
 * If you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint
 */
declare function dedicatedAccount_removeSplit(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/split"], "delete">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Requery Dedicated Account
 *
 * Requery Dedicated Virtual Account for new transactions
 */
declare function dedicatedAccount_requery(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dedicated_account/requery"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Mandate Authorizations
 *
 * Get a list of all the direct debit mandates on your integration
 */
declare function directdebit_listMandateAuthorizations(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/directdebit/mandate-authorizations"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Trigger Activation Charge
 *
 * Trigger activation charge for specified customers
 */
declare function directdebit_triggerActivationCharge(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/directdebit/activation-charge"], "put">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Export Disputes
 *
 * Export the disputes available on your integration
 */
declare function dispute_download(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dispute/export"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Add Evidence
 *
 * Provide evidence for a dispute
 *
 * @param id The unique identifier of the dispute
 */
declare function dispute_evidence(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/{id}/evidence"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Dispute
 *
 * Fetch a transaction dispute
 *
 * @param id The unique identifier of the dispute
 */
declare function dispute_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Disputes
 *
 * List transaction disputes filed by customers
 */
declare function dispute_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/dispute"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Resolve Dispute
 *
 * Resolve a transaction dispute
 *
 * @param id The unique identifier of the dispute
 */
declare function dispute_resolve(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/{id}/resolve"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Transaction Disputes
 *
 * List all disputes filed for a transaction
 *
 * @param id The unique identifier of the transaction
 */
declare function dispute_transaction(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/transaction/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Update Dispute
 *
 * Update a transaction dispute
 *
 * @param id The unique identifier of the dispute
 */
declare function dispute_update(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/{id}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Upload URL
 *
 * Get the URL to upload a dispute evidence
 *
 * @param id The unique identifier of the dispute
 */
declare function dispute_uploadUrl(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/dispute/{id}/upload_url"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Payment Session Timeout
 *
 * Fetch the session timeout of a transaction
 */
declare function integration_fetchPaymentSessionTimeout(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/integration/payment_session_timeout"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Payment Session Timeout
 *
 * Update the session timeout of a transaction
 */
declare function integration_updatePaymentSessionTimeout(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/integration/payment_session_timeout"], "put">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Internal path for schema generation
 *
 * This path is internal and used to ensure that schemas like WebhookEvent are considered 'used' for SDK generation and linting.
 */
declare function misc_generateWebhookEventTypes(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/___internal___"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List States (AVS)
 *
 * Get a list of states for a country for address verification
 */
declare function miscellaneous_avs(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/address_verification/states"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Countries
 *
 * List all supported countries on Paystack
 */
declare function miscellaneous_listCountries(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/country"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Resolve Card BIN
 *
 * Get the details of a card BIN
 *
 * @param bin The card bank identification number
 */
declare function miscellaneous_resolveCardBin(client: PaystackClient, bin: string, ...init: InitArg<MaybeOptionalInit<paths["/decision/bin/{bin}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Order
 *
 * Create an order for selected items
 */
declare function order_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/order"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Order
 *
 * Fetch the details of a previously created order
 *
 * @param id The unique identifier of the order
 */
declare function order_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/order/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Orders
 *
 * List the previously created orders
 */
declare function order_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/order"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Product Orders
 *
 * Fetch all orders for a particular product
 *
 * @param id The unique identifier of the order
 */
declare function order_product(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/order/product/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Validate Order
 *
 * Validate a pay for me order
 *
 * @param code The unique code of a previously created order
 */
declare function order_validate(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/order/{code}/validate"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Add Products
 *
 * Add products to a previously created payment page. You can only add products to pages
 * that was created with a `product` type.
 *
 *
 * @param id
 */
declare function page_addProducts(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/page/{id}/product"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Check Slug Availability
 *
 * Check if a custom slug is available for use when creating a payment page
 *
 * @param slug The custom slug to check
 */
declare function page_checkSlugAvailability(client: PaystackClient, slug: string, ...init: InitArg<MaybeOptionalInit<paths["/page/check_slug_availability/{slug}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Page
 *
 * Create a webpage to receive payments
 */
declare function page_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/page"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Page
 *
 * Get a previously created payment page
 *
 * @param id_or_slug The page ID or slug you want to fetch
 */
declare function page_fetch(client: PaystackClient, id_or_slug: string, ...init: InitArg<MaybeOptionalInit<paths["/page/{id_or_slug}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Pages
 *
 * List all previously created payment pages
 */
declare function page_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/page"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Page
 *
 * Update a previously created payment page
 *
 * @param id_or_slug The page ID or slug you want to fetch
 */
declare function page_update(client: PaystackClient, id_or_slug: string, ...init: InitArg<MaybeOptionalInit<paths["/page/{id_or_slug}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Archive Payment Request
 *
 * Archive a payment request to clean up your records. An archived payment request cannot be verified and will not
 * be returned when listing all previously created payment requests.
 *
 *
 * @param id The unique identifier of a previously created payment request
 */
declare function paymentRequest_archive(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/archive/{id}"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Payment Request
 *
 * Create a new payment request by issuing an invoice to a customer
 */
declare function paymentRequest_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Payment Request
 *
 * Fetch a previously created payment request
 *
 * @param id_or_code The payment request ID or code you want to fetch
 */
declare function paymentRequest_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Finalize Payment Request
 *
 * Finalise the creation of a draft payment request for a customer
 *
 * @param id The unique identifier of a draft payment request
 */
declare function paymentRequest_finalize(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/finalize/{id}"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Payment Request
 *
 * List all previously created payment requests to your customers
 */
declare function paymentRequest_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Send Notification
 *
 * Trigger an email reminder to a customer for a previously created payment request
 *
 * @param id The unique identifier of a previously created payment request
 */
declare function paymentRequest_notify(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/notify/{id}"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Payment Request Total
 *
 * Get the metric of all pending and successful payment requests
 */
declare function paymentRequest_totals(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/totals"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Payment Request
 *
 * Update a previously created payment request
 *
 * @param id_or_code The payment request ID or code you want to fetch
 */
declare function paymentRequest_update(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/{id_or_code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Payment Request
 *
 * Verify the status of a previously created payment request
 *
 * @param id The unique identifier of a previously created payment request
 */
declare function paymentRequest_verify(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/paymentrequest/verify/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Plan
 *
 * Create a plan for recurring payments
 */
declare function plan_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/plan"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Plan
 *
 * Get the details of a payment plan
 *
 * @param id_or_code The plan ID or code you want to fetch
 */
declare function plan_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/plan/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Plans
 *
 * List all recurring payment plans
 */
declare function plan_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/plan"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Plan
 *
 * Update a plan details on your integration
 *
 * @param id_or_code The plan ID or code you want to fetch
 */
declare function plan_update(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/plan/{id_or_code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Capture Preauthorization
 *
 * Charge a preauthorized transaction upon service delivery
 */
declare function preauthorization_capture(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization/capture"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Initialize Preauthorization
 *
 * Initialize a preauthorization transaction for a new customer
 */
declare function preauthorization_initialize(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization/initialize"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Preauthorizations
 *
 * List preauthorizations carried out on your integration
 */
declare function preauthorization_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Release Preauthorization
 *
 * For when a customer cancels an order or you want to release the hold from their card.
 */
declare function preauthorization_release(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization/release"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Reserve Preauthorization
 *
 * Hold an amount using an existing customer's authorization that's marked reusable.
 */
declare function preauthorization_reserve_authorization(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization/reserve_authorization"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Preauthorization
 *
 * Fetch and confirm the status of a preauthorized transaction.
 *
 * @param reference The transaction reference used to intiate the transaction
 */
declare function preauthorization_verify(client: PaystackClient, reference: string, ...init: InitArg<MaybeOptionalInit<paths["/preauthorization/verify/{reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Product
 *
 * Create a new product on your integration
 */
declare function product_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/product"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Delete Product
 *
 * Delete a previously created product
 *
 * @param id The unique identifier of the product
 */
declare function product_delete(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/product/{id}"], "delete">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Product
 *
 * Fetch a previously created product
 *
 * @param id The unique identifier of the product
 */
declare function product_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/product/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Products
 *
 * List all previously created products
 */
declare function product_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/product"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update product
 *
 * Update a previously created product
 *
 * @param id The unique identifier of the product
 */
declare function product_update(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/product/{id}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Refund
 *
 * Initiate a refund for a previously completed transaction
 */
declare function refund_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/refund"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Refund
 *
 * Get a previously created refund
 *
 * @param id The identifier of the refund
 */
declare function refund_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/refund/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Refunds
 *
 * List previously created refunds
 */
declare function refund_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/refund"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Retry Refund
 *
 * Retry a refund with a `needs-attention` status by providing the bank account details of a customer.
 *
 * @param id The identifier of the refund
 */
declare function refund_retry(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/refund/retry_with_customer_details/{id}"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Settlements
 *
 * List settlements made to your settlement accounts
 */
declare function settlements_fetch(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/settlement"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Settlement Transactions
 *
 * Get the transactions that make up a particular settlement
 *
 * @param id The settlement ID in which you want to fetch its transactions
 */
declare function settlements_transaction(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/settlement/{id}/transactions"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Add Subaccount to Split
 *
 * Add a subaccount to a split configuration, or update the share of an existing subaccount
 *
 * @param id The ID of the split configuration to fetch
 */
declare function split_addSubaccount(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/split/{id}/subaccount/add"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Split
 *
 * Create a split configuration for transactions
 */
declare function split_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/split"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Split
 *
 * Get details of a split configuration for a transaction
 *
 * @param id The ID of the split configuration to fetch
 */
declare function split_fetch(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/split/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Splits
 *
 * List the transaction splits available on your integration
 */
declare function split_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/split"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Remove Subaccount from split
 *
 * Remove a subaccount from a split configuration
 *
 * @param id The ID of the split configuration to fetch
 */
declare function split_removeSubaccount(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/split/{id}/subaccount/remove"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Update Split
 *
 * Update a split configuration for transactions
 *
 * @param id
 */
declare function split_update(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/split/{id}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Add Products to Storefront
 *
 * Add previously created products to a Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_addProducts(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}/product"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Storefront
 *
 * Create a digital shop to manage and display your products
 */
declare function storefront_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/storefront"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Delete Storefront
 *
 * Delete a previously created Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_delete(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}"], "delete">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Duplicate Storefront
 *
 * Duplicate a previously created Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_duplicate(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}/duplicate"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Storefront
 *
 * Get the details of a previously created Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Storefront Orders
 *
 * Fetch all orders in your Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_fetchOrders(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}/order"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Storefronts
 *
 * List the storefronts you previously created
 */
declare function storefront_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/storefront"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Storefront Products
 *
 * List the products in a Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_listProducts(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}/product"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Publish Storefront
 *
 * Make your Storefront publicly available
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_publish(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}/publish"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Update Storefront
 *
 * Update the details of a previously created Storefront
 *
 * @param id The unique identifier of the Storefront
 */
declare function storefront_update(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/storefront/{id}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Storefront Slug
 *
 * Verify the availability of a slug before using it for your Storefront
 *
 * @param slug The custom slug to check
 */
declare function storefront_verifySlug(client: PaystackClient, slug: string, ...init: InitArg<MaybeOptionalInit<paths["/storefront/verify/{slug}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Subaccount
 *
 * Create a subacount for a partner
 */
declare function subaccount_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subaccount"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Subaccount
 *
 * Get details of a subaccount on your integration
 *
 * @param id_or_code The subaccount ID or code you want to fetch
 */
declare function subaccount_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/subaccount/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Subaccounts
 *
 * List subaccounts available on your integration
 */
declare function subaccount_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subaccount"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Subaccount
 *
 * Update a subaccount details on your integration
 *
 * @param id_or_code The subaccount ID or code you want to fetch
 */
declare function subaccount_update(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/subaccount/{id_or_code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Subscription
 *
 * Create a subscription a customer
 */
declare function subscription_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subscription"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Disable Subscription
 *
 * Disable a subscription on your integration
 */
declare function subscription_disable(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subscription/disable"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Enable Subscription
 *
 * Enable a subscription on your integration
 */
declare function subscription_enable(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subscription/enable"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Subscription
 *
 * Get details of a customer's subscription
 *
 * @param id_or_code The subscription ID or code you want to fetch
 */
declare function subscription_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/subscription/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Subscriptions
 *
 * List all subscriptions available on your integration
 */
declare function subscription_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/subscription"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Send Update Subscription Link
 *
 * Email a customer a link for updating the card on their subscription
 *
 * @param code Subscription code
 */
declare function subscription_manageEmail(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/subscription/{code}/manage/email"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Generate Update Subscription Link
 *
 * Generate a link for updating the card on a subscription
 *
 * @param code Subscription code
 */
declare function subscription_manageLink(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/subscription/{code}/manage/link"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Commission Terminal
 *
 * Activate your debug device by linking it to your integration
 */
declare function terminal_commission(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/terminal/commission_device"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Decommission Terminal
 *
 * Unlink your debug device from your integration
 */
declare function terminal_decommission(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/terminal/decommission_device"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Terminal
 *
 * Get the details of a Terminal
 *
 * @param terminal_id The ID of the Terminal the event should be sent to.
 */
declare function terminal_fetch(client: PaystackClient, terminal_id: string, ...init: InitArg<MaybeOptionalInit<paths["/terminal/{terminal_id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Event Status
 *
 * Check the status of an event sent to the Terminal
 *
 * @param terminal_id The ID of the Terminal the event should be sent to.
 * @param event_id The ID of the event that was sent to the Terminal
 */
declare function terminal_fetchEventStatus(client: PaystackClient, terminal_id: string, event_id: string, ...init: InitArg<MaybeOptionalInit<paths["/terminal/{terminal_id}/event/{event_id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Terminal Status
 *
 * Check the availiability of a Terminal before sending an event to it
 *
 * @param terminal_id The ID of the Terminal the event should be sent to.
 */
declare function terminal_fetchTerminalStatus(client: PaystackClient, terminal_id: string, ...init: InitArg<MaybeOptionalInit<paths["/terminal/{terminal_id}/presence"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Terminals
 *
 * List the Terminals available on your integration
 */
declare function terminal_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/terminal"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Send Event
 *
 * Send an event from your application to the Paystack Terminal
 *
 * @param id The ID of the Terminal the event should be sent to.
 */
declare function terminal_sendEvent(client: PaystackClient, id: string, ...init: InitArg<MaybeOptionalInit<paths["/terminal/{id}/event"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Update Terminal
 *
 * Update the details of a Terminal
 *
 * @param terminal_id The ID of the Terminal the event should be sent to.
 */
declare function terminal_update(client: PaystackClient, terminal_id: string, ...init: InitArg<MaybeOptionalInit<paths["/terminal/{terminal_id}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Charge Authorization
 *
 * Charge all authorizations marked as reusable with this endpoint whenever you need to receive payments
 */
declare function transaction_chargeAuthorization(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/charge_authorization"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Check Authorization
 *
 * Check if an authorization code can be used for a charge.
 */
declare function transaction_checkAuthorization(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/check_authorization"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Get Transaction Event
 *
 * Fetch the event for a specific transaction.
 *
 * @param id The ID of the transaction
 */
declare function transaction_event(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/transaction/{id}/event"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Export Transactions
 *
 * Download transactions that occurred on your integration for a specific timeframe
 */
declare function transaction_export(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/export"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Transaction
 *
 * Fetch a transaction to get its details
 *
 * @param id The ID of the transaction to fetch
 */
declare function transaction_fetch(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/transaction/{id}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Initialize Transaction
 *
 * Create a new transaction
 */
declare function transaction_initialize(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/initialize"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Transactions
 *
 * List transactions carried out on your integration
 */
declare function transaction_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Partial Debit
 *
 * Retrieve part of a payment from a customer
 */
declare function transaction_partialDebit(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/partial_debit"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Get Transaction Session
 *
 * Fetch the session for a specific transaction.
 *
 * @param id The ID of the transaction
 */
declare function transaction_session(client: PaystackClient, id: number, ...init: InitArg<MaybeOptionalInit<paths["/transaction/{id}/session"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Transaction Timeline
 *
 * Fetch the steps taken from the initiation to the completion of a transaction
 *
 * @param id_or_reference The ID or the reference of the transaction
 */
declare function transaction_timeline(client: PaystackClient, id_or_reference: string, ...init: InitArg<MaybeOptionalInit<paths["/transaction/timeline/{id_or_reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Transaction Totals
 *
 * Get the total amount of all transactions
 */
declare function transaction_totals(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transaction/totals"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Transaction
 *
 * Verify a previously initiated transaction using it's reference
 *
 * @param reference The transaction reference to verify
 */
declare function transaction_verify(client: PaystackClient, reference: string, ...init: InitArg<MaybeOptionalInit<paths["/transaction/verify/{reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Initiate Bulk Transfer
 *
 * Batch multiple transfers in a single request.
 *
 * You need to disable the Transfers OTP requirement to use this endpoint.
 *
 */
declare function transfer_bulk(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/bulk"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Disable OTP for Transfers
 *
 * This is used in the event that you want to be able to complete transfers programmatically without use of OTPs.
 * No arguments required. You will get an OTP to complete the request.
 *
 */
declare function transfer_disableOtp(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/disable_otp"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Finalize Disabling OTP for Transfers
 *
 * Finalize the request to disable OTP on your transfers
 */
declare function transfer_disableOtpFinalize(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/disable_otp_finalize"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Enable OTP requirement for Transfers
 *
 * In the event that a customer wants to stop being able to complete transfers programmatically, this endpoint helps turn OTP requirement back on.
 * No arguments required.
 *
 */
declare function transfer_enableOtp(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/enable_otp"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Export Transfers
 *
 * Export a list of transfers carried out on your integration
 */
declare function transfer_exportTransfer(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/export"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Transfer
 *
 * Get details of a transfer on your integration
 *
 * @param id_or_code The transfer ID or code you want to fetch
 */
declare function transfer_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/transfer/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Finalize Transfer
 *
 * Finalize an initiated transfer
 */
declare function transfer_finalize(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/finalize_transfer"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Initiate Transfer
 *
 * Send money to your customers
 */
declare function transfer_initiate(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * List Transfers
 *
 * List the transfers made on your integration
 */
declare function transfer_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Resend OTP for Transfer
 *
 * Generates and send a new OTP to customer in the event they are having trouble receiving one.
 */
declare function transfer_resendOtp(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transfer/resend_otp"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Verify Transfer
 *
 * Verify the status of a transfer on your integration
 *
 * @param reference Transfer reference
 */
declare function transfer_verify(client: PaystackClient, reference: string, ...init: InitArg<MaybeOptionalInit<paths["/transfer/verify/{reference}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Bulk Create Transfer Recipient
 *
 * Create multiple transfer recipients in batches. A duplicate account number will lead to the retrieval of the existing record.
 *
 */
declare function transferrecipient_bulk(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient/bulk"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Create Transfer Recipient
 *
 * Creates a new recipient. A duplicate account number will lead to the retrieval of the existing record.
 */
declare function transferrecipient_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Delete Transfer Recipient
 *
 * Delete a transfer recipient (sets the transfer recipient to inactive)
 *
 * @param id_or_code An ID or code for the recipient whose details you want to receive.
 */
declare function transferrecipient_delete(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient/{id_or_code}"], "delete">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Transfer recipient
 *
 * Fetch the details of a transfer recipient
 *
 * @param id_or_code An ID or code for the recipient whose details you want to receive.
 */
declare function transferrecipient_fetch(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient/{id_or_code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Transfer Recipients
 *
 * List transfer recipients available on your integration
 */
declare function transferrecipient_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Transfer Recipient
 *
 * Update the details of a transfer recipient
 *
 * @param id_or_code An ID or code for the recipient whose details you want to receive.
 */
declare function transferrecipient_update(client: PaystackClient, id_or_code: string, ...init: InitArg<MaybeOptionalInit<paths["/transferrecipient/{id_or_code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Add Split Code to Virtual Terminal
 *
 * Add Split Code to Virtual Terminal
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_addSplitCode(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}/split_code"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Create Virtual Terminal
 *
 * Create a Virtual Terminal on your integration
 */
declare function virtualTerminal_create(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal"], "post">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Deactivate Virtual Terminal
 *
 * Deactivate a Virtual Terminal on your integration
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_deactivate(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}/deactivate"], "put">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Remove Split Code from Virtual Terminal
 *
 * Remove Split Code from Virtual Terminal
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_deleteSplitCode(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}/split_code"], "delete">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Assign Destination to Virtual Terminal
 *
 * Add a destination (WhatsApp number) to a Virtual Terminal on your integration
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_destinationAssign(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}/destination/assign"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Unassign Destination from Virtual Terminal
 *
 * Unassign a destination (WhatsApp Number) from a Virtual Terminal on your integration
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_destinationUnassign(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}/destination/unassign"], "post">, true>): Promise<PaystackResponse<unknown>>;
/**
 * Fetch Virtual Terminal
 *
 * Fetch a Virtual Terminal on your integration
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_fetch(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}"], "get">, true>): Promise<PaystackResponse<unknown>>;
/**
 * List Virtual Terminals
 *
 * List Virtual Terminals on your integration
 */
declare function virtualTerminal_list(client: PaystackClient, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal"], "get">, false>): Promise<PaystackResponse<unknown>>;
/**
 * Update Virtual Terminal
 *
 * Update a Virtual Terminal on your integration
 *
 * @param code Code of the Virtual Terminal
 */
declare function virtualTerminal_update(client: PaystackClient, code: string, ...init: InitArg<MaybeOptionalInit<paths["/virtual_terminal/{code}"], "put">, true>): Promise<PaystackResponse<unknown>>;
declare function bindOperations(client: PaystackClient): {
  readonly applePay: {
    /**
    * List Domains
    *
    * Lists all registered domains on your integration. Returns an empty array if no domains have been added.
     */
    readonly listDomain: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          use_cursor?: boolean;
          next?: string;
          previous?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["ApplePayDomainsSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Register Domain
    *
    * Register a top-level domain or subdomain for your Apple Pay integration.
    > This endpoint can only be called with one domain or subdomain at a time.
     */
    readonly registerDomain: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ApplePayParam"];
          "application/x-www-form-urlencoded": components["schemas"]["ApplePayParam"];
        };
      };
      responses: {
        200: components["responses"]["ApplePayOkResponse"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Unregister Domain
    *
    * Unregister a top-level domain or subdomain previously used for your Apple
    Pay integration.
     */
    readonly unregisterDomain: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ApplePayParam"];
          "application/x-www-form-urlencoded": components["schemas"]["ApplePayParam"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly balance: {
    /**
    * Fetch Balance
    *
    * Fetch the available balance on your integration
     */
    readonly fetch: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BalanceCheckResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Balance Ledger
    *
    * Fetch all pay-ins and pay-outs that occured on your integration
     */
    readonly ledger: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BalanceFetchLedgerResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly bank: {
    /**
    * List Banks
    *
    * Get a list of all supported banks and their properties
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          country?: "ghana" | "kenya" | "nigeria" | "south africa";
          currency?: "GHS" | "KES" | "NGN" | "ZAR";
          use_cursor?: boolean;
          perPage?: number;
          page?: number;
          next?: string;
          previous?: string;
          pay_with_bank_transfer?: boolean;
          pay_with_bank?: boolean;
          enabled_for_verification?: boolean;
          gateway?: "emandate" | "digitalbankmandate";
          type?: "ghipss" | "mobile_money" | "nuban" | "kepss" | "basa";
          include_nip_sort_code?: boolean;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["MiscellaneousListBanksSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Resolve Account Number
    *
    * Resolve an account number to confirm the name associated with it
     */
    readonly resolveAccountNumber: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          account_number?: string;
          bank_code?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["VerificationResolveAccountNumberSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Validate Bank Account
    *
    * Confirm the authenticity of a customer's account number before sending money
     */
    readonly validateAccountNumber: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["BankValidateRequest"];
          "application/x-www-form-urlencoded": components["schemas"]["BankValidateRequest"];
        };
      };
      responses: {
        200: components["responses"]["VerificationValidateAccountSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly bulkCharge: {
    /**
    * List Charges in a Batch
    *
    * This endpoint retrieves the charges associated with a specified batch code
     */
    readonly charges: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          status?: "pending" | "success" | "failed";
          from?: string;
          to?: string;
        };
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargeFetchBulkBatchChargesResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Bulk Charge Batch
    *
    * This endpoint retrieves a specific batch code. It also returns useful information on its progress by
    way of the `total_charges` and `pending_charges` attributes.
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargeFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Initiate Bulk Charge
    *
    * Charge multiple customers in batches
     */
    readonly initiate: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["BulkChargeInitiate"][];
          "application/x-www-form-urlencoded": components["schemas"]["BulkChargeInitiate"][];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargeInitiateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Bulk Charge Batches
    *
    * List all bulk charge batches.
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargeListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Pause Bulk Charge Batch
    *
    * Pause the processing of a charge batch
     */
    readonly pause: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargePauseResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Resume Bulk Charge Batch
    *
    * Resume the processing of a previously paused charge batch
     */
    readonly resume: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["BulkChargeResumeResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly capitecPay: {
    /**
    * Requery Transaction
    *
    * Check the status of a charge made with Capitec Pay. This endpoint should be used from your frontend application as it requires the use of your public key for request authorization.
     */
    readonly requery: (ref: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          ref: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CapitecPayRequeryResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly charge: {
    /**
    * Check pending charge
    *
    * When you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should.
     */
    readonly check: (reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeCheckPendingResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Charge
    *
    * Initiate a payment by integrating the payment channel of your choice.
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeCreate"] & {
            bank?: components["schemas"]["Bank"];
          } & {
            mobile_money?: components["schemas"]["MobileMoney"];
          } & {
            ussd?: components["schemas"]["USSD"];
          } & {
            eft?: components["schemas"]["EFT"];
          };
          "application/x-www-form-urlencoded": components["schemas"]["ChargeCreate"] & {
            bank?: components["schemas"]["Bank"];
          } & {
            mobile_money?: components["schemas"]["MobileMoney"];
          } & {
            ussd?: components["schemas"]["USSD"];
          } & {
            eft?: components["schemas"]["EFT"];
          };
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Submit Address
    *
    * Send the details of the customer's address for address verification
     */
    readonly submitAddress: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeSubmitAddress"];
          "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitAddress"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeCheckPendingResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Submit Birthday
    *
    * Submit the customer's birthday when requested
     */
    readonly submitBirthday: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeSubmitBirthday"];
          "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitBirthday"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeSubmitBirthdayResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Submit OTP
    *
    * Submit OTP to complete a charge
     */
    readonly submitOtp: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeSubmitOTP"];
          "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitOTP"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeSubmitOtpResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Submit Phone
    *
    * Submit phone number when requested
     */
    readonly submitPhone: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeSubmitPhone"];
          "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitPhone"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeSubmitPhoneResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Submit PIN
    *
    * Submit PIN to continue a charge
     */
    readonly submitPin: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ChargeSubmitPin"];
          "application/x-www-form-urlencoded": components["schemas"]["ChargeSubmitPin"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeSubmitPinResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly customer: {
    /**
    * Create Customer
    *
    * Create a customer on your integration
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerCreate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Deactivate Authorization
    *
    * Deactivate an authorization for any payment channel.
     */
    readonly deactivateAuthorization: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerDeactivateAuthorization"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerDeactivateAuthorization"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerDeactivateAuthorizationResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Direct Debit Activation Charge
    *
    * Trigger an activation charge on an inactive mandate on behalf of your customer
     */
    readonly directDebitActivationCharge: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerDirectDebitActivationChargeRequest"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerDirectDebitActivationChargeRequest"];
        };
      };
      responses: {
        200: components["responses"]["CustomerDirectDebitActivationChargeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Customer
    *
    * Get details of a customer on your integration.
     */
    readonly fetch: (email_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          email_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Mandate Authorizations
    *
    * Get the list of direct debit mandates associated with a customer
     */
    readonly fetchMandateAuthorizations: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["CustomerFetchMandateAuthorizationsSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Initialize Authorization
    *
    * Initiate a request to create a reusable authorization code for recurring transactions
     */
    readonly initializeAuthorization: (init: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody: {
        content: {
          "application/json": components["schemas"]["CustomerAuthorizationInitializeRequest"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerAuthorizationInitializeRequest"];
        };
      };
      responses: {
        200: components["responses"]["CustomerAuthorizationInitializeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>) => Promise<PaystackResponse<unknown>>;
    /**
    * Initialize Direct Debit
    *
    * Initialize the process of linking an account to a customer for Direct Debit transactions
     */
    readonly initializeDirectDebit: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerInitializeDirectDebitRequest"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerInitializeDirectDebitRequest"];
        };
      };
      responses: {
        200: components["responses"]["CustomerInitializeDirectDebitSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Customers
    *
    * List customers available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          use_cursor?: boolean;
          next?: string;
          previous?: string;
          from?: string;
          to?: string;
          perPage?: number;
          page?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Set Risk Action
    *
    * Set customer's risk action by whitelisting or blacklisting the customer
     */
    readonly riskAction: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerRiskAction"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerRiskAction"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerWhitelistBlacklistResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Customer
    *
    * Update a customer's details on your integration
     */
    readonly update: (email_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          email_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerUpdate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerUpdateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Validate Customer
    *
    * Validate a customer's identity
     */
    readonly validate: (customer_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          customer_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["CustomerValidate"];
          "application/x-www-form-urlencoded": components["schemas"]["CustomerValidate"];
        };
      };
      responses: {
        202: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["CustomerValidateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Authorization
    *
    * Check the status of an authorization request
     */
    readonly verifyAuthorization: (reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["CustomerAuthorizationVerifySuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly dedicatedAccount: {
    /**
    * Split Dedicated Account Transaction
    *
    * Split a dedicated virtual account transaction with one or more accounts
     */
    readonly addSplit: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DedicatedVirtualAccountSplit"];
          "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountSplit"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Assign Dedicated Account
    *
    * With this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer.
     */
    readonly assign: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DedicatedVirtualAccountAssign"];
          "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountAssign"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Bank Providers
    *
    * Get available bank providers for a dedicated virtual account
     */
    readonly availableProviders: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Dedicated Account
    *
    * Create a dedicated virtual account for an existing customer
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DedicatedVirtualAccountCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountCreate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["DedicatedNubanCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Deactivate Dedicated Account
    *
    * Deactivate a dedicated virtual account on your integration.
     */
    readonly deactivate: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["DedicatedNubanDeactivateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Dedicated Account
    *
    * Get details of a dedicated virtual account on your integration.
     */
    readonly fetch: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["DedicatedNubanFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Dedicated Accounts
    *
    * List dedicated virtual accounts available on your integration.
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          active?: boolean;
          customer?: number;
          currency?: "NGN" | "GHS";
          provider_slug?: string;
          bank_id?: string;
          perPage?: number;
          page?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["DedicatedNubanListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Remove Split from Dedicated Account
    *
    * If you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint
     */
    readonly removeSplit: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DedicatedVirtualAccountRemoveSplit"];
          "application/x-www-form-urlencoded": components["schemas"]["DedicatedVirtualAccountRemoveSplit"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Requery Dedicated Account
    *
    * Requery Dedicated Virtual Account for new transactions
     */
    readonly requery: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          account_number?: string;
          provider_slug?: string;
          date?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly directdebit: {
    /**
    * List Mandate Authorizations
    *
    * Get a list of all the direct debit mandates on your integration
     */
    readonly listMandateAuthorizations: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          cursor?: string;
          status?: "pending" | "active" | "revoked";
          per_page?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["CustomerFetchMandateAuthorizationsSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Trigger Activation Charge
    *
    * Trigger activation charge for specified customers
     */
    readonly triggerActivationCharge: (init: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody: {
        content: {
          "application/json": components["schemas"]["DirectDebitActivationChargeRequest"];
        };
      };
      responses: {
        200: components["responses"]["DirectDebitActivationChargeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>) => Promise<PaystackResponse<unknown>>;
  };
  readonly dispute: {
    /**
    * Export Disputes
    *
    * Export the disputes available on your integration
     */
    readonly download: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          status?: "awaiting-merchant-feedback" | "awaiting-bank-feedback" | "pending" | "resolved";
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["DisputeExportSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Add Evidence
    *
    * Provide evidence for a dispute
     */
    readonly evidence: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DisputeEvidence"];
          "application/x-www-form-urlencoded": components["schemas"]["DisputeEvidence"];
        };
      };
      responses: {
        200: components["responses"]["DisputeAddEvidenceSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Dispute
    *
    * Fetch a transaction dispute
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["DisputeFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Disputes
    *
    * List transaction disputes filed by customers
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          status?: "awaiting-merchant-feedback" | "awaiting-bank-feedback" | "pending" | "resolved";
          transaction?: string;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["DisputeListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Resolve Dispute
    *
    * Resolve a transaction dispute
     */
    readonly resolve: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DisputeResolve"];
          "application/x-www-form-urlencoded": components["schemas"]["DisputeResolve"];
        };
      };
      responses: {
        200: components["responses"]["DisputeResolveSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Transaction Disputes
    *
    * List all disputes filed for a transaction
     */
    readonly transaction: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["DisputeListTransactionSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Dispute
    *
    * Update a transaction dispute
     */
    readonly update: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["DisputeUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["DisputeUpdate"];
        };
      };
      responses: {
        200: components["responses"]["DisputeUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Upload URL
    *
    * Get the URL to upload a dispute evidence
     */
    readonly uploadUrl: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["DisputeUploadURLSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly integration: {
    /**
    * Fetch Payment Session Timeout
    *
    * Fetch the session timeout of a transaction
     */
    readonly fetchPaymentSessionTimeout: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ControlPanelFetchPaymentSessionTimeoutResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Payment Session Timeout
    *
    * Update the session timeout of a transaction
     */
    readonly updatePaymentSessionTimeout: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PaymentSession"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ControlPanelUpdatePaymentSessionTimeoutResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly misc: {
    /**
    * Internal path for schema generation
    *
    * This path is internal and used to ensure that schemas like WebhookEvent are considered 'used' for SDK generation and linting.
     */
    readonly generateWebhookEventTypes: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["WebhookEvent"];
          };
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly miscellaneous: {
    /**
    * List States (AVS)
    *
    * Get a list of states for a country for address verification
     */
    readonly avs: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          country?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["MiscellaneousListStatesSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Countries
    *
    * List all supported countries on Paystack
     */
    readonly listCountries: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["MiscellaneousListCountriesSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Resolve Card BIN
    *
    * Get the details of a card BIN
     */
    readonly resolveCardBin: (bin: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          bin: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["VerificationResolveCardBINSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly order: {
    /**
    * Create Order
    *
    * Create an order for selected items
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["OrderCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["OrderCreate"];
        };
      };
      responses: {
        200: components["responses"]["OrderCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Order
    *
    * Fetch the details of a previously created order
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["OrderFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Orders
    *
    * List the previously created orders
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["OrderListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Product Orders
    *
    * Fetch all orders for a particular product
     */
    readonly product: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["OrderFetchProductSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Validate Order
    *
    * Validate a pay for me order
     */
    readonly validate: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["OrderValidateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly page: {
    /**
    * Add Products
    *
    * Add products to a previously created payment page. You can only add products to pages
    that was created with a `product` type.
     */
    readonly addProducts: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PageProduct"];
          "application/x-www-form-urlencoded": components["schemas"]["PageProduct"];
        };
      };
      responses: {
        200: components["responses"]["PageAddProductsSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Check Slug Availability
    *
    * Check if a custom slug is available for use when creating a payment page
     */
    readonly checkSlugAvailability: (slug: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          slug: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PageCheckSlugAvailabilitySuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Page
    *
    * Create a webpage to receive payments
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PageCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["PageCreate"];
        };
      };
      responses: {
        200: components["responses"]["PageCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Page
    *
    * Get a previously created payment page
     */
    readonly fetch: (id_or_slug: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_slug: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PageFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Pages
    *
    * List all previously created payment pages
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PageListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Page
    *
    * Update a previously created payment page
     */
    readonly update: (id_or_slug: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_slug: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PageUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["PageUpdate"];
        };
      };
      responses: {
        200: components["responses"]["PageUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly paymentRequest: {
    /**
    * Archive Payment Request
    *
    * Archive a payment request to clean up your records. An archived payment request cannot be verified and will not
    be returned when listing all previously created payment requests.
     */
    readonly archive: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestArchiveSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Payment Request
    *
    * Create a new payment request by issuing an invoice to a customer
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PaymentRequestCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["PaymentRequestCreate"];
        };
      };
      responses: {
        200: components["responses"]["PaymentRequestCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Payment Request
    *
    * Fetch a previously created payment request
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestViewSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Finalize Payment Request
    *
    * Finalise the creation of a draft payment request for a customer
     */
    readonly finalize: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestFinalizeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Payment Request
    *
    * List all previously created payment requests to your customers
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          customer?: string;
          status?: "draft" | "pending" | "success" | "failed";
          currency?: string;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Send Notification
    *
    * Trigger an email reminder to a customer for a previously created payment request
     */
    readonly notify: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestSendNotificationSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Payment Request Total
    *
    * Get the metric of all pending and successful payment requests
     */
    readonly totals: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestTotalSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Payment Request
    *
    * Update a previously created payment request
     */
    readonly update: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PaymentRequestUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["PaymentRequestUpdate"];
        };
      };
      responses: {
        200: components["responses"]["PaymentRequestUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Payment Request
    *
    * Verify the status of a previously created payment request
     */
    readonly verify: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PaymentRequestVerifySuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly plan: {
    /**
    * Create Plan
    *
    * Create a plan for recurring payments
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PlanCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["PlanCreate"];
        };
      };
      responses: {
        200: components["responses"]["PlanCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Plan
    *
    * Get the details of a payment plan
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PlanFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Plans
    *
    * List all recurring payment plans
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          status?: string;
          interval?: "daily" | "weekly" | "monthly" | "quarterly" | "biannually" | "annually";
          amount?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["PlanListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Plan
    *
    * Update a plan details on your integration
     */
    readonly update: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PlanUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["PlanUpdate"];
        };
      };
      responses: {
        200: components["responses"]["PlanUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly preauthorization: {
    /**
    * Capture Preauthorization
    *
    * Charge a preauthorized transaction upon service delivery
     */
    readonly capture: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PreAuthorizationCapture"];
          "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationCapture"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationCaptureResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Initialize Preauthorization
    *
    * Initialize a preauthorization transaction for a new customer
     */
    readonly initialize: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PreAuthorizationInitialize"];
          "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationInitialize"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationInitializeResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Preauthorizations
    *
    * List preauthorizations carried out on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
          status?: "authorized" | "captured" | "released" | "ongoing" | "failed" | "abandoned";
          amount?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Release Preauthorization
    *
    * For when a customer cancels an order or you want to release the hold from their card.
     */
    readonly release: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PreAuthorizationRelease"];
          "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationRelease"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationReleaseResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Reserve Preauthorization
    *
    * Hold an amount using an existing customer's authorization that's marked reusable.
     */
    readonly reserve_authorization: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["PreAuthorizationReserve"];
          "application/x-www-form-urlencoded": components["schemas"]["PreAuthorizationReserve"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationReserveWithAuthCodeResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Preauthorization
    *
    * Fetch and confirm the status of a preauthorized transaction.
     */
    readonly verify: (reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["PreAuthorizationVerifyResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly product: {
    /**
    * Create Product
    *
    * Create a new product on your integration
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ProductCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["ProductCreate"];
        };
      };
      responses: {
        201: components["responses"]["ProductCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Delete Product
    *
    * Delete a previously created product
     */
    readonly delete: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["ProductDeleteSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Product
    *
    * Fetch a previously created product
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["ProductFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Products
    *
    * List all previously created products
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          active?: boolean;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["ProductListsSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update product
    *
    * Update a previously created product
     */
    readonly update: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["ProductUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["ProductUpdate"];
        };
      };
      responses: {
        200: components["responses"]["ProductUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly refund: {
    /**
    * Create Refund
    *
    * Initiate a refund for a previously completed transaction
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["RefundCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["RefundCreate"];
        };
      };
      responses: {
        200: components["responses"]["RefundCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Refund
    *
    * Get a previously created refund
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["RefundFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Refunds
    *
    * List previously created refunds
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          transaction?: string;
          currency?: string;
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["RefundListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Retry Refund
    *
    * Retry a refund with a `needs-attention` status by providing the bank account details of a customer.
     */
    readonly retry: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["RefundRetry"];
          "application/x-www-form-urlencoded": components["schemas"]["RefundRetry"];
        };
      };
      responses: {
        200: components["responses"]["RefundRetrySuccess"];
        422: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly settlements: {
    /**
    * List Settlements
    *
    * List settlements made to your settlement accounts
     */
    readonly fetch: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
          status?: "success" | "failed" | "processing" | "pending";
          subaccount?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SettlementListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Settlement Transactions
    *
    * Get the transactions that make up a particular settlement
     */
    readonly transaction: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SettlementTransactionsResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly split: {
    /**
    * Add Subaccount to Split
    *
    * Add a subaccount to a split configuration, or update the share of an existing subaccount
     */
    readonly addSubaccount: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SplitSubaccounts"];
          "application/x-www-form-urlencoded": components["schemas"]["SplitSubaccounts"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitAddUpdateSubaccountResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Split
    *
    * Create a split configuration for transactions
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SplitCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["SplitCreate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Split
    *
    * Get details of a split configuration for a transaction
     */
    readonly fetch: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Splits
    *
    * List the transaction splits available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          subaccount_code?: string;
          name?: string;
          active?: boolean;
          sort_by?: string;
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Remove Subaccount from split
    *
    * Remove a subaccount from a split configuration
     */
    readonly removeSubaccount: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SplitSubaccountRemove"];
          "application/x-www-form-urlencoded": components["schemas"]["SplitSubaccountRemove"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitRemoveSubaccountResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Split
    *
    * Update a split configuration for transactions
     */
    readonly update: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SplitUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["SplitUpdate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SplitUpdateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly storefront: {
    /**
    * Add Products to Storefront
    *
    * Add previously created products to a Storefront
     */
    readonly addProducts: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["StorefrontAddProducts"];
          "application/x-www-form-urlencoded": components["schemas"]["StorefrontAddProducts"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Storefront
    *
    * Create a digital shop to manage and display your products
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["StorefrontCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["StorefrontCreate"];
        };
      };
      responses: {
        200: components["responses"]["StorefrontCreateSuccess"];
        400: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Delete Storefront
    *
    * Delete a previously created Storefront
     */
    readonly delete: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["StorefrontDeleteSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Duplicate Storefront
    *
    * Duplicate a previously created Storefront
     */
    readonly duplicate: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Storefront
    *
    * Get the details of a previously created Storefront
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["StorefrontFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Storefront Orders
    *
    * Fetch all orders in your Storefront
     */
    readonly fetchOrders: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Storefronts
    *
    * List the storefronts you previously created
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          status?: "active" | "inactive";
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["StorefrontListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Storefront Products
    *
    * List the products in a Storefront
     */
    readonly listProducts: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Publish Storefront
    *
    * Make your Storefront publicly available
     */
    readonly publish: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Storefront
    *
    * Update the details of a previously created Storefront
     */
    readonly update: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["StorefrontUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["StorefrontUpdate"];
        };
      };
      responses: {
        200: components["responses"]["StorefrontUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Storefront Slug
    *
    * Verify the availability of a slug before using it for your Storefront
     */
    readonly verifySlug: (slug: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          slug: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly subaccount: {
    /**
    * Create Subaccount
    *
    * Create a subacount for a partner
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SubaccountCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["SubaccountCreate"];
        };
      };
      responses: {
        201: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SubaccountCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Subaccount
    *
    * Get details of a subaccount on your integration
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SubaccountFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Subaccounts
    *
    * List subaccounts available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SubaccountListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Subaccount
    *
    * Update a subaccount details on your integration
     */
    readonly update: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SubaccountUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["SubaccountUpdate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["SubaccountUpdateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly subscription: {
    /**
    * Create Subscription
    *
    * Create a subscription a customer
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SubscriptionCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["SubscriptionCreate"];
        };
      };
      responses: {
        200: components["responses"]["SubscriptionCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Disable Subscription
    *
    * Disable a subscription on your integration
     */
    readonly disable: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SubscriptionToggle"];
          "application/x-www-form-urlencoded": components["schemas"]["SubscriptionToggle"];
        };
      };
      responses: {
        200: components["responses"]["SubscriptionDisableSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Enable Subscription
    *
    * Enable a subscription on your integration
     */
    readonly enable: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["SubscriptionToggle"];
          "application/x-www-form-urlencoded": components["schemas"]["SubscriptionToggle"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Subscription
    *
    * Get details of a customer's subscription
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["SubscriptionFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Subscriptions
    *
    * List all subscriptions available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          plan?: number;
          customer?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["SubscriptionListSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Send Update Subscription Link
    *
    * Email a customer a link for updating the card on their subscription
     */
    readonly manageEmail: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Generate Update Subscription Link
    *
    * Generate a link for updating the card on a subscription
     */
    readonly manageLink: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly terminal: {
    /**
    * Commission Terminal
    *
    * Activate your debug device by linking it to your integration
     */
    readonly commission: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TerminalActivationToggle"];
          "application/x-www-form-urlencoded": components["schemas"]["TerminalActivationToggle"];
        };
      };
      responses: {
        200: components["responses"]["TerminalCommissionDeviceSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Decommission Terminal
    *
    * Unlink your debug device from your integration
     */
    readonly decommission: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TerminalActivationToggle"];
          "application/x-www-form-urlencoded": components["schemas"]["TerminalActivationToggle"];
        };
      };
      responses: {
        200: components["responses"]["TerminalDecommissionDeviceSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Terminal
    *
    * Get the details of a Terminal
     */
    readonly fetch: (terminal_id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          terminal_id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["TerminalGetSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Event Status
    *
    * Check the status of an event sent to the Terminal
     */
    readonly fetchEventStatus: (terminal_id: string, event_id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          terminal_id: string;
          event_id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Terminal Status
    *
    * Check the availiability of a Terminal before sending an event to it
     */
    readonly fetchTerminalStatus: (terminal_id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          terminal_id: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["TerminalGetStatusSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Terminals
    *
    * List the Terminals available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          next?: string;
          previous?: string;
          perPage?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["TerminalListsSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Send Event
    *
    * Send an event from your application to the Paystack Terminal
     */
    readonly sendEvent: (id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TerminalSendEvent"];
          "application/x-www-form-urlencoded": components["schemas"]["TerminalSendEvent"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Terminal
    *
    * Update the details of a Terminal
     */
    readonly update: (terminal_id: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          terminal_id: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TerminalUpate"];
          "application/x-www-form-urlencoded": components["schemas"]["TerminalUpate"];
        };
      };
      responses: {
        200: components["responses"]["TerminalUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly transaction: {
    /**
    * Charge Authorization
    *
    * Charge all authorizations marked as reusable with this endpoint whenever you need to receive payments
     */
    readonly chargeAuthorization: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransactionChargeAuthorization"];
          "application/x-www-form-urlencoded": components["schemas"]["TransactionChargeAuthorization"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["ChargeAuthorizationResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Check Authorization
    *
    * Check if an authorization code can be used for a charge.
     */
    readonly checkAuthorization: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/x-www-form-urlencoded": components["schemas"]["TransactionCheckAuthorization"];
          "application/json": components["schemas"]["TransactionCheckAuthorization"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Get Transaction Event
    *
    * Fetch the event for a specific transaction.
     */
    readonly event: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Export Transactions
    *
    * Download transactions that occurred on your integration for a specific timeframe
     */
    readonly export: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
          status?: "success" | "failed" | "abandoned" | "reversed" | "all";
          customer?: number;
          currency?: string;
          amount?: number;
          settled?: boolean;
          settlement?: number;
          payment_page?: number;
          subaccount_code?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionExportResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Transaction
    *
    * Fetch a transaction to get its details
     */
    readonly fetch: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Initialize Transaction
    *
    * Create a new transaction
     */
    readonly initialize: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransactionInitialize"];
          "application/x-www-form-urlencoded": components["schemas"]["TransactionInitialize"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionInitializeResponse"];
          };
        };
        400: components["responses"]["TransactionInitializeBadRequestResponse"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Transactions
    *
    * List transactions carried out on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          use_cursor?: boolean;
          next?: string;
          previous?: string;
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
          status?: "success" | "failed" | "abandoned" | "reversed";
          source?: "merchantApi" | "checkout" | "pos" | "virtualTerminal";
          terminalid?: string;
          virtual_account_number?: string;
          customer?: number;
          amount?: number;
          settlement?: number;
          channel?: "card" | "pos" | "bank" | "dedicated_nuban" | "ussd" | "bank_transfer";
          subaccount_code?: string;
          split_code?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Partial Debit
    *
    * Retrieve part of a payment from a customer
     */
    readonly partialDebit: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransactionPartialDebit"];
          "application/x-www-form-urlencoded": components["schemas"]["TransactionPartialDebit"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionPartialDebitResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Get Transaction Session
    *
    * Fetch the session for a specific transaction.
     */
    readonly session: (id: number, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id: number;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Transaction Timeline
    *
    * Fetch the steps taken from the initiation to the completion of a transaction
     */
    readonly timeline: (id_or_reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionTimelineResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Transaction Totals
    *
    * Get the total amount of all transactions
     */
    readonly totals: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransactionTotalsResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Transaction
    *
    * Verify a previously initiated transaction using it's reference
     */
    readonly verify: (reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["VerifyResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly transfer: {
    /**
    * Initiate Bulk Transfer
    *
    * Batch multiple transfers in a single request.
    You need to disable the Transfers OTP requirement to use this endpoint.
     */
    readonly bulk: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferBulk"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferBulk"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferBulkResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Disable OTP for Transfers
    *
    * This is used in the event that you want to be able to complete transfers programmatically without use of OTPs.
    No arguments required. You will get an OTP to complete the request.
     */
    readonly disableOtp: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferDisablesOtpResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Finalize Disabling OTP for Transfers
    *
    * Finalize the request to disable OTP on your transfers
     */
    readonly disableOtpFinalize: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferFinalizeDisableOTP"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferFinalizeDisableOTP"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferFinalizeDisablesOtpResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Enable OTP requirement for Transfers
    *
    * In the event that a customer wants to stop being able to complete transfers programmatically, this endpoint helps turn OTP requirement back on.
    No arguments required.
     */
    readonly enableOtp: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferEnablesOtpResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Export Transfers
    *
    * Export a list of transfers carried out on your integration
     */
    readonly exportTransfer: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          recipient?: string;
          status?: "pending" | "success" | "failed" | "otp" | "abandoned" | "reversed" | "blocked" | "rejected" | "received";
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Transfer
    *
    * Get details of a transfer on your integration
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Finalize Transfer
    *
    * Finalize an initiated transfer
     */
    readonly finalize: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferFinalize"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferFinalize"];
        };
      };
      responses: {
        200: components["responses"]["Ok"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Initiate Transfer
    *
    * Send money to your customers
     */
    readonly initiate: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferInitiate"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferInitiate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Transfers
    *
    * List the transfers made on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
          recipient?: number;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Resend OTP for Transfer
    *
    * Generates and send a new OTP to customer in the event they are having trouble receiving one.
     */
    readonly resendOtp: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferResendOTP"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferResendOTP"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferResendsOtpResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Verify Transfer
    *
    * Verify the status of a transfer on your integration
     */
    readonly verify: (reference: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          reference: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferVerifyResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly transferrecipient: {
    /**
    * Bulk Create Transfer Recipient
    *
    * Create multiple transfer recipients in batches. A duplicate account number will lead to the retrieval of the existing record.
     */
    readonly bulk: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferRecipientBulk"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientBulk"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientBulkCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Transfer Recipient
    *
    * Creates a new recipient. A duplicate account number will lead to the retrieval of the existing record.
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferRecipientCreate"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientCreate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientCreateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Delete Transfer Recipient
    *
    * Delete a transfer recipient (sets the transfer recipient to inactive)
     */
    readonly delete: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientDeleteResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Transfer recipient
    *
    * Fetch the details of a transfer recipient
     */
    readonly fetch: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientFetchResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Transfer Recipients
    *
    * List transfer recipients available on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          perPage?: number;
          page?: number;
          from?: string;
          to?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientListResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Transfer Recipient
    *
    * Update the details of a transfer recipient
     */
    readonly update: (id_or_code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          id_or_code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["TransferRecipientUpdate"];
          "application/x-www-form-urlencoded": components["schemas"]["TransferRecipientUpdate"];
        };
      };
      responses: {
        200: {
          headers: {
            [name: string]: unknown;
          };
          content: {
            "application/json": components["schemas"]["TransferRecipientUpdateResponse"];
          };
        };
        401: components["responses"]["Unauthorized"];
        404: components["responses"]["NotFound"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
  readonly virtualTerminal: {
    /**
    * Add Split Code to Virtual Terminal
    *
    * Add Split Code to Virtual Terminal
     */
    readonly addSplitCode: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalAddSplitCode"];
          "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalAddSplitCode"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalAddSplitCodeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Create Virtual Terminal
    *
    * Create a Virtual Terminal on your integration
     */
    readonly create: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalCreate"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalCreateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Deactivate Virtual Terminal
    *
    * Deactivate a Virtual Terminal on your integration
     */
    readonly deactivate: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["VirtualTerminalDeactivateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Remove Split Code from Virtual Terminal
    *
    * Remove Split Code from Virtual Terminal
     */
    readonly deleteSplitCode: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalDeleteSplitCode"];
          "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDeleteSplitCode"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalDeleteSplitCodeSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Assign Destination to Virtual Terminal
    *
    * Add a destination (WhatsApp number) to a Virtual Terminal on your integration
     */
    readonly destinationAssign: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalDestinationAssign"];
          "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDestinationAssign"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalDestinationAssignSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Unassign Destination from Virtual Terminal
    *
    * Unassign a destination (WhatsApp Number) from a Virtual Terminal on your integration
     */
    readonly destinationUnassign: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalDestinationUnassign"];
          "application/x-www-form-urlencoded": components["schemas"]["VirtualTerminalDestinationUnassign"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalDestinationUnassignSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Fetch Virtual Terminal
    *
    * Fetch a Virtual Terminal on your integration
     */
    readonly fetch: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["VirtualTerminalFetchSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * List Virtual Terminals
    *
    * List Virtual Terminals on your integration
     */
    readonly list: (init?: _$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: {
          status?: "active" | "inactive";
          perPage?: number;
          search?: string;
          next?: string;
          previous?: string;
        };
        header?: never;
        path?: never;
        cookie?: never;
      };
      requestBody?: never;
      responses: {
        200: components["responses"]["VirtualTerminalListSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }> | undefined) => Promise<PaystackResponse<unknown>>;
    /**
    * Update Virtual Terminal
    *
    * Update a Virtual Terminal on your integration
     */
    readonly update: (code: string, init?: Partial<_$openapi_fetch0.FetchOptions<{
      parameters: {
        query?: never;
        header?: never;
        path: {
          code: string;
        };
        cookie?: never;
      };
      requestBody?: {
        content: {
          "application/json": components["schemas"]["VirtualTerminalUpdate"];
        };
      };
      responses: {
        200: components["responses"]["VirtualTerminalUpdateSuccess"];
        401: components["responses"]["Unauthorized"];
        default: {
          headers: {
            [name: string]: unknown;
          };
          content?: never;
        };
      };
    }>> | undefined) => Promise<PaystackResponse<unknown>>;
  };
};
//#endregion
//#region src/idempotency.d.ts
declare const DEFAULT_IDEMPOTENCY_HEADER = "Idempotency-Key";
type IdempotencyKeyInput = {
  mode: "none";
} | {
  mode: "static";
  key: string;
} | {
  mode: "auto";
} | {
  mode: "custom";
  generate: () => string;
};
declare function createIdempotencyKey(): string;
declare function hasHeader(headers: HeadersInit | undefined, name: string): boolean;
declare function setHeader(headers: HeadersInit | undefined, name: string, value: string): Headers;
declare function resolveIdempotencyKey(input: IdempotencyKeyInput): string | undefined;
//#endregion
//#region src/webhooks.d.ts
/**
 * A discriminated union of all common Paystack Webhook events.
 */
type PaystackWebhookEvent = components["schemas"]["WebhookEvent"];
type PaymentNotificationWebhookEvent = Extract<PaystackWebhookEvent, {
  event: "invoice.create" | "invoice.update" | "invoice.failed";
}>;
declare class Webhooks {
  /**
   * Parses and types a Paystack webhook event payload.
   *
   * @example
   * const event = Webhooks.parseEvent(req.body);
   * if (event.event === 'charge.success') {
   *   console.log(event.data.amount);
   * }
   */
  static parseEvent(payload: unknown): PaystackWebhookEvent;
}
//#endregion
//#region src/types.d.ts
type JsonRequestBody<TOperation> = TOperation extends {
  requestBody?: {
    content: {
      "application/json": infer TBody;
    };
  };
} ? TBody : never;
type JsonResponseBody<TOperation extends {
  responses: Record<PropertyKey, unknown>;
}, TStatus extends keyof TOperation["responses"]> = TOperation["responses"][TStatus] extends {
  content: {
    "application/json": infer TBody;
  };
} ? TBody : never;
type PathParams<TOperation> = TOperation extends {
  parameters: {
    path: infer TPath;
  };
} ? TPath : never;
type QueryParams<TOperation> = TOperation extends {
  parameters: {
    query?: infer TQuery;
  };
} ? TQuery : never;
type SuccessStatus<TResponses extends Record<PropertyKey, unknown>, TPreferred extends PropertyKey = 200> = TPreferred extends keyof TResponses ? TPreferred : Extract<keyof TResponses, 200 | 201 | 202 | 204>;
type JsonSuccessResponseBody<TOperation extends {
  responses: Record<PropertyKey, unknown>;
}, TPreferred extends PropertyKey = 200> = JsonResponseBody<TOperation, SuccessStatus<TOperation["responses"], TPreferred>>;
type PayloadData<TPayload> = TPayload extends {
  data: infer TData;
} ? TData : never;
type PaystackOperations = ReturnType<typeof bindOperations>;
interface Paystack extends PaystackOperations {
  client: PaystackClient;
}
type PaystackTransactionClient = Paystack["transaction"];
type PaystackCustomerClient = Paystack["customer"];
type PaystackSubscriptionClient = Paystack["subscription"];
type PaystackPlanClient = Paystack["plan"];
type PaystackProductClient = Paystack["product"];
type PaystackDisputeClient = Paystack["dispute"];
type PaystackRefundClient = Paystack["refund"];
type TransactionInitializePayload = JsonRequestBody<operations["transaction_initialize"]>;
type TransactionInitializeResponsePayload = JsonSuccessResponseBody<operations["transaction_initialize"]>;
type TransactionInitializeResponseData = TransactionInitializeResponsePayload["data"];
type TransactionChargeAuthorizationPayload = JsonRequestBody<operations["transaction_chargeAuthorization"]>;
type TransactionChargeAuthorizationResponsePayload = JsonSuccessResponseBody<operations["transaction_chargeAuthorization"]>;
type TransactionChargeAuthorizationResponseData = TransactionChargeAuthorizationResponsePayload["data"];
type TransactionVerifyPathParams = PathParams<operations["transaction_verify"]>;
type TransactionVerifyResponsePayload = JsonSuccessResponseBody<operations["transaction_verify"]>;
type TransactionVerifyResponseData = TransactionVerifyResponsePayload["data"];
type ResolveAccountNumberQueryParams = QueryParams<operations["bank_resolveAccountNumber"]>;
type ResolveAccountNumberResponsePayload = JsonSuccessResponseBody<operations["bank_resolveAccountNumber"]>;
type ResolveAccountNumberResponseData = ResolveAccountNumberResponsePayload["data"];
type ValidateAccountNumberPayload = JsonRequestBody<operations["bank_validateAccountNumber"]>;
type ValidateAccountNumberResponsePayload = JsonSuccessResponseBody<operations["bank_validateAccountNumber"]>;
type ValidateAccountNumberResponseData = ValidateAccountNumberResponsePayload["data"];
type ResolveCardBinPathParams = PathParams<operations["miscellaneous_resolveCardBin"]>;
type ResolveCardBinResponsePayload = JsonSuccessResponseBody<operations["miscellaneous_resolveCardBin"]>;
type ResolveCardBinResponseData = ResolveCardBinResponsePayload["data"];
type SubscriptionCreatePayload = JsonRequestBody<operations["subscription_create"]>;
type SubscriptionCreateResponsePayload = JsonSuccessResponseBody<operations["subscription_create"]>;
type SubscriptionCreateResponseData = SubscriptionCreateResponsePayload["data"];
type SubscriptionListQueryParams = QueryParams<operations["subscription_list"]>;
type SubscriptionListResponsePayload = JsonSuccessResponseBody<operations["subscription_list"]>;
type SubscriptionListResponseData = SubscriptionListResponsePayload["data"];
type SubscriptionFetchPathParams = PathParams<operations["subscription_fetch"]>;
type SubscriptionFetchResponsePayload = JsonSuccessResponseBody<operations["subscription_fetch"]>;
type SubscriptionFetchResponseData = SubscriptionFetchResponsePayload["data"];
type SubscriptionDisablePayload = JsonRequestBody<operations["subscription_disable"]>;
type SubscriptionDisableResponsePayload = JsonSuccessResponseBody<operations["subscription_disable"]>;
type SubscriptionDisableResponseData = PayloadData<SubscriptionDisableResponsePayload>;
type SubscriptionEnablePayload = JsonRequestBody<operations["subscription_enable"]>;
type SubscriptionEnableResponsePayload = JsonSuccessResponseBody<operations["subscription_enable"]>;
type SubscriptionEnableResponseData = SubscriptionEnableResponsePayload["data"];
type SubscriptionManageLinkPathParams = PathParams<operations["subscription_manageLink"]>;
type SubscriptionManageLinkResponsePayload = JsonSuccessResponseBody<operations["subscription_manageLink"]>;
type SubscriptionManageLinkResponseData = SubscriptionManageLinkResponsePayload["data"];
type SubscriptionManageEmailPathParams = PathParams<operations["subscription_manageEmail"]>;
type SubscriptionManageEmailResponsePayload = JsonSuccessResponseBody<operations["subscription_manageEmail"]>;
type SubscriptionManageEmailResponseData = SubscriptionManageEmailResponsePayload["data"];
type CustomerCreatePayload = JsonRequestBody<operations["customer_create"]>;
type CustomerCreateResponsePayload = JsonSuccessResponseBody<operations["customer_create"]>;
type CustomerCreateResponseData = CustomerCreateResponsePayload["data"];
type CustomerFetchPathParams = PathParams<operations["customer_fetch"]>;
type CustomerFetchResponsePayload = JsonSuccessResponseBody<operations["customer_fetch"]>;
type CustomerFetchResponseData = CustomerFetchResponsePayload["data"];
type CustomerUpdatePathParams = PathParams<operations["customer_update"]>;
type CustomerUpdatePayload = JsonRequestBody<operations["customer_update"]>;
type CustomerUpdateResponsePayload = JsonSuccessResponseBody<operations["customer_update"]>;
type CustomerUpdateResponseData = CustomerUpdateResponsePayload["data"];
type PlanCreatePayload = JsonRequestBody<operations["plan_create"]>;
type PlanCreateResponsePayload = JsonSuccessResponseBody<operations["plan_create"]>;
type PlanCreateResponseData = PlanCreateResponsePayload["data"];
type PlanListQueryParams = QueryParams<operations["plan_list"]>;
type PlanListResponsePayload = JsonSuccessResponseBody<operations["plan_list"]>;
type PlanListResponseData = PlanListResponsePayload["data"];
type PlanFetchPathParams = PathParams<operations["plan_fetch"]>;
type PlanFetchResponsePayload = JsonSuccessResponseBody<operations["plan_fetch"]>;
type PlanFetchResponseData = PlanFetchResponsePayload["data"];
type PlanUpdatePathParams = PathParams<operations["plan_update"]>;
type PlanUpdatePayload = JsonRequestBody<operations["plan_update"]>;
type PlanUpdateResponsePayload = JsonSuccessResponseBody<operations["plan_update"]>;
type PlanUpdateResponseData = PayloadData<PlanUpdateResponsePayload>;
type ProductCreatePayload = JsonRequestBody<operations["product_create"]>;
type ProductCreateResponsePayload = JsonSuccessResponseBody<operations["product_create"]>;
type ProductCreateResponseData = ProductCreateResponsePayload["data"];
type ProductListQueryParams = QueryParams<operations["product_list"]>;
type ProductListResponsePayload = JsonSuccessResponseBody<operations["product_list"]>;
type ProductListResponseData = ProductListResponsePayload["data"];
type ProductFetchPathParams = PathParams<operations["product_fetch"]>;
type ProductFetchResponsePayload = JsonSuccessResponseBody<operations["product_fetch"]>;
type ProductFetchResponseData = ProductFetchResponsePayload["data"];
type ProductUpdatePathParams = PathParams<operations["product_update"]>;
type ProductUpdatePayload = JsonRequestBody<operations["product_update"]>;
type ProductUpdateResponsePayload = JsonSuccessResponseBody<operations["product_update"]>;
type ProductUpdateResponseData = ProductUpdateResponsePayload["data"];
type DisputeListQueryParams = QueryParams<operations["dispute_list"]>;
type DisputeListResponsePayload = JsonSuccessResponseBody<operations["dispute_list"]>;
type DisputeListResponseData = DisputeListResponsePayload["data"];
type DisputeFetchPathParams = PathParams<operations["dispute_fetch"]>;
type DisputeFetchResponsePayload = JsonSuccessResponseBody<operations["dispute_fetch"]>;
type DisputeFetchResponseData = DisputeFetchResponsePayload["data"];
type RefundCreatePayload = JsonRequestBody<operations["refund_create"]>;
type RefundCreateResponsePayload = JsonSuccessResponseBody<operations["refund_create"]>;
type RefundCreateResponseData = RefundCreateResponsePayload["data"];
type RefundFetchPathParams = PathParams<operations["refund_fetch"]>;
type RefundFetchResponsePayload = JsonSuccessResponseBody<operations["refund_fetch"]>;
type RefundFetchResponseData = RefundFetchResponsePayload["data"];
type SplitFetchPathParams = PathParams<operations["split_fetch"]>;
type SplitFetchResponsePayload = JsonSuccessResponseBody<operations["split_fetch"]>;
type SplitFetchResponseData = SplitFetchResponsePayload["data"];
type SubaccountCreatePayload = JsonRequestBody<operations["subaccount_create"]>;
type SubaccountCreateResponsePayload = JsonSuccessResponseBody<operations["subaccount_create"]>;
type SubaccountCreateResponseData = SubaccountCreateResponsePayload["data"];
type SubaccountFetchPathParams = PathParams<operations["subaccount_fetch"]>;
type SubaccountFetchResponsePayload = JsonSuccessResponseBody<operations["subaccount_fetch"]>;
type SubaccountFetchResponseData = SubaccountFetchResponsePayload["data"];
type TerminalFetchPathParams = PathParams<operations["terminal_fetch"]>;
type TerminalFetchResponsePayload = JsonSuccessResponseBody<operations["terminal_fetch"]>;
type TerminalFetchResponseData = TerminalFetchResponsePayload["data"];
type TerminalSendEventPathParams = PathParams<operations["terminal_sendEvent"]>;
type TerminalSendEventPayload = JsonRequestBody<operations["terminal_sendEvent"]>;
type TerminalSendEventResponsePayload = JsonSuccessResponseBody<operations["terminal_sendEvent"]>;
type TerminalSendEventResponseData = TerminalSendEventResponsePayload["data"];
type VirtualTerminalFetchPathParams = PathParams<operations["virtualTerminal_fetch"]>;
type VirtualTerminalFetchResponsePayload = JsonSuccessResponseBody<operations["virtualTerminal_fetch"]>;
type VirtualTerminalFetchResponseData = VirtualTerminalFetchResponsePayload["data"];
type PaymentRequestCreatePayload = JsonRequestBody<operations["paymentRequest_create"]>;
type PaymentRequestCreateResponsePayload = JsonSuccessResponseBody<operations["paymentRequest_create"]>;
type PaymentRequestCreateResponseData = PaymentRequestCreateResponsePayload["data"];
type PaymentRequestFetchPathParams = PathParams<operations["paymentRequest_fetch"]>;
type PaymentRequestFetchResponsePayload = JsonSuccessResponseBody<operations["paymentRequest_fetch"]>;
type PaymentRequestFetchResponseData = PaymentRequestFetchResponsePayload["data"];
//#endregion
//#region src/index.d.ts
declare function createPaystack(options: PaystackBrowserClientOptions): Paystack;
//#endregion
export { CustomerCreatePayload, CustomerCreateResponseData, CustomerCreateResponsePayload, CustomerFetchPathParams, CustomerFetchResponseData, CustomerFetchResponsePayload, CustomerUpdatePathParams, CustomerUpdatePayload, CustomerUpdateResponseData, CustomerUpdateResponsePayload, DEFAULT_IDEMPOTENCY_HEADER, DEFAULT_REQUEST_ID_HEADERS, DisputeFetchPathParams, DisputeFetchResponseData, DisputeFetchResponsePayload, DisputeListQueryParams, DisputeListResponseData, DisputeListResponsePayload, IdempotencyKeyInput, PaymentNotificationWebhookEvent, PaymentRequestCreatePayload, PaymentRequestCreateResponseData, PaymentRequestCreateResponsePayload, PaymentRequestFetchPathParams, PaymentRequestFetchResponseData, PaymentRequestFetchResponsePayload, Paystack, PaystackApiError, PaystackBrowserClientOptions, PaystackClient, PaystackCustomerClient, PaystackDisputeClient, PaystackError, PaystackErrorOptions, PaystackErrorType, PaystackOperations, PaystackPaths, PaystackPlanClient, PaystackProductClient, PaystackRawResponse, PaystackRefundClient, PaystackResponse, PaystackRetryOptions, PaystackSubscriptionClient, PaystackTransactionClient, PaystackWebhookEvent, PlanCreatePayload, PlanCreateResponseData, PlanCreateResponsePayload, PlanFetchPathParams, PlanFetchResponseData, PlanFetchResponsePayload, PlanListQueryParams, PlanListResponseData, PlanListResponsePayload, PlanUpdatePathParams, PlanUpdatePayload, PlanUpdateResponseData, PlanUpdateResponsePayload, ProductCreatePayload, ProductCreateResponseData, ProductCreateResponsePayload, ProductFetchPathParams, ProductFetchResponseData, ProductFetchResponsePayload, ProductListQueryParams, ProductListResponseData, ProductListResponsePayload, ProductUpdatePathParams, ProductUpdatePayload, ProductUpdateResponseData, ProductUpdateResponsePayload, RefundCreatePayload, RefundCreateResponseData, RefundCreateResponsePayload, RefundFetchPathParams, RefundFetchResponseData, RefundFetchResponsePayload, ResolveAccountNumberQueryParams, ResolveAccountNumberResponseData, ResolveAccountNumberResponsePayload, ResolveCardBinPathParams, ResolveCardBinResponseData, ResolveCardBinResponsePayload, SplitFetchPathParams, SplitFetchResponseData, SplitFetchResponsePayload, SubaccountCreatePayload, SubaccountCreateResponseData, SubaccountCreateResponsePayload, SubaccountFetchPathParams, SubaccountFetchResponseData, SubaccountFetchResponsePayload, SubscriptionCreatePayload, SubscriptionCreateResponseData, SubscriptionCreateResponsePayload, SubscriptionDisablePayload, SubscriptionDisableResponseData, SubscriptionDisableResponsePayload, SubscriptionEnablePayload, SubscriptionEnableResponseData, SubscriptionEnableResponsePayload, SubscriptionFetchPathParams, SubscriptionFetchResponseData, SubscriptionFetchResponsePayload, SubscriptionListQueryParams, SubscriptionListResponseData, SubscriptionListResponsePayload, SubscriptionManageEmailPathParams, SubscriptionManageEmailResponseData, SubscriptionManageEmailResponsePayload, SubscriptionManageLinkPathParams, SubscriptionManageLinkResponseData, SubscriptionManageLinkResponsePayload, TerminalFetchPathParams, TerminalFetchResponseData, TerminalFetchResponsePayload, TerminalSendEventPathParams, TerminalSendEventPayload, TerminalSendEventResponseData, TerminalSendEventResponsePayload, TransactionChargeAuthorizationPayload, TransactionChargeAuthorizationResponseData, TransactionChargeAuthorizationResponsePayload, TransactionInitializePayload, TransactionInitializeResponseData, TransactionInitializeResponsePayload, TransactionVerifyPathParams, TransactionVerifyResponseData, TransactionVerifyResponsePayload, ValidateAccountNumberPayload, ValidateAccountNumberResponseData, ValidateAccountNumberResponsePayload, VirtualTerminalFetchPathParams, VirtualTerminalFetchResponseData, VirtualTerminalFetchResponsePayload, Webhooks, applePay_listDomain, applePay_registerDomain, applePay_unregisterDomain, assertOk, balance_fetch, balance_ledger, bank_list, bank_resolveAccountNumber, bank_validateAccountNumber, bindOperations, bulkCharge_charges, bulkCharge_fetch, bulkCharge_initiate, bulkCharge_list, bulkCharge_pause, bulkCharge_resume, capitecPay_requery, charge_check, charge_create, charge_submitAddress, charge_submitBirthday, charge_submitOtp, charge_submitPhone, charge_submitPin, type components, createIdempotencyKey, createPaystack, createPaystackClient, customer_create, customer_deactivateAuthorization, customer_directDebitActivationCharge, customer_fetch, customer_fetchMandateAuthorizations, customer_initializeAuthorization, customer_initializeDirectDebit, customer_list, customer_riskAction, customer_update, customer_validate, customer_verifyAuthorization, dedicatedAccount_addSplit, dedicatedAccount_assign, dedicatedAccount_availableProviders, dedicatedAccount_create, dedicatedAccount_deactivate, dedicatedAccount_fetch, dedicatedAccount_list, dedicatedAccount_removeSplit, dedicatedAccount_requery, directdebit_listMandateAuthorizations, directdebit_triggerActivationCharge, dispute_download, dispute_evidence, dispute_fetch, dispute_list, dispute_resolve, dispute_transaction, dispute_update, dispute_uploadUrl, getPaystackRequestId, hasHeader, integration_fetchPaymentSessionTimeout, integration_updatePaymentSessionTimeout, isPaystackApiError, misc_generateWebhookEventTypes, miscellaneous_avs, miscellaneous_listCountries, miscellaneous_resolveCardBin, type operations, order_create, order_fetch, order_list, order_product, order_validate, page_addProducts, page_checkSlugAvailability, page_create, page_fetch, page_list, page_update, type paths, paymentRequest_archive, paymentRequest_create, paymentRequest_fetch, paymentRequest_finalize, paymentRequest_list, paymentRequest_notify, paymentRequest_totals, paymentRequest_update, paymentRequest_verify, plan_create, plan_fetch, plan_list, plan_update, preauthorization_capture, preauthorization_initialize, preauthorization_list, preauthorization_release, preauthorization_reserve_authorization, preauthorization_verify, product_create, product_delete, product_fetch, product_list, product_update, refund_create, refund_fetch, refund_list, refund_retry, resolveIdempotencyKey, setHeader, settlements_fetch, settlements_transaction, split_addSubaccount, split_create, split_fetch, split_list, split_removeSubaccount, split_update, storefront_addProducts, storefront_create, storefront_delete, storefront_duplicate, storefront_fetch, storefront_fetchOrders, storefront_list, storefront_listProducts, storefront_publish, storefront_update, storefront_verifySlug, subaccount_create, subaccount_fetch, subaccount_list, subaccount_update, subscription_create, subscription_disable, subscription_enable, subscription_fetch, subscription_list, subscription_manageEmail, subscription_manageLink, terminal_commission, terminal_decommission, terminal_fetch, terminal_fetchEventStatus, terminal_fetchTerminalStatus, terminal_list, terminal_sendEvent, terminal_update, toPaystackApiError, transaction_chargeAuthorization, transaction_checkAuthorization, transaction_event, transaction_export, transaction_fetch, transaction_initialize, transaction_list, transaction_partialDebit, transaction_session, transaction_timeline, transaction_totals, transaction_verify, transfer_bulk, transfer_disableOtp, transfer_disableOtpFinalize, transfer_enableOtp, transfer_exportTransfer, transfer_fetch, transfer_finalize, transfer_initiate, transfer_list, transfer_resendOtp, transfer_verify, transferrecipient_bulk, transferrecipient_create, transferrecipient_delete, transferrecipient_fetch, transferrecipient_list, transferrecipient_update, virtualTerminal_addSplitCode, virtualTerminal_create, virtualTerminal_deactivate, virtualTerminal_deleteSplitCode, virtualTerminal_destinationAssign, virtualTerminal_destinationUnassign, virtualTerminal_fetch, virtualTerminal_list, virtualTerminal_update };