public.customers

Submit Tier 1 Verification

Submits BVN and a selfie image reference for Tier 1 verification. phone_number is optional unless bank_account is included; when bank details are submitted, phone_number is required and accepts Nigerian national or +234 format so Daya can send it to Paystack. Get the supported bank code from GET /v1/banks and verify the account with POST /v1/banks/resolve before submitting it. Tier 1 remains complete after a successful BVN check even if the additional Paystack funding-account option cannot be enabled. The selfie may be sent as an HTTPS URL or a base64 data URL.

post/v1/customers/{id}/tier1-verification

Path parameters

idstring required

Customer ID (UUID format)

Request body

bvnstring required
image_urlstring required

ImageURL supports either an HTTPS URL or a base64 data URL up to 1 MiB decoded, such as data:image/jpeg;base64,...

phone_numberstring

Example request

{
  "bank_account": {
    "account_number": "0123456789",
    "bank_code": "058"
  },
  "bvn": "22345678901",
  "image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
  "phone_number": "+2348012345678"
}

Response

OK

created_atstring
emailstring
first_namestring
idstring
is_verifiedboolean
last_namestring
rejection_reasonsstring[]

RejectionReasons contains the current blocking verification/capability issues. It is empty after approval.

tier_1_kyc_completeboolean
tier_2_kyc_completeboolean
updated_atstring

Example response

{
  "capabilities": [
    {
      "name": "base",
      "status": "approved"
    }
  ],
  "created_at": "2025-01-05T15:04:05Z",
  "email": "customer@example.com",
  "first_name": "John",
  "id": "650e8400-e29b-41d4-a716-446655440000",
  "last_name": "Doe",
  "paystack_funding_account_readiness": {
    "account_number_last4": "6789",
    "bank_code": "058",
    "status": "READY",
    "updated_at": "2026-08-10T12:00:00Z"
  },
  "updated_at": "2025-01-05T15:04:05Z"
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.