Skip to content

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:

Text
contact.email
guests[0].email
guests[1].name

Validation 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.

JSON
{
  "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.