API v1

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-After en 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.

Besoin d'aide ? L'équipe FacturEvo répond en moins de 24h ouvrées sur dev@facturevo.com. Bug ou suggestion ? Ouvrez une issue GitHub.