Natural Person KYCFields
KYC fields for natural persons (individuals).
Contains personal identification information for individual customers. Fields follow international standards (ISO 3166, ISO 639, E.164) where applicable.
This class supports 34 total fields:
28 text fields (including dates serialized as ISO 8601 date-only format)
6 binary fields (document images/photos)
Field categories:
Identity: name, email, phone, address
Birth information: date, place, country
Government ID: type, number, country, dates
Tax information: tax ID and name
Employment: occupation, employer details
Verification documents: photos of ID, proof of residence, income, liveness
Financial accounts: bank accounts, crypto addresses (via nested fields)
Payment cards: card details (via nested fields)
Example - Basic information:
val person = NaturalPersonKYCFields(
firstName = "John",
lastName = "Doe",
emailAddress = "john@example.com",
birthDate = LocalDate(1990, 1, 15),
addressCountryCode = "USA",
idType = "passport",
idNumber = "123456789"
)
// Extract text fields for submission
val textFields = person.fields()
// Result: {"first_name": "John", "last_name": "Doe", "birth_date": "1990-01-15", ...}Example - With documents:
val person = NaturalPersonKYCFields(
firstName = "John",
lastName = "Doe",
photoIdFront = loadImageBytes("passport_front.jpg"),
photoIdBack = loadImageBytes("passport_back.jpg"),
photoProofResidence = loadImageBytes("utility_bill.jpg")
)
// Extract document files for multipart upload
val fileFields = person.files()
// Result: {"photo_id_front": ByteArray(...), "photo_id_back": ByteArray(...), ...}Example - With nested financial account:
val person = NaturalPersonKYCFields(
firstName = "John",
lastName = "Doe",
financialAccountKYCFields = FinancialAccountKYCFields(
bankName = "Example Bank",
bankAccountNumber = "1234567890"
)
)
val fields = person.fields()
// Result includes both person fields and bank fields: {"first_name": "John", "bank_name": "Example Bank", ...}Date field formats:
birthDate,idIssueDate,idExpirationDateuse kotlinx.datetime.LocalDateSerialized as ISO 8601 date-only format (YYYY-MM-DD) via toString()
See also:
StandardKYCFields for the parent container
FinancialAccountKYCFields for bank account information
CardKYCFields for payment card information
Constructors
Properties
Middle name or other additional name
Country code for current address (ISO 3166-1 alpha-3)
Country of birth (ISO 3166-1 alpha-3)
Place of birth (city, state, country as on passport)
Nested payment card information
Email address
Address of employer
Name of employer
Nested financial account information
Country issuing ID (ISO 3166-1 alpha-3)
ID expiration date (serialized as ISO 8601 date-only: YYYY-MM-DD, e.g., "2030-06-01")
ID issue date (serialized as ISO 8601 date-only: YYYY-MM-DD, e.g., "2020-06-01")
Primary language (ISO 639-1, 2 characters)
Mobile phone number with country code in E.164 format
Expected format of mobile_number field (default: E.164)
Image of notary's approval of photo ID
Occupation ISCO08 code as string (3 characters, e.g., "111" for legislators)
Image of back of photo ID or passport
Image of front of photo ID or passport
Image of utility bill or bank statement with name and address
Postal or other code identifying user's locale
Image of proof of income document
Video or image file as liveness proof
User's origin or referral code
Name of state/province/region/prefecture