Zynk
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
  1. Accounts & Wallets
  • Transformer - Cross Border Transfer
    • Overview
    • Customers & Identity
      • Entities/Customers
      • About KYC/KYB
      • RFI Scenarios for Customers
      • Identity Rejection Reasons
    • Accounts & Wallets
      • External Accounts(To be deprecated soon)
      • Fetch Requirements for External Accounts V2
      • External Accounts V2
      • Funding Accounts
      • About Plaid Integration
    • Transfers
      • Counterparty Risk details
      • Addition transfer requirements
      • Transfer in Action
      • Limits and Minimums
      • Fee details
    • Miscellaneous
      • Bank Codes
      • Supported chains and currencies
      • Partner payments signature generation
      • Reserves requirements
      • Partner Payments
      • Status updates - Webhooks
  • Transporter - Automated Liquidity Manager
    • Overview
    • Visibility Protocol
    • Instant liquidity process - How it works
    • Status updates - Webhooks
  • Teleport - Pay-In Accounts
    • Overview
    • About Teleport routes
  • Warp - Pay-Outs
    • Overview
  • Continuum - Wallet Infrastructure
    • Overview
    • Authentication
    • Continuum APIs
    • Transactions on Continuum
    • Details on generating signatures
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
Getting StartedProduct GuidesAPI ReferenceFAQ'sRecipes
  1. Accounts & Wallets

Fetch Requirements for External Accounts V2

Overview#

This document provides comprehensive guidance for frontend and integrations teams on interpreting and utilizing JSON Schema Draft-07 requirements and their corresponding uiSchema for External Accounts V2 payloads.
The guide details how to:
Render dynamic forms based on schema specifications
Apply proper validations for data integrity
Handle default values appropriately
Process jurisdiction-specific account requirements
This ensures seamless integration between client implementations and backend services, creating a consistent user experience while maintaining data quality standards.
The goal is to enable:
Frontend to render dynamic, user-friendly forms, prefill default values, and enforce real-time validations based on JSON Schema and uiSchema.
Integrations to validate, process, and handle payloads, ensuring compatibility with backend expectations.
The External Account Payload Requirements API provides comprehensive information about required fields, validation rules, and UI rendering guidelines for different jurisdictions. Please refer to the API Reference documentation also for detailed endpoint specifications, request/response formats, and implementation examples.

1. Interpreting JSON Schema#

JSON Schema Draft-07 defines the structure, validation rules, and default values for account payloads.
FieldDescriptionType
idUnique identifier for the schemaString
jurisdictionJurisdiction identifier this schema applies toString
titleHuman-readable title of the schemaString
descriptionDetailed description of the schema purposeString
typeJSON Schema type (typically "object")String
additionalPropertiesWhether additional properties are allowedBoolean
requiredArray of required property namesArray
propertiesObject containing all field definitionsObject
if, then, elseConditional logics for dynamic validationObject

1.1 Common Validation Keywords#

These keywords guide form rendering, validation, and default value handling.
CategoryKeywordDescriptionFrontend Action
Any TypetypeData type (string, number, integer, object, array, boolean, null).Use appropriate input (e.g., text for string).
enumAllowed values.Render select or radio.
constFixed value.Use hidden widget or prefill.
defaultDefault value for the field.Prefill form field with this value if no user input is provided.
StringsminLength, maxLengthString length limits.Validate input length.
patternRegex pattern.Apply regex validation.
formatPredefined format (e.g., email, date).Use specific widgets (e.g., email, date).
Numbersminimum, maximumInclusive bounds.Restrict number range.
ArraysitemsSchema for array items.Render repeatable sections.
ObjectspropertiesField schemas.Render nested sections.
requiredMandatory fields.Mark as required (e.g., with *).
Conditionalif, then, elseConditional rules.Show/hide fields dynamically.

Handling the default Keyword#

Purpose: Specifies a default value for a field, used when no value is provided by the user.
Frontend Action: Prefill the form field with the default value during initialization. Allow users to override it unless ui:readonly or ui:disabled is set.
Integrations Action: Use the default value when processing payloads if the field is missing or null.

1.2 Custom Validations#

The x-customValidation keyword defines non-standard validation rules for any field, with the structure:
"x-customValidation": {
  "rule": "<ruleName>",
  "value": "<expectedValue>",
  "errorMessage": "<errorMessage>"
}
Supported Rules:
RuleDescriptionExample
startsWithValue must start with the specified string.{ "rule": "startsWith", "value": "AR-", "errorMessage": "Must start with AR-" }
endsWithValue must end with the specified string.{ "rule": "endsWith", "value": "-AR", "errorMessage": "Must end with -AR" }
customRegexValue must match the specified regex.{ "rule": "customRegex", "value": "^\\+54\\d{9}$", "errorMessage": "Must be a valid AR phone number" }
containsValue must contain the specified substring.{ "rule": "contains", "value": " ", "errorMessage": "Must include a space (e.g., full name)" }

1.3 Conditional Logic#

The if, then, and else keywords enable conditional validation (e.g., requiring different fields based on accountType).
Frontend Action: Use form library support (e.g., react-jsonschema-form) to dynamically show/hide fields based on conditions.
Integrations Action: Validate payloads against conditional rules using a JSON Schema validator.

2. Interpreting uiSchema#

The uiSchema, located at data.schema.uiSchema, provides UI-specific hints for form rendering, typically used with react-jsonschema-form.

2.1 Common Properties#

PropertyDescriptionFrontend Action
ui:widgetInput widget type.Use specified widget (e.g., select).
ui:placeholderPlaceholder text.Display in input fields.
ui:optionsWidget options (e.g., enumNames).Customize widget (e.g., dropdown labels).
ui:orderField display order.Arrange fields in order.
ui:helpHelp text below field.Show as tooltip or text.
ui:titleOverrides schema title.Use as field label.
ui:descriptionOverrides schema description.Display as field description.
ui:autofocusFocus on form load.Set focus on field.
ui:disabledDisables field.Disable input interaction.
ui:readonlyMakes field read-only.Prevent editing.
ui:classNamesCSS classes for styling.Apply to field elements.

2.2 Supported Widgets#

WidgetUse Case
textText input (default for strings).
passwordPassword input.
emailEmail input (format: "email").
telTelephone input.
selectDropdown menu (enum).
radioRadio buttons (enum).
checkboxSingle checkbox (boolean).
checkboxesMultiple checkboxes (array with enum).
textareaMulti-line text input.
dateDate picker (format: "date").
datetime-localDate-time picker (format: "date-time").
fileFile upload (format: "data-url").
hiddenHidden input (e.g., const fields).

3. Handling Custom Validations#

To handle x-customValidation:
1.
Traverse Schema:
2.
Implement Validation Logic:
3.
Integrate with Form:

4. Handling Default Values#

The default keyword specifies a default value for a field when no user input is provided.
1.
Frontend Implementation:
Prefill form fields with default values during initialization.
Example (React with react-jsonschema-form):
2.
Integrations Implementation:
Apply default values to missing or null fields before processing.
Example (Node.js):

5. Resources#

JSON Schema Draft-07: http://json-schema.org/draft-07/schema#
react-jsonschema-form: https://rjsf-team.github.io/react-jsonschema-form/
AJV Validator: https://ajv.js.org
ISO 3166-1 Codes: https://www.iso.org/iso-3166-country-codes.html
Modified at 2025-11-14 15:01:05
Previous
External Accounts(To be deprecated soon)
Next
External Accounts V2
Built with