Accueil · Connexion · Créer un compte gratuit

API et aide

Référence technique

Comment ça marche

  1. Créez un formulaire (titre, questions, modèle) : il est enregistré dans votre bibliothèque et téléchargeable en PDF remplissable.
  2. Envoyez-le à un client : il reçoit un lien pour le remplir en ligne ou télécharger le PDF.
  3. Les réponses arrivent dans « Réponses » (export CSV), par courriel et par webhook.

Types de questions : text (Texte court), long (Texte long), email (Courriel), tel (Téléphone), number (Nombre), date (Date), radio (Choix unique), check (Choix multiples), select (Liste déroulante), yesno (Oui / Non), sign (Signature). Les types radio, check et select exigent options (2 à 12). Modèles : classique, moderne, minimal, elegant, corporate.

API REST

Base : https://formix.exodecanada.com/api.php?r=… · En-tête Authorization: Bearer fm_… (clé créée dans Paramètres) · JSON UTF-8 · 600 requêtes / 15 min.

AppelRôle
GET r=templatesModèles (avec aperçu SVG) et types de questions.
GET r=usageForfait, usage du mois, upgrade_url pour passer à Pro.
GET/POST r=modelsBibliothèque de formulaires PDF à remplir : liste, ou ajout (name, pdf_base64 — PDF à champs remplissables, 15 Mo max). Réponse 402 quota_exceeded si la limite du forfait est atteinte.
GET/POST/DELETE r=model&id=Lire un modèle (avec ses champs), enregistrer ses liens (form_id, map : champ PDF → a:<question>, x:nom, x:email, x:date, x:cabinet, x:pro) ou le supprimer.
POST r=fillmodel_id, send_id (réponse remplie), context facultatif (x:cabinet, x:pro) : renvoie le PDF rempli (pdf_base64, ou PDF brut avec &raw=1). Compte dans les remplissages du mois.
GET / POST r=formsLister / créer. Corps : title, descr, template, questions[]. Réponse 402 quota_exceeded si la limite du forfait est atteinte.
GET / POST / DELETE r=form&id=Lire / modifier (champs partiels) / supprimer.
GET r=pdf&id= · POST r=pdfPDF remplissable d’un formulaire enregistré, ou d’une définition à la volée (compte comme un formulaire généré). Réponse JSON pdf_base64 ; ajoutez &raw=1 pour le binaire.
POST r=sendform_id, to_name, to_email, ref (votre identifiant), send_email (défaut true). Retourne le lien de remplissage.
GET r=sends · GET r=send&id=Envois (filtres form_id, ref, status=completed|sent) / un envoi avec ses réponses.
GET / POST r=hooks, DELETE r=hook&id=, POST r=hook_test&id=Webhooks sortants.
curl -X POST 'https://formix.exodecanada.com/api.php?r=forms' \
  -H 'Authorization: Bearer fm_…' -H 'Content-Type: application/json' \
  -d '{"title":"Évaluation initiale","template":"moderne","questions":[
        {"label":"Nom complet","type":"text","required":true},
        {"label":"Situation","type":"radio","options":["Étudiant","Travailleur"]}]}'

Webhooks

Événement form.completed : {"id","event","created","data":{"form":{…},"send":{…},"answers":[{"label","type","value"}]}}. En-têtes X-Formix-Event, X-Formix-Delivery et X-Formix-Signature: t=<horodatage>,v1=<HMAC-SHA256 de "t.corps" avec le secret du webhook>. En cas d’échec : nouvel essai après 1 min, 5 min, 30 min, 2 h puis 12 h (tâche cron.php).

$ok = hash_equals(hash_hmac('sha256', $t . '.' . file_get_contents('php://input'), $secret), $v1);