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

# About KYC profiles

> Learn how to retrieve the verified identity-document details Equals captured during onboarding.

## How it works

The KYC profile endpoints let you retrieve the verified identity-document details that Equals captured when a customer completed Guided identity verification (Guided ID) during [onboarding](/pages/accounts/about-onboarding). There are two endpoints: one for a personal application, and one for an individual associated person — a director, ultimate beneficial owner (UBO), or applicant — on a business application.

Results are always scoped to your own product. You can only retrieve KYC data for applications and people that belong to you.

<Info>
  This feature is controlled per product and is **off by default**. To request access, contact your account manager. Calls from a product without it enabled return a `403`.
</Info>

## Prerequisites

Before you can retrieve a KYC profile:

* **The feature must be enabled for your product.** It's off by default — contact your account manager if you're unsure whether you have access.
* **The application must be approved** and the customer must have **completed identity verification**. Until then, the profile is empty.

## What you get

Each endpoint returns a `kycProfile` array of verified identity documents. For each document you receive its type (passport, driving licence, and so on), the document number, the expiry and issue dates, and the issuing country — plus a top-level `verifiedAt` timestamp telling you when the identity was verified.

The KYC profile record has the following shape, shared by both endpoints:

| Field           | Type                        | Description                                                                                                                  |
| --------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `idType`        | enum                        | Type of identity document captured. One of `PASSPORT`, `ID_CARD`, `RESIDENCE_PERMIT`, `DRIVERS_LICENSE`, `VISA`, or `OTHER`. |
| `idNumber`      | string                      | The number printed on the identity document.                                                                                 |
| `expiryDate`    | string (ISO 8601 date)      | The document's expiry date, for example `2030-06-15`.                                                                        |
| `issueDate`     | string (ISO 8601 date)      | The document's issue date, where captured.                                                                                   |
| `issuerCountry` | string (ISO 3166-1 alpha-2) | Country of issuance as a two-letter code, where captured, for example `GB`.                                                  |

<Info>
  Some fields can be `null` where Equals did not capture that value. For the complete field-level definitions, see the API reference for the [application](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-application) and [associated person](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-associated-person) endpoints.
</Info>

## Personal vs business applications

Which endpoint you call depends on the application type:

* For a **personal** application, the identity document belongs to the applicant. Use the [**application** endpoint](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-application).
* For a **business** application, identity documents belong to the **associated people** (directors, UBOs, and the applicant). Use the [**associated person** endpoint](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-associated-person), once per person.

## Retrieving a KYC profile

1. **For a personal application**, call [`GET /v2/applications/{applicationId}/kyc-profile`](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-application) with the application's ID.
2. **For a business application**, first [list the associated people](/api-reference/onboarding/list-associated-people) with `GET /v2/applications/associated-people`, then call [`GET /v2/applications/associated-people/{associatedPersonId}/kyc-profile`](/api-reference/onboarding/retrieve-verified-kyc-profile-for-an-associated-person) for each person whose verified data you need.
3. **Read the verified document details** from the `kycProfile` array in the response.

### Example: personal application

```bash theme={null}
curl -i -X GET \
  'https://api.equalsmoney.com/v2/applications/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/kyc-profile' \
  -H 'Authorization: ApiKey YOUR_API_KEY_HERE'
```

```json theme={null}
{
  "applicationId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
  "kycProfile": [
    {
      "idType": "PASSPORT",
      "idNumber": "123456789",
      "expiryDate": "2030-06-15",
      "issueDate": "2020-06-15",
      "issuerCountry": "GB"
    }
  ],
  "verifiedAt": "2026-04-01T10:30:00.000Z"
}
```

### Example: associated person

```bash theme={null}
curl -i -X GET \
  'https://api.equalsmoney.com/v2/applications/associated-people/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/kyc-profile' \
  -H 'Authorization: ApiKey YOUR_API_KEY_HERE'
```

```json theme={null}
{
  "associatedPersonId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
  "kycProfile": [
    {
      "idType": "DRIVERS_LICENSE",
      "idNumber": "123456789",
      "expiryDate": "2030-06-15",
      "issueDate": "2020-06-15",
      "issuerCountry": "GB"
    }
  ],
  "verifiedAt": "2026-04-01T10:30:00.000Z"
}
```

## Things to know

* `kycProfile` is an **array**. It usually contains a single document, but model it as a list.
* An **empty array** (`[]`) with `verifiedAt: null` means no verified document data is available yet — for example, the customer hasn't finished verification, or the KYC model in use didn't capture a document. This is a `200`, not an error.
* Some fields can be `null` where Equals didn't capture that value.
* You can only access applications and people **belonging to your own product**. Anything else returns a `404`.

## Errors

| Status             | When it happens                                                                          | Message                                                 |
| ------------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `401 Unauthorized` | The authorisation type used is not supported for this endpoint.                          | `Unsupported authorisation type`                        |
| `403 Forbidden`    | KYC data sharing is not enabled for your product.                                        | `KYC data sharing is not enabled for this product`      |
| `404 Not Found`    | The application or associated person does not exist, or does not belong to your product. | `Application not found` / `Associated person not found` |

## Next steps

* [**About onboarding**](/pages/accounts/about-onboarding) — How accounts are created and verified
* [**Track Guided ID status**](/pages/accounts/track-guided-id-status) — Get notified or fetch the status of Guided ID
* [**Onboarding webhooks**](/pages/accounts/tutorial/onboarding-webhooks) — Track an application through to approval
