Validation
Formerie validates submitted values on the server. SDK or browser-side checks can improve user experience, but final submission remains authoritative.
Field Paths
Nested fields use dot and bracket paths:
contact.email
guests[0].email
guests[1].nameValidation responses use these paths in both error.fields and error.issues.
Multiple Issues Per Field
A single field can return multiple issues. UI code should preserve all issues and choose whether to show the first issue or the full list.
{
"path": "contact.email",
"code": "FIELD_EMAIL_INVALID",
"message": "Invalid email address.",
"rule": "email",
"params": {}
}Common Field Capabilities
Formerie supports common deterministic validation and normalization patterns:
- required fields
- string min, max, and exact length
- email, URL, phone, UUID, date, time, and date-time checks
- allowed values
- number bounds and integer requirements
- array min, max, and uniqueness checks
- nested object fields
- server-defined contextual form rules
- server-defined conditional visibility rules
- trimming, email normalization, case transforms, and safe sanitizers
Hidden fields are skipped by the API and are not included in sanitized values. Use visibility rules for UI display only; delivery, recipients, templates, and provider credentials remain server-managed.
Partial And Step Validation
Use POST https://forms.formerie.com/{workspaceHandle}/{formHandle}/validate or the SDK validate() helper for progressive forms. If you explicitly target the API
surface, the equivalent API route is POST /v1/{workspaceHandle}/{formHandle}/validate on https://api.formerie.com.
partial: validate only provided fields.step: validate fields configured for the named public step.- final submission: validates the full form and remains authoritative.
Partial validation does not persist submissions, verify CAPTCHA tokens, reserve quota, or send email.