> ## 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.

# Create Corporate Virtual Account

> Create a new corporate virtual account for receiving payments. Virtual accounts can be used to collect payments from customers.

Create a new virtual account for receiving payments. Virtual accounts can be used to collect payments from customers and are automatically generated with unique account numbers.

## Overview

Virtual accounts are bank accounts that are created on-demand for receiving payments. Each virtual account has a unique account number that customers can send payments to. Funds received in virtual accounts are automatically credited to your main Pooler account.

## Request Body

<ParamField body="account_type" type="string" required>
  Type of account holder: "business"
</ParamField>

<ParamField body="business_name" type="string" required>
  Business name (required for corporate accounts)
</ParamField>

<ParamField body="display_name" type="string">
  Display name for the account
</ParamField>

<ParamField body="rc_number" type="string" required>
  Business RC Number
</ParamField>

<ParamField body="corporate_account_type" type="string" required>
  Type of Business: "company", "business", "incorporated\_trustees", "limited\_partnersip", or "limited\_liability\_partnership"
</ParamField>

<ParamField body="email" type="string" required>
  Email address of the account holder
</ParamField>

<ParamField body="bvn" type="string" required>
  Bank Verification Number (required for Nigerian accounts)
</ParamField>

<ParamField body="mobile_number" type="string" required>
  Mobile phone number
</ParamField>

<ParamField body="metadata" type="object">
  Additional metadata object that can include:

  * `business_reg_number`: Business registration number
  * `country`: Country code
  * `use_case`: Use case description
  * `reference`: Custom reference
</ParamField>

## Response

<ResponseField name="data" type="object">
  Virtual account details including:

  * `message`: Virtual account creation message
  * `reference`: Reference tied to the virtual account
  * `status`: The status of the virtual account. The status will always be pending. Webhook event will be sent to you with the final status of the virtual account
  * `account_type`: The type of account you are trying to create. Business
</ResponseField>

<Note>
  The account number is unique and can be shared with customers for receiving payments. All payments to this account will be automatically credited to your Pooler account.
</Note>


## OpenAPI

````yaml POST /accounts/corporate-virtual-accounts
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/corporate-virtual-accounts:
    post:
      tags:
        - Accounts
      summary: Create Corporate Virtual Account
      description: >-
        Create a new corporate virtual account for receiving payments. Virtual
        accounts can be used to collect payments from customers.
      operationId: createVirtualAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCorporateVirtualAccountRequest'
      responses:
        '202':
          description: Virtual account created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporateVirtualAccountResponse'
components:
  schemas:
    CreateCorporateVirtualAccountRequest:
      type: object
      required:
        - account_type
        - email
        - business_name
        - rc_number
        - corporate_account_type
        - mobile_number
        - bvn
      properties:
        account_type:
          type: string
          enum:
            - business
          description: Type of account holder
        business_name:
          type: string
          description: Business name (for corporate accounts)
        display_name:
          type: string
          description: Display name for the account
        rc_number:
          type: string
          description: RC Number of the business
        corporate_account_type:
          type: string
          enum:
            - company
            - business
            - incorporated_trustees
            - limited_partnersip
            - limited_liability_partnership
        email:
          type: string
          format: email
          description: Email address
        bvn:
          type: string
          description: Bank Verification Number (for Nigerian accounts)
        mobile_number:
          type: string
          description: Mobile phone number
        metadata:
          type: object
          description: Additional metadata
    CorporateVirtualAccountResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        stan:
          type: string
          format: uuid
        data:
          $ref: '#/components/schemas/CorporateVirtualAccount'
    CorporateVirtualAccount:
      type: object
      properties:
        message:
          type: string
        reference:
          type: string
        status:
          type: string
        account_type:
          type: string
  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}

````