Sections group fields visually on the registration form. The order of sections among themselves follows the index set at creation; the order of fields within a section follows the order in which they were associated with it.
Fields are the data actually collected — name, type, whether it is required, help text, options (when applicable), and behavior (fixed or conditional). A field may exist without a section (in which case its position follows its own index) or associated with a section.
Rules define conditional behavior tied to a specific field: showing or hiding other fields based on the filled-in value, or automatically calculating a field's value from other fields.
One configuration per company. The scope is companyId, not flowId. Before creating a new configuration, check GET /v1/client-config/companies/{companyId}: a 200 response means the company already has a configuration, and new fields should be added through field or section creation, never through a new configuration creation.
description and help are required on every field. In any write operation — configuration creation, field creation, or field update — omitting a non-empty description or help returns a 400 error naming the specific field.
The field type belongs to a closed set of 27 values. Sending a type outside this set (or omitting it) returns 400 listing every accepted value. The set is the same one used by the flow start form, plus the cep type.
options is always a plain list of strings. For select or checkList fields, options must never be sent as a list of objects with separate label and value.
index and name must be unique within each batch call. When creating multiple fields or sections in a single request, duplicate index or name values are rejected.
PUT fully replaces; PATCH partially updates. For sections, fields and rules, the full update (PUT) requires resending every original attribute — omitting a required attribute returns 400. The partial update (PATCH) accepts only the attributes to be changed, preserving the rest.
Associating a field with a section changes its index. When section is provided with a section identifier on a field, that field's individual index is automatically set to null by the API, and its position within the section follows the order in which it was associated with it — not a configurable numeric value. Sending section as null removes the field from the section and restores its individual index.
Rules are evaluated on the user interface. The API stores a rule's definition (display condition or calculation expression) but does not execute it over client records created or updated directly: the show, hide, or calculate behavior is only observable when filling in the registration form through the interface.
Removing a configuration, section, or field is a destructive operation. Removing a client configuration permanently eliminates all of its sections, fields, and rules. Removing a field also eliminates the rules associated with it. Already filled-in client records keep the historical data, but the removed field no longer exists in the company's schema.