Portail client par Magic Link : faites valider un choix de matériaux ou un avenant, avec piste d'audit
Créez en quelques secondes une fiche de choix ou un bon de régie, envoyez un lien sans mot de passe, puis voyez ce que le maître d'ouvrage voit : l'impact sur le budget en direct, une signature au doigt ou à la souris, et un certificat de validation horodaté en PDF.
Essayez le simulateur
Démonstration. Tous les montants, noms de chantier et d'entreprise sont des exemples fictifs, et les images sont des schémas générés. Saisissez un nom fictif quand vous jouez le maître d'ouvrage : l'adresse IP et le navigateur sont enregistrés dans le journal (voir « Données personnelles » plus bas).
1 Côté entreprise : préparez la fiche et générez le lien
Votre lien magique est prêt
Référence · valable jusqu'au (heure de Zurich). Quiconque détient ce lien peut ouvrir la page : envoyez-le par un canal fiable.
2 Côté maître d'ouvrage : ouvrez le lien
C'est la vraie page du maître d'ouvrage, affichée ici à l'échelle d'un téléphone. Choisissez une option, regardez le budget bouger, signez avec le doigt ou la souris (ou utilisez le code à usage unique), puis téléchargez le certificat.
Comment fonctionne le lien magique
- Un jeton aléatoire de 256 bits est créé pour chaque lien. Le serveur n'en garde que l'empreinte SHA-256 : même avec la base, on ne peut pas reconstituer le lien.
- L'adresse est signée avec la clé de l'application (
URL::temporarySignedRoute). Toute modification de l'adresse, ou l'échange d'un jeton contre un autre, est refusée ; l'expiration est dans la signature. - Chaque action est protégée : jeton CSRF pour les envois, limitation de débit par adresse IP et par action, essais du code limités à 5, une seule décision par lien, révocation possible par l'entreprise.
- Le document est figé dès la création : son empreinte SHA-256 est calculée sur une forme canonique (montants en centimes) et reprise dans chaque entrée du journal.
Ce qui est enregistré dans le journal d'audit
À chaque consultation, validation ou refus, une entrée est ajoutée au journal (table client_approval_logs). Elle ne sera jamais modifiée ni supprimée par l'application.
ip_address- Adresse IP vue par le serveur (et l'en-tête X-Forwarded-For tel que reçu, à titre d'information).
user_agent- Le navigateur et le système, tels que déclarés.
timestamp_utc- Date et heure UTC de l'horloge du serveur, jamais celle du navigateur.
document_hash_sha256- Empreinte du document tel qu'il a été présenté (options, montants, budget).
client_name- Le nom saisi par le maître d'ouvrage — déclaré, non vérifié.
signature_data- Le tracé de la signature (vectoriel) ou la preuve qu'un code à usage unique a été contrôlé (jamais le code lui-même).
financial_impact_chf- L'impact de la décision sur le budget, en CHF hors taxes.
prev_hash/entry_hash- Chaînage : chaque entrée contient l'empreinte de la précédente, et la sienne.
Des règles de la base de données interdisent la modification et la suppression des entrées et refusent toute insertion qui ne prolonge pas exactement la chaîne. Une commande de contrôle (php artisan portail-client:verifier) relit toute la chaîne et signale la moindre incohérence.
Ce que ce simulateur n'est pas
- Pas une signature électronique qualifiée. Il enregistre une validation électronique simple, horodatée et traçable. Il ne s'agit ni d'une signature électronique qualifiée ni d'un horodatage qualifié au sens de la loi fédérale sur la signature électronique (SCSE) ; en droit suisse, seule la signature qualifiée associée à un horodatage qualifié est assimilée à la signature manuscrite (art. 14 al. 2bis CO).
- Pas d'identité vérifiée. Le nom est celui que la personne a saisi.
- Pas infalsifiable. La chaîne rend toute altération détectable ; elle n'empêche pas quelqu'un qui contrôle la base et le code de la reconstruire. L'empreinte remise dans le certificat PDF sert d'ancrage externe.
- Pas un avis juridique. La force probante d'un tel enregistrement relève de l'appréciation du juge. Pour des enjeux importants, ou si la loi ou le contrat exige une forme écrite qualifiée, faites valider votre processus par un juriste.
Données personnelles (LPD)
Selon la loi fédérale sur la protection des données (LPD, RS 235.1), nous vous informons de ce que ce simulateur collecte, et pourquoi.
- Données : adresse IP, navigateur (user agent), nom saisi, tracé de la signature ou preuve du code, date et heure, empreintes.
- Finalité : établir la traçabilité de la validation simulée et permettre sa vérification.
- Responsable : Art Construction (coordonnées dans les mentions légales).
- Conservation : objectif de 90 jours pour les données de démonstration. Le journal étant en ajout seul, l'effacement passe par une procédure d'administration, pas par un bouton.
- Vos droits : accès, rectification, effacement, via le contact des mentions légales. Saisissez un nom fictif.
Vérifier un certificat
Collez l'empreinte « Cette entrée » imprimée sur le certificat PDF. Le contrôle compare l'empreinte au journal et relit toute la chaîne ; il n'affiche aucune donnée personnelle.
Questions fréquentes
Le lien magique est-il sûr ?
Le lien contient un jeton tiré au hasard (256 bits) que le serveur ne conserve pas en clair, il est signé avec la clé de l'application (toute modification de l'adresse l'invalide) et il expire à l'heure choisie. L'entreprise peut aussi le révoquer. Comme tout lien sans mot de passe, il ouvre la page à quiconque le détient : transmettez-le par un canal fiable et choisissez une durée courte.
Cette validation a-t-elle la valeur d'une signature manuscrite ?
Cela n'est pas établi. Le simulateur enregistre une validation électronique simple, horodatée et traçable, au nom déclaré par la personne. Ce n'est pas une signature électronique qualifiée ni un horodatage qualifié au sens de la loi sur la signature électronique (SCSE), seuls assimilés par la loi à la signature manuscrite. Sa force probante relève de l'appréciation du juge : pour des enjeux importants ou une forme écrite qualifiée exigée par la loi ou le contrat, faites valider votre processus par un juriste.
Que contient le journal d'audit ?
Pour chaque consultation, validation ou refus : adresse IP, navigateur, date et heure UTC (horloge du serveur), empreinte SHA-256 du document présenté, nom saisi, option retenue, signature tracée ou preuve du code à usage unique, impact financier en CHF HT, et l'empreinte de l'entrée précédente.
Le journal est-il vraiment inaltérable ?
Il est en ajout seul : des règles de la base interdisent la modification et la suppression, et chaque entrée contient l'empreinte de la précédente, ce qui rend toute altération détectable par une vérification de la chaîne. Il n'est pas infalsifiable pour autant : quelqu'un qui contrôle à la fois la base et le code pourrait la reconstruire. C'est pourquoi le certificat PDF remis au maître d'ouvrage porte l'empreinte de l'entrée (ancrage externe) et qu'une page permet de la vérifier.
Quelles données personnelles sont collectées (LPD) ?
Adresse IP, navigateur, nom saisi, tracé de la signature ou preuve du code, date et heure, pour établir la traçabilité de la validation. Saisissez un nom fictif dans cette démonstration. Objectif de conservation : 90 jours ; le journal étant en ajout seul, l'effacement est une procédure d'administration. Droits d'accès, de rectification et d'effacement : via le contact des mentions légales.
Les montants et les photos sont-ils réels ?
Non. Les montants, les noms de chantier et d'entreprise sont des exemples de démonstration, et les images sont des schémas générés. Aucune donnée réelle n'est reprise ni envoyée à Soumission.
Où est envoyé le code à usage unique ?
Nulle part : la démonstration ne demande ni adresse e-mail ni numéro de téléphone. Le code est donc affiché à l'écran. En exploitation réelle, il serait transmis par un canal distinct du lien (e-mail ou SMS), ce que cette démonstration ne montre pas.
Passez du calcul à la gestion complète
Gardez vos références à portée de main, puis automatisez-les dans vos devis, offres et décomptes.
