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 the Individual Compliance Review guide.

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 light tier — omitting it blocks payouts on rails that require nationality (e.g. dLocal China USD).
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 value supplied here drives the conditional requirement for individualProofOfAddress (see below).

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

individualIdentityDocument — REQUIRED

Government-issued identity document. The governmentId field is a discriminated union over 28 document variants — see Government ID object.

FieldTypeRequiredLimits & format
typestring (constant)YesMust equal "individualIdentityDocument".
governmentIdobject (union)YesDiscriminated by inner type field. 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, BUSINESS_INCOME, INVESTMENTS).
employmentStatusenumYesOne of the EmploymentStatus values (e.g. EMPLOYED, SELF_EMPLOYED, UNEMPLOYED, RETIRED, STUDENT).
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).
monthlyUsdVolumeenumYesOne of the MonthlyUsdVolume ranges (e.g. RANGE_0_4999, RANGE_5000_9999, RANGE_10000_49999, ...).
isTransactingOnBehalfOfOthersbooleanYestrue or false.
transactionCurrenciesarray of enumYesAt least 1 and at most 11 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).

individualProofOfAddress — CONDITIONALLY REQUIRED

Required when the value of individualResidentialAddress.address.country is in the European Economic Area (EEA) or the United Kingdom. This includes all EU member states, Iceland, Liechtenstein, Norway, and the UK. For residents outside this list, 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. 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. Each entry has documentType (SourceOfFundsDocumentType enum — e.g. EMPLOYMENT_INCOME, BUSINESS_INCOME, INVESTMENT_INCOME) and documentId (UUID 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.

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 is a discriminated union over 28 document variants. Every variant shares the same base shape; only the ID-number field and the document-reference field(s) differ per variant.

Common shape across every variant:

FieldTypeRequiredLimits & format
typestring (constant)YesThe variant discriminator (e.g. "passport", "driversLicense", "nationalId", "stateId", "passportCard", "visa", ...).
countryCodestringYesISO 3166-1 alpha-2 of the issuing authority (e.g. US).
<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): driversLicense, nationalId, stateId, passportCard, permanentResidenceCard, visa, residencePermit, voterId, healthInsuranceCard, workPermit, consularId, foreignId, myNumberCard, longTermPass, ofwId, postalId, sssId, umid, municipalId, tribalId, keypassId.

For the complete per-variant schema (exact field names, country examples, etc.) see the IndividualIdentityDocumentAttestation entry in the API reference.