# Manuel administration fiscale

## Téléchargement de l'export fiscal

La gestion des exports fiscaux se trouve dans la partie **Préférences -&gt; Comptabilité** :

[![Capture d’écran 2025-09-25 à 15.06.32.png](https://doc.winortho.com/uploads/images/gallery/2025-09/scaled-1680-/capture-decran-2025-09-25-a-15-06-32.png)](https://doc.winortho.com/uploads/images/gallery/2025-09/capture-decran-2025-09-25-a-15-06-32.png)

L’interface présente tous les export générés depuis le début de l’utilisation du logiciel. L’utilisateur peut, via un bouton dédié, générer un nouvel export couvrant **une période maximale d’un an**.<span class="Apple-converted-space"> </span>

<span class="Apple-converted-space">[![Capture d’écran 2025-11-27 à 14.25.52.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-27-a-14-25-52.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-27-a-14-25-52.png)</span>

## Utilisation de l'export

Cette documentation décrit la procédure de vérification de l’intégrité et de l’authenticité d’un export fiscal généré par le logiciel.

Chaque archive contient toutes les factures et leurs lignes, les règlements et les journaux d’activité pour une période maximale d’un an.<span class="Apple-converted-space"> </span>Une signature Ed25519 garantit l’intégrité des données.

La période couverte est précisée dans le nom de l’archive.

## Contenu de l'archive

### Fichiers de données

- **export\_20251101\_20251130.zip** : Archive contenant les données JSON 
    - `factures-20251101-20251130.json` : Factures de la période avec signatures blockchain
    - `reglements-20251101-20251130.json` : Règlements de la période avec signatures blockchain
    - `logs-20251101-20251130.json` : Journaux d'activité de la période avec signatures blockchain

### Fichiers de sécurité

- **export\_20251101\_20251130.zip.sig** : Signature cryptographique Ed25519 de l'archive
- **export\_20251101\_20251130.zip.verify\_key.pub** : Clé publique pour vérifier la signature

### Documentation

- **README.md** : l'équivalent de cette documentation au format markdown
- **verifier\_archive.html** : Interface web de vérification
- **explorateur\_archive.html** : interface web facilitant la consultation des fichiers json

## Structure des fichiers JSON

<div class="note" id="bkmrk--2">  
</div><p class="callout info">**Note concernant les signatures :** tous les enregistrements ne sont pas nécessairement signés. Les enregistrements créés avant la mise en place du système de signature auront des champs `signature` et `previous_signature` vides ou null.</p>


### factures-YYYYMMDD-YYYYMMDD.json

Tableau d'objets contenant les factures avec leurs lignes :

```json
[
  {
    "siret": "12345678901234",
    "numero": "251100001",
    "date": "2025-01-15T10:30:00",
    "total_HT": "1250.00",
    "total_TTC": "1500.00",
    "signature": "aca7aaf2e5c93b0ee377...",
    "previous_signature": "",
    "lignes": [
      {
        "siret": "12345678901234",
        "facture": "251100001",
        "code": "2159815",
        "libelle": "Semelle orthopédique",
        "prixVente": "125.00",
        "prixUnitaireHT": "104.17",
        "totalHT": "104.17",
        "quantite": 1,
        "tva": "20.00"
      }
    ]
  }
]
```

<div class="field-list" id="bkmrk-champs-principaux-%3A-">**Champs principaux :**- `siret` : Numéro SIRET de l'établissement
- `numero` : Numéro unique de la facture
- `date` : Date de création (ISO 8601)
- `total_HT` : Montant total hors taxes
- `total_TTC` : Montant total toutes taxes comprises
- `signature` : Signature blockchain de cette facture
- `previous_signature` : Signature de la facture précédente (vide pour la première)
- `lignes` : Tableau des lignes de facturation

</div>### reglements-YYYYMMDD-YYYYMMDD.json

Tableau d'objets contenant les règlements :

```json
[
  {
    "siret": "12345678901234",
    "facture": "251100001",
    "user": "Dr. Martin",
    "libelle": "Règlement Carte Bancaire",
    "date_creation": "2025-01-15T10:35:00",
    "date_reglement": "2025-01-15T10:35:00",
    "montant": "1500.00",
    "mode": "CB",
    "signature": "ff187b00e19af92136bd...",
    "previous_signature": "aca7aaf2e5c93b0ee377..."
  }
]
```

<div class="field-list" id="bkmrk-champs-principaux-%3A--1">**Champs principaux :**- `siret` : Numéro SIRET de l'établissement
- `facture` : Numéro de la facture associée
- `user` : Utilisateur ayant enregistré le règlement
- `libelle` : Description du règlement
- `date_creation` : Date d'enregistrement du règlement (ISO 8601)
- `date_reglement` : Date effective du règlement (ISO 8601)
- `montant` : Montant du règlement
- `mode` : Mode de règlement (CB, Espèces, Chèque, Virement, etc.)
- `signature` : Signature blockchain de ce règlement
- `previous_signature` : Signature du règlement précédent

</div>### logs-YYYYMMDD-YYYYMMDD.json

Tableau d'objets contenant les journaux d'activité :

```json
[
  {
    "timestamp": "2025-01-15T10:30:00",
    "user": "Dr. Martin",
    "action": "UPDATE",
    "model": "Facture",
    "instance": "251100001",
    "diff": "{\"status\": [\"brouillon\", \"validée\"]}",
    "commentaire": "Validation de la facture",
    "signature": "209e9cc27d6ebd9ccfbb...",
    "previous_signature": "ff187b00e19af92136bd..."
  }
]
```

<div class="field-list" id="bkmrk-champs-principaux-%3A--2">**Champs principaux :**- `timestamp` : Date et heure de l'action (ISO 8601)
- `user` : Utilisateur ayant effectué l'action
- `action` : Type d'action
- `model` : Type d'objet modifié (Facture, Reglement, Patient, etc.)
- `instance` : Identifiant de l'objet modifié
- `diff` : Détail des modifications (format JSON)
- `commentaire` : Commentaire optionnel
- `signature` : Signature blockchain de ce log
- `previous_signature` : Signature du log précédent

</div>### Explorateur d'archive

L’archive contient une application web qui permet de consulter les fichiers JSON :

[![Capture d’écran 2025-11-21 à 11.18.41.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-21-a-11-18-41.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-21-a-11-18-41.png)

## Système de sécurité

### Signature cryptographique

L'archive utilise l'algorithme **Ed25519** (courbes elliptiques) pour garantir :

- L'**authenticité** : L'archive provient bien de votre système
- L'**intégrité** : Aucune modification n'a été effectuée après génération

### Blockchain

Chaque enregistrement (facture, règlement, log) contient :

- `signature` : Hash cryptographique des données + signature précédente
- `previous_signature` : Signature de l'enregistrement précédent

Ce chaînage garantit :

- L'**inaltérabilité** : Impossible de modifier un enregistrement sans casser la chaîne
- La **non-répudiation** : Impossible de supprimer ou insérer un enregistrement

## Vérification de l'archive

### Méthode 1 : Interface web (recommandée - aucune installation requise)

1. Extrayez l'archive `archive-fiscale-20251101-20251130.zip`
2. Ouvrez le fichier `verifier_archive.html` dans votre navigateur web (Chrome, Firefox, Safari, Edge...)  
    [![Capture d’écran 2025-11-14 à 14.04.33.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-14-a-14-04-33.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-14-a-14-04-33.png)
3. **Deux modes possibles :**
    - **Mode automatique** : Si vous utilisez un serveur HTTP local (voir ci-dessous), les fichiers se chargent automatiquement
    - **Mode manuel** : Sinon, un bouton apparaît pour sélectionner les 3 fichiers  
        [![Capture d’écran 2025-11-14 à 14.04.54.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-14-a-14-04-54.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-14-a-14-04-54.png)
4. Les résultats s'affichent en quelques secondes 
    1. Exemple d’archive corrompue  
        [![Capture d’écran 2025-11-14 à 14.05.15.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-14-a-14-05-15.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-14-a-14-05-15.png)
    2. Exemple d’archive valide  
        [![Capture d’écran 2025-11-14 à 14.14.44.png](https://doc.winortho.com/uploads/images/gallery/2025-11/scaled-1680-/capture-decran-2025-11-14-a-14-14-44.png)](https://doc.winortho.com/uploads/images/gallery/2025-11/capture-decran-2025-11-14-a-14-14-44.png)

<div class="success" id="bkmrk-avantages-%3A-aucune-i">**Avantages :** Aucune installation Python, interface graphique, fonctionne sur tous les systèmes</div>**Pour le mode automatique (optionnel) :**

```bash
# Dans le dossier de l'archive extraite
python3 -m http.server 8080
# Puis ouvrir: http://localhost:8080/verifier_archive.html
```

### Méthode 2 : Vérification manuelle (experts)

#### 1. Vérifier la signature Ed25519

```python
import nacl.signing
import nacl.encoding

# Charger la clé publique
with open('export_20251101_20251130.zip.verify_key.pub', 'r') as f:
    verify_key_hex = f.read()
verify_key = nacl.signing.VerifyKey(verify_key_hex, encoder=nacl.encoding.HexEncoder)

# Charger les données
with open('export_20251101_20251130.zip', 'rb') as f:
    data = f.read()

# Charger la signature
with open('export_20251101_20251130.zip.sig', 'r') as f:
    signature_hex = f.read()
signature = bytes.fromhex(signature_hex)

# Vérifier
try:
    verify_key.verify(data, signature)
    print("✓ Signature valide")
except:
    print("✗ Signature invalide - Archive compromise")
```

#### 2. Vérifier la blockchain

Pour chaque type de données (factures, règlements, logs), vérifier que :

```
signature_N = Hash(données_N + signature_N-1)
```

Consultez le fichier `verifier_archive.html` (source JavaScript) pour l'implémentation complète de la vérification de blockchain.

## Support

Pour toute question concernant cette archive, contactez Présence Informatique.