Skip to main content
POST
Submit Tier 1 verification

Overview

Submit Tier 1 identity verification (BVN + selfie) for a customer. This is required before creating permanent NGN funding accounts. Include a verified customer bank account only if you want a Paystack funding-account instruction. When you include bank_account, you must also include phone_number Flutterwave does not require either field. Tier 1 KYC is complete once the BVN check succeeds.

Authentication

string
required
Your merchant API key

Path Parameters

string
required
Customer ID (UUID)Example: 650e8400-e29b-41d4-a716-446655440000

Request Body

string
required
11-digit Bank Verification NumberExample: 22345678901
Must be exactly 11 digits. The BVN is validated against the national identity database.
string
Customer’s phone number. Required when bank_account is included; otherwise optional. Send the 11-digit national form or the +234 international form.Example: +2348012345678
string
required
Face image for identity matching. Accepts an HTTPS URL to a jpg/png image, or base64-encoded image data up to 1 MiB decoded.Example: https://example.com/selfie.jpg
For base64, include the data URI prefix: data:image/jpeg;base64,/9j/4AAQ.... The decoded payload must not exceed 1 MiB.
object
Optional NGN bank account belonging to the customer. This is not the funding account the customer will receive.
Before including bank_account, get the supported bank_code from GET /v1/banks and verify the account with POST /v1/banks/resolve. Then send the verified account_number and bank_code together. If the bank details are rejected after the BVN check succeeds, the customer remains Tier 1 verified. Correct the bank details with the Update Tier 1 bank account endpoint.

Request Examples

Response

Returns the updated customer object. See Get customer for the full field list. On success, tier_1_kyc_complete flips to true.

Success Response

Bank Account Verification Result

The result webhook includes customer_id, provider, status, and identity_version. Failed results also include failure_code and failure_message so you can tell the customer what needs to be corrected. See Bank Account Verification Events for complete payloads and retry-safe handling.

Error Responses

Next Steps

Create Funding Account

Create a permanent funding account for the verified customer

Update Tier 1 Bank Account

Add bank details for an already verified customer

Get Customer

Check the customer’s current verification status

Webhook Events

Handle Paystack bank account verification results