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
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)
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
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
etprevious_hash
pour intégrité séquentielleExtrait 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