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

# KYC

> Identity verification (KYC) endpoints for natural persons and legal entities: proposals, document upload, CPF validation, and status lookup.

The KYC endpoints handle identity verification for natural persons (individuals) and legal entities (companies). They require JWT token authentication.

<Info>
  In the SDK, these endpoints live under the `client.kyc` resource. See the [Method Reference](/en/sdks/method-reference).
</Info>

## Overview

| Method (SDK)      | Description                                    |
| ----------------- | ---------------------------------------------- |
| `naturalProposal` | Creates a KYC proposal for a natural person.   |
| `legalProposal`   | Creates a KYC proposal for a legal entity.     |
| `documentUrl`     | Gets the URL for document upload.              |
| `check`           | Looks up the verification status.              |
| `cpfValidate`     | Validates a CPF (Brazilian taxpayer ID).       |
| `userData`        | Returns the user data associated with the KYC. |

## Natural person proposal

Creates a KYC proposal for a natural person.

<ParamField header="Authorization" type="string" required>
  `Bearer <tokenJWT>`
</ParamField>

<RequestExample>
  ```ts SDK theme={null}
  const proposal = await client.kyc.naturalProposal({ /* natural person data */ });
  ```
</RequestExample>

## Legal entity proposal

Creates a KYC proposal for a legal entity.

<ParamField header="Authorization" type="string" required>
  `Bearer <tokenJWT>`
</ParamField>

<RequestExample>
  ```ts SDK theme={null}
  const proposal = await client.kyc.legalProposal({ /* legal entity data */ });
  ```
</RequestExample>

## Document upload URL

Returns the URL for uploading the verification documents.

<RequestExample>
  ```ts SDK theme={null}
  const { url } = await client.kyc.documentUrl({ /* parameters */ });
  ```
</RequestExample>

## Check status

Looks up the current status of the KYC verification.

<RequestExample>
  ```ts SDK theme={null}
  const status = await client.kyc.check();
  ```
</RequestExample>

## Validate CPF

Validates a given CPF.

<RequestExample>
  ```ts SDK theme={null}
  const result = await client.kyc.cpfValidate({ cpf: '000.000.000-00' });
  ```
</RequestExample>

## User data

Returns the user data associated with the KYC process.

<RequestExample>
  ```ts SDK theme={null}
  const data = await client.kyc.userData();
  ```
</RequestExample>

<Warning>
  Some payment flows require approved KYC. A `403` may indicate pending KYC. Check the limits per verification level on your account.
</Warning>
