Référence, limites et téléchargements
Gestion des erreurs
Erreurs de validation de session (cloud)
| Code | HTTP | Signification |
|---|---|---|
| "Origin ... not allowed by CORS" | 500 | ⚠️ Pas la même chose que ORIGIN_NOT_WHITELISTED — voir la limitation CORS décrite dans Authentification et signature |
PARTNER_NOT_FOUND | 403 | partnerAppId ne correspond à aucun partenaire enregistré |
NOT_SIGNER_PARTNER | 403 | partner_type du profil n'est pas signer/both |
PLAN_NOT_ELIGIBLE | 403 | Abonnement partner-signer/partner-signer-pro non actif/trial |
ORIGIN_NOT_WHITELISTED | 403 | Domaine appelant absent de votre whitelist |
CLIENT_NOT_PRE_REGISTERED | 403 | Matricule du client final non pré-enregistré (ou inactif) |
Erreurs de l'agent local
| Code | HTTP | Signification |
|---|---|---|
| "Invalid or expired token" | 401 | Ré-authentifiez le client et ouvrez une nouvelle session |
En-tête X-Fatoora-Signer-Session manquant/invalide | 401 | Session expirée ou jamais ouverte |
SIGN_FAILED (et autres errorCode métier) | 200 | Vérifiez le PIN, la présence du token, le pilote PKCS#11 — ce n'est pas une erreur HTTP |
| (échec de bibliothèque native) | 500 | Pilote PKCS#11 non chargé — réinstallez/reconfigurez l'agent |
Erreurs de gestion domaines/clients
| Code | HTTP | Signification |
|---|---|---|
DOMAIN_ALREADY_EXISTS | 409 | Domaine déjà whitelisté |
DOMAIN_LIMIT_REACHED / CLIENT_LIMIT_REACHED | 403 | Limite de votre plan atteinte |
VALIDATION_ERROR | 400 | Corps de requête invalide |
Limites et quotas
| Limiteur | Portée | Limite |
|---|---|---|
/api/partner/signer/* | par IP | 300 requêtes / 15 min |
Agent local (127.0.0.1:38443/*) | — | Aucune — processus local mono-utilisateur |
| Plan | Domaines max | Clients max | Essai |
|---|---|---|---|
partner-signer | 1 | 50 | 14 jours |
partner-signer-pro | 5 | 300 | 14 jours |
Aucun plafond de volume de signature sur ces deux plans.
Exemple de code
# 1. Authentifier le client final
ACCESS_TOKEN=$(curl -s -X POST "https://business.fatoora.tn/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"client@example.com","password":"..."}' | jq -r '.accessToken')
# 2. Ouvrir une session de pont locale
SESSION_ID=$(curl -s -X POST "http://127.0.0.1:38443/api/web-bridge/v1/session" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "X-Partner-App-ID: YOUR_PARTNER_APP_ID" | jq -r '.sessionId')
# 3. Signer un document TEIF XML
curl -s -X POST "http://127.0.0.1:38443/api/web-bridge/v1/xml/sign" \
-H "Content-Type: application/json" \
-H "X-Fatoora-Signer-Session: $SESSION_ID" \
-d '{"xml":"<Invoice>...</Invoice>","pin":"1234","signerRole":"CEO","includeChain":true}'
# 4. Fermer la session
curl -s -X DELETE "http://127.0.0.1:38443/api/web-bridge/v1/session" \
-H "X-Fatoora-Signer-Session: $SESSION_ID"
D'autres exemples (JavaScript côté navigateur, gestion des domaines/clients) sont dans le guide PDF complet ci-dessous.
Partner API vs. Partner Signer
| Partner API | Partner Signer (cette catégorie) | |
|---|---|---|
| Plans | partner-starter/business/max | partner-signer, partner-signer-pro |
| Modèle | API REST serveur-à-serveur (OAuth2) | Pont de signature locale PKCS#11/navigateur |
| Hôtes impliqués | Un (business.fatoora.tn) | Deux (business.fatoora.tn + agent local 127.0.0.1:38443) |
| Onboarding client | Autorisation par OTP | Pré-enregistrement direct par matricule, sans OTP |
| Soumission directe à TTN | Bloquée | Autorisée, depuis l'agent local |
| Restriction de domaine | Aucune | Whitelist de domaines obligatoire |
Voir la catégorie Partner API pour le détail de cette autre offre.
Télécharger la documentation technique complète
Cette catégorie couvre l'essentiel du workflow d'intégration. Pour la spécification technique exhaustive — flux de validation de session détaillé, tous les codes d'erreur, structure des requêtes/réponses, exemples multi-langages, spécification OpenAPI et collection Postman intégrées en pièce jointe dans le PDF — téléchargez le guide complet :
- 📄 Guide Partner Signer complet (PDF) — le PDF embarque déjà le fichier OpenAPI et la collection Postman en pièce jointe téléchargeable (icône trombone) dans un lecteur PDF compatible (Adobe Acrobat/Reader).
- 🔧 Spécification OpenAPI (YAML) — lien direct, si vous préférez ne pas ouvrir le PDF.
- 📦 Collection Postman (JSON) — lien direct, prête à importer dans Postman.
Aussi disponible depuis votre tableau de bord
Une fois votre application partenaire créée, retrouvez ces mêmes fichiers depuis Tableau de bord Fatoora → Partner → Credentials → Signer guide.