Vérification factures Vidima : signature ECDSA P-256
Chaque facture PDF signée, chaque client protégé contre les fraudes "business email compromise". Comment fonctionne la signature cryptographique exclusive de Vidima, et ce qu'elle garantit vraiment.
Dans ce guide
Le problème : comment savoir si une facture est authentique ?
Imaginez ce scénario, courant dans toute la Suisse : vous recevez par e-mail un PDF avec une facture pour CHF 4'870. L'en-tête dit "Cabinet X", l'IBAN est une banque suisse, la QR-facture semble correcte. Vous payez.
Deux semaines plus tard, le Cabinet X vous appelle pour dire que la facture n'est pas la leur. Quelqu'un a intercepté le vrai e-mail, modifié l'IBAN en le remplaçant par le sien (fraude "man-in-the-middle"), et vous a renvoyé le PDF identique en apparence. Vos 4'870 CHF sont allés à un escroc en Lituanie.
Ce n'est pas un scénario hypothétique. C'est un schéma connu sous le nom de "business email compromise" (BEC), responsable de centaines de millions de CHF volés en Suisse chaque année selon Fedpol et l'OFCS. Les banques, aussi sophistiquées soient-elles, ne peuvent pas l'arrêter : l'IBAN sur la QR-facture est techniquement valable, simplement il n'appartient pas au vrai fournisseur.
Le problème de fond : un PDF n'est que des bits. N'importe qui peut le modifier sans laisser de trace visible.
La solution Vidima : signature cryptographique par facture
Vidima résout le problème avec la cryptographie. Chaque facture PDF générée est signée numériquement avec un algorithme cryptographique standard (ECDSA P-256), et le résultat de la signature est intégré à un second QR-code imprimé en pied de page de la facture — à côté du QR-facture de paiement.
Votre client peut :
- Ouvrir l'app appareil photo du téléphone (ou une app QR générique).
- Cadrer le second QR.
- Atterrir automatiquement sur verify.vidima.ch.
- Voir en clair : qui a émis la facture, quand exactement, le montant, et si ce PDF est authentique à 100%.
Si même un seul octet du PDF a été modifié après l'émission — un IBAN changé, un montant gonflé, une date altérée — la vérification échoue. Le système indique "INVALIDE" et l'utilisateur sait qu'il ne faut pas payer.
Aucun autre logiciel de facturation suisse, en 2026, n'offre la vérification cryptographique par facture. C'est une fonctionnalité construite par Helvecraft comme réponse directe au problème BEC qui touche les PME suisses.
ECDSA P-256 expliqué en 2 minutes
ECDSA signifie "Elliptic Curve Digital Signature Algorithm". P-256 est la courbe spécifique (définie par NIST SP 800-186 / FIPS 186-5). Ensemble, ils constituent un standard de signature numérique utilisé par TLS, Bitcoin, Apple Wallet, les passeports électroniques suisses.
L'idée de base, sans mathématiques :
- Vous avez deux clés : une privée (que vous gardez secrète) et une publique (que tout le monde peut voir).
- Seule la clé privée peut signer.
- N'importe qui, en utilisant la clé publique, peut vérifier que la signature est valable et qu'elle correspond exactement au contenu signé.
- Modifier même un seul bit du contenu invalide immédiatement la signature. Pour produire une signature valable, il faudrait avoir la clé privée, qui ne sort jamais de l'ordinateur de l'émetteur de la facture.
P-256 produit des signatures de 64 octets (512 bits), assez compactes pour tenir dans un QR-code de taille moyenne avec les métadonnées de la facture.
Anatomie de la signature (format FAT2)
La signature Vidima utilise un format personnalisé appelé FAT2 (Fattura Authenticated Token v2). Ce qui est intégré au QR est une chaîne qui, décodée, contient :
- En-tête identifiant "FAT2".
- Payload JSON compressé (avec
deflate-raw) contenant :iss— identité de l'émetteur (créancier / cabinet).sub— objet : numéro de facture.amt— montant + monnaie.iat— issued at : horodatage ISO 8601 UTC.hash— SHA-256 du contenu du PDF (hors zone de la signature elle-même, pour éviter les boucles).jwk— clé publique au format JSON Web Key (courbe "P-256", x, y).
- Signature — signature ECDSA P-256 du payload, calculée avec la clé privée.
Le token entier est ensuite encodé en base64url (URL-safe) et inséré dans le QR. La taille typique est de 300-400 octets — il entre aisément dans un QR version 8-10 au niveau de correction d'erreur M.
Comment vérifier (pas à pas)
Deux façons :
Méthode 1 : scan via mobile
- Ouvrez l'app appareil photo du téléphone.
- Cadrez le QR-code de la signature (PAS le QR-facture de paiement — la signature est le plus petit, en pied de page de la facture).
- Touchez le lien qui apparaît : il mène à
https://verify.vidima.ch/?token=…. - Le navigateur ouvre le vérificateur officiel, décode le token, recalcule la signature en utilisant la clé publique incluse, et affiche :
- Résultat (VALIDE / INVALIDE).
- Émetteur (cabinet/entreprise ayant signé).
- Numéro de facture, montant, monnaie.
- Horodatage d'émission.
Méthode 2 : collage manuel
Si vous ne pouvez pas scanner (ex. PDF ouvert sur un ordinateur sans appareil photo), allez sur verify.vidima.ch, copiez-collez la chaîne du token depuis le QR (tous les lecteurs QR sur desktop la décodent), cliquez "Vérifier". Même résultat.
Ce que la signature confirme exactement
Une vérification positive confirme 4 faits mathématiquement certains :
- Identité de l'émetteur. La facture a été signée avec la clé privée associée au certificat de ce cabinet/entreprise spécifique. Personne d'autre au monde ne peut avoir signé en son nom.
- Horodatage. La facture a été émise au moment déclaré par
iat. (Note : l'horodatage est déclaré par le signataire ; pour un horodatage légalement contraignant, il faut une signature qualifiée — voir ci-dessous). - Montant déclaré. Le montant dans la signature correspond à celui visible sur la facture. Si quelqu'un a altéré le montant visible, les deux chiffres ne correspondront pas et cela se verra immédiatement.
- Intégrité du PDF. Le PDF n'a pas été modifié après l'émission (vérifié via le hash SHA-256). Changez un seul caractère, un seul pixel, et le hash change, et la signature devient invalide.
Ce que la signature NE confirme PAS
Transparence : la signature Vidima n'est pas une panacée. Voici ce qu'elle ne fait pas :
- Ce n'est pas une signature électronique qualifiée (SEQ) au sens de la SCSE (Loi suisse sur la signature électronique). La SEQ requiert un certificat émis par un Trust Service Provider reconnu (SwissSign, QuoVadis). Pour des documents qui requièrent la SEQ par la loi (ex. contrats nécessitant la forme écrite qualifiée), utilisez une solution SEQ dédiée.
- Ne garantit pas le paiement. Elle confirme qui a émis la facture, mais pas que le fournisseur ait livré la marchandise ou rendu le service.
- Ne remplace pas l'archivage légal de 10 ans requis par le Code des obligations (Art. 957a CO). Vidima génère des PDF archivables, mais le processus de conservation (sur disque non réinscriptible ou archive cloud certifiée) reste à votre charge.
- N'est pas anti-révocation de clé. Si la clé privée de l'émetteur de la facture est compromise (ex. vol de l'ordinateur portable), toutes les factures signées avant la compromission restent valables ; celles signées après avec la clé volée sembleront valables mais sont frauduleuses. Pour les cas sensibles, contactez toujours le signataire par un canal séparé (téléphone) avant de payer de grands montants.
Comparaison avec d'autres systèmes
| Système | Ce qu'il fait | Valeur légale | Coût |
|---|---|---|---|
| Signature Vidima (ECDSA P-256) | Vérification intégrité + identité émetteur pour chaque facture | Indice probatoire fort, pas SEQ | Inclus dans CHF 149 |
| Signature électronique qualifiée (SEQ) | Équivalente à la signature manuscrite autographe | Plein (forme écrite qualifiée) | CHF 50-200/an pour certificat + coût par signature |
| e-facture italienne (XML SdI) | Transmission obligatoire via Sistema di Interscambio | Reconnaissance fiscale IT | Variable (inclus dans de nombreux logiciels) |
| PEC avec pièce jointe PDF | Courrier certifié, preuve de remise | Preuve de transmission, pas d'intégrité du contenu | ~CHF 30-60/an |
| Hash SHA-256 publié sur blockchain | Horodatage public immuable | Preuve d'existence, pas d'identité | ~CHF 5-50 par transaction |
La signature Vidima se positionne comme "bonne défense contre les fraudes quotidiennes, gratuite et immédiate". Pour les documents qui requièrent une rigueur juridique maximale, la SEQ reste le standard.
Confidentialité : vos données ne quittent pas l'ordinateur
Une préoccupation naturelle pour les systèmes de "vérification en ligne" est : quelles données sont transmises ?
Réponse courte : uniquement la signature. Rien de privé.
En détail :
- La clé privée de signature est générée sur votre ordinateur à la première installation de Vidima et ne le quitte jamais. Elle est stockée localement sur votre disque ; si vous activez le verrouillage de session avec PIN (opt-in), la clé est chiffrée avec AES-GCM pendant que l'application est verrouillée.
- Lors de l'émission d'une facture, la signature est calculée localement. Vidima ne communique pas avec des serveurs externes pour signer.
- La signature dans le QR ne contient que : identité émetteur (nom cabinet), numéro de facture, montant, horodatage, hash, clé publique. Aucune donnée client (pas de nom client, pas d'IBAN, pas de contenu des postes).
- Quand quelqu'un vérifie la signature sur
verify.vidima.ch, le vérificateur reçoit seulement le token. Il ne reçoit pas le PDF, il ne reçoit pas de données de celui qui vérifie. Il calcule la signature et affiche le résultat. - Vidima ne journalise pas les vérifications, ne profile pas qui consulte, ne vend pas de données. Voir notre politique de confidentialité.
Lien vers le vérificateur officiel
Pour tester la vérification avec une vraie facture Vidima, allez sur :
Le vérificateur est gratuit, anonyme, et fonctionne pour tout le monde — que vous soyez client Vidima ou que vous ayez simplement reçu une facture d'un cabinet qui utilise Vidima et vouliez vérifier avant de payer.
Pour émettre des factures avec signature, vous avez besoin de Vidima. Voir le guide QR-facture pour son intégration avec le standard de paiement suisse, et le guide TVA pour la gestion fiscale.
Factures authentiques, vérifiées, hors de portée des escrocs.
Vidima signe chaque facture avec ECDSA P-256. Vos clients paient en toute sécurité, vous émettez sereinement.