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

# Payout Virtual Account

> Initiate a payout from a virtual account to transfer collected funds to a recipient bank account. This endpoint allows you to settle all collections from virtual accounts you have created.

Initiate a payout from a virtual account to transfer collected funds to a recipient bank account. This endpoint allows you to settle all collections from virtual accounts you have created.

## Overview

This endpoint enables you to transfer funds collected in your virtual accounts to any bank account. It's used when you want to payout all the collections from the virtual accounts you have created. The payout will be processed and you'll receive a transaction reference and estimated time of arrival (ETA).

<Tip>
  This endpoint is useful for settling collections from virtual accounts into your main business account or any designated recipient account.
</Tip>

## Request Body

<ParamField body="amount" type="number" required>
  The amount to payout in the account currency
</ParamField>

<ParamField body="recipient_name" type="string" required>
  Name of the recipient account holder
</ParamField>

<ParamField body="recipient_account_number" type="string" required>
  Bank account number of the recipient
</ParamField>

<ParamField body="recipient_bank_name" type="string" required>
  Name of the recipient's bank
</ParamField>

<ParamField body="recipient_bank_code" type="string" required>
  Bank code of the recipient's bank
</ParamField>

<ParamField body="description" type="string">
  Description or note for the payout transaction
</ParamField>

<ParamField body="totp" type="string">
  Time-based One-Time Password for additional security (if required)
</ParamField>

<ParamField body="is_initiation" type="boolean">
  Whether this is an initiation request
</ParamField>

<ParamField body="is_api_request" type="boolean">
  Whether this is an API request
</ParamField>

## Response

<ResponseField name="success" type="boolean">
  Indicates whether the payout request was processed successfully
</ResponseField>

<ResponseField name="message" type="string">
  Response message describing the result
</ResponseField>

<ResponseField name="stan" type="string">
  System Trace Audit Number (UUID) for tracking the transaction
</ResponseField>

<ResponseField name="data" type="object">
  Payout transaction details including:

  * `reference`: Unique transaction reference for the payout (e.g., "WDL-d9c19654")
  * `eta`: Estimated time of arrival for the payout completion (ISO 8601 format)
  * `account_number`: Recipient account number
  * `account_name`: Recipient account name
  * `bank_name`: Recipient bank name
  * `currency`: Currency code of the payout
</ResponseField>


## OpenAPI

````yaml POST /accounts/virtual-accounts/payout
openapi: 3.0.0
info:
  title: Pooler Developer API
  description: >-
    Comprehensive API documentation for Pooler payment and financial services
    platform
  version: 1.0.0
servers:
  - url: https://api.usepooler.com
    description: Production server
  - url: https://sandbox.usepooler.com
    description: Sandbox server
security:
  - bearerAuth: []
paths:
  /accounts/virtual-accounts/payout:
    post:
      tags:
        - Accounts
      summary: Payout Virtual Account
      description: >-
        Initiate a payout from a virtual account to transfer collected funds to
        a recipient bank account. This endpoint allows you to settle all
        collections from virtual accounts you have created.
      operationId: payoutVirtualAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutVirtualAccountRequest'
      responses:
        '200':
          description: Payout initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutVirtualAccountResponse'
components:
  schemas:
    PayoutVirtualAccountRequest:
      type: object
      required:
        - amount
        - recipient_name
        - recipient_account_number
        - recipient_bank_name
        - recipient_bank_code
      properties:
        amount:
          type: number
          description: The amount to payout in the account currency
        recipient_name:
          type: string
          description: Name of the recipient account holder
        recipient_account_number:
          type: string
          description: Bank account number of the recipient
        recipient_bank_name:
          type: string
          description: Name of the recipient's bank
        recipient_bank_code:
          type: string
          description: Bank code of the recipient's bank
        description:
          type: string
          description: Description or note for the payout transaction
        totp:
          type: string
          description: Time-based One-Time Password for additional security (if required)
        is_initiation:
          type: boolean
          description: Whether this is an initiation request
        is_api_request:
          type: boolean
          description: Whether this is an API request
    PayoutVirtualAccountResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        stan:
          type: string
          format: uuid
        data:
          $ref: '#/components/schemas/PayoutVirtualAccountData'
    PayoutVirtualAccountData:
      type: object
      properties:
        reference:
          type: string
          description: Unique transaction reference for the payout
        eta:
          type: string
          format: date-time
          description: Estimated time of arrival for the payout completion
        account_number:
          type: string
          description: Recipient account number
        account_name:
          type: string
          description: Recipient account name
        bank_name:
          type: string
          description: Recipient bank name
        currency:
          type: string
          description: Currency code of the payout
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token authentication. Include your API key in the Authorization
        header as: Bearer {your_api_key}

````