if/then rules, so your integration can adapt
to schema changes instead of hardcoding field requirements.
Nature of business
The primary conditional driver is Nature of Business (NOB). This classification is set during application creation and determines which sections and fields appear. For example, acryptoExchange application may require
different documentation than a trust application.
How conditionals work
TheallOf array in the schema contains if/then blocks:
- The
ifclause checks the value of a parent field (most commonlynature_of_business). - When the condition is met, the
thenclause adds fields to therequiredarray, making them mandatory.
The following example shows an exact string match condition:
natureOfBusiness is cryptoExchange, the schema requires
cryptoExchangeLicenseNumber. The same if/then pattern works for all types
in the preceding table. Swap in the right JSON Schema keyword in the if block:
enum for OR lists, contains for arrays, not for negation.
Conditional side effects
After saving a section that contains a conditional parent field, other fields or sections may become required. For example,country=US may require a state field.
businessWebsiteProvided=false may require noWebsiteReason.
beneficialOwnersExist=true may turn on the beneficial owners section.
Array sections can also activate
this way. The API tells you through three signals:
sectionsChangedflag: Returned in every save response. Whentrue, the section list has changed and you should re-fetch sections.fieldsChangedflag: Returned in every save response. Whentrue, the server modified one or more field values during save, for example clearing a field that no longer applies after a conditional change.- Updated
sectionsarray: The response includes the current status of all active sections, not just the one you saved.
Mutually exclusive groups
Some conditionals create mutually exclusive branches. For example, different variants ofbasic_business_info may exist for different NOB values. Only one
branch’s fields are required at a time. The schema enforces this automatically.
Design considerations
- Integrations that skip re-fetching after a
sectionsChangedresponse risk submitting incomplete applications. - Client-side validation against the schema (
minLength,pattern,enum) before submitting reduces round-trips and improves the user experience. - Add
?resolved=trueto the schema endpoint. You get only the fields that are active for your saved data. You do not need to evaluate conditional rules in your own code.