> ## Documentation Index
> Fetch the complete documentation index at: https://manual.kotanipay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bank Withdrawal

> This Api Handles payout to bank, currently only supports SA Banks

This API handles payout to bank, currently only supports SA Banks.


## OpenAPI

````yaml POST /api/v3/withdraw/v2/bank
openapi: 3.0.0
info:
  title: KOTANI PAY API PLATFORM
  description: ''
  version: '3.0'
  contact: {}
servers:
  - url: https://preview.kotanipay.com
security: []
tags: []
paths:
  /api/v3/withdraw/v2/bank:
    post:
      tags:
        - WITHDRAW V2
      summary: BANK WITHDRAWAL
      description: This Api Handles payout to bank, currently only supports SA Banks
      operationId: WithdrawTransactionController_mobileMoney_api/v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WithdrawTransactionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Withdrawal has been successfully created.
                  data:
                    $ref: '#/components/schemas/WithdrawResponseDto'
                    type: object
        '400':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Bad Request
                  data:
                    type: object
                    example: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Invalid API Key
                  data:
                    type: object
                    example: {}
      security:
        - JWT: []
components:
  schemas:
    WithdrawTransactionDto:
      type: object
      properties:
        bankDetails:
          $ref: '#/components/schemas/BankDetailsDto'
        currency:
          description: The currency of the transaction
          example: ZAR
          allOf:
            - $ref: '#/components/schemas/Currency'
        amount:
          type: number
          description: The amount of the transaction
          example: 100
        referenceId:
          type: string
          description: The reference id of the transaction
          example: '1234567890'
        callbackUrl:
          type: string
          description: Callback URL to receive withdrawal status updates
          example: https://your-domain.com/webhook
      required:
        - bankDetails
        - currency
        - amount
        - referenceId
    WithdrawResponseDto:
      type: object
      properties:
        id:
          type: string
        message:
          type: string
        referenceId:
          type: string
        referenceNumber:
          type: number
      required:
        - id
        - message
        - referenceId
        - referenceNumber
    BankDetailsDto:
      type: object
      properties:
        name:
          type: string
          description: Customer Full Name
          example: George Smith
        address:
          type: string
          description: Customer Address
          example: Unit 163 Richmond Street, 25 Allan Road, Oakdene, 4250
        phoneNumber:
          type: string
          description: Customer Phone Number, Phone number must be in international format
          example: '712345678'
        bankCode:
          type: number
          description: The code of the bank gotten from the bank list api
          example: '2500'
        accountNumber:
          type: string
          description: The account number of the bank
          example: '63122514698'
        country:
          type: string
          description: The country code (ISO-2 like KE, ZA or ISO-3 like KEN, ZAF)
          example: ZA
      required:
        - name
        - address
        - phoneNumber
        - bankCode
        - accountNumber
        - country
    Currency:
      type: string
      enum:
        - KES
        - GHS
        - NGN
        - ZAR
        - ZAR
        - USD
        - XOF
        - ZMW
        - XAF
        - SLE
        - CDF
        - TZS
        - UGX
        - EGP
        - MWK
        - RWF
        - ETB
        - MZN
        - LSL
        - GNF
        - USDT
        - BTC
        - ETH
        - USDC
      description: From currency
  securitySchemes:
    JWT:
      scheme: bearer
      bearerFormat: JWT
      type: http

````