Aller au contenu

Conservation des Données — NF525

Exigence NF525 : Les données de règlement doivent être conservées pendant une durée minimale de 6 ans (obligation fiscale française).

1. Données conservées

1.1 Données de caisse (obligatoires)

Table Contenu Durée minimale
orders Commandes avec signatures ECDSA 6 ans
order_items Détail des articles commandés (snapshots) 6 ans
audit_logs Journal d'événements signé 6 ans

1.2 Données de référence

Table Contenu Conservation
categories Catégories de produits Durée de vie du système
products Articles de la carte Durée de vie du système
users Personnel 6 ans après désactivation
rooms / tables Plan de salle Durée de vie du système
payment_methods Moyens de paiement Durée de vie du système
vat_rates Taux de TVA 6 ans (historique requis)

2. Snapshots et historique

2.1 Principe du snapshot

Lors de la création d'une commande, les données du produit sont copiées (snapshot) dans order_items :

Champ order_items Source
product_name products.name au moment de la vente
product_price products.price au moment de la vente
vat_rate vat_rates.rate au moment de la vente

Cela garantit que la modification ultérieure d'un produit ou d'un taux de TVA n'affecte pas les commandes passées.

2.2 Soft delete

Les enregistrements ne sont jamais supprimés physiquement : - Les utilisateurs sont désactivés (active = false), jamais supprimés - L'historique des taux TVA est conservé même après modification

3. Stockage

3.1 Développement

Paramètre Valeur
Moteur SQLite
Fichier restaurant.db (racine du projet)
Sauvegarde Copie manuelle

3.2 Production

Paramètre Valeur
Moteur PostgreSQL 16+
Sauvegardes WAL archiving + pg_dump quotidien
Rétention 6 ans minimum (obligation fiscale)
Chiffrement Au repos (AES-256) et en transit (TLS 1.3)

4. Intégrité des données conservées

L'intégrité des données conservées est garantie par :

  1. Chaîne de signatures ECDSA sur les commandes et le journal d'audit
  2. Vérification automatique à chaque clôture journalière
  3. Endpoint de vérification accessible aux auditeurs : GET /api/v1/audit/verify