> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daya.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Tier 1 verification

> Submit identity verification for a customer

## Overview

Submit Tier 1 identity verification (BVN + selfie) for a customer. This is required before creating permanent NGN funding accounts. The verification process matches the customer's selfie against their BVN record to confirm identity.

## Authentication

<ParamField header="X-Api-Key" type="string" required>
  Your merchant API key
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  Customer ID (UUID)

  **Example:** `650e8400-e29b-41d4-a716-446655440000`
</ParamField>

## Request Body

<ParamField body="bvn" type="string" required>
  11-digit Bank Verification Number

  **Example:** `22345678901`

  <Note>
    Must be exactly 11 digits. The BVN is validated against the national identity database.
  </Note>
</ParamField>

<ParamField body="image_url" type="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`

  <Note>
    For base64, include the data URI prefix: `data:image/jpeg;base64,/9j/4AAQ...`. The decoded payload must not exceed 1 MiB.
  </Note>
</ParamField>

## Request Examples

<CodeGroup>
  ```json JSON - URL Image theme={null}
  {
    "bvn": "22345678901",
    "image_url": "https://example.com/selfie.jpg"
  }
  ```

  ```json JSON - Base64 Image theme={null}
  {
    "bvn": "22345678901",
    "image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
  }
  ```

  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.daya.co/v1/customers/650e8400-e29b-41d4-a716-446655440000/tier1-verification \
    --header 'X-Api-Key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "bvn": "22345678901",
      "image_url": "https://example.com/selfie.jpg"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.daya.co/v1/customers/650e8400-e29b-41d4-a716-446655440000/tier1-verification',
    {
      method: 'POST',
      headers: {
        'X-Api-Key': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        bvn: '22345678901',
        image_url: 'https://example.com/selfie.jpg'
      })
    }
  );
  const result = await response.json();
  console.log(result);
  ```
</CodeGroup>

## Response

Returns the updated customer object. See [Get customer](/api-reference/customers/get-customer#response) for the full field list. On success, `tier_1_kyc_complete` flips to `true`.

### Success Response

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "650e8400-e29b-41d4-a716-446655440000",
    "email": "customer@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "is_verified": false,
    "tier_1_kyc_complete": true,
    "tier_2_kyc_complete": false,
    "capabilities": [
      { "name": "base", "status": "approved" }
    ],
    "rejection_reasons": [],
    "created_at": "2026-01-05T15:04:05Z",
    "updated_at": "2026-01-06T12:00:00Z"
  }
  ```
</ResponseExample>

## Error Responses

<ResponseExample>
  ```json 400 Bad Request - Validation failed theme={null}
  {
    "error": {
      "code": "VALIDATION_FAILED",
      "message": "Validation failed",
      "request_id": "550e8400-e29b-41d4-a716-446655440000",
      "validation": "bvn must be exactly 11 digits"
    }
  }
  ```

  ```json 400 Bad Request - BVN verification failed theme={null}
  {
    "error": {
      "code": "BVN_VERIFICATION_FAILED",
      "message": "BVN verification failed",
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }
  ```

  ```json 400 Bad Request - Face mismatch theme={null}
  {
    "error": {
      "code": "FACE_MISMATCH",
      "message": "Face verification failed: selfie does not match BVN record",
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "error": {
      "code": "NOT_FOUND",
      "message": "Customer not found",
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }
  ```

  ```json 502 Bad Gateway - Provider unavailable theme={null}
  {
    "error": {
      "code": "INTEGRATION_FAILED",
      "message": "Verification provider unavailable, please try again",
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }
  ```
</ResponseExample>

## Next Steps

<CardGroup cols={2}>
  <Card title="Create Funding Account" icon="arrow-up-right-dots" href="/api-reference/funding-accounts/create-funding-account">
    Create a permanent funding account for the verified customer
  </Card>

  <Card title="Get Customer" icon="user" href="/api-reference/customers/get-customer">
    Check the customer's current verification status
  </Card>
</CardGroup>
