naftiko: 1.0.0-alpha2 info: label: Flutterwave Transfers API — Transfers description: Flutterwave Transfers lifecycle (create, list, retrieve, update, retry, orchestrator). 6 operations. tags: [Flutterwave, Transfers, Payouts] created: '2026-05-24' modified: '2026-05-24' binds: - namespace: env keys: { FLUTTERWAVE_ACCESS_TOKEN: FLUTTERWAVE_ACCESS_TOKEN } capability: consumes: - type: http namespace: transfers-transfers baseUri: https://api.flutterwave.cloud/f4b/production description: Flutterwave Transfers business capability. resources: - name: transfers path: /transfers operations: - { name: listtransfers, method: GET, description: Flutterwave List Transfers, outputRawFormat: json, outputParameters: [{ name: result, type: object, value: $. }] } - name: createtransfer method: POST description: Flutterwave Create A Transfer outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: body, in: body, type: object, required: true }] - name: transfers-id path: /transfers/{id} operations: - { name: gettransfer, method: GET, description: Flutterwave Retrieve A Transfer, outputRawFormat: json, outputParameters: [{ name: result, type: object, value: $. }] } - name: updatetransfer method: PUT description: Flutterwave Update A Transfer outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: [{ name: body, in: body, type: object, required: true }] - name: transfers-id-retry path: /transfers/{id}/retry operations: - name: retrytransfer method: POST description: Flutterwave Retry Or Duplicate A Transfer outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] - name: direct-transfers path: /direct-transfers operations: - name: orchestratortransfer method: POST description: Flutterwave Initiate An Orchestrator Transfer 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: transfers-transfers-rest port: 8080 description: REST adapter for Flutterwave Transfers. resources: - path: /v4/transfers name: transfers operations: - { method: GET, name: listtransfers, description: Flutterwave List Transfers, call: transfers-transfers.listtransfers, outputParameters: [{ type: object, mapping: $. }] } - method: POST name: createtransfer description: Flutterwave Create A Transfer call: transfers-transfers.createtransfer with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - path: /v4/transfers/{id} name: transfers-id operations: - { method: GET, name: gettransfer, description: Flutterwave Retrieve A Transfer, call: transfers-transfers.gettransfer, outputParameters: [{ type: object, mapping: $. }] } - method: PUT name: updatetransfer description: Flutterwave Update A Transfer call: transfers-transfers.updatetransfer with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - path: /v4/transfers/{id}/retry name: transfers-id-retry operations: - method: POST name: retrytransfer description: Flutterwave Retry Or Duplicate A Transfer call: transfers-transfers.retrytransfer outputParameters: [{ type: object, mapping: $. }] - path: /v4/direct-transfers name: direct-transfers operations: - method: POST name: orchestratortransfer description: Flutterwave Initiate An Orchestrator Transfer call: transfers-transfers.orchestratortransfer with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - type: mcp namespace: transfers-transfers-mcp port: 9090 transport: http description: MCP adapter for Flutterwave Transfers. tools: - { name: flutterwave-list-transfers, description: Flutterwave List Transfers, hints: { readOnly: true, destructive: false, idempotent: true }, call: transfers-transfers.listtransfers, outputParameters: [{ type: object, mapping: $. }] } - name: flutterwave-create-transfer description: Flutterwave Create A Transfer hints: { readOnly: false, destructive: false, idempotent: false } call: transfers-transfers.createtransfer with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }] - { name: flutterwave-get-transfer, description: Flutterwave Retrieve A Transfer, hints: { readOnly: true, destructive: false, idempotent: true }, call: transfers-transfers.gettransfer, outputParameters: [{ type: object, mapping: $. }] } - name: flutterwave-update-transfer description: Flutterwave Update A Transfer hints: { readOnly: false, destructive: false, idempotent: true } call: transfers-transfers.updatetransfer with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }] - { name: flutterwave-retry-transfer, description: Flutterwave Retry Or Duplicate A Transfer, hints: { readOnly: false, destructive: false, idempotent: false }, call: transfers-transfers.retrytransfer, outputParameters: [{ type: object, mapping: $. }] } - name: flutterwave-orchestrator-transfer description: Flutterwave Initiate An Orchestrator Transfer hints: { readOnly: false, destructive: false, idempotent: false } call: transfers-transfers.orchestratortransfer with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }]