Ligne de commande¶
C'est le même binaire, mais pas le même contrat. Le terminal expose le mode direct : un convertisseur HTML + JSON → Factur-X, utile pour scripter, déboguer, ou travailler sans IA. Il applique les mêmes règles EN 16931 et le même auto-contrôle que le serveur MCP.
Le mode direct n'émet pas de facture
-html rend le fichier qu'on lui donne : il n'attribue aucun numéro et
n'inscrit rien au registre. La numérotation légale — séquence continue, sans
trou, jamais réutilisée — n'existe que par les outils MCP.
Dans un dossier d'organisation, gofact -html refuse donc de générer un fichier
inconnu du registre, et ne sert plus qu'à re-rendre une facture déjà émise. Pour en
émettre une, demandez-la à votre IA (create_invoice).
Générer une facture¶
# -data et -out déduits du nom du HTML :
gofact -html "2026001 - ACME.html"
# → lit "2026001 - ACME.json", écrit "2026001 - ACME.pdf"
# Chemins explicites + XML CII dumpé pour inspection :
gofact -html f.html -data f.json -out f.pdf -xml f.xml
| Option | Effet |
|---|---|
-env <fichier> |
.env explicite (défaut : ./.env puis ~/.config/gofact/.env) |
-validate=false |
saute l'auto-contrôle du PDF produit |
-chrome <chemin> |
force l'exécutable du navigateur |
-q |
silencieux (erreurs seulement) |
Code de sortie 0 si le Factur-X est produit et conforme.
Le sidecar JSON¶
Les données structurées de la facture. Tous les montants en centimes — jamais de flottant. Le vendeur, l'IBAN et le régime de TVA viennent de la configuration de l'organisation : le JSON ne porte que ce qui varie.
{
"number": "2026001",
"issue_date": "2026-08-31",
"buyer": {
"name": "ACME SAS",
"siret": "55208131700015",
"email": "compta@acme.example",
"electronic_address": "552081317",
"electronic_address_scheme": "0225",
"address": "1 rue de la Paix",
"postal_code": "75002",
"city": "Paris"
},
"lines": [
{ "name": "Développement backend", "unit": "day", "quantity": "2.00",
"unit_price_ht_cents": 60000, "amount_ht_cents": 120000 }
]
}
Champs optionnels : type (invoice | credit_note), due_date (défaut : à
réception), delivery_date (défaut : émission), currency (défaut EUR), vat
({"exempt": false, "rate_pct": "20.00"} pour la TVA standard), buyer_reference,
seller, iban, notes.
Organisations¶
gofact org list # organisations découvertes, compteurs, prochain numéro
gofact org init -path DIR -name "…" -siret … -iban …
gofact org show # fiche détaillée — jamais de secret affiché
Envoi PDP¶
gofact -html f.html -send -poll # génère puis dépose
gofact send -pdf f.pdf -poll # dépose un PDF existant
Identifiants lus dans l'environnement ou le .env (voir Envoi PDP).
Serveur et installation¶
gofact mcp # serveur MCP sur stdio
gofact install [-yes] # configure les clients MCP du poste
Variables d'environnement¶
Le fichier .env.example
du dépôt les documente toutes : identité GOFACT_SELLER_*, GOFACT_PAYEE_IBAN,
mentions d'exonération GOFACT_VAT_*, GOFACT_CHROME, GOFACT_OFFLINE,
GOFACT_PDP, SUPERPDP_*.