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

# Update a virtual account

> Update a virtual account



## OpenAPI

````yaml Flutterwave_v4_Open_API.json put /virtual-accounts/{id}
openapi: 3.1.0
info:
  version: '1.0'
  title: Flutterwave APIs
  description: APIs for Enterprise Customers
  contact:
    name: Flutterwave
    email: hi@flutterwavego.com
servers:
  - url: https://developersandbox-api.flutterwave.com
    description: Dev server
security:
  - bearerAuth: []
paths:
  /virtual-accounts/{id}:
    put:
      tags:
        - Virtual-Accounts
      summary: Update a virtual account
      description: Update a virtual account
      operationId: virtual_accounts_put
      parameters:
        - $ref: '#/components/parameters/trace_id'
        - $ref: '#/components/parameters/scenario_key'
        - in: path
          required: true
          name: id
          schema:
            description: ID of the virtual account.
            type: string
            example: va_EFAHCzELJb
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/virtual_account_update_in'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    $ref: '#/components/schemas/status'
                  message:
                    type: string
                  data:
                    $ref: '#/components/schemas/virtual_account'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: Unauthorised request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
components:
  parameters:
    trace_id:
      description: >-
        A unique identifier to track this operation. It must be between 12 and
        255 characters in length.
      in: header
      name: X-Trace-Id
      schema:
        type: string
        minLength: 12
        maxLength: 255
      example: acb123e4-f567-4a8b-9c0d-1e2f3a4b5c6d
    scenario_key:
      in: header
      name: X-Scenario-Key
      schema:
        type: string
        minimum: 1
        maximum: 1000
      description: >-
        An optional scenario key that can be used to simulate specific behaviors
        or test different scenarios within the API. Providing this header allows
        you to trigger predefined responses or alter data based on the key's
        value, which can be useful for testing, development, or demonstrating
        specific functionalities. The key should be a string of 1 to 1000
        characters.
      example: scenario:auth_redirect
  schemas:
    '400':
      description: Bad Request
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        error:
          type: object
          properties:
            type:
              type: string
              example: REQUEST_NOT_VALID
            code:
              type: string
              example: '10400'
            message:
              type: string
              nullable: true
              example: Request is not valid
            validation_errors:
              type: array
              items:
                type: object
                properties:
                  field_name:
                    type: string
                    example: amount
                  message:
                    type: string
                    example: must not be null
          description: >-
            The request cannot be accepted and is malformed and/or missing
            required parameters.
    '401':
      description: Unauthorized
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          nullable: true
          description: Invalid API key provided
          example: UNAUTHORIZED
        error:
          type: object
          properties:
            type:
              type: string
              example: UNAUTHORIZED
            code:
              type: string
              example: '10401'
            message:
              type: string
              example: unauthorized
    '403':
      description: Forbidden
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          description: API key doesn't have permission to access this resource
        error:
          type: object
          properties:
            type:
              type: string
              example: FORBIDDEN
            code:
              type: string
              example: '10403'
            message:
              type: string
              example: Forbidden
    virtual_account_update_in:
      type: object
      required:
        - action_type
      properties:
        action_type:
          type: string
          description: The supported virtual account update actions.
          example: update_bvn
          enum:
            - update_bvn
            - update_status
        status:
          type: string
          description: The status of the virtual account.
          example: inactive
          enum:
            - inactive
        bvn:
          type: string
          description: This is the customer's Bank Verification Number.
          pattern: ^[1-9][0-9]{10}$
          x-pattern-message: bvn must be exactly 11 characters long and a signed integer
          example: '12345678912'
        meta:
          $ref: '#/components/schemas/meta'
    status:
      type: string
      nullable: false
      enum:
        - success
        - failed
    virtual_account:
      type: object
      properties:
        id:
          type: string
          description: The virtual account ID.
          example: ''
        amount:
          type: number
          description: The amount to be collected. Specify `0` for static accounts.
          example: 1000
          format: decimal
        account_number:
          type: string
          description: The bank account number.
          example: '7824822527'
        reference:
          type: string
          description: >-
            A custom identifier to track the transaction, This must be unique
            across all your transactions.
          example: htuy68787hvhyff454
        account_bank_name:
          type: string
          description: The name of the bank.
          example: WEMA BANK
        account_type:
          $ref: '#/components/schemas/pwbt_type'
        status:
          $ref: '#/components/schemas/virtual_account_status'
        account_expiration_datetime:
          type: string,
          format: date-time
          description: The expiry date and time of the virtual account.
          example: '2025-12-03T13:54:21.546559974Z'
        note:
          type: string
          description: >-
            A message providing instructions for the bank transfer, which
            includes the narration provided in the request.
          example: Please make a bank transfer to James Burgers
        customer_id:
          type: string
          description: The ID of the customer.
          example: cus_J0PvwvJB2n
        created_datetime:
          type: string
          format: date-time
          description: The date and time when the virtual account was created..
          example: '2024-12-03T13:54:21.546559974Z'
        meta:
          $ref: '#/components/schemas/meta'
        customer_reference:
          type: string
          description: >-
            This is the reference the customer sends as narration when making
            the bank transfer
          example: AEGP2345
        currency:
          type: string
          description: ISO 4217 currency code.
          example: NGN
    meta:
      type: object
      additionalProperties:
        type: string
    pwbt_type:
      type: string
      description: The type of virtual account.
      example: static
      enum:
        - static
        - dynamic
    virtual_account_status:
      type: string
      description: The status of the virtual account.
      enum:
        - active
        - inactive
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````