naftiko: 1.0.0-alpha2 info: label: Flutterwave Payments API — Customers description: 'Flutterwave Payments API — Customers. 5 operations. Lead operation: Flutterwave List Customers. Self-contained Naftiko capability covering one Flutterwave business surface.' tags: - Flutterwave - Payments - Customers created: '2026-05-24' modified: '2026-05-24' binds: - namespace: env keys: FLUTTERWAVE_ACCESS_TOKEN: FLUTTERWAVE_ACCESS_TOKEN capability: consumes: - type: http namespace: payments-customers baseUri: https://api.flutterwave.cloud/f4b/production description: Flutterwave Customers business capability. Self-contained, no shared references. resources: - name: customers path: /customers operations: - name: listcustomers method: GET description: Flutterwave List Customers outputRawFormat: json outputParameters: - { name: result, type: object, value: $. } - name: createcustomer method: POST description: Flutterwave Create A Customer outputRawFormat: json outputParameters: - { name: result, type: object, value: $. } inputParameters: - { name: body, in: body, type: object, description: 'Request body (JSON).', required: true } - name: customers-id path: /customers/{id} operations: - name: getcustomer method: GET description: Flutterwave Retrieve A Customer outputRawFormat: json outputParameters: - { name: result, type: object, value: $. } - name: updatecustomer method: PUT description: Flutterwave Update A Customer outputRawFormat: json outputParameters: - { name: result, type: object, value: $. } inputParameters: - { name: body, in: body, type: object, description: 'Request body (JSON).', required: true } - name: customers-search path: /customers/search operations: - name: searchcustomers method: POST description: Flutterwave Search Customers outputRawFormat: json outputParameters: - { name: result, type: object, value: $. } inputParameters: - { name: body, in: body, type: object, description: 'Request body (JSON).', required: true } authentication: type: bearer value: '{{env.FLUTTERWAVE_ACCESS_TOKEN}}' placement: header exposes: - type: rest namespace: payments-customers-rest port: 8080 description: REST adapter for Flutterwave Customers. One Spectral-compliant resource per consumed operation. resources: - path: /v4/customers name: customers description: REST surface for customers. operations: - method: GET name: listcustomers description: Flutterwave List Customers call: payments-customers.listcustomers outputParameters: - { type: object, mapping: $. } - method: POST name: createcustomer description: Flutterwave Create A Customer call: payments-customers.createcustomer with: body: rest.body outputParameters: - { type: object, mapping: $. } - path: /v4/customers/{id} name: customers-id description: REST surface for a single customer. operations: - method: GET name: getcustomer description: Flutterwave Retrieve A Customer call: payments-customers.getcustomer outputParameters: - { type: object, mapping: $. } - method: PUT name: updatecustomer description: Flutterwave Update A Customer call: payments-customers.updatecustomer with: body: rest.body outputParameters: - { type: object, mapping: $. } - path: /v4/customers/search name: customers-search description: REST surface for customer search. operations: - method: POST name: searchcustomers description: Flutterwave Search Customers call: payments-customers.searchcustomers with: body: rest.body outputParameters: - { type: object, mapping: $. } - type: mcp namespace: payments-customers-mcp port: 9090 transport: http description: MCP adapter for Flutterwave Customers. One tool per consumed operation. tools: - name: flutterwave-list-customers description: Flutterwave List Customers hints: { readOnly: true, destructive: false, idempotent: true } call: payments-customers.listcustomers outputParameters: - { type: object, mapping: $. } - name: flutterwave-create-customer description: Flutterwave Create A Customer hints: { readOnly: false, destructive: false, idempotent: false } call: payments-customers.createcustomer with: { body: tools.body } outputParameters: - { type: object, mapping: $. } - name: flutterwave-get-customer description: Flutterwave Retrieve A Customer hints: { readOnly: true, destructive: false, idempotent: true } call: payments-customers.getcustomer outputParameters: - { type: object, mapping: $. } - name: flutterwave-update-customer description: Flutterwave Update A Customer hints: { readOnly: false, destructive: false, idempotent: true } call: payments-customers.updatecustomer with: { body: tools.body } outputParameters: - { type: object, mapping: $. } - name: flutterwave-search-customers description: Flutterwave Search Customers hints: { readOnly: true, destructive: false, idempotent: true } call: payments-customers.searchcustomers with: { body: tools.body } outputParameters: - { type: object, mapping: $. }