Individual — Field Validation Rules (with Enums)
Character policy for names
- Disallowed special characters: 
?!§&#{[\@]}=+^$%*<>;" - Allowed: standard letters (including accents like é, è, ô), hyphen (-), apostrophe ('), and language‑specific characters (e.g., Ł, Ø).
 - FR: Les caractères typiques présents dans certains noms comme le trait d’union (-), l’apostrophe ('), les lettres accentuées (é, è, ô, etc..) ou les caractères propres à certaines langues comme Ł ou Ø sont, quant à eux, acceptés.
 
Quick scan table
| Field | Rules | 
|---|---|
| First name | 1–35 chars. Apply Character policy for names. | 
| Last name | 1–35 chars. Apply Character policy for names. | 
| Other name | ≤ 35 chars. Apply Character policy for names. | 
| Must match email regex (see Regex library). | |
| Phone number | Must match phone regex (see Regex library). Optional at account creation; required to complete onboarding. | 
| Birth date | Format DD/MM/YYYY; not today or future; year ≥ 1920. (Optional: min age ≥ 18; partner‑configurable, floor at 12.) | 
| Birth city | String, 1–90 chars. Optional at creation; required to complete onboarding. | 
| Birth province | Enum (Italy only; see BOI list). Optional; required if residence country = IT. | 
| Birth country | ISO 3166‑1 alpha‑2. Required. | 
| Nationalities | ISO 3166‑1 alpha‑2 (single or multiple). Required. | 
| Street | 1–256 chars.Required to complete onboarding. | 
| Complementary street info | 1–256 chars. Optional. | 
| Postal code | Alphanumeric, 1–90 chars. Optional; required to complete onboarding. | 
| City | String, 1–90 chars. Optional; required to complete onboarding. | 
| Province | Enum (Italy only; see BOI list). Optional; required if residence country = IT. | 
| Country of residence | ISO 3166‑1 alpha‑2. Required. | 
| PEP status | Enum PEP_STATUS {NO, YES, CLOSE}. Optional at creation; required to complete onboarding. | 
| PEP position | Enum PEP_POSITION (see below). Required if status ∈ {YES, CLOSE}. | 
| PEP other position | String. Required if position = OTHER. | 
| PEP start date | Date DD/MM/YYYY. Required if status ∈ {YES, CLOSE}. | 
| PEP end date | Date DD/MM/YYYY. Optional. | 
| PEP close relationship | Enum PEP_CLOSE_RELATIONSHIP. Required if status = CLOSE. | 
| PEP full name | 1–35 chars. Required if status = CLOSE. | 
| Occupation | Enum PROFESSIONAL_ACTIVITY (PCS codes). Optional at creation; required to complete onboarding for lenders/investors/project holders. | 
| Annual revenue | Enum INCOME_TIER (6 tiers; see list). Optional at creation; required to complete onboarding for lenders/investors/project holders. | 
| Estimated wealth | Enum WEALTH_TIER (7 tiers; see list). Optional at creation; required to complete onboarding for lenders/investors/project holders. | 
| IFI tax | Boolean. Required if residence country = FR. | 
| Legal capacity — type | Enum CAPACITY_TYPE. Optional at creation; required to complete onboarding. | 
| Legal capacity — protection type | Enum PROTECTION_TYPE. Required if type = PROTECTED_ADULT. | 
| Legal capacity — other | String 1–90. Required if protectionType = OTHER. | 
| Type of project | Enum PROJECT_TYPE. Optional at creation; required if profile = project holder. | 
| Wedding relation | Enum WEDDING_RELATION_TYPE. Required if project.type = WEDDING. | 
| Project description | ≤ 256 chars. Required if project.type ∈ {CHARITY, OTHER}. | 
| Project website | URL regex. Required if project.type ∈ {CHARITY, OTHER}. | 
| Board member function | Enum (not specified in this extract). | 
Enumerations
Reference lists — Parameters for Triggering an Onboarding Use these authoritative lists when populating payloads. They’re large, so we link out instead of inlining.
•
protectionType→ complete_enum_lists.xlsx
•
professionalSituation→ IND_ProfessionalSituation.pdf
•
province→ AddressProvince.pdf
•
birthProvince→ BirthProvince.pdf
PEP
PEP_STATUS:NO,YES,CLOSEPEP_POSITION:POLITICAL_LEADER,POLITICAL_REPRESENTATIVE,JUDICIAL_OFFICIAL,FINANCIAL_AUDITOR,BANK_EXECUTIVE,DIPLOMATIC_REPRESENTATIVE,MILITARY_LEADER,ADMINISTRATIVE_OFFICIAL,ORGANIZATIONAL_OFFICIAL,OTHERPEP_CLOSE_RELATIONSHIP:PARTNER,CHILD,PARENT
Professional & Financial
- 
PROFESSIONAL_ACTIVITY: list of PCS codes (reference: roles.partnerActivityType / PCS catalog) - 
INCOME_TIER:FIRST_TIER,SECOND_TIER,THIRD_TIER,FOURTH_TIER,FIFTH_TIER,SIXTH_TIER - 
WEALTH_TIER:FIRST_TIER,SECOND_TIER,THIRD_TIER,FOURTH_TIER,FIFTH_TIER,SIXTH_TIER,SEVENTH_TIER - 
SOURCE_OF_FUNDS(array of enum):INCOMEREAL_ESTATE_PROPERTIESSAVINGS_ACCUMULATED_OVER_SEVERAL_YEARSDONATION_OR_INHERITANCESALE_OF_A_STOCK_PORTFOLIOTRANSFER_OF_COMPANY_SHARESWINNING_FROM_GAMES_OR_CONTESTSSURRENDER_OF_A_CAPITALIZATION_CONTRACT_OR_LIFE_INSURANCE_POLICYSALE_OF_MOVABLE_ASSETS_GOODWILL_INTELLECTUAL_PROPERTY_RIGHTSSALE_OF_CURRENCY_GOLD_OR_CRYPTOCURRENCIESFINANCIAL_INVESTMENTSOTHER_OPERATIONS
 
Legal capacity
CAPACITY_TYPE:LEGAL_AGE_AND_CAPACITY,PROTECTED_ADULT,MINOR_NOT_EMANCIPATED,MINOR_EMANCIPATEDPROTECTION_TYPE(required whenCAPACITY_TYPE = PROTECTED_ADULT):SAFEGUARDING_OF_JUSTICE,CURATORSHIP,GUARDIANSHIP,OTHER
Project
PROJECT_TYPE:WEDDING,FAREWELL,NEWBORN,BIRTHDAY,CHARITY,OTHERWEDDING_RELATION_TYPE(whenPROJECT_TYPE = WEDDING):BRIDE_GROOM,OTHERSALARY_ADVANCE_REASON_TYPE:UNFORESEEN_BILLS,URGENT_FAMILY_EXPENSES,WEDDING,BIRTH,HOUSE_MOVE,HOLIDAYS,OTHER
Address (Italy‑specific)
- Subdivision / Province enums: use BOI enumerations (e.g., 
AOSTA, …) when country = IT 
Visa applicant — Financial support (additional profile)
VISA_APPLICANT_ROLE:STUDENT,JOB_SEEKERisPayer: booleanPAYER_RELATIONSHIP_LINK(whenisPayer = false):MOTHER_FATHER,RELATIVES,SIBLINGS,GRAND_PARENTS,HUSBAND_WIFE,LIFE_PARTNER,OTHER- Payer’s income/wealth/sourceOfFunds (when 
isPayer = true): useINCOME_TIER,WEALTH_TIER,SOURCE_OF_FUNDS 
Regex library (suggested patterns)
Pragmatic patterns for client‑side/ingress checks. Use server‑side validators and canonical parsers for final enforcement.
Email (simple, practical)
^[^\s@]+@[^\s@]+\.[^\s@]{2,}$Phone number (E.164 international)
^\+?[1-9]\d{1,14}$Date — DD/MM/YYYY with year ≥ 1920
^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/(19[2-9]\d|20\d{2})$Note: This regex does not validate calendar edge cases (e.g., 31/02). Apply a date parser to enforce real dates and the not today / not future rule.
ISO country codes (alpha‑2)
^[A-Z]{2}$Website / URL (basic, http/https or bare www)
^(https?:\/\/)?([\w-]+\.)+[\w-]{2,}(\/[^\s]*)?$For production, prefer a URL parser over regex.
Age rules (optional, partner‑configurable)
- Standard: minimum age ≥ 18 years
 - Custom: partner configuration can lower the minimum age but not below 12 years
 
Implementation tips
- Enforce length limits at both UI (maxlength) and API (schema) levels
 - Normalize names (trim, collapse repeated spaces) but do not strip valid characters from the policy above
 - Validate country codes against an ISO‑3166 list; reject unknown codes even if regex matches
 - For PEP periods, ensure 
startDate ≤ endDateand dates are in the past - For address lines, allow common punctuation (comma, period) unless your business rules require stricter filters
 - Respect collection rules from the data model: many fields are optional at account creation but required to complete onboarding; also apply conditional requirements (Italy‑specific provinces, 
PEPconditionals, project‑type conditionals) 
