Support

Validation des champs

Validation réutilisable pour les formulaires flow et les backends partenaires.

Valider un champ

POST /api/v1/validate/field

{
  "field": {
    "key": "email",
    "type": "email",
    "label": "E-mail",
    "required": true
  },
  "value": "not-an-email"
}

Réponse

{
  "ok": false,
  "key": "email",
  "value": null,
  "error": "Adresse e-mail invalide.",
  "code": "format"
}

Raccourci

{
  "type": "phone",
  "key": "phone",
  "value": "+228XXXXXXXX"
}

Valider un formulaire

POST /api/v1/validate/form

{
  "fields": [
    { "key": "full_name", "type": "text", "label": "Nom", "required": true },
    { "key": "email", "type": "email", "label": "E-mail", "required": false },
    { "key": "phone", "type": "phone", "label": "Téléphone", "required": true }
  ],
  "values": {
    "full_name": "Ama",
    "email": "[email protected]",
    "phone": "+22890000000"
  }
}
  • 200 lorsque ok: true
  • 422 lorsque la validation échoue (le corps inclut toujours errors)
{
  "ok": false,
  "values": {},
  "errors": {
    "email": "Adresse e-mail invalide."
  },
  "error_list": [
    { "key": "email", "code": "format", "error": "Adresse e-mail invalide.", "label": "E-mail" }
  ],
  "first_error": "Adresse e-mail invalide."
}

Types de champs supportés

typeRègles
textrequired, min/max length, regex optionnel
emaile-mail de type RFC
phoneE.164 après normalisation (+…)
number / integernumérique · min/max optionnels
dateYYYY-MM-DD
booleanoui/non
selectla valeur doit être dans options[].id

Règles personnalisées sur un champ

{
  "key": "nif",
  "type": "text",
  "required": true,
  "validation_regex": "^[A-Z0-9-]{6,20}$",
  "validation_message": "NIF invalide",
  "min_length": 6,
  "max_length": 20
}

Variantes JWT client

Les apps utilisateur final peuvent appeler :

  • POST /api/v1/me/validate/field
  • POST /api/v1/me/validate/form

Même forme de corps ; authentifié avec le token Bearer utilisateur.