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 requiredAttestations array 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


Light tier

individualPersonalInfoLight — REQUIRED

The single attestation required for the LIGHT KYC tier. Captures name, date of birth, optional nationality, phone number, and residential address.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualPersonalInfoLight".
nameobjectYesSee Name object below.
birthDatestringYesYYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years).
nationalitystringOptionalISO 3166-1 alpha-2 country code (e.g. US). Optional on the Light tier, but some payout rails require it.
phoneNumberstringYesE.164 format with country code (e.g. +14155551234).
residentialAddressobjectYesSee Address object below.

Standard tier

individualPersonalInfo — REQUIRED

Personal-identity fields for the STANDARD KYC tier. Unlike the light variant, nationality is required and a politically-exposed-person flag must be declared.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualPersonalInfo".
nameobjectYesSee Name object.
birthDatestringYesYYYY-MM-DD. Must be a valid ISO date and represent an adult (≥ 18 years).
nationalitystringYesISO 3166-1 alpha-2 country code (e.g. US).
isPoliticallyExposedbooleanYestrue or false.

individualContactInfo — REQUIRED

Email and phone number used for compliance correspondence.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualContactInfo".
emailstringYesValid email address. UTF-8 local parts are not accepted.
phoneNumberstringYesE.164 format with country code (e.g. +14155551234).

individualResidentialAddress — REQUIRED

Residential address. The country supplied here drives the conditional requirements for individualProofOfAddress, individualEeaInfo and individualSelfiePhoto (see below).

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualResidentialAddress".
addressobjectYesSee Address object.

individualIdentityDocument — REQUIRED

Government-issued identity document. The governmentId field accepts 28 document types — see Government ID object.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualIdentityDocument".
governmentIdobjectYesSet its type to the document type. See Government ID object.

individualFinancialInfo — REQUIRED

Source-of-funds, employment, occupation, expected volume, and currency mix. The monthlyUsdVolume value supplied here drives the conditional requirement for individualSourceOfFunds (see below).

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualFinancialInfo".
sourceOfFundsenumYesOne of the SourceOfFunds values (e.g. SALARY, COMPANY_FUNDS, INVESTMENTS_LOANS, SAVINGS).
employmentStatusenumYesOne of the EmploymentStatus values (EMPLOYED, SELF_EMPLOYED, UNEMPLOYED, RETIRED, STUDENT, HOMEMAKER).
employerstringConditionalRequired when employmentStatus is EMPLOYED. Max 200 characters.
latestOccupationenumOptionalOne of the LatestOccupation values. Optional — when supplied, may be OTHER.
latestOccupationDescriptionstringConditionalRequired when latestOccupation is OTHER. Max 500 characters.
primaryAccountPurposeenumYesOne of the PrimaryAccountPurpose values (e.g. PERSONAL_OR_LIVING_EXPENSES, INVESTMENT_PURPOSES).
primaryAccountPurposeOtherstringConditionalRequired when primaryAccountPurpose is OTHER. Max 500 characters.
monthlyUsdVolumeenumYesOne of the MonthlyUsdVolume ranges (RANGE_0_4999, RANGE_5000_9999, RANGE_10000_49999, RANGE_50000_PLUS).
isTransactingOnBehalfOfOthersbooleanYestrue or false.
transactionCurrenciesarray of enumYes1–11 unique entries from the TransactionCurrency enum (e.g. ["USD", "EUR"]).

individualTaxInfo — REQUIRED

Tax identification number and type.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualTaxInfo".
taxIdentificationNumberstringYesMax 100 characters. Validated against the country/type-specific format for the chosen taxIdentificationNumberType (e.g. SSN must be XXX-XX-XXXX or 9 digits).
taxIdentificationNumberTypeenumYesOne 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

Required 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.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualProofOfAddress".
proofOfAddressDocumentsarray of objectYes1–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

Required 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.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualSourceOfFunds".
sourceOfFundsDocumentsarray of objectYes1–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

Required when individualResidentialAddress.address.country is in the EEA (not the UK). Otherwise, this attestation may be omitted.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualEeaInfo".
placeOfBirthCountrystringYesISO 3166-1 alpha-2 country code (e.g. FR).
placeOfBirthCitystringYes1–200 characters.

individualSelfiePhoto — CONDITIONALLY REQUIRED

Required when individualResidentialAddress.address.country is AR (Argentina). Otherwise, this attestation may be omitted. Upload the photo via the Generate Upload URL endpoint first.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualSelfiePhoto".
documentIdUUIDYesdocumentId returned by the upload endpoint.

Shared objects

Name object

Used by individualPersonalInfo and individualPersonalInfoLight.

FieldTypeRequiredLimits & format
firstNamestringYes1–100 characters.
lastNamestringYes1–100 characters.
middleNamestringOptionalMax 100 characters.

Address object

Used wherever a residentialAddress or address field appears. PO boxes are not accepted.

FieldTypeRequiredLimits & format
address1stringYes1–200 characters. Primary street address, including building number and street name.
address2stringOptionalMax 200 characters. Secondary line — apartment, suite, unit, floor, etc.
countrystringYesISO 3166-1 alpha-2 country code (e.g. US).
subDivisionstringYes1–100 characters. ISO 3166-2 subdivision code without the country prefix (e.g. NY for New York).
citystringYes1–100 characters.
postalCodestringYes1–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:

FieldTypeRequiredLimits & format
typestring (constant)YesThe document type (e.g. "passport", "driverLicense", "nationalId", "stateId", "passportCard", "visa", ...).
countryCodestringYesISO 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)stringYes4–50 characters.
<variant>DocumentId or front/back document IDsUUID(s)YesEach 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.


Did this page help you?