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

# ACH Payout

> Creates a payout transaction to a destination bank account.



## OpenAPI

````yaml /openapi-v3.en.yaml post /v3/transactions/payouts/bank
openapi: 3.0.0
info:
  title: YP API Partner
  description: Integration documentation for YP API partners.
  version: v3
  contact: {}
servers:
  - url: https://sandbox-rampa.mesadepagos.com/api
    description: Sandbox
security: []
tags:
  - name: Auth
    description: ''
  - name: Quotes
    description: ''
  - name: Payin
    description: ''
  - name: Payout
    description: ''
  - name: Wallet
    description: ''
  - name: Queries
    description: ''
  - name: Webhooks
    description: ''
  - name: Fees
    description: ''
  - name: Clients
    description: ''
  - name: Client verifications
    description: Las verificaciones que habilitan a un cliente a cobrar a su nombre.
  - name: Virtual accounts
    description: 'Las cuentas de cobro: las del partner y las de sus clientes.'
paths:
  /v3/transactions/payouts/bank:
    post:
      tags:
        - Payout
      summary: ACH Payout
      description: Creates a payout transaction to a destination bank account.
      operationId: createPayoutAchV3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBankPayoutV3RequestDoc'
      responses:
        '201':
          description: Bank payout created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositAddressTransactionResponseDoc'
        '400':
          description: >-
            Invalid request, or a field rejected by the payment provider. Always
            a single 400 with the path of each field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorV3ResponseDoc'
              example:
                statusCode: 400
                error: Bad Request
                message:
                  - path:
                      - transaction
                      - bank_code
                    message: The bank is not enabled for transfers.
        '401':
          description: Missing, invalid, or expired token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponseDoc'
        '422':
          description: >-
            The payment provider permanently rejected the payout (for example,
            insufficient funds).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppErrorResponseDoc'
              example:
                statusCode: 422
                code: INSUFFICIENT_FUNDS
                message: There are insufficient funds to complete this transaction.
        '500':
          description: Internal error (for example, merchant configuration).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppErrorResponseDoc'
              example:
                statusCode: 500
                code: INTERNAL_SERVER_ERROR
                message: >-
                  An unexpected internal server error occurred. Please try again
                  later.
        '503':
          description: >-
            The payment provider did not respond (timeout, outage or 5xx error).
            The request can be retried.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppErrorResponseDoc'
              example:
                statusCode: 503
                code: PAYMENT_PROVIDER_UNAVAILABLE
                message: >-
                  The payment provider is temporarily unavailable. Please try
                  again later.
      security:
        - bearer: []
