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

# Submit KYC

> Submit user KYC data

## Body Parameters

<ParamField body="legalName" type="string" required>
  Full legal name (2–255 chars).
</ParamField>

<ParamField body="country" type="string" required>
  ISO 3166-1 **alpha-3** country code (e.g. `USA`, `GBR`, `IND`).
</ParamField>

<ParamField body="proofOfIdentity" type="object" required>
  `{ docType, number, issuingCountry }` or `{ docType, s3Key }`. `docType` is free text; `issuingCountry` is ISO alpha-3.
</ParamField>

<ParamField body="proofOfAddress" type="object">
  `{ line1, line2?, city, state?, postalCode, country }` or `{ s3Key }`.
</ParamField>

<ParamField body="dob" type="string">`YYYY-MM-DD`.</ParamField>
<ParamField body="gender" type="string">`male`, `female`, `other`.</ParamField>
<ParamField body="incomeRange" type="string">`below_5l`, `5l_to_10l`, `10l_to_25l`, `25l_to_50l`, `50l_to_1cr`, `above_1cr`.</ParamField>
<ParamField body="isPep" type="boolean">Politically Exposed Person. Optional; if `true`, KYC is rejected.</ParamField>

## Request

```bash theme={null}
curl -X POST https://api.stablepay.global/v2/users/usr_abc123/kyc/submit \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "legalName": "John Doe",
    "country": "USA",
    "proofOfIdentity": {
      "docType": "driving_license",
      "number": "DL-CA-99887766",
      "issuingCountry": "USA"
    },
    "incomeRange": "10l_to_25l"
  }'
```

## Response

```json theme={null}
{
  "success": true,
  "data": { "submitted": true, "kycStatus": "verified", "kycLevel": "basic" }
}
```

## Errors

| `error`             | Description                   |
| ------------------- | ----------------------------- |
| `Validation Error`  | Missing or invalid field      |
| `Forbidden`         | Not enabled for your account  |
| `Already Submitted` | Already on file for this user |
| `Not Found`         | User not found                |
