API FacturEvo pour développeurs
REST publique pour automatiser facturation Factur-X, lire vos comptes, déclencher des écritures, intégrer Zapier/n8n/scripts. OpenAPI 3.0, scopes granulaires, rate-limiting, webhooks signés HMAC-SHA256.
Authentification
Générez une clé sur /settings/api-keys (rôle admin requis). Format : flab_live_xxxxxxxx_yyyyyyyy.
curl https://app.facturevo.com/api/public/v1/invoices \ -H "Authorization: Bearer flab_live_..."
Toutes les requêtes nécessitent ce header. La clé porte des scopes (read:invoices, write:invoices, read:clients, etc.) définis à la création.
Lister les factures payées du mois
curl "https://app.facturevo.com/api/public/v1/invoices?status=paid&from=2026-04-01&to=2026-04-30" \ -H "Authorization: Bearer flab_live_..."
Réponse : { "data": [...], "limit": 50, "offset": 0, "count": 12 }
Créer un brouillon de facture
curl -X POST https://app.facturevo.com/api/public/v1/invoices \
-H "Authorization: Bearer flab_live_..." \
-H "Content-Type: application/json" \
-d '{
"client_id": "8f1c...uuid",
"issue_date": "2026-04-30",
"payment_terms": 30,
"lines": [
{
"description": "Audit RGPD",
"quantity": 5,
"unit": "jour",
"unit_price_ht": 800,
"vat_rate": 20
}
]
}'La facture est créée en status: draft. La numérotation officielle + génération PDF Factur-X EN16931 ne s'active qu'à l'envoi (UI ou POST /invoices/{id}/send).
Recevoir des événements (webhooks)
Configurez un endpoint HTTPS sur /settings/webhooks. Vous recevez un POST JSON signé HMAC-SHA256 dans le header X-FacturEvo-Signature: sha256=<hex64> à chaque événement abonné.
Vérification signature côté receveur :
// Node.js / Next.js
import { createHmac, timingSafeEqual } from "node:crypto";
function verify(rawBody: string, header: string, secret: string) {
const expected =
"sha256=" + createHmac("sha256", secret).update(rawBody).digest("hex");
return timingSafeEqual(
Buffer.from(expected, "utf8"),
Buffer.from(header, "utf8"),
);
}Événements disponibles : invoice.created, invoice.sent, invoice.paid, invoice.overdue, expense.posted, client.created.
Sécurité & rate limiting
- • HTTPS obligatoire. URL de webhook refusée sinon.
- • Scopes granulaires par clé : générez des clés read-only pour vos analytics, write-only pour vos POS.
- • 100 req/min/clé. Headers
X-RateLimit-Remaining+Retry-Afteren cas de 429. - • Auto-désactivation webhook après 10 échecs consécutifs (votre endpoint devient instable → on coupe pour éviter le DoS).
- • Tous les serveurs en France (Clever Cloud, Paris). Données ne quittent jamais l'UE.
OpenAPI 3.0 spec
Spec machine-readable pour générer un SDK avec openapi-generator, importer dans Postman, ou explorer dans Swagger UI.