Aller au contenu
Julien Bigot, accueil
Menu
Tous les projets

02/SaaS · Facturation électronique

Nette Factures

La réforme de la facture électronique 2026-2027, automatisée pour les marchands.

Rôle
Produit, architecture et développement full-stack, en solo
Période
sept. – oct. 2026
Statut
En revue sur le Shopify App Store

Code privé — démo sur demande. Le dépôt est privé. Je fais volontiers une démo de l’application en visio ou en entretien.

Demander une démo
Facture Factur-X avec fichiers archivés (PDF et XML CII) et suivi de transmission
lignes de code
~70 k
fichiers de tests
260
sources prises en charge par l’architecture
4
d’archive légale
10 ans

Contexte

Avec la réforme 2026-2027, les entreprises françaises doivent recevoir puis émettre des factures électroniques et transmettre leurs données de vente (e-reporting). Pour un petit marchand en ligne, c’est un chantier réglementaire de plus.

Le problème

Une facture est un document légal : numérotation continue, montants exacts au centime, archive inaltérable, format EN16931. Un écart d’arrondi ou un trou dans la numérotation n’est pas un bug cosmétique.

Ce que j’ai fait

  • Lecture de la réglementation et traduction en règles métier testables.
  • Architecture du domaine, de la persistance et de l’archive.
  • Développement de l’app Shopify (en revue), de la web app « vente directe » et du plugin WooCommerce (pas encore déployés).
  • Suite de tests et préparation de la revue App Store.

Architecture & choix techniques

  1. 01

    Un domaine de facturation pur

    Le cœur est en TypeScript sans aucune I/O : règles EN16931, sérialisation XML CII, montants en centimes entiers et TVA en points de base. Jamais de flottants, et tout se teste en isolation.

  2. 02

    Une archive immuable

    Chaque document est figé en snapshot JSON canonique, haché en SHA-256 et chaîné au précédent. Des triggers PostgreSQL interdisent toute modification, et la numérotation continue est attribuée sous verrou de ligne dans la même transaction.

  3. 03

    Une architecture multi-source

    Une interface SourceGateway / SourceFactory permet à Shopify, WooCommerce, Stripe et la saisie manuelle de partager le même cœur. Après le refactor, la sortie Shopify est restée identique à l’octet près.

  4. 04

    Factur-X de bout en bout

    PDF/A-3 généré avec Gotenberg, XML EN16931 embarqué, transmission B2B via une plateforme agréée, empreinte vérifiée à chaque téléchargement. Le plugin WooCommerce s’appaire par signature HMAC, un mécanisme révisé après deux revues de sécurité.

Points clés

  • Validation stricte des imports : un fichier passe en entier ou pas du tout.
  • E-reporting préparé période par période selon le régime de TVA.
  • Environ 220 commits.

Stack

  • TypeScript
  • React 18
  • React Router 7
  • Shopify App Bridge
  • Polaris
  • Shopify UI extensions
  • Prisma
  • PostgreSQL (triggers, séquences)
  • pg-boss
  • Zod
  • Gotenberg
  • Factur-X / CII
  • Stripe API
  • WooCommerce (PHP)
  • Vitest
  • Docker
  • Caddy
  • S3 Object Lock

Captures issues de boutiques de démonstration, données fictives. Sélectionnez une image pour l’agrandir.

  • 01L'état de la facturation en un coup d'œil, dans l'admin Shopify.
  • 02Chaque facture est un Factur-X (PDF/A-3 + XML EN16931), archivée 10 ans et vérifiée par empreinte SHA-256 à chaque téléchargement. Identifiants fictifs floutés.
  • 03Numérotation continue, avoirs, et statut de transmission B2B pour chaque document.
  • 04L'e-reporting préparé période par période selon le régime de TVA.
  • 05Réception des factures fournisseurs, avec réponse envoyée via la plateforme agréée.
  • 06La même logique de facturation hors Shopify (Stripe, saisie manuelle, import CSV) grâce à l'architecture multi-source. Version non encore déployée.
  • 07Validation stricte à l'import : un fichier est importé en entier ou pas du tout, chaque erreur est expliquée.
  • 08Le thème sombre du kit d’interface de la web app.
  • 09L'e-mail de facture envoyé au client, au nom du marchand (données fictives, pied de page légal retiré).
  • 10Le site public factures.usenette.com, bilingue FR/EN.