Vue d'ensemble
L'API de facturation Invovate permet aux développeurs de générer des factures professionnelles en un seul appel HTTP POST. Vous pouvez choisir entre une réponse JSON structurée avec tous les calculs ou un téléchargement PDF direct. L'API prend en charge 11 langues, plus de 20 devises et 5 modèles de design — idéale pour les freelances, les entreprises SaaS et les applications comptables françaises et francophones.
Gratuit pour démarrer
40 requêtes/heure, sans carte bancaire
JSON ou PDF
Choisissez votre format de sortie
TVA automatique
Par ligne ou globale (20%/10%/5.5%)
Multilingue
fr, en, de, es, nl et plus
https://invovate.com/api
Démarrage rapide
Votre première facture en trois étapes :
Inscrivez-vous gratuitement sur invovate.com et vérifiez votre adresse e-mail.
Accédez au tableau de bord et cliquez sur "Générer une clé API". Votre clé commence par
inv_.
Authentification
L'API prend en charge trois méthodes d'authentification :
1. Clé API (recommandé côté serveur)
2. Cookie de session (pour les applications web)
Si vous êtes connecté via le navigateur, le cookie inv_session est envoyé automatiquement.
3. Anonyme (sans authentification)
Les appels sans authentification sont possibles mais limités à la sortie JSON et restreints par adresse IP. Utile pour tester l'API.
Limites & Tarifs
| Plan | Prix | Par heure | Par semaine |
|---|---|---|---|
| Gratuit | 0 € | 40 | 400 |
| Starter | 9 €/mois | 200 | 4 000 |
| Pro | 29 €/mois | 1 000 | 40 000 |
| Enterprise | Sur devis | Illimité | Illimité |
Les limites sont renvoyées dans les en-têtes de réponse :
Générer une facture
Génère une facture et renvoie un JSON avec tous les calculs ou un fichier PDF binaire.
Format de requête
Émetteur (from)
| Champ | Type | Requis | Description |
|---|---|---|---|
| from.name | string | Oui | Nom de votre entreprise |
| from.address | string | Non | Adresse de votre entreprise |
| from.email | string | Non | Votre adresse e-mail |
| from.tax_id | string | Non | Numéro SIRET ou TVA intracommunautaire |
Destinataire (to)
| Champ | Type | Requis | Description |
|---|---|---|---|
| to.name | string | Oui | Nom du client ou de l'entreprise |
| to.address | string | Non | Adresse du client |
| to.email | string | Non | E-mail du client |
Données de la facture (invoice)
| Champ | Type | Défaut | Description |
|---|---|---|---|
| invoice.number | string | Auto | Numéro de facture |
| invoice.date | string | Aujourd'hui | Date d'émission (AAAA-MM-JJ) |
| invoice.due_date | string | — | Date d'échéance (AAAA-MM-JJ) |
| invoice.currency | string | USD | Code devise (ex. EUR) |
| invoice.language | string | en | Code langue (ex. fr) |
| invoice.terms | string | — | Conditions de paiement |
| invoice.po_number | string | — | Numéro de bon de commande |
Lignes (items tableau)
| Champ | Type | Requis | Description |
|---|---|---|---|
| description | string | Oui | Description du produit ou service |
| quantity | number | Oui | Quantité |
| unit_price | number | Oui | Prix unitaire HT |
| discount | number | Non | Remise (pourcentage ou montant) |
| discount_type | string | percent | "percent" ou "amount" |
| tax_rate | number | Non | Taux de TVA par ligne (ex. 20) |
Autres champs
| Champ | Type | Description |
|---|---|---|
| global_tax | number | TVA globale (appliquée si aucun taux par ligne) |
| global_discount | number | Remise sur le total |
| global_discount_type | string | "percent" ou "amount" |
| amount_paid | number | Montant déjà réglé (pour paiement partiel) |
| notes | string | Notes en bas de facture |
| refund_policy | string | Politique de remboursement |
| template | string | Nom du modèle : classic, modern, bold, minimal, navy |
| output | string | "json" (défaut) ou "pdf" |
Format de réponse
Réponse JSON (output: "json")
Réponse PDF (output: "pdf")
Renvoie un fichier PDF binaire avec les en-têtes suivants :
Codes d'erreur
| Statut HTTP | Signification |
|---|---|
| 400 | Erreur de validation — vérifiez le format de votre requête |
| 401 | Authentification requise ou clé API invalide |
| 403 | Adresse e-mail non vérifiée |
| 429 | Limite de débit dépassée |
| 500 | Erreur interne du serveur |
Endpoints d'authentification
| Méthode | Chemin | Description |
|---|---|---|
| POST | /api/auth/register | Créer un compte avec e-mail et mot de passe |
| POST | /api/auth/login | Se connecter, renvoie un cookie de session |
| POST | /api/auth/logout | Se déconnecter |
| GET | /api/auth/me | Obtenir les infos utilisateur et la clé API |
| POST | /api/auth/generate-api-key | Générer une nouvelle clé API (e-mail vérifié requis) |
Exemples de code
cURL — Facture PDF avec TVA française
JavaScript (Node.js)
Python
Langues prises en charge
| Code | Langue | Direction |
|---|---|---|
fr | Français | LTR |
en | Anglais | LTR |
de | Allemand | LTR |
nl | Néerlandais | LTR |
es | Espagnol | LTR |
it | Italien | LTR |
pt | Portugais | LTR |
ru | Russe | LTR |
hi | Hindi | LTR |
ja | Japonais | LTR |
ar | Arabe | RTL |
Modèles PDF
| Nom | Style |
|---|---|
classic | Accent bleu, lignes grises alternées (défaut) |
modern | Teal/cyan, design moderne épuré |
bold | En-tête anthracite sombre, fort contraste |
minimal | Gris clair, sans bordures |
navy | En-tête bleu marine avec liseré doré |
Devises prises en charge
EUR, USD, GBP, JPY, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, BRL, MXN, ZAR, SEK, NOK, DKK