Référence, limites et téléchargements
Gestion des erreurs
Codes d'erreur les plus fréquents :
| Code | HTTP | Signification / correction |
|---|---|---|
invalid_client | 401 | client_id/client_secret incorrect |
| No token provided / Invalid or expired token | 401 | Redemandez un token via POST /oauth/token |
INSUFFICIENT_SCOPES | 401/403 | Votre clé n'a pas le scope requis — créez une nouvelle clé avec les bons scopes |
NO_ORGANIZATION | 400 | Token corrompu — régénérez votre client_secret |
NO_SERVICE_APP | 404 | Aucun accès API actif pour votre organisation — vérifiez votre abonnement DigiGO/SEAL/Trust |
VALIDATION_ERROR / INVOICE_VALIDATION_ERROR | 400/422 | Le TEIF ne respecte pas le schéma/les règles métier — voir details[] |
NO_SIGNATURE_CREDITS | 402 | Votre quota de signature et vos crédits de pack sont épuisés |
RATE_LIMIT_EXCEEDED / TOO_MANY_REQUESTS | 429 | Patientez et réessayez (voir ci-dessous) |
Limites de débit et quotas
| Limiteur | Portée | Limite |
|---|---|---|
POST /oauth/token | par IP | 30 requêtes / 15 min |
Tous les autres appels /api/* | par IP | 300 requêtes / 15 min |
Quotas de plan (indépendants des limites de débit) : votre abonnement plafonne le nombre total de factures par mois civil (plus élevé sur les paliers business/max, illimité sur certains) ; la signature consomme spécifiquement votre quota de signature (abonnement, ou crédits de pack en dépassement).
Exemple de code
const tokenRes = await fetch('https://<base_url>/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'client_credentials',
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
}),
});
const { access_token } = await tokenRes.json();
const res = await fetch('https://<base_url>/api/v2/invoices/submit', {
method: 'POST',
headers: { Authorization: `Bearer ${access_token}`, 'Content-Type': 'application/json' },
body: JSON.stringify(invoice),
});
console.log((await res.json()).id);
Plus d'exemples (Python, XML, signature, webhooks) dans le guide PDF complet ci-dessous.
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 — schémas de réponse détaillés, tous les codes d'erreur, structure TEIF complète, 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 Organisation API 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.
- 🧩 Guide dédié et téléchargement du script Bash — exemple exécutable (
curl+jq) : récupération automatique dutaxIdentifier, validation du vendeur, soumission de facture (XML ou JSON), signature SEAL, suivi du job jusqu'à acceptation TTN, puis téléchargement du XML signé et du PDF../fatoora-full-workflow.sh --helppour la liste des options.
Une fois votre clé API créée, retrouvez ces mêmes fichiers — pré-remplis avec votre client_id — depuis Tableau de bord Fatoora → /app/api-keys → onglet « Utilisation de l'API ».