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

# Revoke Virtual Account

> This endpoint revokes a virtual bank account that was issued after successful OTP verification but before the customer completes the payment transfer.

Use this endpoint if:
- The transaction status is pending (OTP verified, virtual account issued)
- The customer has not yet transferred funds to the virtual account
- You need to cancel the transaction and invalidate the virtual account

Once revoked:
- The virtual account will no longer accept incoming transfers
- The transaction will be cancelled

Important notes:
- After revocation, the transaction status will automatically update to failed
- A webhook notification will be sent to your configured endpoint confirming the status change



## OpenAPI

````yaml /api/openapi/v2-reference.yaml delete /v2/payins/bank/virtual_account
openapi: 3.0.2
info:
  title: Multi-currency Payment APIs
  description: >-
    ## Introduction

    The Multi-currency Payment API Solution provides developers with a unified
    API schema to support multiple currencies efficiently. These APIs enable
    seamless transactions for both payin and payout operations, ensuring a
    robust, reliable, and scalable payment infrastructure for businesses dealing
    with various currencies.

    ### Key Features

    - **Single API Schema**: A single schema supports all currencies in your
    account, simplifying integration and management.

    - **Payin and Payout Process**:
      - **Step 1**: Call the **Get payin method list** to retrieve the list of supported methods.
      - **Step 2**: Call the **Get payin required fields** to get specific required fields for each method.
      - **Step 3**: Create the payment using the method and required fields from the previous step.
      - **Step 4**: On the sandbox environment, you can call the **Simulate payin** to simulate the payment.

    <div class="gst-note-red">
      Please note: GST should only be set to <code>true</code> for AU Merchants for <b>AUD</b> currency only. For all other currencies, set GST to <code>false</code>.
    </div>

    This documentation provides detailed guidance for integrating these
    capabilities into your application.
  version: 2.0.0
  termsOfService: https://helloclever.co/terms
  contact:
    email: support@helloclever.co
servers:
  - url: https://api.cleverhub.co/api
    description: Sandbox Environment
  - url: https://api-merchant.helloclever.co/api
    description: Production Environment
security:
  - app-id: []
    secret-key: []
paths:
  /v2/payins/bank/virtual_account:
    delete:
      tags:
        - VA Bank Transfer
      summary: Revoke Virtual Account
      description: >-
        This endpoint revokes a virtual bank account that was issued after
        successful OTP verification but before the customer completes the
        payment transfer.


        Use this endpoint if:

        - The transaction status is pending (OTP verified, virtual account
        issued)

        - The customer has not yet transferred funds to the virtual account

        - You need to cancel the transaction and invalidate the virtual account


        Once revoked:

        - The virtual account will no longer accept incoming transfers

        - The transaction will be cancelled


        Important notes:

        - After revocation, the transaction status will automatically update to
        failed

        - A webhook notification will be sent to your configured endpoint
        confirming the status change
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - virtual_account_number
                - virtual_bank_code
              properties:
                virtual_account_number:
                  type: string
                  description: Virtual account number
                virtual_bank_code:
                  type: string
                  description: Bank code of the virtual account
              example:
                virtual_account_number: '1234567890242'
                virtual_bank_code: '035'
      responses:
        '200':
          description: Revoke virtual account successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
              example:
                status: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
              example:
                errors:
                  code: REQUIRE_LOGIN
                  message: Not Authorised
components:
  securitySchemes:
    app-id:
      type: apiKey
      in: header
      name: app-id
      description: |
        A unique identifier assigned to each application.
    secret-key:
      type: apiKey
      in: header
      name: secret-key
      description: |
        A secure token associated with the `app-id`.

````

## Related topics

- [Managing Balances and Accounts](/portal/balances.md)
- [Handle Multi-Currency Payins and Payouts](/developer-reference/api-use-cases/handle-multi-currency-payins-and-payouts.md)
- [Authorising OTP transaction](/api/va-bank-transfer/authorising-otp-transaction.md)
