uiSchema for External Accounts V2 payloads.This API Returns the JSON Schema Draft-07 and uiSchema for the required payload for adding an external account (fiat or blockchain) for a given jurisdiction.
The schema describes the structure and validation rules for the account(fiat) orwallet(blockchain)objectin the Add External Account API.
Please don't considers the examples given in the API references as the final payload. Depending on your configuration your payload might change. Always call Requirements for External Accounts API to understand the structure.
| 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.