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

# Preview Bank Payout

> Validates bank payout details like amount, order-reference and verifies payout channels availability. When beneficiary name lookup is available for the selected bank, the response may include the account holder name.



## OpenAPI

````yaml POST /payouts/preview-bank-payout
openapi: 3.0.1
info:
  title: CORE API OpenAPI Specification
  description: This is the API documentation for the ClickPesa CORE API
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.clickpesa.com/third-parties
security:
  - bearerAuth: []
paths:
  /payouts/preview-bank-payout:
    post:
      tags:
        - Payouts
        - Preview
      description: >-
        Validates bank payout details like amount, order-reference and verifies
        payout channels availability. When beneficiary name lookup is available
        for the selected bank, the response may include the account holder name.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
                - orderReference
                - accountNumber
                - currency
                - bic
                - transferType
              properties:
                amount:
                  type: number
                accountNumber:
                  type: string
                currency:
                  type: string
                  enum:
                    - TZS
                    - USD
                  description: Account currency to pay out from (TZS or USD)
                accountCurrency:
                  type: string
                  enum:
                    - TZS
                  default: TZS
                  description: Receiving currency for the payout (TZS)
                orderReference:
                  type: string
                  description: Your unique Order reference
                bic:
                  type: string
                  description: >-
                    Beneficiary bank BIC. You can fetch the list of bank BICs
                    from the [banks list
                    endpoint.](/api-reference/list/get-bank-list)
                transferType:
                  type: string
                  enum:
                    - ACH
                    - RTGS
                checksum:
                  type: string
                  description: >-
                    If enabled, this is the generated checksum of the payload.
                    Refer to the [documentation](/home/checksum) for more
                    details.
      responses:
        '200':
          description: Bank payout preview response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreviewBankPayoutResponse'
        '400':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '401':
          description: Invalid or Expired Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '409':
          description: Conflict Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
components:
  schemas:
    PreviewBankPayoutResponse:
      type: object
      properties:
        amount:
          type: number
          description: Total amount to be deducted from your account balance (includes fee)
          example: 1047.1
        balance:
          type: number
          example: 2000
        channelProvider:
          type: string
          example: AMANA BANK LIMITED
        fee:
          type: number
          description: Transaction fee deducted from source currency (included in amount)
          example: 47.1
        exchanged:
          type: boolean
          description: >-
            Indicates if currency conversion was applied (true when source
            currency differs from receiving currency)
          example: true
        exchange:
          type: object
          description: Exchange rate details (only present when exchanged is true)
          properties:
            sourceCurrency:
              type: string
              description: Source currency for the exchange
              example: USD
            targetCurrency:
              type: string
              description: Target currency for the exchange
              example: TZS
            sourceAmount:
              type: number
              description: Amount in source currency
              example: 1000
            rate:
              type: number
              description: Exchange rate used for conversion
              example: 2500
        order:
          type: object
          properties:
            amount:
              type: number
              description: Amount to be added during order creation/payload
              example: 1000
            currency:
              type: string
              example: TZS
            id:
              type: string
              example: UNIQUEREFERENCE
        payoutFeeBearer:
          type: string
          example: merchant
          enum:
            - merchant
            - both
            - customer
        nameLookupStatus:
          type: string
          enum:
            - RESOLVED
            - UNAVAILABLE
          description: >-
            Indicates whether the beneficiary name was resolved. `RESOLVED` when
            `receiver.accountName` is present; `UNAVAILABLE` when lookup did not
            return a name.
        receiver:
          type: object
          properties:
            accountNumber:
              type: string
              example: 0112345400847jhs
            accountName:
              type: string
              description: >-
                Beneficiary account holder name when lookup succeeds. Omitted
                when `nameLookupStatus` is `UNAVAILABLE`.
              example: TEMBO SHOP
            accountCurrency:
              type: string
              description: Currency the user will receive funds in
              example: TZS
            amount:
              type: number
              description: Amount the user will receive in accountCurrency
              example: 1000
        transferType:
          type: string
          enum:
            - ACH
            - RTGS
    ValidationError:
      type: object
      properties:
        message:
          type: string
          enum:
            - Valid Client ID is required
            - Unsupported channel provider
            - >-
              Application has no access to PAYOUT API feature. Enable it on your
              application.
            - >-
              Invalid Order Reference, should only contain alphanumeric
              characters and cannot be blank
            - 'Insufficient balance: available balance is {balance} TZS'
          example: >-
            Invalid Order Reference, should only contain alphanumeric characters
            and cannot be blank
    UnauthorizedError:
      type: object
      properties:
        message:
          type: string
          description: Unauthorized Error
          example: Unauthorized
    ConflictError:
      type: object
      properties:
        message:
          type: string
          description: Conflict message when an order reference is already used
          example: >-
            Order reference {Your reference} already used: Create a different
            reference
    InternalServerError:
      type: object
      properties:
        message:
          type: string
          description: Internal Server Error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authorization header containing the JWT access token returned from the
        generate token endpoint. The token already includes the Bearer prefix.
        Example: `Authorization: Bearer eyJhbGciOi...`
      bearerFormat: JWT

````