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.