Legal Entities: Field Validation Rules (with Enums)
The rules on this page apply to the person fields of an onboarding: the legal representative and, for names, the UBOs. For the fields of the company itself, see the company payload examples and the association payload examples.
Company fields
| Field | Rules |
|---|---|
Website (legalEntity.website) | A single URL, for example https://example.com. Two URLs, separated by a space or a comma, are rejected with 400 and website is not in valid format. |
Registration date (legalEntity.registrationDate) | YYYY-MM-DD. |
Address country (legalEntity.address.country) | ISO 3166-1 alpha-2 code. Use GB for the United Kingdom: UK is rejected with 400. |
| Legal form, NACE, ATECO and SAE codes | Values are listed in the API reference for POST /onboardings/company. |
Character policy for names
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.
All other characters (digits, punctuation, special symbols, etc.) are automatically replaced with spaces.
If a name contains no valid name character (for example 123), the API returns 400 with ubo otherName must be set.
String Constraints
In addition to character filtering, the following structural rules must be enforced:
| Constraint | Requirement |
|---|---|
| Maximum Length | 35 characters. |
| Hyphen Placement | Strings cannot start or end with a hyphen (-). |
| Space Normalization | Multiple consecutive spaces must be collapsed into a single space. |
| Trimming | Leading and trailing whitespace must be removed. |
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). Important: Email addresses are currently restricted to 60 characters. | |
| Phone number | API: + and the country code, then the number (for example +33612345678). Spaces are accepted; a number without a country code (for example 0612345678) is rejected. The API validates the number for its country and returns phoneNumber is not valid, phoneNumber is too short or phoneNumber is too long. For example, a French number needs 9 digits after +33, and a number of the right length can still be rejected as not valid. Online form: the user selects the country and enters the number; spaces and hyphens are accepted. Examples per country: EU and UK phone regex patterns. Optional at account creation; required to complete onboarding. |
| Birth date | Online form: DD/MM/YYYY. API: ISO 8601, either a date (YYYY-MM-DD) or a full timestamp (YYYY-MM-DDTHH:mm:ss.sssZ); other formats, such as DD/MM/YYYY, are rejected. Year ≥ 1920 (1920 is accepted); must not be in the future. (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 | Online form: DD/MM/YYYY. API: YYYY-MM-DD. Required if status ∈ {YES, CLOSE}. |
| PEP end date | Online form: DD/MM/YYYY. API: YYYY-MM-DD. 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}$Note: This pattern checks only the general E.164 shape. The API also requires the country code and validates the number for its country, so a number that matches this pattern can still be rejected (for example,
+3361234returnsphoneNumber is too short, and+3221234567returnsphoneNumber is not valid). See Phone number in the quick scan table.
Date - online form format (DD/MM/YYYY, 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 in the future rule.
API: the API expects ISO 8601 (
YYYY-MM-DDor a full timestamp), not this format. See Birth date in the quick scan table.
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)

