DSF - Dossier de Spécifications Fonctionnelles Arpelin

1. Objectif du document

Ce document décrit les spécifications fonctionnelles détaillées du logiciel Arpelin, en particulier les modules de caisse enregistreuse et bornes de commande soumis à la certification NF525. Il constitue le référentiel fonctionnel du logiciel dans le cadre de la conformité aux exigences de la Partie 10 du référentiel NF525.


2. Vue d'ensemble fonctionnelle

2.1. Périmètre fonctionnel NF525

Arpelin intègre deux modules principaux soumis à la certification NF525 :

  • Caisse enregistreuse web : Interface de vente au comptoir

  • Bornes de commande : Interface de commande autonome client

Ces modules respectent les exigences de traçabilité, inaltérabilité, clôture et archivage des données fiscales.

2.2. Architecture fonctionnelle

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   BORNE CLIENT  │    │  CAISSE WEB     │    │  BACK-OFFICE    │
│                 │    │                 │    │                 │
│ • Commande auto │◄──►│ • Encaissement  │◄──►│ • Gestion stock │
│ • Paiement CB   │    │ • Validation    │    │ • Clôtures      │
│ • Ticket        │    │ • Tickets       │    │ • Reporting     │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────▼───────────────────────┘
                    ┌─────────────────────────────┐
                    │     BASE DE DONNÉES         │
                    │  Transactions • Logs        │
                    │  Closures • Archives        │
                    └─────────────────────────────┘

3. Module Caisse Enregistreuse Web ⭐

3.1. Authentification et accès

