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: $. }]