UNPKG

@alexasomba/paystack-node

Version:

The most comprehensive Node.js SDK for Paystack - Complete, Type-safe, and Spec-compliant with full OpenAPI coverage and webhook verification.

14,809 lines 423 kB
//#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/webhooks.d.ts
/**
 * Discriminated Union of all supported Webhook Events.
 * This type is derived from the OpenAPI specification.
 */
type PaystackWebhookEvent = components["schemas"]["WebhookEvent"];
type PaymentNotificationWebhookEvent = Extract<PaystackWebhookEvent, {
  event: "invoice.create" | "invoice.update" | "invoice.failed";
}>;
/**
 * Utilities for handling Paystack Webhooks
 */
declare const Webhooks: {
  /**
   * Verified that a webhook request truly originated from Paystack.
   * Uses HMAC SHA-512 with your Secret Key.
   *
   * @param body The raw request body string (important: use the raw body, not the parsed JSON)
   * @param signature The value of the 'x-paystack-signature' header
   * @param secretKey Your Paystack Secret Key
   */
  verifySignature(body: string, signature: string, secretKey: string): boolean;
  /**
   * A helper to parse and validate a webhook event from a raw body string.
   * @param body Raw request body
   */
  parseEvent(body: string): PaystackWebhookEvent;
};
//#endregion
export { operations as a, components as i, PaystackWebhookEvent as n, paths as o, Webhooks as r, PaymentNotificationWebhookEvent as t };