Flutterwave · Capability

Flutterwave Payments API — Virtual Accounts

Flutterwave Virtual NUBAN issuance and lifecycle. 4 operations.

Flutterwave Payments API — Virtual Accounts is a Naftiko capability published by Flutterwave, one of 18 capabilities the APIs.io network indexes for this provider. It bundles 4 operations across the GET, POST, and PUT methods rooted at /v4/virtual-accounts.

The capability includes 2 read-only operations and 2 state-changing operations. Lead operation: Flutterwave List All Virtual Accounts. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Flutterwave, Payments, Virtual Accounts, and Bank Transfer.

Run with Naftiko FlutterwavePaymentsVirtual AccountsBank Transfer

What You Can Do

GET
Listvirtualaccounts — Flutterwave List All Virtual Accounts
/v4/virtual-accounts
POST
Createvirtualaccount — Flutterwave Create A Virtual Account
/v4/virtual-accounts
GET
Getvirtualaccount — Flutterwave Retrieve A Virtual Account
/v4/virtual-accounts/{id}
PUT
Updatevirtualaccount — Flutterwave Update A Virtual Account
/v4/virtual-accounts/{id}

MCP Tools

flutterwave-list-virtual-accounts

Flutterwave List All Virtual Accounts

read-only idempotent
flutterwave-create-virtual-account

Flutterwave Create A Virtual Account

flutterwave-get-virtual-account

Flutterwave Retrieve A Virtual Account

read-only idempotent
flutterwave-update-virtual-account

Flutterwave Update A Virtual Account

idempotent

Capability Spec

payments-virtual-accounts.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Flutterwave Payments API — Virtual Accounts
  description: Flutterwave Virtual NUBAN issuance and lifecycle. 4 operations.
  tags: [Flutterwave, Payments, Virtual Accounts, Bank Transfer]
  created: '2026-05-24'
  modified: '2026-05-24'
binds:
- namespace: env
  keys: { FLUTTERWAVE_ACCESS_TOKEN: FLUTTERWAVE_ACCESS_TOKEN }
capability:
  consumes:
  - type: http
    namespace: payments-virtual-accounts
    baseUri: https://api.flutterwave.cloud/f4b/production
    description: Flutterwave Virtual Accounts business capability.
    resources:
    - name: virtual-accounts
      path: /virtual-accounts
      operations:
      - { name: listvirtualaccounts, method: GET, description: Flutterwave List All Virtual Accounts, outputRawFormat: json,
          outputParameters: [{ name: result, type: object, value: $. }] }
      - name: createvirtualaccount
        method: POST
        description: Flutterwave Create A Virtual Account
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters: [{ name: body, in: body, type: object, required: true }]
    - name: virtual-accounts-id
      path: /virtual-accounts/{id}
      operations:
      - { name: getvirtualaccount, method: GET, description: Flutterwave Retrieve A Virtual Account, outputRawFormat: json,
          outputParameters: [{ name: result, type: object, value: $. }] }
      - name: updatevirtualaccount
        method: PUT
        description: Flutterwave Update A Virtual Account
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters: [{ name: body, in: body, type: object, required: true }]
    authentication: { type: bearer, value: '{{env.FLUTTERWAVE_ACCESS_TOKEN}}', placement: header }
  exposes:
  - type: rest
    namespace: payments-virtual-accounts-rest
    port: 8080
    description: REST adapter for Flutterwave Virtual Accounts.
    resources:
    - path: /v4/virtual-accounts
      name: virtual-accounts
      operations:
      - { method: GET, name: listvirtualaccounts, description: Flutterwave List All Virtual Accounts,
          call: payments-virtual-accounts.listvirtualaccounts, outputParameters: [{ type: object, mapping: $. }] }
      - method: POST
        name: createvirtualaccount
        description: Flutterwave Create A Virtual Account
        call: payments-virtual-accounts.createvirtualaccount
        with: { body: rest.body }
        outputParameters: [{ type: object, mapping: $. }]
    - path: /v4/virtual-accounts/{id}
      name: virtual-accounts-id
      operations:
      - { method: GET, name: getvirtualaccount, description: Flutterwave Retrieve A Virtual Account,
          call: payments-virtual-accounts.getvirtualaccount, outputParameters: [{ type: object, mapping: $. }] }
      - method: PUT
        name: updatevirtualaccount
        description: Flutterwave Update A Virtual Account
        call: payments-virtual-accounts.updatevirtualaccount
        with: { body: rest.body }
        outputParameters: [{ type: object, mapping: $. }]
  - type: mcp
    namespace: payments-virtual-accounts-mcp
    port: 9090
    transport: http
    description: MCP adapter for Flutterwave Virtual Accounts.
    tools:
    - { name: flutterwave-list-virtual-accounts, description: Flutterwave List All Virtual Accounts,
        hints: { readOnly: true, destructive: false, idempotent: true },
        call: payments-virtual-accounts.listvirtualaccounts, outputParameters: [{ type: object, mapping: $. }] }
    - name: flutterwave-create-virtual-account
      description: Flutterwave Create A Virtual Account
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: payments-virtual-accounts.createvirtualaccount
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - { name: flutterwave-get-virtual-account, description: Flutterwave Retrieve A Virtual Account,
        hints: { readOnly: true, destructive: false, idempotent: true },
        call: payments-virtual-accounts.getvirtualaccount, outputParameters: [{ type: object, mapping: $. }] }
    - name: flutterwave-update-virtual-account
      description: Flutterwave Update A Virtual Account
      hints: { readOnly: false, destructive: false, idempotent: true }
      call: payments-virtual-accounts.updatevirtualaccount
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]