openapi: 3.0.1 info: title: Paystack Customers API description: Create, list, and manage customer profiles on your integration. Whitelist or blacklist customers, deactivate authorizations, and validate customers with KYC data. version: 1.0.0 contact: name: Paystack Support url: https://support.paystack.com email: support@paystack.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: https://api.paystack.co description: Base API endpoint tags: - name: Customer paths: /customer: post: tags: - Customer summary: Create Customer operationId: customer_create requestBody: content: application/x-www-form-urlencoded: schema: allOf: - $ref: '#/components/schemas/Customer/allOf/0' - $ref: '#/components/schemas/Customer/allOf/1' application/json: schema: allOf: - $ref: '#/components/schemas/Customer/allOf/0' - $ref: '#/components/schemas/Customer/allOf/1' responses: '201': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error get: tags: - Customer summary: List Customers operationId: customer_list description: List customers on your integration parameters: - name: use_cursor in: query schema: type: boolean - name: next in: query schema: type: string - name: previous in: query schema: type: string - name: from in: query schema: type: string - name: to in: query schema: type: string - name: perPage in: query schema: type: string - name: page in: query schema: type: string responses: '200': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' '404': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error /customer/{code}: get: tags: - Customer summary: Fetch Customer operationId: customer_fetch responses: '200': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' '404': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error put: tags: - Customer summary: Update Customer operationId: customer_update requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Customer/allOf/1' application/json: schema: $ref: '#/components/schemas/Customer/allOf/1' responses: '200': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' '404': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error parameters: - name: code in: path required: true schema: type: string /customer/set_risk_action: post: tags: - Customer summary: White/blacklist Customer description: Set customer's risk action by whitelisting or blacklisting the customer operationId: customer_riskAction requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Customer/allOf/3' application/json: schema: $ref: '#/components/schemas/Customer/allOf/3' responses: '201': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error /customer/deactivate_authorization: post: tags: - Customer summary: Deactivate Authorization operationId: customer_deactivateAuthorization description: Deactivate a customer's card requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Customer/allOf/2' application/json: schema: $ref: '#/components/schemas/Customer/allOf/2' responses: '201': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error /customer/{code}/identification: post: tags: - Customer summary: Validate Customer operationId: customer_validatte description: Validate a customer's identity requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Customer/allOf/4' application/json: schema: $ref: '#/components/schemas/Customer/allOf/4' responses: '201': $ref: '#/paths/~1plan/get/responses/200' '401': $ref: '#/paths/~1plan/get/responses/401' default: description: Server error components: securitySchemes: bearerAuth: type: http scheme: bearer schemas: Customer: allOf: - type: object required: - email properties: email: description: Customer's email address type: string - type: object properties: first_name: description: Customer's first name type: string last_name: description: Customer's last name type: string phone: description: Customer's phone number type: string metadata: description: Stringified JSON object of custom data type: string - type: object required: - authorization_code properties: authorization_code: description: Customer's authorization code to be deactivated type: string - type: object required: - customer properties: customer: description: Customer's code, or email address type: string risk_action: description: "One of the possible risk actions [ default, allow, deny ]. allow to whitelist. \ndeny to blacklist.\ \ Customers start with a default risk action.\n" type: string enum: - default - allow - deny - type: object required: - type - country - bvn - bank_code - account_number properties: type: description: Predefined types of identification. type: string enum: - bvn - bank_account country: description: Two-letter country code of identification issuer type: string bvn: description: Customer's Bank Verification Number type: string bank_code: description: You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). type: string account_number: description: Customer's bank account number. type: string value: description: Customer's identification number. Required if type is bvn type: string Error: type: object properties: status: type: boolean message: type: string Response: type: object properties: status: type: boolean message: type: string data: type: object security: - bearerAuth: []