OrganizationKYCFields
in package
KYC and AML fields for organizations (companies, legal entities).
This class provides standardized fields for collecting Know Your Customer (KYC) and Anti-Money Laundering (AML) information about organizations in compliance with SEP-09 specification. It includes corporate identification, registration details, contact information, and supporting documentation.
Note: All organization field keys use dot notation with 'organization.' prefix (e.g. 'organization.name', 'organization.address_country_code').
PRIVACY AND SECURITY WARNING: This class handles highly sensitive corporate and Personally Identifiable Information (PII). Implementers MUST ensure:
- Transmission only over HTTPS/TLS connections
- Encryption at rest for all stored KYC data
- Compliance with applicable data protection regulations (GDPR, CCPA, etc.)
- Implementation of proper access controls and audit logging
- Secure data retention and deletion policies
- Corporate authorization management for data collection and processing
- Binary fields (photos, documents) must be base64 encoded for transmission
Tags
Table of Contents
Constants
- ADDRESS_COUNTRY_CODE_KEY = self::KEY_PREFIX . 'address_country_code'
- CITY_KEY = self::KEY_PREFIX . 'city'
- DIRECTOR_NAME_KEY = self::KEY_PREFIX . 'director_name'
- EMAIL_KEY = self::KEY_PREFIX . 'email'
- KEY_PREFIX = 'organization.'
- NAME_KEY = self::KEY_PREFIX . 'name'
- NUMBER_OF_SHAREHOLDERS_KEY = self::KEY_PREFIX . 'number_of_shareholders'
- PHONE_KEY = self::KEY_PREFIX . 'phone'
- PHOTO_INCORPORATION_DOC_KEY = self::KEY_PREFIX . 'photo_incorporation_doc'
- PHOTO_PROOF_ADDRESS_KEY = self::KEY_PREFIX . 'photo_proof_address'
- POSTAL_CODE_KEY = self::KEY_PREFIX . 'postal_code'
- REGISTRATION_ADDRESS_KEY = self::KEY_PREFIX . 'registered_address'
- REGISTRATION_DATE_KEY = self::KEY_PREFIX . 'registration_date'
- REGISTRATION_NUMBER_KEY = self::KEY_PREFIX . 'registration_number'
- SHAREHOLDER_NAME_KEY = self::KEY_PREFIX . 'shareholder_name'
- STATE_OR_PROVINCE_KEY = self::KEY_PREFIX . 'state_or_province'
- VAT_NUMBER_KEY = self::KEY_PREFIX . 'VAT_number'
- WEBSITE_KEY = self::KEY_PREFIX . 'website'
Properties
- $addressCountryCode : string|null
- $cardKYCFields : CardKYCFields|null
- $city : string|null
- $directorName : string|null
- $email : string|null
- $financialAccountKYCFields : FinancialAccountKYCFields|null
- $name : string|null
- $numberOfShareholders : int|null
- $phone : string|null
- $photoIncorporationDoc : string|null
- $photoProofAddress : string|null
- $postalCode : string|null
- $registeredAddress : string|null
- $registrationDate : string|null
- $registrationNumber : string|null
- $shareholderName : string|null
- $stateOrProvince : string|null
- $VATNumber : string|null
- $website : string|null
Methods
- fields() : array<string|int, mixed>
- Returns all non-null KYC fields as an associative array.
- files() : array<string|int, string>
- Returns all non-null binary file fields as an associative array.
Constants
ADDRESS_COUNTRY_CODE_KEY
public
mixed
ADDRESS_COUNTRY_CODE_KEY
= self::KEY_PREFIX . 'address_country_code'
CITY_KEY
public
mixed
CITY_KEY
= self::KEY_PREFIX . 'city'
DIRECTOR_NAME_KEY
public
mixed
DIRECTOR_NAME_KEY
= self::KEY_PREFIX . 'director_name'
EMAIL_KEY
public
mixed
EMAIL_KEY
= self::KEY_PREFIX . 'email'
KEY_PREFIX
public
mixed
KEY_PREFIX
= 'organization.'
NAME_KEY
public
mixed
NAME_KEY
= self::KEY_PREFIX . 'name'
NUMBER_OF_SHAREHOLDERS_KEY
public
mixed
NUMBER_OF_SHAREHOLDERS_KEY
= self::KEY_PREFIX . 'number_of_shareholders'
PHONE_KEY
public
mixed
PHONE_KEY
= self::KEY_PREFIX . 'phone'
PHOTO_INCORPORATION_DOC_KEY
public
mixed
PHOTO_INCORPORATION_DOC_KEY
= self::KEY_PREFIX . 'photo_incorporation_doc'
PHOTO_PROOF_ADDRESS_KEY
public
mixed
PHOTO_PROOF_ADDRESS_KEY
= self::KEY_PREFIX . 'photo_proof_address'
POSTAL_CODE_KEY
public
mixed
POSTAL_CODE_KEY
= self::KEY_PREFIX . 'postal_code'
REGISTRATION_ADDRESS_KEY
public
mixed
REGISTRATION_ADDRESS_KEY
= self::KEY_PREFIX . 'registered_address'
REGISTRATION_DATE_KEY
public
mixed
REGISTRATION_DATE_KEY
= self::KEY_PREFIX . 'registration_date'
REGISTRATION_NUMBER_KEY
public
mixed
REGISTRATION_NUMBER_KEY
= self::KEY_PREFIX . 'registration_number'
SHAREHOLDER_NAME_KEY
public
mixed
SHAREHOLDER_NAME_KEY
= self::KEY_PREFIX . 'shareholder_name'
STATE_OR_PROVINCE_KEY
public
mixed
STATE_OR_PROVINCE_KEY
= self::KEY_PREFIX . 'state_or_province'
VAT_NUMBER_KEY
public
mixed
VAT_NUMBER_KEY
= self::KEY_PREFIX . 'VAT_number'
WEBSITE_KEY
public
mixed
WEBSITE_KEY
= self::KEY_PREFIX . 'website'
Properties
$addressCountryCode
public
string|null
$addressCountryCode
= null
Country code for current address (ISO 3166-1 alpha-3)
$cardKYCFields
public
CardKYCFields|null
$cardKYCFields
= null
Card fields (credit/debit card information)
$city
public
string|null
$city
= null
Name of city/town
$directorName
public
string|null
$directorName
= null
Organization registered managing director
public
string|null
$email
= null
Organization contact email (RFC 5322 format)
$financialAccountKYCFields
public
FinancialAccountKYCFields|null
$financialAccountKYCFields
= null
Financial account fields (bank account, crypto address, etc.)
$name
public
string|null
$name
= null
Full organization name as on the incorporation papers
$numberOfShareholders
public
int|null
$numberOfShareholders
= null
Number of shareholders in the organization
$phone
public
string|null
$phone
= null
Organization contact phone number (E.164 format)
$photoIncorporationDoc
public
string|null
$photoIncorporationDoc
= null
Image of incorporation documents (base64 encoded)
$photoProofAddress
public
string|null
$photoProofAddress
= null
Image of a utility bill, bank statement with the organization's name and address (base64 encoded)
$postalCode
public
string|null
$postalCode
= null
Postal or other code identifying organization's locale
$registeredAddress
public
string|null
$registeredAddress
= null
Organization registered address
$registrationDate
public
string|null
$registrationDate
= null
Date the organization was registered (ISO 8601 format)
$registrationNumber
public
string|null
$registrationNumber
= null
Organization registration number
$shareholderName
public
string|null
$shareholderName
= null
Shareholder name (can be an organization or a person, should be queried recursively up to the ultimate beneficial owners with KYC information for natural persons)
$stateOrProvince
public
string|null
$stateOrProvince
= null
Name of state/province/region/prefecture
$VATNumber
public
string|null
$VATNumber
= null
Organization VAT number
$website
public
string|null
$website
= null
Organization website URL
Methods
fields()
Returns all non-null KYC fields as an associative array.
public
fields() : array<string|int, mixed>
This method collects all populated organization KYC fields including nested financial account and card fields, returning them as key-value pairs with 'organization.' prefix suitable for submission to SEP-09 compliant services.
Return values
array<string|int, mixed> —Associative array of field keys to values
files()
Returns all non-null binary file fields as an associative array.
public
files() : array<string|int, string>
This method collects all populated binary file fields (photos, documents) that are base64 encoded, returning them as key-value pairs with 'organization.' prefix for file upload to SEP-09 compliant services.
Return values
array<string|int, string> —Associative array of file field keys to base64 encoded values