uiSchema for External Accounts V2 payloads.| Field | Description | Type |
|---|---|---|
id | Unique identifier for the schema | String |
jurisdiction | Jurisdiction identifier this schema applies to | String |
title | Human-readable title of the schema | String |
description | Detailed description of the schema purpose | String |
type | JSON Schema type (typically "object") | String |
additionalProperties | Whether additional properties are allowed | Boolean |
required | Array of required property names | Array |
properties | Object containing all field definitions | Object |
if, then, else | Conditional logics for dynamic validation | Object |
| Category | Keyword | Description | Frontend Action |
|---|---|---|---|
| Any Type | type | Data type (string, number, integer, object, array, boolean, null). | Use appropriate input (e.g., text for string). |
enum | Allowed values. | Render select or radio. | |
const | Fixed value. | Use hidden widget or prefill. | |
default | Default value for the field. | Prefill form field with this value if no user input is provided. | |
| Strings | minLength, maxLength | String length limits. | Validate input length. |
pattern | Regex pattern. | Apply regex validation. | |
format | Predefined format (e.g., email, date). | Use specific widgets (e.g., email, date). | |
| Numbers | minimum, maximum | Inclusive bounds. | Restrict number range. |
| Arrays | items | Schema for array items. | Render repeatable sections. |
| Objects | properties | Field schemas. | Render nested sections. |
required | Mandatory fields. | Mark as required (e.g., with *). | |
| Conditional | if, then, else | Conditional rules. | Show/hide fields dynamically. |
default Keyworddefault value during initialization. Allow users to override it unless ui:readonly or ui:disabled is set.default value when processing payloads if the field is missing or null.x-customValidation keyword defines non-standard validation rules for any field, with the structure:"x-customValidation": {
"rule": "<ruleName>",
"value": "<expectedValue>",
"errorMessage": "<errorMessage>"
}| Rule | Description | Example |
|---|---|---|
startsWith | Value must start with the specified string. | { "rule": "startsWith", "value": "AR-", "errorMessage": "Must start with AR-" } |
endsWith | Value must end with the specified string. | { "rule": "endsWith", "value": "-AR", "errorMessage": "Must end with -AR" } |
customRegex | Value must match the specified regex. | { "rule": "customRegex", "value": "^\\+54\\d{9}$", "errorMessage": "Must be a valid AR phone number" } |
contains | Value must contain the specified substring. | { "rule": "contains", "value": " ", "errorMessage": "Must include a space (e.g., full name)" } |
if, then, and else keywords enable conditional validation (e.g., requiring different fields based on accountType).react-jsonschema-form) to dynamically show/hide fields based on conditions.uiSchema, located at data.schema.uiSchema, provides UI-specific hints for form rendering, typically used with react-jsonschema-form.| Property | Description | Frontend Action |
|---|---|---|
ui:widget | Input widget type. | Use specified widget (e.g., select). |
ui:placeholder | Placeholder text. | Display in input fields. |
ui:options | Widget options (e.g., enumNames). | Customize widget (e.g., dropdown labels). |
ui:order | Field display order. | Arrange fields in order. |
ui:help | Help text below field. | Show as tooltip or text. |
ui:title | Overrides schema title. | Use as field label. |
ui:description | Overrides schema description. | Display as field description. |
ui:autofocus | Focus on form load. | Set focus on field. |
ui:disabled | Disables field. | Disable input interaction. |
ui:readonly | Makes field read-only. | Prevent editing. |
ui:classNames | CSS classes for styling. | Apply to field elements. |
| Widget | Use Case |
|---|---|
text | Text input (default for strings). |
password | Password input. |
email | Email input (format: "email"). |
tel | Telephone input. |
select | Dropdown menu (enum). |
radio | Radio buttons (enum). |
checkbox | Single checkbox (boolean). |
checkboxes | Multiple checkboxes (array with enum). |
textarea | Multi-line text input. |
date | Date picker (format: "date"). |
datetime-local | Date-time picker (format: "date-time"). |
file | File upload (format: "data-url"). |
hidden | Hidden input (e.g., const fields). |
x-customValidation:default keyword specifies a default value for a field when no user input is provided.default values during initialization.react-jsonschema-form):default values to missing or null fields before processing.