Démarrer avec Heartwood en moins de 10 minutes

Périmètre actuel (21/07/2026) : génération Factur-X, validation, rule packs (Epic 1), documentation (Epic 2), validateur public (Epic 3), comptes/facturation self-service (Epic 4).

1. Créer un compte et obtenir une clé Découverte (2 min)

Inscription self-service, sans contact humain (FR-9) :

curl -X POST "https://api.example/signup" \
  -H "Content-Type: application/json" \
  -d '{"email": "vous@exemple.fr", "password": "un-mot-de-passe-suffisamment-long"}'
# {"accountId": "...", "apiKey": "fxk_...", "message": "compte créé — vérifiez votre e-mail pour activer la clé (FR-9)"}

La clé est créée mais inactive tant que l'e-mail n'est pas confirmé. Cliquez le lien reçu par e-mail (GET /verify?token=...) pour l'activer. Le palier Découverte inclut [ASSUMPTION] 20 documents/mois, sans carte bancaire — voir la page comptes et facturation pour le détail des paliers.

Vous gérez ensuite vos clés et votre consommation dans l'espace client server-rendered : https://api.example/account/ (connexion par e-mail/mot de passe).

2. Premier appel : valider un document (2 min)

curl -X POST "https://api.example/v1/validate" \
  -H "Authorization: Bearer $FACTURX_API_KEY" \
  --data-binary @ma-facture.xml

Réponse : un verdict conforme: true|false, toujours accompagné du rule pack appliqué — jamais une promesse de conformité réglementaire absolue. Depuis Story 3.7, schematronChecked: true pour les profils Factur-X EN16931 et EXTENDED-CTC-FR (référentiel officiel FNFE-MPE, règles BR-* réelles) — voir la page réglementation pour le détail de ce que cela couvre aujourd'hui.

3. Générer une facture Factur-X (5 min)

curl -X POST "https://api.example/v1/generate/facturx?profile=EN16931" \
  -H "Authorization: Bearer $FACTURX_API_KEY" \
  -H "Content-Type: application/json" \
  -d @ma-facture.json \
  -o facture.pdf

Voir web/docs/examples/ pour des exemples complets par langage (curl, PHP, Python, JS, Go).

Erreurs courantes

Code Signification Action
401 Clé absente ou invalide Vérifier l'en-tête Authorization: Bearer ...
422 Facture incomplète Le corps missing[] liste les champs manquants par leur code BT-*
400 Profil ou rule pack inconnu profile doit être EN16931 ou EXTENDED-CTC-FR
413 Document > 20 Mo Rejeté avant tout traitement
429 Quota Découverte dépassé (20 documents/mois [ASSUMPTION]) Attendre la réinitialisation (date fournie dans detail) ou souscrire un palier payant sur /account/
409 Idempotency-Key réutilisée avec un corps différent Utiliser une nouvelle Idempotency-Key pour un nouveau corps (voir comptes et facturation)

Spécification complète

GET /v1/openapi.json — spécification OpenAPI 3.0.3 à jour, synchronisée avec l'implémentation par des tests de contrat en CI.