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

# Identity Verification (KYC)

> Verify a customer with a government-issued ID

`GET /virtual-accounts/requirements?currency=` lists what is required for that currency. NGN needs a verified BVN (`required`). USD needs one government ID in `any_of` (passport, national identity, or driver license).

`POST /customers/:id/documents` to submit KYC documents for a customer.

Passport and driver license require `id_front` (image). BVN and Nigerian NIN are number-only.

`GET /customers/:id/documents` returns submitted documents with a masked ID number, type, and verification date.

## Submit documents

```bash theme={"theme":{"light":"min-light","dark":"poimandres"}}
curl -X POST https://api.puplar.com/customers/64f1a2b3c4d5e6f7a8b9c0d1/documents \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "documents": [
      { "id_type": "bvn", "id_number": "22123456789" },
      {
        "id_type": "passport",
        "id_number": "A12345678",
        "id_front": "<base64 JPEG or PNG>",
        "country": "US"
      }
    ]
  }'
```

### Test example (BVN)

```bash theme={"theme":{"light":"min-light","dark":"poimandres"}}
curl -X POST https://api.puplar.com/customers/64f1a2b3c4d5e6f7a8b9c0d1/documents \
  -H "Authorization: Bearer sk_test_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "documents": [
      { "id_type": "bvn", "id_number": "22222222222" }
    ]
  }'
```

## List documents

```bash theme={"theme":{"light":"min-light","dark":"poimandres"}}
curl https://api.puplar.com/customers/64f1a2b3c4d5e6f7a8b9c0d1/documents \
  -H "Authorization: Bearer sk_live_your_key"
```
