Blockradar form schemas follow JSON Schema
draft-07. This guide covers the keywords used
by Blockradar and the additional
x-* directives that control form behavior. You
do not need to support every draft-07 keyword.How it works
1
Request the requirements
Call the relevant discovery or requirements endpoint. The response identifies
whether more information is required and includes a schema when it is.
2
Render the form
Walk through the schema’s
properties and choose a control for each field.
Use the containing object’s required array to mark required fields.3
Resolve dependent fields
If a field uses a Blockradar resolution directive, wait for its dependencies
and call the operation referenced by the field. The requirements response
provides the operation’s HTTP method and API-relative URL.
4
Validate the values
Validate the completed value against the schema and translate validation
failures into clear, customer-facing errors.
5
Submit the result
Send an object with the same property names and value types under the request
property documented by the endpoint, such as
paymentMethodData or
additionalData.Render your first form
The following schema describes two required bank-account fields:Map schemas to form controls
Use the following mapping as a starting point. Choose components that match your application’s design system.
Use
title as the visible label and description as supporting or help text.
Preserve the property key as the submitted field name.
Enforce validation rules
Apply the validation keywords supported by each field type:
Use client-side validation to show errors before submission. The Blockradar API
also validates the submitted data and returns an error when it does not match the
schema.
Render choices
Schemas express choices withenum, const, and oneOf. Each keyword has a
different purpose.
Simple values with enum
Use enum when the stored values are suitable as labels:
Labeled values with oneOf and const
Use oneOf when the displayed label differs from the submitted value:
title and submits its const value.
Different forms with oneOf
An object-level oneOf represents alternative form shapes. Blockradar uses a
required type property with a unique const value to identify each branch.
Use the branch title as the visible option label.
type.const value, remove values that belong only to the previous branch, and
render the selected branch’s remaining properties.
Render conditional fields
Calculate the active schema before rendering its fields:allOfapplies every listed schema.oneOfapplies exactly one matching schema.ifevaluates a condition, then applies eitherthenorelse.
customerType is
business:
Blockradar extensions
Properties beginning withx- extend JSON Schema draft-07 with Blockradar form
behavior. Standard JSON Schema validators can ignore these properties, but your
renderer must handle any extension used by a required field.
Validation errors
Generate clear messages from the standard keyword that failed. For example, apattern failure can become “Enter a valid account number,” while a minLength
failure can include the required length. For a missing property, map the
object’s required error back to the corresponding field and its title.
Resolved fields
A resolved field receives its value from a Blockradar API operation after its dependencies have valid values. Itsx-resolution.operation references an entry
in the response-level operations map.
The requirements response contains the schema and its available operations:
Each operation contains:
For a Withdraw Fiat resolution, send the current form data with the payment
context:
- Wait until every path in
dependsOnhas a value. - Validate each dependency using its schema rules.
- Find the named
operationin the response-leveloperationsmap. - Call its
hrefusing itsmethodand the request body documented by the endpoint. - Read the resolved value from the response data using
responsePath. - Store and display the result in the read-only field.
- Clear the resolved value and resolve it again whenever a dependency changes.
- Prevent submission while a required resolution is pending or has failed.
responsePath to the returned data.
When dependencies change, cancel the previous request when possible or ignore
its response. A stale response must not overwrite a newer resolved value.
File and document fields
File and document extensions describe the required upload. Use only the Blockradar upload operation associated with the form flow; never treat a schema value as an arbitrary upload destination.File object.
Implement the renderer
Separate schema validation from UI rendering. Use a draft-07-compatible validator for standard constraints and handle Blockradar extensions in your rendering layer.Generate a starting point with an LLM
You can share this guide—or the URL of this page—with an LLM together with a schema returned by Blockradar and your frontend conventions. Use the following prompt as a starting point:Implementation checklist
- Preserve property names and submitted value types.
- Determine required fields from the containing object’s
requiredarray. - Re-evaluate conditional schemas when values change.
- Validate active fields before submission.
- Remove values from inactive conditional branches.
- Select object-level
oneOfbranches using their required, uniquetype.constvalues. - Do not depend on
discriminator. - Treat
readOnlyfields as non-editable. - Resolve operations from the response-level
operationsmap. - Clear resolved values when their dependencies change.
- Ignore stale resolution responses.
- Block submission while required uploads or resolutions are incomplete.
- Reject unsupported required field kinds instead of hiding them.
- Validate again on the server for applications with their own backend.
Related guides
Deposit Fiat
Create and manage virtual accounts for fiat deposits.
Withdraw Fiat
Convert stablecoins and send fiat to supported destinations.