components:
  schemas:
    CreateBankPayoutV3RequestDoc:
      type: object
      properties:
        funding_source:
          type: string
          enum:
            - balance
            - conversion
          example: conversion
          description: Source of funds for the operation.
        external_reference:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
          description: Unique external reference sent by the partner.
          format: uuid
        asset_deposit:
          type: string
          enum:
            - USDC
            - USDT
          default: USDC
          example: USDC
          description: Crypto asset required to fund the operation.
        refund_address:
          type: string
          example: '0x0000000000000000000000000000000000000000'
          description: Crypto refund address, if applicable.
        blockchain:
          type: string
          enum:
            - Polygon
            - Ethereum
            - TRON
          default: Polygon
          example: Polygon
          description: Blockchain of the deposit asset.
        transaction:
          description: Bank details and payout amount.
          allOf:
            - $ref: '#/components/schemas/BankTransactionV3Doc'
      required:
        - funding_source
        - external_reference
        - transaction
    DepositAddressTransactionResponseDoc:
      type: object
      properties:
        transaction_id:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440001
          description: Primary transaction identifier.
        external_reference:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
          description: External reference sent in the request.
        deposit_address:
          type: object
          example: '0x0000000000000000000000000000000000000000'
          nullable: true
          description: Crypto address to fund, if applicable.
        amount_deposit:
          type: object
          example: '14.44'
          nullable: true
          description: Crypto amount required to fund the operation, if applicable.
        transactions:
          description: Transactions associated with the flow.
          type: array
          items:
            $ref: '#/components/schemas/TransactionItemResponseDoc'
      required:
        - transaction_id
        - external_reference
        - transactions
    ValidationErrorV3ResponseDoc:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        error:
          type: string
          example: Bad Request
        message:
          description: One item per invalid field.
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorPathV3Doc'
      required:
        - statusCode
        - error
        - message
    UnauthorizedResponseDoc:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          type: string
          example: Unauthorized
      required:
        - statusCode
        - message
    AppErrorResponseDoc:
      type: object
      properties:
        statusCode:
          type: number
          example: 503
        code:
          type: string
          enum:
            - QR_EXPIRED
            - TRANSACTION_REJECTED
            - ACH_PAYMENT_UNAVAILABLE
            - INSUFFICIENT_FUNDS
            - INTERNAL_SERVER_ERROR
            - PAYMENT_PROVIDER_UNAVAILABLE
            - TRANSACTION_NOT_FOUND
            - INTERNAL_ERROR_SERVER
          example: PAYMENT_PROVIDER_UNAVAILABLE
          description: Stable error code the partner can use to handle the case.
        message:
          type: string
          example: >-
            The payment provider is temporarily unavailable. Please try again
            later.
          description: Fixed English message associated with the code.
      required:
        - statusCode
        - code
        - message
    BankTransactionV3Doc:
      type: object
      properties:
        country:
          type: string
          enum:
            - BO
            - BR
            - CO
            - CL
            - PE
            - CN
            - CR
            - PY
            - UY
            - PA
            - GT
          default: BO
          example: BO
          description: ISO alpha-2 code of the destination bank country.
        entity_type:
          type: string
          enum:
            - individual
            - company
          example: individual
          description: Destination holder type.
        amount:
          type: number
          example: 100.5
          description: Fiat amount to send.
          minimum: 0
          multipleOf: 0.01
        bank_code:
          type: string
          example: '101'
          description: Destination bank code.
        description:
          type: string
          example: Supplier payment
          description: Transaction description.
          maxLength: 200
        destination_account:
          type: string
          example: '1234567890'
          description: Destination account number.
        destination_holder:
          type: string
          example: Juan Perez
          description: Full name of the destination account holder. Required in v2.
        first_name:
          type: string
          example: Juan
          description: >-
            Optional first name. In v2 it is not used to build the account
            holder name; destination_holder is used.
        last_name:
          type: string
          example: Perez
          description: >-
            Optional last name. In v2 it is not used to build the account holder
            name; destination_holder is used.
        document_type:
          type: string
          enum:
            - national_id
            - tax_id
            - passport
            - foreign_id
          example: national_id
          description: Account holder document type.
        destination_id_number:
          type: string
          example: '1234567'
          description: Account holder document number. Digits only.
          minLength: 5
          maxLength: 20
          pattern: ^\d+$
        currency_type:
          type: string
          enum:
            - BOB
            - USD
          example: BOB
          description: Transaction fiat currency.
      required:
        - amount
        - bank_code
        - description
        - destination_account
        - destination_holder
        - destination_id_number
        - currency_type
    TransactionItemResponseDoc:
      type: object
      properties:
        transaction_id:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440002
          description: Related transaction identifier.
        status:
          type: string
          example: pending_transaction
          description: Transaction status.
        message:
          type: string
          example: Transaction created
          description: Status description.
      required:
        - transaction_id
        - status
        - message
    ValidationErrorPathV3Doc:
      type: object
      properties:
        path:
          example:
            - transaction
            - bank_code
          description: Path of the rejected field within the request.
          type: array
          items:
            type: string
        message:
          type: string
          example: The value was rejected by the payment provider.
          description: Reason the field was rejected.
      required:
        - path
        - message
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT obtained from /v2/auth/login or /v3/auth/login

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.