Individual KYC Requirements
This page is the field-level reference for every attestation that may appear on an individual compliance review. For the end-to-end flow (creating a review, uploading documents, submitting, polling status) see Compliance Reviews.
Each section below is one attestation. The header states whether the attestation is REQUIRED or CONDITIONALLY REQUIRED, the conditional sections lead with what triggers the requirement, and every section ends with a table describing each field — its JSON name, type, whether it is required or optional, and any input limits enforced by the API.
The
requiredAttestationsarray on the review you create reflects the same rules described here. If the API response and this guide ever disagree, trust the API.
Tier overview
| Tier | Attestations on this page |
|---|---|
LIGHT | individualPersonalInfoLight |
STANDARD | individualPersonalInfo, individualContactInfo, individualResidentialAddress, individualIdentityDocument, individualFinancialInfo, individualTaxInfo, individualProofOfAddress (conditional), individualSourceOfFunds (conditional), individualEeaInfo (conditional), individualSelfiePhoto (conditional) |
Light tier
individualPersonalInfoLight — REQUIRED
individualPersonalInfoLight — REQUIREDThe single attestation required for the LIGHT KYC tier. Captures name, date of birth, optional nationality, phone number, and residential address.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualPersonalInfoLight". |
name | object | Yes | See Name object below. |
birthDate | string | Yes | YYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years). |
nationality | string | Optional | ISO 3166-1 alpha-2 country code (e.g. US). Optional on the Light tier, but some payout rails require it. |
phoneNumber | string | Yes | E.164 format with country code (e.g. +14155551234). |
residentialAddress | object | Yes | See Address object below. |
Standard tier
individualPersonalInfo — REQUIRED
individualPersonalInfo — REQUIREDPersonal-identity fields for the STANDARD KYC tier. Unlike the light variant, nationality is required and a politically-exposed-person flag must be declared.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualPersonalInfo". |
name | object | Yes | See Name object. |
birthDate | string | Yes | YYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years). |
nationality | string | Yes | ISO 3166-1 alpha-2 country code (e.g. US). |
isPoliticallyExposed | boolean | Yes | true or false. |
individualContactInfo — REQUIRED
individualContactInfo — REQUIREDEmail and phone number used for compliance correspondence.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualContactInfo". |
email | string | Yes | Valid email address. UTF-8 local parts are not accepted. |
phoneNumber | string | Yes | E.164 format with country code (e.g. +14155551234). |
individualResidentialAddress — REQUIRED
individualResidentialAddress — REQUIREDResidential address. The country supplied here drives the conditional requirements for individualProofOfAddress, individualEeaInfo and individualSelfiePhoto (see below).
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualResidentialAddress". |
address | object | Yes | See Address object. |
individualIdentityDocument — REQUIRED
individualIdentityDocument — REQUIREDGovernment-issued identity document. The governmentId field accepts 28 document types — see Government ID object.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualIdentityDocument". |
governmentId | object | Yes | Set its type to the document type. See Government ID object. |
individualFinancialInfo — REQUIRED
individualFinancialInfo — REQUIREDSource-of-funds, employment, occupation, expected volume, and currency mix. The monthlyUsdVolume value supplied here drives the conditional requirement for individualSourceOfFunds (see below).
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualFinancialInfo". |
sourceOfFunds | enum | Yes | One of the SourceOfFunds values (e.g. SALARY, COMPANY_FUNDS, INVESTMENTS_LOANS, SAVINGS). |
employmentStatus | enum | Yes | One of the EmploymentStatus values (EMPLOYED, SELF_EMPLOYED, UNEMPLOYED, RETIRED, STUDENT, HOMEMAKER). |
employer | string | Conditional | Required when employmentStatus is EMPLOYED. Max 200 characters. |
latestOccupation | enum | Optional | One of the LatestOccupation values. Optional — when supplied, may be OTHER. |
latestOccupationDescription | string | Conditional | Required when latestOccupation is OTHER. Max 500 characters. |
primaryAccountPurpose | enum | Yes | One of the PrimaryAccountPurpose values (e.g. PERSONAL_OR_LIVING_EXPENSES, INVESTMENT_PURPOSES). |
primaryAccountPurposeOther | string | Conditional | Required when primaryAccountPurpose is OTHER. Max 500 characters. |
monthlyUsdVolume | enum | Yes | One of the MonthlyUsdVolume ranges (RANGE_0_4999, RANGE_5000_9999, RANGE_10000_49999, RANGE_50000_PLUS). |
isTransactingOnBehalfOfOthers | boolean | Yes | true or false. |
transactionCurrencies | array of enum | Yes | 1–11 unique entries from the TransactionCurrency enum (e.g. ["USD", "EUR"]). |
individualTaxInfo — REQUIRED
individualTaxInfo — REQUIREDTax identification number and type.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualTaxInfo". |
taxIdentificationNumber | string | Yes | Max 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType (e.g. SSN must be XXX-XX-XXXX or 9 digits). |
taxIdentificationNumberType | enum | Yes | One of the individual-applicable IndividualTaxIdentificationNumberType values (e.g. SSN, ITIN, CPF, CURP, RFC, CUIT, RUT). Must be a type accepted for the issuing country of the individualIdentityDocument government ID; a mismatch returns a WARNING at submission. |
individualProofOfAddress — CONDITIONALLY REQUIRED
individualProofOfAddress — CONDITIONALLY REQUIREDRequired when individualResidentialAddress.address.country is in the European Economic Area (EEA) or the United Kingdom, or when individualFinancialInfo.transactionCurrencies includes EUR. The EEA covers all EU member states plus Iceland, Liechtenstein and Norway. Otherwise, this attestation may be omitted.
One or more uploaded proof-of-address document references. Upload each file via the Generate Upload URL endpoint first and reference the returned documentId here.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualProofOfAddress". |
proofOfAddressDocuments | array of object | Yes | 1–10 entries, no duplicate documentIds. Each entry has documentType (ProofOfAddressDocumentType enum — e.g. UTILITY_BILL, BANK_STATEMENT, GOVERNMENT_ISSUED_LETTER) and documentId (UUID returned by the upload endpoint). |
individualSourceOfFunds — CONDITIONALLY REQUIRED
individualSourceOfFunds — CONDITIONALLY REQUIREDRequired when individualFinancialInfo.monthlyUsdVolume is any value other than RANGE_0_4999 (i.e. the applicant expects to move ≥ $5,000 USD per month). For volumes below $5,000/month this attestation may be omitted.
One or more uploaded source-of-funds document references. Upload each file via the Generate Upload URL endpoint first and reference the returned documentId here.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualSourceOfFunds". |
sourceOfFundsDocuments | array of object | Yes | 1–10 entries, no duplicate documentIds. Each entry has documentType (SourceOfFundsDocumentType enum — e.g. EMPLOYMENT_INCOME, SELF_EMPLOYMENT_BUSINESS_INCOME, INVESTMENTS_DIVIDENDS) and documentId (UUID returned by the upload endpoint). |
individualEeaInfo — CONDITIONALLY REQUIRED
individualEeaInfo — CONDITIONALLY REQUIREDRequired when individualResidentialAddress.address.country is in the EEA (not the UK). Otherwise, this attestation may be omitted.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualEeaInfo". |
placeOfBirthCountry | string | Yes | ISO 3166-1 alpha-2 country code (e.g. FR). |
placeOfBirthCity | string | Yes | 1–200 characters. |
individualSelfiePhoto — CONDITIONALLY REQUIRED
individualSelfiePhoto — CONDITIONALLY REQUIREDRequired when individualResidentialAddress.address.country is AR (Argentina). Otherwise, this attestation may be omitted. Upload the photo via the Generate Upload URL endpoint first.
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | Must equal "individualSelfiePhoto". |
documentId | UUID | Yes | documentId returned by the upload endpoint. |
Shared objects
Name object
Used by individualPersonalInfo and individualPersonalInfoLight.
| Field | Type | Required | Limits & format |
|---|---|---|---|
firstName | string | Yes | 1–100 characters. |
lastName | string | Yes | 1–100 characters. |
middleName | string | Optional | Max 100 characters. |
Address object
Used wherever a residentialAddress or address field appears. PO boxes are not accepted.
| Field | Type | Required | Limits & format |
|---|---|---|---|
address1 | string | Yes | 1–200 characters. Primary street address, including building number and street name. |
address2 | string | Optional | Max 200 characters. Secondary line — apartment, suite, unit, floor, etc. |
country | string | Yes | ISO 3166-1 alpha-2 country code (e.g. US). |
subDivision | string | Yes | 1–100 characters. ISO 3166-2 subdivision code without the country prefix (e.g. NY for New York). |
city | string | Yes | 1–100 characters. |
postalCode | string | Yes | 1–20 characters. |
Government ID object
The governmentId field on individualIdentityDocument accepts 28 document types. Every document type shares the same base shape; only the ID-number field and the document-reference field(s) differ by document type.
Common shape across every document type:
| Field | Type | Required | Limits & format |
|---|---|---|---|
type | string (constant) | Yes | The document type (e.g. "passport", "driverLicense", "nationalId", "stateId", "passportCard", "visa", ...). |
countryCode | string | Yes | ISO 3166-1 alpha-2 of the issuing authority (e.g. US). Government IDs issued by a prohibited country are rejected with 400 GovernmentIdFromProhibitedCountryException. |
<variant>Number (e.g. passportNumber) | string | Yes | 4–50 characters. |
<variant>DocumentId or front/back document IDs | UUID(s) | Yes | Each is a documentId returned by the Generate Upload URL endpoint. Two-sided documents (driver's license, national ID, state ID, passport card, etc.) require distinct front and back IDs. |
Single-sided variants (one documentId field): passport, internalPassport, travelDocument, citizenshipCertificate, panCard, nbiClearance.
Double-sided variants (front + back documentId fields): driverLicense, nationalId, stateId, passportCard, permanentResidenceCard, visa, residencePermit, voterId, healthInsuranceCard, workPermit, consularId, foreignId, myNumberCard, longTermPass, ofwId, postalId, sssId, umid, municipalId, tribalId, keypassId, cnh (Brazilian driver's license; the back image is optional).
For the complete per-variant schema (exact field names, country examples, etc.) see the IndividualIdentityDocumentAttestation entry in the API reference.
Updated 3 days ago

