NaturalPersonKYCFields

data class NaturalPersonKYCFields(val lastName: String? = null, val firstName: String? = null, val additionalName: String? = null, val addressCountryCode: String? = null, val stateOrProvince: String? = null, val city: String? = null, val postalCode: String? = null, val address: String? = null, val mobileNumber: String? = null, val mobileNumberFormat: String? = null, val emailAddress: String? = null, val birthDate: LocalDate? = null, val idIssueDate: LocalDate? = null, val idExpirationDate: LocalDate? = null, val birthPlace: String? = null, val birthCountryCode: String? = null, val taxId: String? = null, val taxIdName: String? = null, val occupation: String? = null, val employerName: String? = null, val employerAddress: String? = null, val languageCode: String? = null, val idType: String? = null, val idCountryCode: String? = null, val idNumber: String? = null, val ipAddress: String? = null, val sex: String? = null, val referralId: String? = null, val photoIdFront: ByteArray? = null, val photoIdBack: ByteArray? = null, val notaryApprovalOfPhotoId: ByteArray? = null, val photoProofResidence: ByteArray? = null, val proofOfIncome: ByteArray? = null, val proofOfLiveness: ByteArray? = null, val financialAccountKYCFields: FinancialAccountKYCFields? = null, val cardKYCFields: CardKYCFields? = null)

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, idExpirationDate use kotlinx.datetime.LocalDate

  • Serialized as ISO 8601 date-only format (YYYY-MM-DD) via toString()

See also:

Constructors

Link copied to clipboard
constructor(lastName: String? = null, firstName: String? = null, additionalName: String? = null, addressCountryCode: String? = null, stateOrProvince: String? = null, city: String? = null, postalCode: String? = null, address: String? = null, mobileNumber: String? = null, mobileNumberFormat: String? = null, emailAddress: String? = null, birthDate: LocalDate? = null, idIssueDate: LocalDate? = null, idExpirationDate: LocalDate? = null, birthPlace: String? = null, birthCountryCode: String? = null, taxId: String? = null, taxIdName: String? = null, occupation: String? = null, employerName: String? = null, employerAddress: String? = null, languageCode: String? = null, idType: String? = null, idCountryCode: String? = null, idNumber: String? = null, ipAddress: String? = null, sex: String? = null, referralId: String? = null, photoIdFront: ByteArray? = null, photoIdBack: ByteArray? = null, notaryApprovalOfPhotoId: ByteArray? = null, photoProofResidence: ByteArray? = null, proofOfIncome: ByteArray? = null, proofOfLiveness: ByteArray? = null, financialAccountKYCFields: FinancialAccountKYCFields? = null, cardKYCFields: CardKYCFields? = null)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Middle name or other additional name

Link copied to clipboard

Entire address as a multi-line string

Link copied to clipboard

Country code for current address (ISO 3166-1 alpha-3)

Link copied to clipboard

Country of birth (ISO 3166-1 alpha-3)

Link copied to clipboard
val birthDate: LocalDate?

Date of birth (serialized as ISO 8601 date-only: YYYY-MM-DD, e.g., "1990-01-15")

Link copied to clipboard

Place of birth (city, state, country as on passport)

Link copied to clipboard

Nested payment card information

Link copied to clipboard
val city: String?

Name of city/town

Link copied to clipboard

Email address

Link copied to clipboard

Address of employer

Link copied to clipboard

Name of employer

Link copied to clipboard

Nested financial account information

Link copied to clipboard

Given or first name

Link copied to clipboard

Country issuing ID (ISO 3166-1 alpha-3)

Link copied to clipboard
val idExpirationDate: LocalDate?

ID expiration date (serialized as ISO 8601 date-only: YYYY-MM-DD, e.g., "2030-06-01")

Link copied to clipboard
val idIssueDate: LocalDate?

ID issue date (serialized as ISO 8601 date-only: YYYY-MM-DD, e.g., "2020-06-01")

Link copied to clipboard

Passport or ID number

Link copied to clipboard

Type of ID (e.g., passport, drivers_license, id_card)

Link copied to clipboard

IP address of customer's computer

Link copied to clipboard

Primary language (ISO 639-1, 2 characters)

Link copied to clipboard

Family or last name

Link copied to clipboard

Mobile phone number with country code in E.164 format

Link copied to clipboard

Expected format of mobile_number field (default: E.164)

Link copied to clipboard

Image of notary's approval of photo ID

Link copied to clipboard

Occupation ISCO08 code as string (3 characters, e.g., "111" for legislators)

Link copied to clipboard

Image of back of photo ID or passport

Link copied to clipboard

Image of front of photo ID or passport

Link copied to clipboard

Image of utility bill or bank statement with name and address

Link copied to clipboard

Postal or other code identifying user's locale

Link copied to clipboard

Image of proof of income document

Link copied to clipboard

Video or image file as liveness proof

Link copied to clipboard

User's origin or referral code

Link copied to clipboard
val sex: String?

Gender (male, female, or other)

Link copied to clipboard

Name of state/province/region/prefecture

Link copied to clipboard

Tax identifier (e.g., SSN in US)

Link copied to clipboard

Name of the tax ID type (e.g., "SSN" or "ITIN" in US)

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard

Converts all natural person text KYC fields to a map for SEP-9 submission.

Link copied to clipboard

Converts all natural person binary KYC fields to a map for SEP-9 submission.

Link copied to clipboard
open override fun hashCode(): Int