Aller au contenu principal

Référence, limites et téléchargements

Gestion des erreurs​

Erreurs de validation de session (cloud)​

CodeHTTPSignification
"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_FOUND403partnerAppId ne correspond à aucun partenaire enregistré
NOT_SIGNER_PARTNER403partner_type du profil n'est pas signer/both
PLAN_NOT_ELIGIBLE403Abonnement partner-signer/partner-signer-pro non actif/trial
ORIGIN_NOT_WHITELISTED403Domaine appelant absent de votre whitelist
CLIENT_NOT_PRE_REGISTERED403Matricule du client final non pré-enregistré (ou inactif)

Erreurs de l'agent local​

CodeHTTPSignification
"Invalid or expired token"401Ré-authentifiez le client et ouvrez une nouvelle session
En-tête X-Fatoora-Signer-Session manquant/invalide401Session expirée ou jamais ouverte
SIGN_FAILED (et autres errorCode métier)200Vérifiez le PIN, la présence du token, le pilote PKCS#11 — ce n'est pas une erreur HTTP
(échec de bibliothèque native)500Pilote PKCS#11 non chargé — réinstallez/reconfigurez l'agent

Erreurs de gestion domaines/clients​

CodeHTTPSignification
DOMAIN_ALREADY_EXISTS409Domaine déjà whitelisté
DOMAIN_LIMIT_REACHED / CLIENT_LIMIT_REACHED403Limite de votre plan atteinte
VALIDATION_ERROR400Corps de requête invalide

Limites et quotas​

LimiteurPortéeLimite
/api/partner/signer/*par IP300 requêtes / 15 min
Agent local (127.0.0.1:38443/*)—Aucune — processus local mono-utilisateur
PlanDomaines maxClients maxEssai
partner-signer15014 jours
partner-signer-pro530014 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 APIPartner Signer (cette catégorie)
Planspartner-starter/business/maxpartner-signer, partner-signer-pro
ModèleAPI REST serveur-à-serveur (OAuth2)Pont de signature locale PKCS#11/navigateur
Hôtes impliquésUn (business.fatoora.tn)Deux (business.fatoora.tn + agent local 127.0.0.1:38443)
Onboarding clientAutorisation par OTPPré-enregistrement direct par matricule, sans OTP
Soumission directe à TTNBloquéeAutorisée, depuis l'agent local
Restriction de domaineAucuneWhitelist 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 :

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.