openapi: 3.1.0 info: title: Flutterwave Banks AccountResolution Customers API description: 'Flutterwave v4 reference data APIs for supported banks, bank branches, mobile networks, and bank account name resolution. These endpoints are used to populate dropdowns and validate destination accounts before initiating payouts. ' version: 4.0.0 contact: name: Flutterwave url: https://developer.flutterwave.com email: developers@flutterwavego.com license: name: Flutterwave Terms of Service url: https://flutterwave.com/us/terms servers: - url: https://api.flutterwave.cloud/f4b/production description: Production - url: https://api.flutterwave.cloud/f4b/sandbox description: Sandbox security: - OAuth2: [] tags: - name: Customers description: Create and manage customers that own charges, orders, and transfers. paths: /customers: get: summary: List Customers description: Retrieve a paginated list of customers. operationId: listCustomers tags: - Customers parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/IdempotencyKey' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerList' 4XX: $ref: '#/components/responses/ErrorResponse' post: summary: Create A Customer description: Create a new customer record. operationId: createCustomer tags: - Customers parameters: - $ref: '#/components/parameters/IdempotencyKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' responses: '201': description: Customer Created content: application/json: schema: $ref: '#/components/schemas/Customer' 4XX: $ref: '#/components/responses/ErrorResponse' /customers/{id}: parameters: - $ref: '#/components/parameters/CustomerId' get: summary: Retrieve A Customer operationId: getCustomer tags: - Customers responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Customer' put: summary: Update A Customer operationId: updateCustomer tags: - Customers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' responses: '200': description: Customer Updated content: application/json: schema: $ref: '#/components/schemas/Customer' /customers/search: post: summary: Search Customers operationId: searchCustomers tags: - Customers requestBody: required: true content: application/json: schema: type: object properties: email: type: string format: email phone_number: type: string responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerList' components: parameters: Limit: in: query name: limit schema: type: integer minimum: 1 maximum: 100 default: 25 Page: in: query name: page schema: type: integer minimum: 1 default: 1 IdempotencyKey: in: header name: X-Idempotency-Key required: false description: UUID-style key used to safely retry POST requests. schema: type: string format: uuid CustomerId: in: path name: id required: true schema: type: string responses: ErrorResponse: description: Error content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Customer: type: object properties: id: type: string email: type: string format: email name: type: object properties: first: type: string middle: type: string last: type: string phone: type: object properties: country_code: type: string number: type: string address: type: object meta: type: object created_datetime: type: string format: date-time CustomerRequest: type: object required: - email properties: email: type: string format: email name: type: object phone: type: object address: type: object meta: type: object CustomerList: type: object properties: status: type: string data: type: array items: $ref: '#/components/schemas/Customer' meta: type: object Error: type: object properties: status: type: string error: type: object properties: type: type: string code: type: string message: type: string securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://idp.flutterwave.com/realms/flutterwave/protocol/openid-connect/token scopes: {}