Partner Signer — Aperçu
Partner Signer est l'offre pour les éditeurs de logiciels (ISV) qui veulent permettre à leurs propres clients de signer localement des factures TEIF avec leur carte à puce TunTrust (PKCS#11/USB), via l'agent local FatooraSigner — sans jamais manipuler le code PIN ni le transmettre à vos serveurs.
Contrairement à Partner API, il n'y a aucune étape de consentement côté client : c'est vous, le partenaire, qui pré-enregistrez directement les matricules fiscaux de vos clients, sur la base de votre propre relation commerciale avec eux.
Les acteurs
- Vous (l'application partenaire) — un ISV qui intègre une UI de signature dans sa propre application web.
- Fatoora Cloud (
business.fatoora.tn) — émet les JWT du client final et valide chaque session de signature contre votre whitelist de domaines et votre liste de clients pré-enregistrés. - FatooraSigner — l'agent local installé sur la machine du client final. Il parle au token PKCS#11 directement, et à Fatoora Cloud pour la validation de session — jamais à vos serveurs.
- Le client final — la personne qui signe, avec sa propre carte à puce TunTrust.
- TTN — l'agent local FatooraSigner peut soumettre directement les factures signées à TTN (voir Authentification et signature) — une capacité que Partner API n'expose pas.
Principes clés
- Pas d'étape OTP. Vous pré-enregistrez vous-même le matricule fiscal d'un client (
POST /api/partner/signer/clients) — Fatoora ne demande pas au client d'approuver. Vous êtes responsable d'avoir votre propre accord avec chaque client avant de le pré-enregistrer. - Le PIN ne quitte jamais la machine du client. Il est envoyé directement du navigateur vers
127.0.0.1:38443, chiffré en mémoire pour la durée de la session, jamais transmis à Fatoora Cloud ni à vos serveurs. - La whitelist de domaines protège la vérification de session côté cloud, pas la politique CORS de l'agent local — ce sont deux couches distinctes, détaillées dans Authentification et signature.
Workflow
| Étape | Acteur | Action |
|---|---|---|
| 1 | Client | Crée un compte Fatoora |
| 2 | Partenaire → Fatoora | Whiteliste le domaine de son application web (une fois) |
| 3 | Partenaire → Fatoora | Pré-enregistre le matricule du client (aucune action requise du client) |
| 4 | Client → Fatoora | Se connecte, obtient un JWT court-terme |
| 5 | Client → FatooraSigner | Ouvre une session de pont locale (JWT + identifiant partenaire) |
| 6 | FatooraSigner → Fatoora | Valide la session (domaine + matricule pré-enregistré) |
| 7 | Client → FatooraSigner | Signe la facture TEIF avec le PIN PKCS#11 local |
| 8 | Partenaire → Fatoora | Peut lister ses clients et domaines à tout moment |
Onboarding
Étape 1 — Inscription
POST /api/partner/register
{ "partnerType": "signer", "companyName": "...", "contactEmail": "..." }
Provisionne un clientId + client secret (même mécanisme que Partner API). Votre compte démarre en pending_verification.
Les partenaires Signer ne sont jamais listés dans le catalogue public — vos clients vous connaissent déjà via votre propre produit, pas via Fatoora.
Si votre produit a aussi besoin d'une intégration API classique, inscrivez-vous avec partnerType: "both" pour débloquer les deux offres.
Étape 2 — Whitelister vos domaines
POST /api/partner/signer/domains { "domain": "votreapp.example.com" }
domain doit être un nom d'hôte nu (sans schéma). Plafonné à maxAllowedDomains selon votre plan (1 pour partner-signer, 5 pour partner-signer-pro).
Étape 3 — Pré-enregistrer vos clients
POST /api/partner/signer/clients { "taxId": "1234567ABC000", "clientName": "Client SARL" }
POST /api/partner/signer/clients/bulk { "clients": [...] }
Plafonné à maxSignerClients selon votre plan (50 pour partner-signer, 300 pour partner-signer-pro).
Une fois le matricule pré-enregistré et actif, et le navigateur sur un domaine whitelisté, le client peut ouvrir une session de signature immédiatement.
Détail complet de ces endpoints : Gestion des domaines et clients.