3.1.1. Connexion utilisateur

  • Méthode : Compte utilisateur (email ou nom d'utilisateur + mot de passe)

  • Point d'accès : Site internet du commerçant

  • Session : Durée 8 heures avec maintien automatique

  • Rôles supportés : Caissier, Manager, Administrateur

3.1.2. Sécurisation

  • HTTPS obligatoire : Chiffrement de toutes les communications

  • Session sécurisée : Token de session régénéré

  • Droits granulaires : Permissions selon le rôle utilisateur

3.2. Interface principale de caisse

3.2.1. Organisation de l'écran

L'interface principale se compose de deux sections principales :

Panel Préparations :

  • Commandes internet (non payées/payées/faites)

  • Commandes bornes (non payées/payées/faites)

  • Commandes caisse (non payées/payées/faites)

  • Statut temps réel de toutes les commandes

  • Les commandes marquées comme retirées ne sont pas affichées dans le panel préparations.

Section Caisse :

  • Zone d'ajout d'articles au panier

  • Visualisation du panier en cours

  • Interface d'encaissement et validation

  • Génération de tickets

3.2.2. Workflow de vente

1. Ajout articles → Panier
2. Validation panier → Commande
3. Sélection paiement → Encaissement
4. Validation → Transaction + Ticket
5. Archivage → Logs + Archives

3.3. Gestion des articles

3.3.1. Ajout d'articles au panier

  • Saisie manuelle : Sélection depuis catalogue

  • Code-barres : Scan QR code dans champ dédié

  • Quantités : Modification possible avant validation

3.3.2. Informations article

  • Prix TTC : Affichage obligatoire TTC

  • TVA : Taux défini par article (5.5%, 10%, 20%...)

  • Stock : Contrôle disponibilité si activé

  • Catégorie : Classification pour s'y retrouver plus facilement

3.3.3. Restrictions tarifaires

  • Pas de remises : Système sans remises programmables, mais remise possible manuellement depuis la caisse.

  • Prix fixes : Tarifs définis en back-office uniquement

  • TVA obligatoire : Taux TVA requis par article

3.4. Processus d'encaissement

3.4.1. Moyens de paiement supportés

Moyen
Type
Validation
Intégration

Espèces

Manuel

Caissier

Saisie montant

CB Manuel

Manuel

Caissier

TPE externe, saisie montant

CB Auto SumUp

Automatique

API

Intégration directe

CB Auto Smile&Pay

Automatique

API

Intégration directe

Titres Restaurant

Manuel

Caissier

Saisie montant

Satispay

Manuel

Caissier

Saisie montant

3.4.2. Validation paiement

  • Paiement total : Un seul moyen de paiement

  • Paiement fractionné : Plusieurs moyens possibles

  • Montant restant : Affichage temps réel

  • Trop-perçu : Montant négatif affiché, impossibilité de valider (pas de gestion rendu)

3.4.3. Workflow validation

Panel Préparations → Sélection commande → Choix paiement

Validation montant → Confirmation → Transaction validée

Génération ticket → Archivage → Mise à jour totaux

3.5. Génération de tickets ⭐

3.5.1. Format et impression

  • Format : Optimisé imprimantes thermiques 80mm

  • Compatibilité : Toute imprimante compatible navigateur

  • Contenu : Conforme réglementation fiscale française

  • Horodatage : Date/heure précise au moment de validation

3.5.2. Numérotation

  • Incrémentation automatique : Numéro séquentiel par client (ID Panier)

  • Gestion duplicatas : Système anti-collision

  • Unicité garantie : Un numéro = une transaction unique

  • Traçabilité : Lien avec table transactions

3.5.3. Contenu ticket obligatoire

[HEADER COMMERÇANT]
Nom, Adresse, SIRET, TVA

[DÉTAIL VENTE]
Article | Qté | Prix Unit. | Total
TVA par taux (5.5%, 10%, 20%...)

[TOTAUX]
Total HT | TVA | TTC
Moyen(s) de paiement

[FOOTER OBLIGATOIRE]  
N° Ticket | Date/Heure
Signature numérique (hash)

3.5.4. Réimpression

  • Accès : Managers, Caissiers, Administrateurs

  • Mention obligatoire : "DUPLICATA" visible avec numéro duplicata

  • Traçabilité : Log de réimpression enregistré

  • Limite : Période de conservation des données

3.6. Traçabilité et logs - JET⭐

3.6.1. Enregistrement des actions

Chaque action de caisse génère un enregistrement :

  • Utilisateur : Identification du caissier

  • Horodatage : Précision à la seconde

  • Action : Type d'opération effectuée

  • Données : Détail complet de la transaction

3.6.2. Table Logs (audit NF525)

Champ
Type
Rôle NF525

id

int(11)

Identifiant unique log

user_id

varchar(255)

Traçabilité utilisateur

action

text

Type d'action effectuée

function

varchar(50)

Fonction système appelée

log_date

datetime

Horodatage précis

signature

text

Empreinte de validation

current_hash

varchar(64)

Hash action actuelle

previous_hash

varchar(64)

Chaînage avec log précédent

Le JET (journal d'évènements techniques) est consultable et téléchargeable depuis l'onglet Ventes > JET

🛒 Gestion des commandes

  • ORDER_PICKUP- Commande retirée

  • ORDER_DELETE- Commande supprimée

  • UNPAID_ORDER_DELETE- Commande non payée supprimée

  • CANCEL_ENTRY- Annulation d'entrée

💰 Gestion des prix

  • PRICE_MODIFY- Modification de prix

  • DISCOUNT_ITEM- Remise sur article

  • DISCOUNT_GLOBAL- Remise globale

🛍️ Gestion du panier

  • CART_VIEW- Consultation panier

  • CART_UPDATE- Mise à jour panier

  • CART_GLOBAL- Action globale panier

📚 Documentation du système JET

🔗 Système de chaînage blockchain

Principe : Chaque log est lié au précédent par un hash cryptographique, créant une chaîne inviolable.

  • Hash actuel :Empreinte SHA-256 de toutes les données du log

  • Hash précédent :Référence au hash du log précédent

  • Signature :Signature cryptographique des données

📍 Toute modification d'un log casse la chaîne et est détectable.

📊 Hash de contrôle d'export

Définition : Empreinte numérique calculée sur l'ensemble des données exportées.

Utilité :

  • Vérifier l'intégrité du fichier exporté

  • Prouver qu'aucune modification n'a eu lieu

  • Garantir la conformité lors d'audits

💡 Comme un "cachet de cire numérique" pour vos exports.

🔍 Vérification d'intégrité

Processus : Contrôle automatique de toute la chaîne de logs.

Vérifications effectuées :

  • Continuité du chaînage entre logs

  • Validité des signatures cryptographiques

  • Intégrité des hash calculés

  • Rapport détaillé des anomalies

⚠️ Une chaîne brisée indique une tentative de falsification.

📋 Format d'export CSV

Contenu du fichier :

  • Métadonnées d'export (date, utilisateur, type)

  • Dictionnaire des codes d'action

  • Données complètes des logs

  • Statistiques de l'export

  • Hash de contrôle pour vérification

🎯 Format prêt pour audits et conformité réglementaire.

Une vérification automatique de la chaîne est possible depuis la page JET. Vous pouvez trier le journal d'évènements techniques par utilisateur, date ou code fonction.


4. Module Bornes de Commande ⭐

4.1. Interface client autonome

4.1.1. Caractéristiques

  • 100% autonome : Aucune intervention requise

  • Interface tactile : Optimisée pour écran tactile

  • Catalogue dynamique : Synchronisé avec back-office

  • Multilangue : Support plusieurs langues si configuré

4.1.2. Processus de commande

Accueil → Sélection articles → Panier → Paiement → Confirmation
   ↓           ↓              ↓        ↓         ↓
Catalogue → Quantités → Récapitulatif → CB/Comptoir → Ticket

4.2. Gestion des commandes

4.2.1. Types de paiement

  • Paiement comptoir : Statut "Non payée" → Traitement en caisse

  • Paiement CB borne : Statut "Payée" → Traitement direct

  • Validation automatique : Intégration API paiement

4.2.2. Synchronisation temps réel

  • Transmission immédiate : Commande visible en caisse instantanément

  • Statuts partagés : Mise à jour temps réel (non payée/payée/faite)

  • Base unique : Même table de données que caisse manuelle

4.3. Intégration avec la caisse

4.3.1. Workflow intégré

BORNE → Commande créée → CAISSE (Panel Préparations)
   ↓                           ↓
Paiement CB → Transaction → Validation/Ticket
   ↓                           ↓  
Archivage ← ← ← ← ← ← ← ← Clôture

4.3.2. Traçabilité unifiée

  • Même processus : Validation et archivage identiques

  • Même numérotation : Tickets séquentiels unifiés

  • Mêmes logs : Table d'audit commune

  • Mêmes clôtures : Inclus dans rapports automatiques


5. Gestion des Stocks et Articles

5.1. Administration des articles

5.1.1. Création/modification

  • Interface : Onglet "Articles" du back-office

  • Saisie manuelle : Tous champs modifiables

  • Import codes-barres : Scan direct dans champ dédié

  • Validation : Contrôles obligatoires (prix, TVA)

5.1.2. Informations requises

- Nom article (obligatoire)
- Prix TTC (obligatoire)  
- Taux TVA (obligatoire)
- Code-barres (optionnel)
- Catégorie (optionnel)
- Stock initial (si gestion activée)
- Statut actif/inactif

5.2. Gestion des stocks

5.2.1. Activation optionnelle

  • Par défaut : Gestion stock désactivée

  • Activation : Par article individuellement

  • Contrôle : Vérification disponibilité à la vente

  • Alertes : Stock bas configurable

5.2.2. Mouvement de stock

  • Décrémentation automatique : À chaque vente validée

  • Correction manuelle : Via back-office (tracée)

  • Inventaire : Mise à jour globale possible

  • Historique : Tous mouvements tracés

5.3. Codes-barres et scanning

5.3.1. Support technique

  • Format : QR Code principalement

  • Compatibilité : Codes-barres standards

  • Saisie : Champ dédié dans interface caisse

  • Recherche : Correspondance automatique article

5.3.2. Workflow scanning

Scan code → Recherche BDD → Article trouvé → Ajout panier
     ↓              ↓             ↓            ↓
Code lu → Correspondance → Quantité → Validation

6. Système de Clôtures ⭐

6.1. Clôtures automatiques

6.1.1. Programmation

  • Quotidienne : Tous les jours à 00h00 (minuit)

  • Mensuelle : Premier jour du mois à 00h00

  • Annuelle : Premier janvier à 00h00

  • Exécution : Script automatisé (cron)

6.1.2. Contenu rapport automatique

Basé sur l'exemple fourni (Rapport #194) :

1. EN-TÊTE
- Numéro clôture incrémental
- Période (date début/fin)
- Date génération

2. RÉSUMÉ VENTES  
- Total brut TTC des ventes
- Total TTC des remboursements  
- Total TTC net
- Total net TVA
- Total net des ventes HT

3. DÉTAILS TVA
- Par taux (5.5%, 10%, 20%...)
- Montant TVA par taux

4. MÉTHODES PAIEMENT
- Nombre transactions par moyen
- Total par moyen de paiement
- Répartition complète

5. DONNÉES HASHAGE ⭐
- Hash précédent (chaînage)
- Hash actuel (intégrité)
- Signature cryptographique

6.2. Clôtures manuelles

6.2.1. Droits d'accès

  • Managers : Clôture manuelle autorisée

  • Administrateurs : Clôture manuelle autorisée

  • Caissiers : Clôture manuelle interdite

  • Période : Configurable (journée, période personnalisée)

6.2.2. Déclenchement manuel

  • Interface : Back-office, section clôtures

  • Validation : Confirmation obligatoire

  • Génération : Rapport identique aux automatiques

  • Traçabilité : Utilisateur et horodatage enregistrés

6.3. Sécurisation et intégrité ⭐

6.3.1. Système de hashage

  • Hash précédent : Référence clôture antérieure

  • Hash actuel : Empreinte données actuelles

  • Chaînage cryptographique : Intégrité de la séquence

  • Signature : Validation authentifique inaltérable

6.3.2. Immutabilité

  • Données figées : Aucune modification post-clôture

  • Archive automatique : Sauvegarde immédiate

  • Table Closures : Stockage permanent sécurisé

  • Accès lecture seule : Consultation uniquement


7. Gestion Multi-Utilisateurs et Rôles

7.1. Système de rôles

7.1.1. Niveaux d'accès

Rôle
Caisse
Clôtures
Gestion Articles
Administration

Caissier

✅ Complet

❌ Lecture seule

❌ Lecture seule

❌ Aucun

Manager

✅ Complet

✅ Manuelle

✅ Complet

⚠️ Partiel

Administrateur

✅ Complet

✅ Complète

✅ Complet

✅ Complet

7.1.2. Permissions détaillées

Caissier :

  • Encaissement et validation ventes

  • Consultation stocks et prix

  • Génération tickets clients

  • Accès panel préparations

Manager :

  • Toutes permissions caissier

  • Clôtures manuelles

  • Gestion catalogue articles

  • Consultation rapports

  • Réimpression tickets

Administrateur :

  • Toutes permissions précédentes

  • Configuration système

  • Gestion utilisateurs et rôles

  • Accès logs complets

  • Paramétrage intégrations

7.2. Traçabilité utilisateurs

7.2.1. Journalisation

  • Connexions : Horodatage et IP

  • Actions : Toute modification tracée

  • Responsabilité : Identification utilisateur obligatoire

  • Audit : Historique complet conservé

7.2.2. Sécurité sessions

  • Durée : 8 heures maximum

  • Inactivité : Déconnexion automatique

  • Concurrent : Une session par utilisateur

  • Tokens : Régénération périodique


8. Rapports et Statistiques

8.1. Rapports automatiques

8.1.1. Types disponibles

  • Rapport journalier : Ventes du jour

  • Rapport mensuel : Synthèse mensuelle

  • Rapport annuel : Bilan année complète

  • Rapport TVA : Détail par taux TVA

8.1.2. Contenu standardisé

  • Totaux : HT, TVA, TTC

  • Répartition paiements : Par moyen utilisé

  • Articles : Meilleures ventes

  • Performances : Évolution période

8.2. Statistiques temps réel

8.2.1. Tableaux de bord

  • Ventes jour : Chiffre actuel

  • Transactions : Nombre et montant

  • Moyens paiement : Répartition live

  • Top articles : Meilleures ventes

8.2.2. Exports

  • Format : CSV, PDF, Excel

  • Période : Configurable

  • Contenu : Détaillé ou synthèse

  • Automatisation : Envoi email programmé


9. Intégrations et API

9.1. Passerelles de paiement

9.1.1. SumUp

  • Type : Intégration API REST

  • Validation : Automatique

  • Webhook : Retour statut temps réel

  • Sécurité : HTTPS + clés API

9.1.2. Smile&Pay

  • Type : Intégration API REST

  • Validation : Automatique

  • Webhook : Retour statut temps réel

  • Sécurité : HTTPS + clés API

9.1.3. Satispay

  • Type : Intégration API REST

  • Validation : Automatique

  • Webhook : Retour statut temps réel

  • Sécurité : HTTPS + clés API

9.2. Flux de données sécurisés

9.2.1. Communications

  • Chiffrement : TLS 1.2 minimum

  • Authentification : Clés API sécurisées

  • Timeout : Gestion déconnexions

  • Retry : Reprise automatique erreurs

9.2.2. Journalisation API

  • Appels : Tous échanges logged

  • Erreurs : Traçabilité complète

  • Performance : Monitoring temps réponse

  • Sécurité : Tentatives d'accès malveillantes


10. Conformité NF525

10.1. Exigences respectées

10.1.1. Traçabilité ⭐

  • Transactions : Horodatage précis

  • Utilisateurs : Identification obligatoire

  • Modifications : Logs avant/après

  • Intégrité : Hash de validation

10.1.2. Inaltérabilité ⭐

  • Données figées : Post-validation

  • Hash cryptographique : SHA-256

  • Chaînage : Clôtures liées

  • Signatures : Authentification

10.1.3. Clôture ⭐

  • Automatique : Quotidienne garantie

  • Manuelle : Droits contrôlés

  • Complétude : Toutes transactions

  • Archivage : Permanent sécurisé

10.1.4. Archivage et immutabilité ⭐

  • Conservation : Données figées dans table transactions

  • Format : Non altérable post-validation

  • Accès : Lecture seule via interface dédiée

  • Métadonnées : Ticket complet figé (adresse, SIRET, signature)

  • Restauration : Réimpression possible avec mention duplicata

10.1.5. Signature électronique conforme ⭐

  • Signature complète : Stockée dans champ signature (varchar 255)

  • Chaînage : current_hash et previous_hash pour intégrité séquentielle

  • Extrait ticket : Positions 3, 7, 13, 19 uniquement (exigence NF525)

  • Affichage : 4 caractères sur ticket client (ex: "A3F7")

  • Vérification : Reconstitution possible via signature complète

10.2. Processus d'audit

10.2.1. Mise à disposition

  • Données : Export formaté standard

  • Logs : Accès complet historique

  • Documentation : Procédures formalisées

  • Support : Accompagnement technique

10.2.2. Vérifications possibles

  • Cohérence : Totaux et détails

  • Intégrité : Validation hash

  • Complétude : Absence de trous

  • Traçabilité : Piste d'audit complète


11. Évolutions et Maintenance

11.1. Gestion des mises à jour

11.1.1. Déploiement

  • Centralisé : Mise à jour serveur unique

  • Impact : Aucune interruption client

  • Validation : Tests pré-déploiement

  • Rollback : Retour version antérieure

11.1.2. Évolutions fonctionnelles

  • Roadmap : Planification documentée

  • Compatibilité : Maintien conformité NF525

  • Formation : Accompagnement utilisateurs

  • Documentation : Mise à jour continue

11.2. Support utilisateur

11.2.1. Assistance technique

  • Disponibilité : Horaires définis

  • Canaux : Téléphone, email, chat

  • Compétences : Formation spécialisée

  • Escalade : Niveaux support définis

11.2.2. Formation

  • Initiale : Prise en main complète

  • Continue : Nouvelles fonctionnalités

  • Documentation : Guides utilisateur

  • Vidéos : Tutoriels en ligne


Document établi dans le cadre de la certification NF525 Version : 2.0 Date : [Date actuelle] Responsable : [Votre nom]

Last updated