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

# KYC history

> Get the full history of KYC verification attempts for the authenticated user.

<Note>
  Requires `Authorization: Bearer <user-access-token>` — the token from [Verify login code](/api-reference/users/verify-otp). No `X-Api-Key`/`X-Api-Secret` needed; this is a post-login endpoint.
</Note>

Returns all KYC verification attempts for the user in reverse chronological order. Useful for diagnosing repeated failures or showing the user a timeline of their verification attempts.

## Request

```http theme={null}
GET /api/v1/auth/kyc/history
Authorization: Bearer <user-access-token>
```

No body or query parameters.

## Response

**200 OK**

```json theme={null}
{
  "success": true,
  "data": {
    "total": 2,
    "history": [
      {
        "id": "verif_xyz789",
        "status": "approved",
        "verificationLevel": "identity",
        "riskLevel": "low",
        "riskScore": 12,
        "provider": "persona",
        "providerVerificationId": "inq_abc123xyz",
        "submittedAt": "2026-06-10T14:00:00.000Z",
        "reviewedAt": "2026-06-10T14:05:00.000Z",
        "approvedAt": "2026-06-10T14:05:00.000Z",
        "rejectionReasons": null,
        "complianceNotes": null,
        "createdAt": "2026-06-10T13:55:00.000Z"
      },
      {
        "id": "verif_abc123",
        "status": "failed",
        "verificationLevel": "identity",
        "riskLevel": null,
        "riskScore": null,
        "provider": "persona",
        "providerVerificationId": "inq_prev000",
        "submittedAt": "2026-06-08T09:00:00.000Z",
        "reviewedAt": "2026-06-08T09:10:00.000Z",
        "approvedAt": null,
        "rejectionReasons": ["document_expired"],
        "complianceNotes": null,
        "createdAt": "2026-06-08T08:55:00.000Z"
      }
    ]
  }
}
```

| Field                              | Type           | Description                                                    |
| ---------------------------------- | -------------- | -------------------------------------------------------------- |
| `total`                            | number         | Total number of attempts                                       |
| `history[].id`                     | string         | Internal verification record ID                                |
| `history[].status`                 | string         | `approved`, `failed`, `processing`, `manual_review`, `created` |
| `history[].verificationLevel`      | string         | Level of verification performed                                |
| `history[].riskLevel`              | string \| null | Risk classification from the provider                          |
| `history[].riskScore`              | number \| null | Numeric risk score                                             |
| `history[].provider`               | string         | Verification provider — e.g. `"persona"`                       |
| `history[].providerVerificationId` | string \| null | Inquiry ID from the provider                                   |
| `history[].submittedAt`            | string \| null | When the user submitted the verification                       |
| `history[].reviewedAt`             | string \| null | When the review was completed                                  |
| `history[].approvedAt`             | string \| null | When it was approved — `null` if not yet approved              |
| `history[].rejectionReasons`       | array \| null  | Reasons for rejection if status is `failed`                    |
| `history[].createdAt`              | string         | When the verification record was created                       |

## Errors

| HTTP status | Error                      | Cause                                       |
| ----------- | -------------------------- | ------------------------------------------- |
| `401`       | `Invalid or expired token` | Missing, expired, or malformed access token |
