14 — Diagrammes UML : activité, séquence, états et classes#
Suite directe de 11-diagrammes-cas-utilisation.md. Le document précédent répond à qui peut demander quoi. Celui-ci répond à dans quel ordre, par quel échange et dans quel état.
Tous les diagrammes sont adossés au code source relevé le 17 août 2026 : registre de contextes partagé web et mobile, registres de navigation des trois portails web, points d'entrée des 85 services applicatifs. Chaque flux qui s'arrête avant son terme le dit dans le diagramme lui-même, pas seulement en note de bas de page.
Version : 1.0 — 17 août 2026 Statut : Référence active Documents liés : 00-brief-commun.md · 11-diagrammes-cas-utilisation.md · 06-portail-admin.md
1. Méthode#
1.1 Trois questions, trois notations#
| Notation | Question à laquelle elle répond | Ce qu'elle ne dit pas |
|---|
| Diagramme d'activité | Dans quel ordre les étapes s'enchaînent-elles, et qui exécute chaque étape ? | Quels messages circulent entre les composants. |
| Diagramme de séquence | Quels messages sont échangés, dans quel ordre, entre quels participants ? | Ce que devient l'objet métier au fil du temps. |
| Diagramme d'états | Quels états un objet métier peut-il prendre, et par quelles transitions ? | Qui déclenche la transition, ni comment. |
Un même parcours peut donc apparaître trois fois dans ce document, sous trois angles. Ce n'est pas de la redondance : c'est la seule façon de rendre visible qu'un flux d'écran, un échange technique et un cycle de vie métier ne coïncident pas toujours. Le cas A20 — demande d'export — en est la démonstration : le flux d'écran est complet, l'échange technique s'arrête, et l'objet métier reste bloqué dans un état.
1.2 Mermaid n'a pas de couloirs natifs — il faut le dire#
UML représente les responsabilités par des couloirs verticaux ou horizontaux. Mermaid 11 n'implémente pas les couloirs dans flowchart. Il n'existe aucun mot-clef swimlane, aucune partition native.
Nous simulons donc chaque couloir par un subgraph nommé d'après l'acteur responsable. C'est une approximation, et elle a deux limites qu'il faut connaître pour lire correctement les diagrammes :
- La position d'un nœud dans un
subgraph ne contraint pas sa position visuelle finale — le moteur de disposition place les nœuds selon les arêtes, pas selon les cadres. Un nœud peut donc apparaître visuellement décalé par rapport à son couloir. - Une arête qui traverse deux
subgraph n'est pas marquée comme un passage de responsabilité. Nous compensons en nommant l'acteur dans la colonne Acteur du tableau qui suit chaque diagramme. Le tableau fait foi.
Cette limite est assumée plutôt que contournée par une image externe : un diagramme Mermaid reste lisible dans le code source, comparable ligne à ligne d'une version à l'autre, et traduisible. Une image ne l'est pas.
| Élément | Forme Mermaid | Emploi |
|---|
| Début et fin | n00(["Début"]) | Bornes du flux |
| Action | n01["Action"] | Étape exécutée |
| Décision | d01{"Question"} | Branchement, deux sorties au minimum |
| Couloir | subgraph lane01["Acteur"] | Responsabilité |
| Arrêt assumé | n99["Fin sans exécution"] avec mention explicite dans le libellé | Flux qui n'aboutit pas dans le produit |
1.4 Conventions de séquence#
Les participants sont déclarés en ASCII pur, avec un libellé accentué en alias : participant a01 as "Client". Les messages sont notés a01->>a02: texte pour un appel, a02-->>a01: texte pour une réponse. Les blocs alt et opt portent les branchements. Les notes portent les invariants qui ne sont pas des messages.
1.5 Conventions d'états#
Les identifiants d'état sont ASCII et les libellés accentués sont déclarés par state "Libellé" as s01. Un état terminal est relié à [*]. Un état qui n'existe pas encore dans le produit est signalé dans le tableau qui suit le diagramme, jamais par une transition fictive.
1.6 Convention de statut — reprise du document précédent#
| Statut | Signification |
|---|
| Livré | Écran et point d'entrée de service vus dans le code. |
| Livré — conditionné | Livré, accès soumis à une clef d'offre active. |
| Livré — partiel | Le parcours démarre mais n'aboutit pas dans le produit. |
| Non livré | Aucun écran, aucun point d'entrée. |
2. Diagrammes d'activité#
Vingt diagrammes. Chacun est suivi de son tableau Étape | Acteur | Action | Règle | Sortie.
2.1 A01 — Inscription et premier contexte#
flowchart TD
subgraph l1["Visiteur"]
n01(["Arrivée sur le portail"])
n02["Saisir courriel et mot de passe"]
n03["Confirmer le courriel"]
n06["Choisir un contexte de départ"]
end
subgraph l2["Plateforme"]
n04["Créer le compte et le locataire"]
n05["Attribuer le forfait Gratuit"]
n07["Vérifier les droits du contexte"]
d01{"Contexte conditionné"}
n08["Recomposer navigation et tableau de bord"]
n09["Ouvrir le tableau de bord du contexte"]
n10["Masquer la carte du contexte"]
n11(["Compte actif"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> d01
d01 -->|"non"| n08
d01 -->|"oui sans clef active"| n10
n10 --> n06
n08 --> n09
n09 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Visiteur | Arrive sur le portail | Aucune | Formulaire affiché |
| 2 | Visiteur | Saisit courriel et mot de passe | Mot de passe conforme à la politique | Compte en attente de confirmation |
| 3 | Visiteur | Confirme son courriel | Lien à usage unique | Courriel vérifié |
| 4 | Plateforme | Crée le compte et son locataire | Un compte appartient toujours à un locataire | Locataire créé |
| 5 | Plateforme | Attribue le forfait Gratuit | 1 siège, 10 crédits par mois | Abonnement actif |
| 6 | Visiteur | Choisit un contexte de départ | Dix contextes Client, neuf Professionnels | Contexte demandé |
| 7 | Plateforme | Vérifie les droits du contexte | Le catalogue de la plateforme fait foi | Décision d'accès |
| 8 | Plateforme | Recompose la navigation et le tableau de bord | La bascule est un mécanisme produit, pas un rechargement de page | Navigation du contexte |
| 9 | Plateforme | Ouvre le tableau de bord | Trois contextes ont un tableau de bord dédié | Écran d'accueil du contexte |
| 10 | Plateforme | Masque la carte du contexte conditionné | business, epicerie, startup exigent une clef d'offre active | Carte absente du sélecteur |
| 11 | Plateforme | Marque le compte actif | Aucune authentification à deux facteurs — non implémentée | Compte utilisable |
Statut : Livré.
2.2 A02 — Déclaration T1 et TP1#
flowchart TD
subgraph l1["Contribuable"]
n01(["Ouvrir le dossier fiscal"])
n03["Téléverser les feuillets"]
n05["Valider ou corriger les montants"]
n09["Marquer la déclaration prête"]
end
subgraph l2["Plateforme"]
n02["Afficher la liste de contrôle"]
n04["Extraire par vision et proposer les montants"]
d01{"Feuillet reconnu"}
n06["Classer en pièce générique"]
n07["Calculer crédits et déductions"]
n08["Présenter résultat fédéral et provincial"]
n10["Transmettre par voie électronique"]
d02{"Transmission acceptée"}
n11["Enregistrer l accusé"]
n12["Afficher le code de refus"]
n13(["Déclaration transmise"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> d01
d01 -->|"oui"| n05
d01 -->|"non"| n06
n06 --> n05
n05 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> d02
d02 -->|"oui"| n11
d02 -->|"non"| n12
n12 --> n05
n11 --> n13
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Contribuable | Ouvre le dossier fiscal de l'année | Un dossier par année d'imposition | Dossier ouvert |
| 2 | Plateforme | Affiche la liste de contrôle et les pièces présentes | Les pièces déjà déposées ne sont pas redemandées | Liste affichée |
| 3 | Contribuable | Téléverse ses feuillets | Formats acceptés annoncés avant le dépôt | Documents stockés |
| 4 | Plateforme | Extrait par vision et propose les montants | La proposition n'écrit rien tant qu'elle n'est pas validée | Montants proposés |
| 5 | Contribuable | Valide ou corrige chaque montant | Un montant contradictoire affiche les deux valeurs et leur origine | Montants retenus |
| 6 | Plateforme | Classe en pièce générique si le type est inconnu | Aucun montant n'est deviné | Pièce attachée |
| 7 | Plateforme | Calcule crédits et déductions | Un crédit sans pièce est marqué non applicable, avec son motif | Calcul produit |
| 8 | Plateforme | Présente le résultat fédéral et provincial | Un écart entre les deux au-delà du seuil est signalé | Résultats affichés |
| 9 | Contribuable | Marque la déclaration prête | Verrouillage des montants | Déclaration prête |
| 10 | Plateforme | Transmet par voie électronique | Aucune transmission sans validation explicite | Transmission engagée |
| 11 | Plateforme | Enregistre l'accusé | Sans accusé, l'état reste « prête » — jamais « transmise » | Accusé au dossier |
| 12 | Plateforme | Affiche le code de refus | Le code et son libellé sont affichés, pas un message générique | Déclaration modifiable |
Statut : Livré.
2.3 A03 — Déclaration de société T2#
flowchart TD
subgraph l1["Fiscaliste"]
n01(["Ouvrir le dossier de société"])
n03["Vérifier la clôture de l exercice"]
n06["Revoir les ajustements fiscaux"]
n09["Valider et transmettre"]
end
subgraph l2["Plateforme"]
n02["Rattacher la société au cabinet"]
d01{"Exercice clôturé"}
n04["Renvoyer vers la clôture comptable"]
n05["Importer le résultat comptable"]
n07["Calculer l impôt fédéral"]
n08["Calculer l impôt provincial"]
n10["Enregistrer l accusé"]
n11(["Déclaration de société transmise"])
end
n01 --> n02
n02 --> n03
n03 --> d01
d01 -->|"non"| n04
n04 --> n03
d01 -->|"oui"| n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Fiscaliste | Ouvre le dossier de société | Contexte fiscaliste actif | Dossier ouvert |
| 2 | Plateforme | Rattache la société au cabinet | Le rattachement conditionne l'accès aux données | Société liée |
| 3 | Fiscaliste | Vérifie la clôture de l'exercice | Une déclaration ne se calcule pas sur un exercice ouvert | Décision |
| 4 | Plateforme | Renvoie vers la clôture comptable | Le renvoi nomme l'écran cible plutôt qu'un message d'erreur | Retour au parcours comptable |
| 5 | Plateforme | Importe le résultat comptable | Le résultat vient des états financiers, jamais d'une ressaisie | Résultat importé |
| 6 | Fiscaliste | Revoit les ajustements fiscaux | Chaque ajustement porte sa justification | Ajustements retenus |
| 7 | Plateforme | Calcule l'impôt fédéral | Taux datés, source unique | Impôt fédéral |
| 8 | Plateforme | Calcule l'impôt provincial | Taux datés, source unique | Impôt provincial |
| 9 | Fiscaliste | Valide et transmet | Validation explicite obligatoire | Transmission engagée |
| 10 | Plateforme | Enregistre l'accusé | Sans accusé, aucun état de succès | Accusé au dossier |
Statut : Livré.
2.4 A04 — Cycle de paie#
flowchart TD
subgraph l1["Gestionnaire de paie"]
n01(["Ouvrir le cycle de la période"])
n06["Revoir le cycle employé par employé"]
n07["Valider le cycle"]
end
subgraph l2["Plateforme"]
n02["Rassembler employés heures et absences"]
d01{"Données complètes"}
n03["Marquer l employé incomplet"]
n04["Calculer le brut"]
n05["Calculer les retenues à la source"]
n08["Produire les bulletins"]
n09["Notifier les employés"]
n10["Préparer le montant de la remise"]
n11(["Cycle verrouillé"])
end
n01 --> n02
n02 --> d01
d01 -->|"non"| n03
n03 --> n06
d01 -->|"oui"| n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Gestionnaire de paie | Ouvre le cycle | Une période verrouillée ne se rouvre pas implicitement | Cycle ouvert |
| 2 | Plateforme | Rassemble employés, heures et absences | Les employés sans rémunération configurée sont signalés, pas calculés à zéro | Données du cycle |
| 3 | Plateforme | Marque un employé incomplet | Le cycle ne se valide pas tant que l'écart persiste | Employé signalé |
| 4 | Plateforme | Calcule le brut | Rémunération, heures et avantages imposables | Brut par employé |
| 5 | Plateforme | Calcule les retenues à la source | Barèmes fédéraux et provinciaux | Retenues déterminées |
| 6 | Gestionnaire de paie | Revoit le cycle | Une correction relance le calcul et conserve l'historique | Cycle revu |
| 7 | Gestionnaire de paie | Valide le cycle | Validation explicite | Cycle validé |
| 8 | Plateforme | Produit les bulletins | Un bulletin par employé | Bulletins disponibles |
| 9 | Plateforme | Notifie les employés | L'absence de canal actif est signalée, jamais silencieuse | Notifications remises |
| 10 | Plateforme | Prépare le montant de la remise | Le montant est mis en attente avec sa date d'échéance | Remise préparée |
Statut : Livré.
2.5 A05 — Rapprochement bancaire#
flowchart TD
subgraph l1["Comptable"]
n01(["Ouvrir le rapprochement"])
n05["Valider les appariements proposés"]
n06["Apparier manuellement le reste"]
n09["Justifier ou passer les écritures"]
n10["Clôturer la période"]
end
subgraph l2["Plateforme"]
n02["Charger les transactions importées"]
d01{"Transactions présentes"}
n03["Afficher aucune transaction importée"]
n04["Proposer des appariements"]
n07["Calculer l écart résiduel"]
d02{"Écart sous le seuil"}
n08["Bloquer la clôture"]
n11(["Période rapprochée"])
end
n01 --> n02
n02 --> d01
d01 -->|"non"| n03
d01 -->|"oui"| n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> d02
d02 -->|"non"| n08
n08 --> n09
n09 --> n07
d02 -->|"oui"| n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Comptable | Ouvre le rapprochement d'un compte et d'une période | Compte bancaire déclaré | Écran de rapprochement |
| 2 | Plateforme | Charge les transactions importées | L'import est déclenché par l'ordonnanceur ou à la demande | Transactions chargées |
| 3 | Plateforme | Affiche « aucune transaction importée » | Jamais un rapprochement à zéro qui ressemblerait à un compte à jour | État honnête affiché |
| 4 | Plateforme | Propose des appariements | Sur montant, date et libellé | Propositions |
| 5 | Comptable | Valide les appariements proposés | Aucune validation automatique | Lignes pointées |
| 6 | Comptable | Apparie manuellement le reste | Une transaction sans contrepartie ouvre la création d'écriture | Lignes restantes traitées |
| 7 | Plateforme | Calcule l'écart résiduel | Écart affiché en valeur, pas en pourcentage seul | Écart connu |
| 8 | Plateforme | Bloque la clôture au-delà du seuil | Un écart non justifié empêche la clôture | Clôture refusée |
| 9 | Comptable | Justifie l'écart ou passe les écritures | Chaque justification est tracée | Écart traité |
| 10 | Comptable | Clôture la période | Une période déjà close exige une réouverture explicite et tracée | Période rapprochée |
Statut : Livré.
2.6 A06 — Demande de documents#
flowchart TD
subgraph l1["Cabinet"]
n01(["Ouvrir le dossier client"])
n02["Créer la demande de document"]
n10["Voir la pièce au dossier"]
end
subgraph l2["Plateforme"]
d01{"Pièce déjà au dossier"}
n03["Signaler la présence de la pièce"]
n04["Placer la demande en attente"]
n05["Notifier le client"]
n08["Passer la demande à satisfaite"]
n09["Notifier le cabinet"]
end
subgraph l3["Client"]
n06["Voir la demande dans ses actions"]
n07["Téléverser la pièce"]
end
n01 --> n02
n02 --> d01
d01 -->|"oui"| n03
n03 --> n02
d01 -->|"non"| n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Cabinet | Ouvre le dossier client | Client rattaché au cabinet | Dossier ouvert |
| 2 | Cabinet | Crée la demande en nommant la pièce et l'échéance | Une demande sans pièce nommée n'est pas créable | Demande formulée |
| 3 | Plateforme | Signale une pièce déjà présente | Évite le doublon avant création | Demande non dupliquée |
| 4 | Plateforme | Place la demande en attente | État initial unique | Demande en attente |
| 5 | Plateforme | Notifie le client | Absence de canal actif signalée au cabinet | Notification remise |
| 6 | Client | Voit la demande dans ses actions à faire | Même source de vérité que le cabinet | Demande visible |
| 7 | Client | Téléverse la pièce | Un écart de type laisse la demande en attente | Pièce déposée |
| 8 | Plateforme | Passe la demande à satisfaite | Transition unique et tracée | Demande satisfaite |
| 9 | Plateforme | Notifie le cabinet | Notification multicanal | Cabinet averti |
| 10 | Cabinet | Voit la pièce au dossier | Aucun transfert manuel, aucun courriel | Pièce disponible |
Statut : Livré.
2.7 A07 — Signature électronique#
flowchart TD
subgraph l1["Cabinet"]
n01(["Finaliser le document"])
n02["Désigner les signataires et l ordre"]
n03["Ouvrir le cycle de signature"]
end
subgraph l2["Plateforme"]
n04["Notifier le premier signataire"]
d01{"Signature apposée"}
n07["Relancer le signataire"]
n08["Passer au signataire suivant"]
d02{"Tous ont signé"}
n09["Sceller le document"]
n10["Conserver la preuve d apposition"]
n11(["Document signé"])
end
subgraph l3["Signataire"]
n05["Ouvrir le document"]
n06["Apposer sa signature"]
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> d01
d01 -->|"non"| n07
n07 --> n05
d01 -->|"oui"| n08
n08 --> d02
d02 -->|"non"| n04
d02 -->|"oui"| n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Cabinet | Finalise le document | Aucune signature sur un brouillon modifiable | Document figé |
| 2 | Cabinet | Désigne les signataires et leur ordre | L'ordre est explicite, jamais implicite | Liste de signataires |
| 3 | Cabinet | Ouvre le cycle de signature | Le document devient non modifiable | Cycle ouvert |
| 4 | Plateforme | Notifie le signataire courant | Un signataire à la fois si l'ordre est séquentiel | Invitation remise |
| 5 | Signataire | Ouvre le document | Accès par lien à usage encadré | Document lu |
| 6 | Signataire | Appose sa signature | Identité du signataire consignée | Signature apposée |
| 7 | Plateforme | Relance le signataire | Relance planifiée par l'ordonnanceur | Relance envoyée |
| 8 | Plateforme | Passe au signataire suivant | Progression tracée | Cycle avancé |
| 9 | Plateforme | Scelle le document | Le document scellé n'est plus modifiable | Document scellé |
| 10 | Plateforme | Conserve la preuve d'apposition | La preuve survit à la suppression d'un compte | Preuve conservée |
Statut : Livré.
2.8 A08 — Facture émise et encaissée#
flowchart TD
subgraph l1["Émetteur"]
n01(["Créer la facture"])
n02["Saisir les lignes"]
n04["Émettre la facture"]
end
subgraph l2["Plateforme"]
n03["Appliquer la grille tarifaire"]
n05["Numéroter et fixer l échéance"]
n06["Notifier le payeur"]
n09["Enregistrer le paiement"]
n10["Mettre à jour le solde"]
d02{"Solde nul"}
n11["Laisser la facture ouverte"]
n12(["Facture soldée"])
end
subgraph l3["Payeur"]
n07["Ouvrir la facture"]
n08["Payer"]
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> d02
d02 -->|"non"| n11
d02 -->|"oui"| n12
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Émetteur | Crée la facture | Client enregistré obligatoire | Facture en brouillon |
| 2 | Émetteur | Saisit les lignes | Quantité, prix, taxe par ligne | Lignes saisies |
| 3 | Plateforme | Applique la grille tarifaire | La grille prime sur la saisie libre quand elle existe | Prix appliqués |
| 4 | Émetteur | Émet la facture | Une facture émise n'est plus modifiable, seulement extournable par avoir | Facture émise |
| 5 | Plateforme | Numérote et fixe l'échéance | Numérotation continue, sans trou | Numéro attribué |
| 6 | Plateforme | Notifie le payeur | Multicanal | Payeur averti |
| 7 | Payeur | Ouvre la facture | Accès par lien ou par son portail | Facture lue |
| 8 | Payeur | Paie | Le prestataire de paiement est appelé | Paiement engagé |
| 9 | Plateforme | Enregistre le paiement | Un refus n'écrit aucun encaissement | Paiement enregistré |
| 10 | Plateforme | Met à jour le solde | Un avoir antérieur est pris en compte dans le net dû | Solde recalculé |
| 11 | Plateforme | Laisse la facture ouverte si paiement partiel | Le reliquat est affiché | Facture partiellement soldée |
Statut : Livré.
2.9 A09 — Facturation récurrente et relance#
flowchart TD
subgraph l1["Responsable de facturation"]
n01(["Définir le modèle de facture"])
n02["Choisir la périodicité"]
n03["Activer la récurrence"]
end
subgraph l2["Ordonnanceur"]
n04["Déclencher à l échéance de période"]
n09["Déclencher le contrôle des impayés"]
end
subgraph l3["Plateforme"]
n05["Générer la facture de la période"]
n06["Émettre et notifier"]
d01{"Facture échue et non soldée"}
n07["Ne rien faire"]
n08["Exécuter l étape de relance suivante"]
n10["Tracer la relance"]
n11(["Séquence de recouvrement en cours"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n09
n09 --> d01
d01 -->|"non"| n07
d01 -->|"oui"| n08
n08 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Responsable de facturation | Définit le modèle de facture | Lignes et tarifs figés dans le modèle | Modèle enregistré |
| 2 | Responsable de facturation | Choisit la périodicité | Périodicité explicite, jamais devinée | Périodicité fixée |
| 3 | Responsable de facturation | Active la récurrence | L'activation crée l'échéancier | Récurrence active |
| 4 | Ordonnanceur | Déclenche à l'échéance de période | Acteur temporel, pas d'action humaine | Génération demandée |
| 5 | Plateforme | Génère la facture de la période | Une seule facture par période et par modèle | Facture générée |
| 6 | Plateforme | Émet et notifie | Même parcours que A08 à partir de l'émission | Facture émise |
| 7 | Plateforme | Ne fait rien si la facture est soldée | Aucune relance sur une facture payée | Aucun envoi |
| 8 | Plateforme | Exécute l'étape de relance suivante | La séquence est configurée par étapes et délais | Relance envoyée |
| 9 | Ordonnanceur | Déclenche le contrôle des impayés | Passage périodique | Contrôle exécuté |
| 10 | Plateforme | Trace la relance | Chaque relance est datée et attribuée | Trace au dossier |
Statut : Livré.
2.10 A10 — Du reçu numérisé au classement#
flowchart TD
subgraph l1["Utilisateur"]
n01(["Photographier ou déposer le reçu"])
n05["Valider ou corriger les champs"]
n07["Confirmer le classement"]
end
subgraph l2["Plateforme"]
n02["Stocker et horodater le fichier"]
n03["Appeler le moteur de vision"]
d01{"Extraction réussie"}
n04["Proposer les champs extraits"]
n06["Proposer la saisie manuelle"]
n08["Classer dans le dossier"]
n09["Rattacher à une dépense"]
n10(["Reçu classé et exploitable"])
end
n01 --> n02
n02 --> n03
n03 --> d01
d01 -->|"oui"| n04
d01 -->|"non"| n06
n04 --> n05
n06 --> n05
n05 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Utilisateur | Photographie ou dépose le reçu | Le mobile et le web partagent le même parcours | Fichier reçu |
| 2 | Plateforme | Stocke et horodate | Le fichier est conservé même si l'extraction échoue | Fichier stocké |
| 3 | Plateforme | Appelle le moteur de vision | Extraction sur image ou fichier numérisé | Extraction lancée |
| 4 | Plateforme | Propose les champs extraits | La proposition n'écrit rien | Champs proposés |
| 5 | Utilisateur | Valide ou corrige | Toute écriture passe par une validation humaine | Champs retenus |
| 6 | Plateforme | Propose la saisie manuelle en cas d'échec | L'échec est nommé, pas masqué | Formulaire vide affiché |
| 7 | Utilisateur | Confirme le classement | Dossier de destination explicite | Classement demandé |
| 8 | Plateforme | Classe dans le dossier | Arborescence de l'utilisateur | Reçu classé |
| 9 | Plateforme | Rattache à une dépense | Le rattachement rend le reçu exploitable en fiscalité | Dépense documentée |
Statut : Livré.
2.11 A11 — Clôture mensuelle#
flowchart TD
subgraph l1["Comptable"]
n01(["Lancer la clôture du mois"])
n05["Passer les écritures de régularisation"]
n08["Confirmer la clôture"]
end
subgraph l2["Plateforme"]
n02["Vérifier les rapprochements"]
d01{"Rapprochements complets"}
n03["Lister les comptes non rapprochés"]
n04["Contrôler les écritures déséquilibrées"]
n06["Produire les états financiers"]
n07["Présenter les écarts au mois précédent"]
n09["Verrouiller la période"]
n10["Calculer le report à nouveau"]
n11(["Mois clôturé"])
end
n01 --> n02
n02 --> d01
d01 -->|"non"| n03
n03 --> n01
d01 -->|"oui"| n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Comptable | Lance la clôture du mois | Une clôture ne se lance pas sur une période déjà close | Clôture engagée |
| 2 | Plateforme | Vérifie les rapprochements | Tous les comptes bancaires de la période | Contrôle exécuté |
| 3 | Plateforme | Liste les comptes non rapprochés | La liste nomme chaque compte, pas un compteur seul | Blocage motivé |
| 4 | Plateforme | Contrôle les écritures déséquilibrées | Aucune écriture déséquilibrée ne passe | Contrôle exécuté |
| 5 | Comptable | Passe les écritures de régularisation | Amortissements, provisions, cut-off | Régularisations passées |
| 6 | Plateforme | Produit les états financiers | Bilan et résultat à la date de clôture | États produits |
| 7 | Plateforme | Présente les écarts au mois précédent | L'écart est la vraie information, pas le solde seul | Écarts affichés |
| 8 | Comptable | Confirme la clôture | Confirmation explicite | Clôture confirmée |
| 9 | Plateforme | Verrouille la période | Réouverture possible seulement de façon explicite et tracée | Période verrouillée |
| 10 | Plateforme | Calcule le report à nouveau | Ouverture du mois suivant | Report calculé |
Statut : Livré.
2.12 A12 — Remise TPS et TVQ#
flowchart TD
subgraph l1["Fiscaliste"]
n01(["Ouvrir la période de déclaration"])
n05["Revoir la ventilation"]
n07["Valider la remise"]
end
subgraph l2["Plateforme"]
n02["Collecter les ventes taxables"]
n03["Collecter les crédits sur intrants"]
n04["Calculer le montant net"]
d01{"Montant net positif"}
n06["Préparer une demande de remboursement"]
n08["Transmettre la déclaration"]
n09["Enregistrer l accusé et l échéance de paiement"]
n10(["Remise déclarée"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> d01
d01 -->|"oui"| n05
d01 -->|"non"| n06
n06 --> n05
n05 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Fiscaliste | Ouvre la période de déclaration | Périodicité déclarée par l'inscrit | Période ouverte |
| 2 | Plateforme | Collecte les ventes taxables | Depuis la facturation, jamais par ressaisie | Base de taxe |
| 3 | Plateforme | Collecte les crédits sur intrants | Depuis les achats enregistrés | Crédits identifiés |
| 4 | Plateforme | Calcule le montant net | Taxe perçue moins crédits sur intrants | Montant net |
| 5 | Fiscaliste | Revoit la ventilation | Chaque montant remonte à sa pièce | Ventilation validée |
| 6 | Plateforme | Prépare une demande de remboursement | Un net négatif est un remboursement, pas un zéro | Demande préparée |
| 7 | Fiscaliste | Valide la remise | Validation explicite | Remise validée |
| 8 | Plateforme | Transmet la déclaration | Transmission à l'administration provinciale | Transmission engagée |
| 9 | Plateforme | Enregistre l'accusé et l'échéance de paiement | L'échéance alimente le calendrier fiscal | Échéance suivie |
Statut : Livré.
2.13 A13 — Plan d'affaires#
flowchart TD
subgraph l1["Entrepreneur"]
n01(["Créer le plan d affaires"])
n02["Décrire le projet et le marché"]
n05["Saisir les hypothèses financières"]
n08["Compléter les sections manquantes"]
end
subgraph l2["Plateforme"]
n03["Structurer les sections attendues"]
n04["Proposer une aide contextuelle"]
n06["Bâtir le modèle financier"]
n07["Calculer le seuil de rentabilité"]
d01{"Sections complètes"}
n09["Produire le document de plan"]
n10(["Plan exploitable"])
end
n01 --> n03
n03 --> n02
n02 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> d01
d01 -->|"non"| n08
n08 --> d01
d01 -->|"oui"| n09
n09 --> n10
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Entrepreneur | Crée le plan d'affaires | Contexte entrepreneur actif | Plan créé |
| 2 | Entrepreneur | Décrit le projet et le marché | Aucun chiffre de marché sans sa source | Sections rédigées |
| 3 | Plateforme | Structure les sections attendues | Trame imposée, pas une page blanche | Trame affichée |
| 4 | Plateforme | Propose une aide contextuelle | L'assistance consomme des crédits et affiche ses sources | Suggestions affichées |
| 5 | Entrepreneur | Saisit les hypothèses financières | Chaque hypothèse est nommée et modifiable | Hypothèses saisies |
| 6 | Plateforme | Bâtit le modèle financier | Projections sur plusieurs exercices | Modèle produit |
| 7 | Plateforme | Calcule le seuil de rentabilité | Coûts fixes et variables séparés | Seuil calculé |
| 8 | Entrepreneur | Complète les sections manquantes | Le plan ne se produit pas incomplet | Sections complétées |
| 9 | Plateforme | Produit le document de plan | Document partageable | Plan exploitable |
Statut : Livré.
2.14 A14 — Incorporation#
flowchart TD
subgraph l1["Entrepreneur"]
n01(["Décider de constituer une société"])
n03["Choisir la dénomination"]
n06["Fournir les pièces demandées"]
end
subgraph l2["Incorporateur"]
n02["Recommander une forme juridique"]
n05["Établir la liste des pièces"]
n07["Constituer le dossier"]
n08["Déposer auprès du registraire"]
end
subgraph l3["Plateforme"]
n04["Vérifier la conformité de démarrage"]
n09["Ouvrir les registres de société"]
n10["Proposer la bascule vers le contexte PME"]
n11(["Société constituée"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Entrepreneur | Décide de constituer une société | Décision documentée dans le dossier | Projet ouvert |
| 2 | Incorporateur | Recommande une forme juridique | Recommandation motivée et datée | Forme retenue |
| 3 | Entrepreneur | Choisit la dénomination | Vérification de disponibilité à la charge du registraire | Dénomination proposée |
| 4 | Plateforme | Vérifie la conformité de démarrage | Points de conformité évalués, écarts listés | Écarts connus |
| 5 | Incorporateur | Établit la liste des pièces | Liste de contrôle attachée au dossier | Liste établie |
| 6 | Entrepreneur | Fournit les pièces | Demandes de documents et suivi côté client | Pièces déposées |
| 7 | Incorporateur | Constitue le dossier | Le dossier est complet ou il n'est pas déposé | Dossier constitué |
| 8 | Incorporateur | Dépose auprès du registraire | Acteur externe | Dépôt effectué |
| 9 | Plateforme | Ouvre les registres de société | Registres tenus dès la constitution | Registres ouverts |
| 10 | Plateforme | Propose la bascule vers le contexte PME | Aucune migration de données, aucune ressaisie | Bascule proposée |
Statut : Livré.
2.15 A15 — Mandat d'audit#
flowchart TD
subgraph l1["Auditeur"]
n01(["Ouvrir le mandat"])
n02["Fixer le périmètre"]
n03["Évaluer les risques"]
n05["Exécuter les tests"]
n07["Documenter les conclusions"]
n09["Émettre le rapport"]
end
subgraph l2["Plateforme"]
n04["Bâtir le programme de travail"]
n06["Rattacher les éléments probants"]
d01{"Tests concluants"}
n08["Ouvrir un point d attention"]
n10["Tracer au journal d audit"]
n11(["Mandat clos"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> d01
d01 -->|"non"| n08
n08 --> n05
d01 -->|"oui"| n07
n07 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Auditeur | Ouvre le mandat | Client rattaché, exercice identifié | Mandat ouvert |
| 2 | Auditeur | Fixe le périmètre | Périmètre écrit, pas implicite | Périmètre fixé |
| 3 | Auditeur | Évalue les risques | Cotation explicite | Risques cotés |
| 4 | Plateforme | Bâtit le programme de travail | Le programme découle des risques | Programme établi |
| 5 | Auditeur | Exécute les tests | Chaque test porte son résultat | Tests exécutés |
| 6 | Plateforme | Rattache les éléments probants | Un test sans élément probant reste non concluant | Éléments rattachés |
| 7 | Auditeur | Documente les conclusions | Conclusion référencée aux tests | Conclusions écrites |
| 8 | Plateforme | Ouvre un point d'attention | Un test non concluant ne se referme pas seul | Point ouvert |
| 9 | Auditeur | Émet le rapport | Rapport daté et signé | Rapport émis |
| 10 | Plateforme | Trace au journal d'audit | La trace survit à la suppression d'un compte | Piste de vérification |
Statut : Livré.
2.16 A16 — Demande de soumission#
flowchart TD
subgraph l1["Demandeur"]
n01(["Décrire le besoin"])
n02["Fixer le budget et le délai"]
n03["Publier la demande"]
n08["Comparer les propositions"]
n09["Retenir un cabinet"]
end
subgraph l2["Plateforme"]
n04["Identifier les cabinets éligibles"]
n05["Notifier les cabinets"]
n10["Ouvrir la relation client cabinet"]
n11(["Mandat engagé"])
end
subgraph l3["Cabinet"]
n06["Consulter la demande"]
n07["Transmettre une proposition"]
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Demandeur | Décrit le besoin | Un besoin non décrit n'est pas diffusable | Besoin formulé |
| 2 | Demandeur | Fixe le budget et le délai | Champs explicites | Cadre posé |
| 3 | Demandeur | Publie la demande | Publication volontaire | Demande publiée |
| 4 | Plateforme | Identifie les cabinets éligibles | Éligibilité selon la vitrine et les domaines déclarés | Cabinets ciblés |
| 5 | Plateforme | Notifie les cabinets | Multicanal | Cabinets avertis |
| 6 | Cabinet | Consulte la demande | Accès depuis le portail Affaires | Demande lue |
| 7 | Cabinet | Transmet une proposition | Proposition datée et chiffrée | Proposition reçue |
| 8 | Demandeur | Compare les propositions | Comparaison côte à côte | Comparaison faite |
| 9 | Demandeur | Retient un cabinet | Choix explicite | Cabinet retenu |
| 10 | Plateforme | Ouvre la relation client cabinet | Le client entre dans le portefeuille du cabinet | Relation ouverte |
Statut : Livré.
2.17 A17 — Requête à l'assistant avec consommation de crédits#
flowchart TD
subgraph l1["Utilisateur"]
n01(["Saisir la question"])
n11["Lire la réponse et ses sources"]
end
subgraph l2["Plateforme"]
n02["Vérifier le solde de crédits"]
d01{"Solde strictement positif"}
n03["Refuser l appel et nommer la cause"]
n04["Appliquer les garde-fous en entrée"]
n05["Interroger la base de connaissances"]
d02{"Base joignable"}
n06["Répondre sans ancrage et le signaler"]
n07["Appeler la passerelle de modèles"]
n08["Appliquer les garde-fous en sortie"]
n09["Décompter au tarif daté du modèle servi"]
n10["Persister la réponse et ses sources"]
n12(["Appel terminé"])
end
n01 --> n02
n02 --> d01
d01 -->|"non"| n03
n03 --> n12
d01 -->|"oui"| n04
n04 --> n05
n05 --> d02
d02 -->|"non"| n06
n06 --> n07
d02 -->|"oui"| n07
n07 --> n08
n08 --> n09
n09 --> n10
n10 --> n11
n11 --> n12
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Utilisateur | Saisit la question | Aucune restriction de forme | Question soumise |
| 2 | Plateforme | Vérifie le solde de crédits | Le contrôle précède l'appel, jamais l'inverse | Solde connu |
| 3 | Plateforme | Refuse l'appel au solde nul | Aucun dépassement facturé. Le message dit « crédits épuisés », jamais « service indisponible » | Appel refusé |
| 4 | Plateforme | Applique les garde-fous en entrée | Un rejet ne consomme aucun crédit | Entrée filtrée |
| 5 | Plateforme | Interroge la base de connaissances | Ancrage documentaire | Fragments récupérés |
| 6 | Plateforme | Répond sans ancrage si la base est injoignable | Échec ouvert assumé : l'absence d'ancrage est visible dans la réponse | Réponse non ancrée signalée |
| 7 | Plateforme | Appelle la passerelle de modèles | Point de passage unique | Réponse brute |
| 8 | Plateforme | Applique les garde-fous en sortie | Un rejet retient la réponse et affiche son motif | Sortie filtrée |
| 9 | Plateforme | Décompte au tarif daté du modèle servi | Un taux manquant lève une erreur au lieu de valoir zéro | Crédits décomptés |
| 10 | Plateforme | Persiste la réponse et ses sources | Identifiant et nom de document, indice de fragment | Réponse tracée |
Statut : Livré.
2.18 A18 — Approbation humaine d'une action à conséquence#
flowchart TD
subgraph l1["Agent"]
n01(["Proposer une action à conséquence"])
end
subgraph l2["Plateforme"]
n02["Différer l écriture"]
n03["Créer la demande d approbation"]
n04["Notifier l approbateur habilité"]
d01{"Décision"}
n07["Rejouer l écriture différée"]
n08["N effectuer aucune écriture"]
d02{"Rejeu réussi"}
n09["Marquer approuvée non exécutée"]
n10["Tracer la décision au journal d audit"]
n11(["Demande close"])
end
subgraph l3["Approbateur"]
n05["Lire l action ses effets et sa justification"]
n06["Approuver ou rejeter"]
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> d01
d01 -->|"approuvée"| n07
d01 -->|"rejetée"| n08
n07 --> d02
d02 -->|"non"| n09
d02 -->|"oui"| n10
n08 --> n10
n09 --> n10
n10 --> n11
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Agent | Propose une action à conséquence | Une action à conséquence ne s'exécute jamais directement | Proposition émise |
| 2 | Plateforme | Diffère l'écriture | L'écriture est préparée, pas appliquée | Écriture différée |
| 3 | Plateforme | Crée la demande d'approbation | Une demande par action | Demande créée |
| 4 | Plateforme | Notifie l'approbateur habilité | Un non-habilité ne voit pas la demande | Approbateur averti |
| 5 | Approbateur | Lit l'action, ses effets et sa justification | Les effets sont affichés avant la décision | Action comprise |
| 6 | Approbateur | Approuve ou rejette | Décision explicite | Décision prise |
| 7 | Plateforme | Rejoue l'écriture différée | Le rejeu est la seule voie d'exécution | Action exécutée |
| 8 | Plateforme | N'effectue aucune écriture au rejet | Rien n'est écrit. Le rejet n'est pas une annulation après coup | Aucun effet |
| 9 | Plateforme | Marque « approuvée non exécutée » si le rejeu échoue | Aucun faux succès affiché | État honnête |
| 10 | Plateforme | Trace la décision au journal d'audit | La trace survit à la suppression du compte de l'approbateur | Preuve conservée |
Statut : Livré — sur les quatre surfaces.
2.19 A19 — Changement de forfait#
flowchart TD
subgraph l1["Titulaire"]
n01(["Ouvrir la page d abonnement"])
n03["Choisir le nouveau forfait"]
n06["Confirmer le changement"]
n10["Demander la résiliation"]
end
subgraph l2["Plateforme"]
n02["Afficher le forfait courant et ses dotations"]
n04["Calculer l écart de sièges clients et crédits"]
n05["Présenter le montant au prorata"]
n07["Appeler le prestataire de paiement"]
d01{"Paiement accepté"}
n08["Appliquer les nouveaux droits"]
n09["Conserver l ancien forfait"]
d02{"Surface Affaires"}
n11["Ouvrir l écran de résiliation en libre service"]
n12["Router une demande vers le cabinet"]
n13(["Abonnement à jour"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n04 --> n05
n05 --> n06
n06 --> n07
n07 --> d01
d01 -->|"oui"| n08
d01 -->|"non"| n09
n08 --> n13
n09 --> n13
n02 --> n10
n10 --> d02
d02 -->|"oui"| n11
d02 -->|"non"| n12
n11 --> n13
n12 --> n13
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Titulaire | Ouvre la page d'abonnement | Compte authentifié | Page affichée |
| 2 | Plateforme | Affiche le forfait courant et ses dotations | Sièges, clients, crédits par mois | Situation connue |
| 3 | Titulaire | Choisit le nouveau forfait | Les paliers retirés de la vente ne sont pas proposés | Forfait cible |
| 4 | Plateforme | Calcule l'écart de sièges, clients et crédits | L'écart est affiché avant paiement | Écart affiché |
| 5 | Plateforme | Présente le montant au prorata | Montant calculé, jamais estimé à la main | Montant affiché |
| 6 | Titulaire | Confirme le changement | Confirmation explicite | Changement demandé |
| 7 | Plateforme | Appelle le prestataire de paiement | Aucun droit accordé avant encaissement | Paiement engagé |
| 8 | Plateforme | Applique les nouveaux droits | Les droits viennent du catalogue de la plateforme | Droits recalculés |
| 9 | Plateforme | Conserve l'ancien forfait en cas de refus | Aucun état intermédiaire | Situation inchangée |
| 10 | Titulaire | Demande la résiliation | Voir la branche ci-dessous | Demande émise |
| 11 | Plateforme | Ouvre l'écran de résiliation en libre-service | ⚠️ Portail Affaires uniquement — confirmation par saisie, motif facultatif, effet en fin de période | Résiliation programmée |
| 12 | Plateforme | Route une demande vers le cabinet | ⚠️ Aucun écran de résiliation au portail Client ni sur mobile. Un particulier ne résilie pas seul | Demande routée à un humain |
Statut : Livré pour le changement de forfait. Résiliation en libre-service : Livré — portail Affaires seulement.
2.20 A20 — Demande d'export de données#
⚠️ Ce flux ne va pas à son terme dans le produit#
Le point d'entrée d'export existe et crée une demande à l'état « en attente ». Aucun processus ne l'exécute — le travailleur asynchrone porte une réserve de non-implémentation explicite dans le code, et l'adresse de téléchargement reste vide. Le périmètre couvert ne serait de toute façon que le profil client — profil, adhésions, avis — ni la comptabilité, ni les déclarations, ni les documents, ni les finances personnelles.
Le diagramme ci-dessous représente donc le flux réel, terminaison comprise. Formulation autorisée en communication : « vous pouvez demander l'export de vos données ; la demande est traitée par votre cabinet. » ⛔ Interdit : « export intégral en libre-service ».
flowchart TD
subgraph l1["Titulaire"]
n01(["Ouvrir les droits sur ses données"])
n02["Demander un export"]
n07["Voir la demande en attente"]
end
subgraph l2["Plateforme"]
n03["Créer la demande à l état en attente"]
n04["Router un ticket vers le cabinet"]
n05["Ne déclencher aucun travailleur d exécution"]
n06["Laisser l adresse de téléchargement vide"]
end
subgraph l3["Humain du cabinet"]
n08["Prendre en charge le ticket"]
n09["Constituer la remise hors produit"]
n10(["Fin — traitement humain"])
end
n01 --> n02
n02 --> n03
n03 --> n04
n03 --> n05
n05 --> n06
n06 --> n07
n04 --> n08
n08 --> n09
n09 --> n10
| Étape | Acteur | Action | Règle | Sortie |
|---|
| 1 | Titulaire | Ouvre l'écran des droits sur ses données | Écran présent sur le portail | Écran affiché |
| 2 | Titulaire | Demande un export | La demande est acceptée | Demande soumise |
| 3 | Plateforme | Crée la demande à l'état « en attente » | État initial et état final dans le produit | Demande en attente |
| 4 | Plateforme | Route un ticket vers le cabinet | Le traitement est humain | Ticket ouvert |
| 5 | Plateforme | Ne déclenche aucun travailleur d'exécution | ⚠️ Le travailleur asynchrone n'existe pas | Aucune exécution |
| 6 | Plateforme | Laisse l'adresse de téléchargement vide | Aucun lien fabriqué, aucun faux succès | Adresse vide |
| 7 | Titulaire | Voit sa demande en attente | L'écran ne promet pas de délai qu'il ne peut pas tenir | État visible |
| 8 | Humain du cabinet | Prend en charge le ticket | Hors du produit | Prise en charge |
| 9 | Humain du cabinet | Constitue la remise hors produit | Périmètre à convenir avec le demandeur | Remise manuelle |
Statut : Livré — partiel. Le flux d'écran existe ; le processus d'exécution n'existe pas.
3. Diagrammes de séquence#
Dix-huit diagrammes. Chacun est suivi de son tableau N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur.
3.1 Q01 — Authentification#
sequenceDiagram
participant a01 as "Navigateur"
participant a02 as "Portail"
participant a03 as "Fournisseur d identité"
participant a04 as "Service de comptes"
a01->>a02: Ouvrir une page protégée
a02->>a03: Rediriger vers l authentification
a01->>a03: Soumettre les identifiants
alt Identifiants valides
a03-->>a02: Jeton signé
a02->>a04: Résoudre le compte et le locataire
a04-->>a02: Compte locataire et contextes autorisés
a02-->>a01: Session ouverte et contexte par défaut
else Identifiants refusés
a03-->>a01: Refus explicite sans session
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Navigateur | Portail | Ouvrir une page protégée | Aucune session active | Redirection | — |
| 2 | Portail | Fournisseur d'identité | Rediriger vers l'authentification | Toujours | Formulaire | Fournisseur injoignable — le message le dit, aucune session fabriquée |
| 3 | Navigateur | Fournisseur d'identité | Soumettre les identifiants | Formulaire rempli | Décision | Refus explicite, aucune session |
| 4 | Fournisseur d'identité | Portail | Jeton signé | Identifiants valides | Jeton | Jeton expiré — nouvelle authentification demandée |
| 5 | Portail | Service de comptes | Résoudre le compte et le locataire | Jeton valide | Compte et locataire | Compte inconnu — accès refusé |
| 6 | Service de comptes | Portail | Contextes autorisés | Toujours | Liste des contextes | Aucun contexte autorisé — contexte de repli |
| 7 | Portail | Navigateur | Session ouverte et contexte par défaut | Résolution réussie | Tableau de bord | — |
Note. L'authentification à deux facteurs n'est pas implémentée. Elle n'apparaît donc dans aucune branche de ce diagramme, et elle ne doit être annoncée nulle part.
3.2 Q02 — Tableau de bord contextuel#
sequenceDiagram
participant a01 as "Navigateur"
participant a02 as "Portail"
participant a03 as "Catalogue de la plateforme"
participant a04 as "Services de domaine"
a01->>a02: Demander le tableau de bord
a02->>a03: Résoudre les droits du contexte actif
a03-->>a02: Modules autorisés et clefs d offre
a02->>a04: Demander les indicateurs des modules autorisés
a04-->>a02: Indicateurs disponibles
a02-->>a01: Tableau de bord composé
Note over a02,a04: Une source injoignable affiche un tiret, jamais un zéro
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Navigateur | Portail | Demander le tableau de bord | Session active | Composition engagée | — |
| 2 | Portail | Catalogue | Résoudre les droits du contexte actif | Contexte connu | Modules autorisés | Catalogue injoignable — aucun droit accordé par défaut |
| 3 | Catalogue | Portail | Modules autorisés et clefs d'offre | Toujours | Liste | Liste vide — le tableau de bord n'affiche que le socle |
| 4 | Portail | Services de domaine | Demander les indicateurs | Module autorisé | Valeurs | Service injoignable — tuile en tiret |
| 5 | Services de domaine | Portail | Indicateurs disponibles | Données présentes | Valeurs | Aucune donnée — mention explicite, jamais un zéro |
| 6 | Portail | Navigateur | Tableau de bord composé | Toujours | Écran | — |
3.3 Q03 — Bascule de contexte#
sequenceDiagram
participant a01 as "Utilisateur"
participant a02 as "Portail"
participant a03 as "Catalogue de la plateforme"
participant a04 as "Registre de navigation"
a01->>a02: Ouvrir le sélecteur de contexte
a02->>a03: Lister les contextes autorisés
a03-->>a02: Contextes autorisés et contextes conditionnés
a02-->>a01: Cartes de contexte visibles
a01->>a02: Choisir un contexte
alt Droits suffisants
a02->>a04: Recomposer la navigation
a04-->>a02: Arborescence du contexte
a02-->>a01: Redirection vers le tableau de bord du contexte
else Clef d offre inactive
a02-->>a01: Carte absente et parcours d achat proposé
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Utilisateur | Portail | Ouvrir le sélecteur de contexte | Session active | Sélecteur | — |
| 2 | Portail | Catalogue | Lister les contextes autorisés | Toujours | Liste | Catalogue injoignable — le contexte courant est conservé |
| 3 | Catalogue | Portail | Contextes autorisés et conditionnés | Toujours | Liste qualifiée | — |
| 4 | Portail | Utilisateur | Cartes de contexte visibles | Toujours | Sélecteur affiché | business, epicerie, startup masqués sans clef active |
| 5 | Utilisateur | Portail | Choisir un contexte | Carte visible | Bascule engagée | — |
| 6 | Portail | Registre de navigation | Recomposer la navigation | Droits suffisants | Arborescence | Échec — le contexte antérieur reste actif |
| 7 | Portail | Utilisateur | Redirection vers le tableau de bord | Recomposition réussie | Écran du contexte | Trois contextes ont un tableau de bord dédié |
sequenceDiagram
participant a01 as "Utilisateur"
participant a02 as "Service de documents"
participant a03 as "Moteur de vision"
participant a04 as "Compteur de crédits"
a01->>a02: Téléverser le fichier
a02-->>a01: Fichier stocké et horodaté
a02->>a04: Vérifier le solde avant extraction
alt Solde suffisant
a02->>a03: Demander l extraction
a03-->>a02: Champs extraits et indice de confiance
a02-->>a01: Champs proposés à la validation
else Solde épuisé
a02-->>a01: Fichier conservé et extraction non lancée
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Utilisateur | Service de documents | Téléverser le fichier | Format et taille conformes | Accusé de stockage | Taille dépassée — la limite est nommée |
| 2 | Service de documents | Utilisateur | Fichier stocké et horodaté | Toujours | Confirmation | Stockage indisponible — aucun état de succès |
| 3 | Service de documents | Compteur de crédits | Vérifier le solde | Extraction demandée | Solde | — |
| 4 | Service de documents | Moteur de vision | Demander l'extraction | Solde suffisant | Champs extraits | Moteur injoignable — saisie manuelle proposée |
| 5 | Moteur de vision | Service de documents | Champs et indice de confiance | Extraction réussie | Champs | Extraction infructueuse — aucun champ deviné |
| 6 | Service de documents | Utilisateur | Champs proposés à la validation | Toujours | Formulaire prérempli | La proposition n'écrit rien avant validation |
| 7 | Service de documents | Utilisateur | Extraction non lancée | Solde épuisé | Message explicite | Le fichier reste conservé |
3.5 Q05 — Calcul fiscal fédéral et provincial#
sequenceDiagram
participant a01 as "Contribuable"
participant a02 as "Portail"
participant a03 as "Service de fiscalité"
participant a04 as "Table de taux datés"
a01->>a02: Demander le calcul
a02->>a03: Transmettre les données du dossier
a03->>a04: Demander les taux de l année
alt Taux présents
a04-->>a03: Taux fédéraux et provinciaux
a03-->>a02: Résultat fédéral résultat provincial et détail par ligne
a02-->>a01: Résultats et détail de calcul
else Taux manquant
a04-->>a03: Erreur de taux manquant
a03-->>a02: Calcul refusé avec la cause
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Contribuable | Portail | Demander le calcul | Données saisies | Calcul engagé | — |
| 2 | Portail | Service de fiscalité | Transmettre les données du dossier | Dossier ouvert | Traitement | Dossier verrouillé — calcul refusé |
| 3 | Service de fiscalité | Table de taux | Demander les taux de l'année | Année connue | Taux | — |
| 4 | Table de taux | Service de fiscalité | Taux fédéraux et provinciaux | Taux présents | Valeurs datées | Un taux manquant lève une erreur, il ne vaut jamais zéro |
| 5 | Service de fiscalité | Portail | Résultats et détail par ligne | Calcul abouti | Résultats | Écart entre fédéral et provincial au-delà du seuil — signalé |
| 6 | Portail | Contribuable | Résultats et détail de calcul | Toujours | Écran de résultat | Calcul refusé — la cause est nommée, pas masquée |
3.6 Q06 — Demande de document, du cabinet au client#
sequenceDiagram
participant a01 as "Cabinet"
participant a02 as "Service de documents"
participant a03 as "Passerelle de notification"
participant a04 as "Portail Client"
a01->>a02: Créer la demande de document
a02-->>a01: Demande en attente
a02->>a03: Notifier le client
a03-->>a04: Notification remise
a04->>a02: Téléverser la pièce demandée
a02-->>a04: Demande satisfaite
a02->>a03: Notifier le cabinet
a03-->>a01: Pièce disponible au dossier
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Cabinet | Service de documents | Créer la demande | Client rattaché | Demande créée | Pièce déjà présente — le doublon est signalé |
| 2 | Service de documents | Cabinet | Demande en attente | Toujours | État initial | — |
| 3 | Service de documents | Passerelle de notification | Notifier le client | Canal actif | Envoi | Aucun canal — l'absence est signalée au cabinet |
| 4 | Passerelle | Portail Client | Notification remise | Toujours | Demande visible dans les actions | — |
| 5 | Portail Client | Service de documents | Téléverser la pièce | Demande ouverte | Dépôt | Type non conforme — la demande reste en attente |
| 6 | Service de documents | Portail Client | Demande satisfaite | Dépôt conforme | Transition d'état | — |
| 7 | Service de documents | Passerelle | Notifier le cabinet | Toujours | Envoi | — |
| 8 | Passerelle | Cabinet | Pièce disponible au dossier | Toujours | Pièce visible | Aucun transfert manuel entre les deux portails |
3.7 Q07 — Signature multi-parties#
sequenceDiagram
participant a01 as "Cabinet"
participant a02 as "Service de documents"
participant a03 as "Service de signature"
participant a04 as "Signataire"
a01->>a02: Ouvrir le cycle de signature
a02->>a03: Créer le dossier de signature
a03-->>a02: Cycle ouvert et ordre des signataires
a03->>a04: Inviter le signataire courant
a04->>a03: Apposer la signature
a03-->>a02: Signature enregistrée
alt Signataires restants
a03->>a04: Inviter le signataire suivant
else Tous ont signé
a03-->>a02: Document scellé et preuve d apposition
a02-->>a01: Document signé au dossier
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Cabinet | Service de documents | Ouvrir le cycle de signature | Document finalisé | Cycle demandé | Document modifiable — refus, il faut le figer |
| 2 | Service de documents | Service de signature | Créer le dossier de signature | Signataires désignés | Cycle ouvert | Service injoignable — aucun cycle ouvert |
| 3 | Service de signature | Signataire | Inviter le signataire courant | Ordre respecté | Invitation | Adresse invalide — l'échec est remonté au cabinet |
| 4 | Signataire | Service de signature | Apposer la signature | Invitation valide | Signature | Lien expiré — nouvelle invitation nécessaire |
| 5 | Service de signature | Service de documents | Signature enregistrée | Toujours | Progression | — |
| 6 | Service de signature | Service de documents | Document scellé et preuve | Tous ont signé | Document scellé | Scellement échoué — le cycle reste ouvert |
| 7 | Service de documents | Cabinet | Document signé au dossier | Toujours | Pièce disponible | — |
3.8 Q08 — Paiement et rapprochement#
sequenceDiagram
participant a01 as "Payeur"
participant a02 as "Service de facturation"
participant a03 as "Prestataire de paiement"
participant a04 as "Service de comptabilité"
a01->>a02: Déclencher le paiement de la facture
a02->>a03: Créer l intention de paiement
a03-->>a02: Encaissement confirmé
a02->>a02: Rattacher le paiement à la facture
a02-->>a01: Solde de la facture mis à jour
a02->>a04: Rendre le paiement rapprochable
a04-->>a02: Écriture disponible au rapprochement
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Payeur | Service de facturation | Déclencher le paiement | Facture émise et non soldée | Intention créée | Facture annulée — paiement non affecté et signalé |
| 2 | Service de facturation | Prestataire de paiement | Créer l'intention de paiement | Moyen de paiement disponible | Encaissement | Prestataire injoignable — aucun encaissement écrit |
| 3 | Prestataire | Service de facturation | Encaissement confirmé | Paiement accepté | Confirmation | Refus — motif affiché, aucune écriture |
| 4 | Service de facturation | Lui-même | Rattacher le paiement à la facture | Encaissement confirmé | Rattachement | Paiement partiel — reliquat calculé |
| 5 | Service de facturation | Payeur | Solde mis à jour | Toujours | Solde exact | Avoir antérieur pris en compte dans le net dû |
| 6 | Service de facturation | Service de comptabilité | Rendre le paiement rapprochable | Toujours | Écriture disponible | Extourne ultérieure — la facture rouvre et l'événement est tracé |
3.9 Q09 — Souscription et attribution des droits#
sequenceDiagram
participant a01 as "Titulaire"
participant a02 as "Service de facturation"
participant a03 as "Prestataire de paiement"
participant a04 as "Catalogue de la plateforme"
a01->>a02: Souscrire un forfait
a02->>a04: Lire la définition du forfait
a04-->>a02: Sièges clients crédits et modules inclus
a02->>a03: Encaisser
alt Paiement accepté
a03-->>a02: Encaissement confirmé
a02->>a04: Activer les droits du forfait
a04-->>a02: Droits actifs
a02-->>a01: Abonnement actif
else Paiement refusé
a03-->>a02: Refus
a02-->>a01: Aucun droit accordé
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Titulaire | Service de facturation | Souscrire un forfait | Forfait en vente | Souscription engagée | Palier retiré de la vente — non proposé |
| 2 | Service de facturation | Catalogue | Lire la définition du forfait | Toujours | Sièges, clients, crédits, modules | Catalogue injoignable — souscription refusée |
| 3 | Catalogue | Service de facturation | Dotations du forfait | Toujours | Valeurs | Voir Q18 — écart possible entre valeur servie et valeur en base |
| 4 | Service de facturation | Prestataire de paiement | Encaisser | Moyen de paiement valide | Encaissement | Refus — aucun droit accordé |
| 5 | Service de facturation | Catalogue | Activer les droits | Encaissement confirmé | Droits actifs | Aucun droit avant encaissement |
| 6 | Service de facturation | Titulaire | Abonnement actif | Toujours | Confirmation | Activation partielle — l'état reste en cours, pas actif |
3.10 Q10 — Achat de module#
sequenceDiagram
participant a01 as "Titulaire"
participant a02 as "Portail"
participant a03 as "Service de facturation"
participant a04 as "Catalogue de la plateforme"
a01->>a02: Ouvrir un contexte conditionné
a02->>a04: Vérifier la clef d offre
a04-->>a02: Clef inactive
a02-->>a01: Proposer le module ou l ensemble
a01->>a03: Acheter le module
a03->>a04: Activer la clef d offre
a04-->>a03: Clef active
a03-->>a02: Droits recalculés
a02-->>a01: Carte du contexte désormais visible
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Titulaire | Portail | Ouvrir un contexte conditionné | Contexte demandé | Vérification | — |
| 2 | Portail | Catalogue | Vérifier la clef d'offre | Toujours | État de la clef | Catalogue injoignable — la carte reste masquée |
| 3 | Catalogue | Portail | Clef inactive | Clef non détenue | État | — |
| 4 | Portail | Titulaire | Proposer le module ou l'ensemble | Clef inactive | Offre affichée | Cinq ensembles existent — Patrimoine, Entrepreneur, Affaires, PME, Épicerie |
| 5 | Titulaire | Service de facturation | Acheter le module | Offre acceptée | Achat engagé | Paiement refusé — aucune clef activée |
| 6 | Service de facturation | Catalogue | Activer la clef d'offre | Paiement accepté | Clef active | Activation échouée — l'état reste inchangé |
| 7 | Portail | Titulaire | Carte du contexte visible | Clef active | Sélecteur recomposé | — |
3.11 Q11 — Consommation de crédits et refus au plafond#
sequenceDiagram
participant a01 as "Utilisateur"
participant a02 as "Service applicatif"
participant a03 as "Compteur de crédits"
participant a04 as "Passerelle de modèles"
a01->>a02: Demander une action assistée
a02->>a03: Vérifier le solde
alt Solde strictement positif
a03-->>a02: Solde suffisant
a02->>a04: Appeler le modèle
a04-->>a02: Réponse et modèle réellement servi
a02->>a03: Décompter au tarif daté du modèle servi
a03-->>a02: Nouveau solde
a02-->>a01: Réponse et solde mis à jour
else Solde nul
a03-->>a02: Crédits insuffisants
a02-->>a01: Appel refusé et cause nommée
end
Note over a02,a03: Aucun dépassement n est jamais facturé
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Utilisateur | Service applicatif | Demander une action assistée | Session active | Traitement | — |
| 2 | Service applicatif | Compteur de crédits | Vérifier le solde | Avant l'appel, jamais après | Solde | Compteur injoignable — l'appel n'est pas lancé |
| 3 | Compteur | Service applicatif | Crédits insuffisants | Solde nul | Refus | L'appel est refusé. Aucun dépassement facturé |
| 4 | Service applicatif | Utilisateur | Appel refusé et cause nommée | Solde nul | Message explicite | Le message dit « crédits épuisés », jamais « service indisponible » |
| 5 | Service applicatif | Passerelle de modèles | Appeler le modèle | Solde suffisant | Réponse | Passerelle injoignable — cause distincte du manque de crédits |
| 6 | Passerelle | Service applicatif | Réponse et modèle réellement servi | Toujours | Identité du modèle | Le modèle servi peut différer du modèle demandé — le tarif suit le modèle servi |
| 7 | Service applicatif | Compteur | Décompter au tarif daté | Réponse obtenue | Nouveau solde | Tarif absent — erreur levée, jamais zéro |
| 8 | Service applicatif | Utilisateur | Réponse et solde mis à jour | Toujours | Écran | — |
Réserve de communication. ✅ Autorisé : « vos crédits sont visibles, et au zéro l'appel est refusé plutôt que facturé. » ⛔ Interdit : « plafonnez votre dépense » — aucun plafond de dépense configurable n'existe. Le seul réglage voisin est un seuil de recharge automatique, qui est l'inverse d'un plafond. Le plafond effectif est la dotation du forfait, non modifiable.
3.12 Q12 — Orchestration multi-agents#
sequenceDiagram
participant a01 as "Professionnel"
participant a02 as "Orchestrateur"
participant a03 as "Agent analyste"
participant a04 as "Agent rédacteur"
participant a05 as "Agent critique"
a01->>a02: Confier une tâche composée
a02->>a03: Analyser les données du dossier
a03-->>a02: Constats et sources
a02->>a04: Rédiger la synthèse à partir des constats
a04-->>a02: Projet de synthèse
a02->>a05: Revoir la synthèse
alt Revue favorable
a05-->>a02: Verdict favorable
a02-->>a01: Synthèse et attribution par agent
else Revue défavorable
a05-->>a02: Verdict défavorable et motifs
a02->>a04: Reprendre la rédaction
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Professionnel | Orchestrateur | Confier une tâche composée | Droits suffisants et crédits disponibles | Tâche prise en charge | Crédits épuisés — la tâche n'est pas lancée |
| 2 | Orchestrateur | Agent analyste | Analyser les données du dossier | Données accessibles | Constats et sources | Données inaccessibles — l'étape est marquée en échec, pas ignorée |
| 3 | Agent analyste | Orchestrateur | Constats et sources | Toujours | Constats tracés | Aucun constat — l'absence est dite, pas remplacée par un texte générique |
| 4 | Orchestrateur | Agent rédacteur | Rédiger la synthèse | Constats disponibles | Projet de synthèse | Rédaction refusée par les garde-fous — motif affiché |
| 5 | Orchestrateur | Agent critique | Revoir la synthèse | Projet disponible | Verdict | Un verdict de repli n'a pas la même valeur qu'un verdict complet — la distinction est portée |
| 6 | Agent critique | Orchestrateur | Verdict et motifs | Toujours | Décision | Verdict indisponible — la synthèse n'est pas présentée comme revue |
| 7 | Orchestrateur | Professionnel | Synthèse et attribution par agent | Revue favorable | Résultat attribué | Chaque contribution reste attribuable à son agent |
sequenceDiagram
participant a01 as "Service de documents"
participant a02 as "Service de vision"
participant a03 as "Modèle de vision"
participant a04 as "Compteur de crédits"
a01->>a02: Soumettre le fichier à extraire
a02->>a04: Vérifier et réserver les crédits
a04-->>a02: Réservation acceptée
a02->>a03: Analyser le document
a03-->>a02: Champs indices de confiance et zones
a02->>a04: Décompter le coût réel
a02-->>a01: Champs proposés avec leur confiance
Note over a02,a01: Aucun champ n est écrit sans validation humaine
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Service de documents | Service de vision | Soumettre le fichier | Fichier stocké | Traitement engagé | Format non pris en charge — saisie manuelle proposée |
| 2 | Service de vision | Compteur de crédits | Vérifier et réserver les crédits | Toujours | Réservation | Solde nul — extraction non lancée, fichier conservé |
| 3 | Service de vision | Modèle de vision | Analyser le document | Réservation acceptée | Champs et zones | Modèle injoignable — la réservation est libérée |
| 4 | Modèle de vision | Service de vision | Champs, indices de confiance et zones | Analyse réussie | Résultat | Confiance faible — le champ est proposé, marqué à vérifier |
| 5 | Service de vision | Compteur | Décompter le coût réel | Analyse terminée | Nouveau solde | Coût réel différent de la réservation — l'écart est régularisé |
| 6 | Service de vision | Service de documents | Champs proposés avec leur confiance | Toujours | Formulaire prérempli | Aucune écriture sans validation humaine |
3.14 Q14 — Prévision de trésorerie#
sequenceDiagram
participant a01 as "Ordonnanceur"
participant a02 as "Service de trésorerie"
participant a03 as "Service de facturation"
participant a04 as "Moteur de prévision"
a01->>a02: Déclencher le calcul périodique
a02->>a03: Demander les échéances à recevoir et à payer
a03-->>a02: Échéances datées
a02->>a04: Demander la prévision de flux
a04-->>a02: Prévision et hypothèses retenues
a02-->>a02: Comparer à la position réelle
a02->>a01: Prévision publiée avec sa date de calcul
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Ordonnanceur | Service de trésorerie | Déclencher le calcul périodique | Périodicité atteinte | Calcul engagé | — |
| 2 | Service de trésorerie | Service de facturation | Demander les échéances | Toujours | Échéances datées | Service injoignable — la prévision n'est pas publiée |
| 3 | Service de facturation | Service de trésorerie | Échéances à recevoir et à payer | Toujours | Liste | Liste vide — mention explicite, jamais une prévision plate |
| 4 | Service de trésorerie | Moteur de prévision | Demander la prévision de flux | Historique suffisant | Prévision | Historique insuffisant — l'insuffisance est nommée |
| 5 | Moteur de prévision | Service de trésorerie | Prévision et hypothèses retenues | Toujours | Prévision qualifiée | Une prévision sans ses hypothèses n'est pas publiée |
| 6 | Service de trésorerie | Lui-même | Comparer à la position réelle | Position connue | Écart | — |
| 7 | Service de trésorerie | Ordonnanceur | Prévision publiée avec sa date de calcul | Calcul abouti | Publication | Une prévision périmée porte sa date, elle n'est pas rafraîchie en silence |
3.15 Q15 — Flux de travail automatisé#
sequenceDiagram
participant a01 as "Concepteur"
participant a02 as "Service de flux"
participant a03 as "Service de domaine"
participant a04 as "Passerelle de notification"
a01->>a02: Publier un modèle de flux
a02-->>a01: Modèle actif
a03->>a02: Émettre un événement métier
a02->>a02: Évaluer les conditions du modèle
alt Conditions satisfaites
a02->>a03: Exécuter l action automatisée
a03-->>a02: Résultat de l action
a02->>a04: Notifier les destinataires
else Conditions non satisfaites
a02-->>a03: Aucune action et trace de l évaluation
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Concepteur | Service de flux | Publier un modèle de flux | Modèle valide | Modèle actif | Modèle incomplet — publication refusée |
| 2 | Service de domaine | Service de flux | Émettre un événement métier | Événement déclaré | Prise en compte | Événement inconnu — ignoré et tracé |
| 3 | Service de flux | Lui-même | Évaluer les conditions | Modèle actif | Décision | — |
| 4 | Service de flux | Service de domaine | Exécuter l'action automatisée | Conditions satisfaites | Résultat | Une action à conséquence passe par une approbation humaine — voir A18 |
| 5 | Service de domaine | Service de flux | Résultat de l'action | Toujours | Succès ou échec | Échec — l'instance reste en erreur, jamais close en succès |
| 6 | Service de flux | Passerelle de notification | Notifier les destinataires | Action exécutée | Envoi | Aucun destinataire — l'absence est tracée |
| 7 | Service de flux | Service de domaine | Aucune action et trace de l'évaluation | Conditions non satisfaites | Trace | Une non-exécution est tracée comme un événement, pas comme un silence |
3.16 Q16 — Rendez-vous avec visioconférence#
sequenceDiagram
participant a01 as "Client"
participant a02 as "Service de réservation"
participant a03 as "Service de visioconférence"
participant a04 as "Passerelle de notification"
a01->>a02: Demander un créneau
a02-->>a01: Créneaux libres selon disponibilités et exceptions
a01->>a02: Réserver un créneau
a02->>a02: Bloquer le créneau
alt Rendez-vous distanciel
a02->>a03: Créer la salle
a03-->>a02: Adresse de salle
else Rendez-vous en présence
a02-->>a02: Aucune salle à créer
end
a02->>a04: Confirmer aux deux parties et programmer le rappel
a04-->>a01: Confirmation et rappel programmé
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Client | Service de réservation | Demander un créneau | Lien de réservation actif | Créneaux | Aucune disponibilité — la période suivante est proposée |
| 2 | Service de réservation | Client | Créneaux libres | Disponibilités déclarées | Liste | Les exceptions de disponibilité retirent des créneaux |
| 3 | Client | Service de réservation | Réserver un créneau | Créneau encore libre | Réservation | Créneau pris entre-temps — refus avec la cause exacte |
| 4 | Service de réservation | Lui-même | Bloquer le créneau | Toujours | Créneau bloqué | Conflit avec un calendrier externe synchronisé — créneau non proposé |
| 5 | Service de réservation | Service de visioconférence | Créer la salle | Rendez-vous distanciel | Adresse de salle | Service indisponible — le lien est marqué indisponible, pas affiché vide |
| 6 | Service de réservation | Passerelle de notification | Confirmer et programmer le rappel | Toujours | Envoi | Courriel invalide — le défaut est signalé au professionnel |
| 7 | Passerelle | Client | Confirmation et rappel programmé | Toujours | Confirmation | — |
3.17 Q17 — Notification multicanal#
sequenceDiagram
participant a01 as "Service émetteur"
participant a02 as "Service de notification"
participant a03 as "Préférences du destinataire"
participant a04 as "Canal de remise"
a01->>a02: Émettre une notification
a02->>a03: Lire les canaux actifs et les préférences
alt Au moins un canal actif
a03-->>a02: Canaux retenus
a02->>a04: Remettre sur chaque canal
a04-->>a02: Accusé de remise par canal
a02-->>a01: Remise tracée
else Aucun canal actif
a03-->>a02: Aucun canal
a02-->>a01: Absence de canal signalée et notification conservée
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Service émetteur | Service de notification | Émettre une notification | Événement notifiable | Prise en charge | — |
| 2 | Service de notification | Préférences | Lire les canaux actifs | Destinataire connu | Canaux | Destinataire inconnu — l'émission est refusée et tracée |
| 3 | Préférences | Service de notification | Canaux retenus | Au moins un canal | Liste | Aucun canal — l'absence est signalée à l'émetteur, jamais silencieuse |
| 4 | Service de notification | Canal de remise | Remettre sur chaque canal | Canal actif | Accusé | Canal en échec — l'échec est par canal, pas global |
| 5 | Canal de remise | Service de notification | Accusé de remise | Remise effectuée | Accusé | Sans accusé, la remise n'est pas déclarée réussie |
| 6 | Service de notification | Service émetteur | Remise tracée | Toujours | Trace | La notification reste consultable dans le produit même sans remise externe |
3.18 Q18 — Détection d'écart de catalogue#
Cas réel. Le forfait Gratuit était servi à 10 crédits par mois alors que la base du catalogue en portait 23. Deux mesures existaient, elles ne concordaient pas, et chacune prise seule paraissait vraie. C'est exactement le motif qui justifie une détection par comparaison, jamais par confiance en une source.
sequenceDiagram
participant a01 as "Sonde de contrôle"
participant a02 as "Interface publique du catalogue"
participant a03 as "Base du catalogue"
participant a04 as "Rôle finance"
a01->>a02: Lire la dotation servie du forfait
a02-->>a01: Dotation servie
a01->>a03: Lire la dotation en base
a03-->>a01: Dotation en base
a01->>a01: Comparer les deux valeurs
alt Valeurs identiques
a01-->>a04: Aucun écart
else Valeurs divergentes
a01-->>a04: Écart nommé avec les deux valeurs et leur origine
a04->>a03: Corriger la source fautive et publier une version datée
end
| N° | Émetteur | Destinataire | Message | Condition | Réponse | Cas d'erreur |
|---|
| 1 | Sonde de contrôle | Interface publique du catalogue | Lire la dotation servie | Interface joignable | Valeur servie | Interface injoignable — la mesure est « inconcluante », pas « conforme » |
| 2 | Interface publique | Sonde | Dotation servie | Toujours | Valeur | Cas observé : 10 crédits pour le forfait Gratuit |
| 3 | Sonde | Base du catalogue | Lire la dotation en base | Accès autorisé | Valeur en base | Accès refusé — mesure inconcluante |
| 4 | Base du catalogue | Sonde | Dotation en base | Toujours | Valeur | Cas observé : 23 crédits pour le même forfait |
| 5 | Sonde | Elle-même | Comparer les deux valeurs | Les deux mesures obtenues | Verdict | Une seule mesure obtenue ne permet aucun verdict |
| 6 | Sonde | Rôle finance | Écart nommé avec les deux valeurs et leur origine | Divergence | Alerte qualifiée | Un écart annoncé sans nommer les deux origines n'est pas actionnable |
| 7 | Rôle finance | Base du catalogue | Corriger la source fautive et publier une version datée | Écart confirmé | Nouvelle version | Seul le rôle finance peut modifier le catalogue — voir la matrice route × rôle |
Trois enseignements de ce cas.
- Deux sondes qui partagent le même angle mort se confirment mutuellement. Le témoin doit différer par sa nature — ici, une lecture par l'interface publique et une lecture en base, pas deux appels à la même interface.
- Une mesure impossible est un verdict « inconcluant », pas un verdict « conforme ». Un contrôle qui ne peut pas regarder ne doit jamais rendre vert.
- Le prix et les dotations n'ont qu'un seul propriétaire. La matrice route × rôle du portail Administration confie le catalogue au rôle finance et à lui seul — l'administrateur de plateforme n'y a qu'un accès en lecture. Cette séparation est ce qui rend la correction traçable.
4. Diagrammes d'états#
Six objets métier, chacun avec son cycle de vie complet.
4.1 Dossier fiscal#
stateDiagram-v2
state "Ouvert" as s01
state "En collecte de pièces" as s02
state "En calcul" as s03
state "Prêt à transmettre" as s04
state "Transmis" as s05
state "Cotisé" as s06
state "En révision" as s07
[*] --> s01
s01 --> s02: ouverture de la liste de contrôle
s02 --> s03: pièces suffisantes
s03 --> s02: pièce manquante détectée
s03 --> s04: calcul validé
s04 --> s03: correction demandée
s04 --> s05: accusé de transmission reçu
s04 --> s04: transmission refusée sans accusé
s05 --> s06: avis de cotisation enregistré
s06 --> s07: écart contesté
s07 --> s05: déclaration corrigée retransmise
s06 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| Ouvert | Saisie, dépôt de pièces | Vers la collecte dès l'ouverture de la liste de contrôle | Livré |
| En collecte de pièces | Dépôt, demandes de documents | Vers le calcul quand les pièces sont suffisantes | Livré |
| En calcul | Calcul, correction | Retour à la collecte si une pièce manque | Livré |
| Prêt à transmettre | Transmission | Sans accusé, l'état ne change pas — pas de faux « transmis » | Livré |
| Transmis | Consultation, attente de cotisation | Vers cotisé à l'enregistrement de l'avis | Livré |
| Cotisé | Consultation, contestation | Vers révision si l'écart est contesté | Livré |
| En révision | Correction, retransmission | Retour à transmis | Livré |
4.2 Facture#
stateDiagram-v2
state "Brouillon" as s01
state "Émise" as s02
state "Partiellement soldée" as s03
state "Soldée" as s04
state "Échue" as s05
state "En recouvrement" as s06
state "Annulée par avoir" as s07
[*] --> s01
s01 --> s02: émission et numérotation
s02 --> s03: paiement partiel
s02 --> s04: paiement intégral
s03 --> s04: solde du reliquat
s02 --> s05: échéance dépassée
s03 --> s05: échéance dépassée
s05 --> s06: séquence de recouvrement engagée
s06 --> s04: paiement reçu
s02 --> s07: avoir émis
s04 --> s02: extourne du paiement
s04 --> [*]
s07 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| Brouillon | Modification libre | Vers émise à la numérotation | Livré |
| Émise | Paiement, avoir | Plus modifiable — seulement extournable par avoir | Livré |
| Partiellement soldée | Paiement du reliquat | Le reliquat est affiché, jamais masqué | Livré |
| Soldée | Consultation | Retour possible à émise si le prestataire notifie une extourne | Livré |
| Échue | Relance | Vers recouvrement selon la séquence configurée | Livré |
| En recouvrement | Étapes de relance | Vers soldée au paiement | Livré |
| Annulée par avoir | Consultation | État terminal | Livré |
4.3 Document#
stateDiagram-v2
state "Déposé" as s01
state "En extraction" as s02
state "Champs proposés" as s03
state "Validé" as s04
state "Classé" as s05
state "En signature" as s06
state "Signé et scellé" as s07
state "Archivé" as s08
[*] --> s01
s01 --> s02: extraction demandée
s02 --> s03: extraction réussie
s02 --> s01: extraction infructueuse
s03 --> s04: validation humaine
s01 --> s04: saisie manuelle
s04 --> s05: classement confirmé
s05 --> s06: cycle de signature ouvert
s06 --> s07: tous les signataires ont signé
s06 --> s05: cycle abandonné
s05 --> s08: archivage
s07 --> s08: archivage
s08 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| Déposé | Consultation, extraction | Le fichier est conservé même si l'extraction échoue | Livré |
| En extraction | Attente | Retour à déposé si l'extraction est infructueuse | Livré |
| Champs proposés | Validation, correction | Aucune écriture avant validation humaine | Livré |
| Validé | Classement | Vers classé à la confirmation | Livré |
| Classé | Partage, signature | Vers signature quand un cycle s'ouvre | Livré |
| En signature | Signature des parties | Le document n'est plus modifiable | Livré |
| Signé et scellé | Consultation | Preuve d'apposition conservée | Livré |
| Archivé | Consultation | État terminal | Livré |
4.4 Mandat#
stateDiagram-v2
state "Proposé" as s01
state "Accepté" as s02
state "En exécution" as s03
state "En attente du client" as s04
state "En revue" as s05
state "Livré" as s06
state "Clos" as s07
state "Abandonné" as s08
[*] --> s01
s01 --> s02: acceptation du client
s01 --> s08: refus du client
s02 --> s03: démarrage des travaux
s03 --> s04: pièce ou décision attendue
s04 --> s03: réponse reçue
s03 --> s05: travaux achevés
s05 --> s03: revue défavorable
s05 --> s06: revue favorable
s06 --> s07: facturation et clôture
s07 --> [*]
s08 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| Proposé | Acceptation, refus | Un refus mène à abandonné, pas à un état intermédiaire | Livré |
| Accepté | Démarrage | Vers exécution | Livré |
| En exécution | Travaux, demandes de pièces | Vers attente du client quand une pièce manque | Livré |
| En attente du client | Dépôt de pièce, décision | L'attente est un état visible des deux côtés | Livré |
| En revue | Revue interne | Retour à exécution si la revue est défavorable | Livré |
| Livré | Facturation | Vers clos | Livré |
| Clos | Consultation | État terminal | Livré |
| Abandonné | Consultation | État terminal | Livré |
4.5 Abonnement#
stateDiagram-v2
state "En souscription" as s01
state "Actif" as s02
state "En changement de forfait" as s03
state "Paiement en défaut" as s04
state "Résiliation demandée" as s05
state "Résiliation programmée" as s06
state "Résilié" as s07
[*] --> s01
s01 --> s02: encaissement confirmé
s01 --> s01: paiement refusé et aucun droit accordé
s02 --> s03: changement demandé
s03 --> s02: nouveaux droits appliqués
s03 --> s02: paiement refusé et ancien forfait conservé
s02 --> s04: échec de prélèvement
s04 --> s02: régularisation
s02 --> s05: demande de résiliation
s05 --> s06: résiliation acceptée en fin de période
s06 --> s07: fin de période atteinte
s07 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| En souscription | Paiement | Aucun droit avant encaissement | Livré |
| Actif | Usage, changement, résiliation | Trois sorties possibles | Livré |
| En changement de forfait | Paiement du prorata | Un refus conserve l'ancien forfait, sans état intermédiaire | Livré |
| Paiement en défaut | Régularisation | Retour à actif après régularisation | Livré |
| Résiliation demandée | Traitement | ⚠️ Portail Affaires : passage automatique à « programmée ». Portail Client et mobile : aucun écran de résiliation — la demande est routée à un humain | Livré — partiel |
| Résiliation programmée | Usage jusqu'à la fin de période | Effet en fin de période, pas immédiat | Livré — portail Affaires |
| Résilié | Consultation | État terminal | Livré |
4.6 Demande d'approbation IA#
stateDiagram-v2
state "En attente d approbation" as s01
state "Approuvée" as s02
state "Approuvée non exécutée" as s03
state "Exécutée" as s04
state "Rejetée" as s05
state "Renvoyée pour modification" as s06
state "Expirée" as s07
[*] --> s01
s01 --> s02: approbation par un habilité
s01 --> s05: rejet
s01 --> s06: modification demandée
s01 --> s07: délai dépassé
s06 --> s01: nouvelle proposition
s02 --> s04: rejeu de l écriture différée réussi
s02 --> s03: rejeu échoué
s03 --> s04: nouveau rejeu réussi
s04 --> [*]
s05 --> [*]
s07 --> [*]
| État | Ce qu'il autorise | Transition sortante notable | Statut |
|---|
| En attente d'approbation | Approbation, rejet, renvoi | L'écriture est différée, pas appliquée | Livré |
| Approuvée | Rejeu de l'écriture | Le rejeu est la seule voie d'exécution | Livré |
| Approuvée non exécutée | Nouveau rejeu | Aucun faux succès — l'échec du rejeu est un état visible | Livré |
| Exécutée | Consultation | État terminal, tracé au journal d'audit | Livré |
| Rejetée | Consultation | Aucune écriture n'a eu lieu — ce n'est pas une annulation après coup | Livré |
| Renvoyée pour modification | Nouvelle proposition | L'écriture reste différée | Livré |
| Expirée | Consultation | État terminal, aucune écriture | Livré |
5. Diagramme de classes du modèle de domaine#
Seize classes. Les noms de membres sont en caractères ASCII pour garantir le rendu.
classDiagram
class Compte {
+identifiant
+courriel
+contexteActif
+basculerContexte()
}
class Locataire {
+identifiant
+raisonSociale
+typePortail
}
class Contexte {
+identifiant
+libelle
+categorie
+routeTableauBord
+estConditionne
}
class Module {
+clef
+libelle
+categorie
+portail
}
class Forfait {
+code
+prixMensuel
+prixAnnuel
+sieges
+clientsMax
+creditsParMois
+enVente
}
class Ensemble {
+code
+libelle
+prixMensuel
}
class Siege {
+identifiant
+role
+dateAttribution
}
class CreditIA {
+solde
+dotationMensuelle
+seuilRecharge
+consommer()
+refuserAuZero()
}
class Client {
+identifiant
+nom
+typePersonne
}
class Dossier {
+identifiant
+annee
+etat
+domaine
}
class Document {
+identifiant
+nom
+etat
+versionCourante
}
class Facture {
+numero
+dateEmission
+dateEcheance
+montantTotal
+soldeDu
+etat
}
class Ecriture {
+identifiant
+dateComptable
+debit
+credit
+compte
}
class Declaration {
+identifiant
+type
+annee
+etat
+accuseTransmission
}
class Mandat {
+identifiant
+nature
+etat
+datesCles
}
class Tache {
+identifiant
+libelle
+etat
+echeance
+assignee
}
Locataire "1" --> "*" Compte : heberge
Compte "1" --> "*" Siege : occupe
Locataire "1" --> "1" Forfait : souscrit
Forfait "1" --> "*" Module : inclut
Ensemble "1" --> "*" Module : regroupe
Locataire "1" --> "*" Ensemble : achete
Compte "*" --> "*" Contexte : accede
Contexte "1" --> "*" Module : expose
Locataire "1" --> "1" CreditIA : dispose
Locataire "1" --> "*" Client : gere
Client "1" --> "*" Dossier : possede
Dossier "1" --> "*" Document : rassemble
Dossier "1" --> "*" Declaration : porte
Client "1" --> "*" Facture : recoit
Facture "1" --> "*" Ecriture : genere
Client "1" --> "*" Mandat : confie
Mandat "1" --> "*" Tache : decompose
Document "*" --> "*" Declaration : justifie
Six invariants portés par ce modèle
| # | Invariant | Pourquoi il compte |
|---|
| 1 | Un compte appartient toujours à un locataire. | Le cloisonnement par locataire est le modèle d'autorisation des portails Client et Affaires. Un compte orphelin serait un compte sans frontière de données. |
| 2 | Un compte accède à plusieurs contextes, un contexte expose plusieurs modules. | C'est la relation qui rend le mécanisme « un compte, dix-neuf contextes » exprimable. Aucune donnée n'est dupliquée par contexte. |
| 3 | Le forfait et les ensembles portent les modules, jamais le compte directement. | Les droits se recalculent depuis le catalogue. Un droit accordé à la main serait invisible à la révision. |
| 4 | Les crédits IA appartiennent au locataire, pas au siège. | Le solde est partagé et le refus au zéro s'applique à tout le locataire. Le seuilRecharge est un déclencheur de recharge — il n'est pas un plafond de dépense. |
| 5 | Une facture génère des écritures ; l'inverse n'est pas vrai. | Le lien est orienté pour éviter qu'une écriture manuelle ne crée une facture fantôme. |
| 6 | Un document justifie plusieurs déclarations et une déclaration s'appuie sur plusieurs documents. | La relation est bien de plusieurs à plusieurs. Un feuillet sert à la fois au fédéral et au provincial. |
6. Traçabilité : diagramme → cas d'utilisation → histoires#
Lecture : chaque diagramme de ce document remonte à un ou plusieurs cas d'utilisation de 11-diagrammes-cas-utilisation.md, et descend vers les histoires utilisateur du recueil produit.
6.1 Activités#
| Diagramme | Cas d'utilisation couverts | Domaine d'histoires | Statut |
|---|
| A01 Inscription | UC-ENT-10 partiel, socle d'authentification | Inscription et premier contexte | Livré |
| A02 Déclaration T1 et TP1 | UC-FIS-01, UC-FIS-02, UC-FIS-06, UC-FIS-13, UC-FIS-14 | Fiscalité des particuliers | Livré |
| A03 Déclaration de société T2 | UC-FIS-03, UC-CPT-07 | Fiscalité des sociétés | Livré |
| A04 Cycle de paie | UC-PAI-06, UC-PAI-07, UC-PAI-08, UC-PAI-09 | Paie | Livré |
| A05 Rapprochement bancaire | UC-CPT-03, UC-CPT-04, UC-CPT-13 | Comptabilité | Livré |
| A06 Demande de documents | UC-DOC-05, UC-DOC-06 | Documents partagés client cabinet | Livré |
| A07 Signature électronique | UC-DOC-11, UC-DOC-12 | Signature | Livré |
| A08 Facture émise et encaissée | UC-FAC-03, UC-FAC-04, UC-FAC-05 | Facturation | Livré |
| A09 Facturation récurrente et relance | UC-FAC-07, UC-FAC-08, UC-FAC-14 | Facturation récurrente | Livré |
| A10 Reçu numérisé jusqu'au classement | UC-DOC-01, UC-DOC-02, UC-DOC-03 | Dépenses et justificatifs | Livré |
| A11 Clôture mensuelle | UC-CPT-06, UC-CPT-07 | Clôtures | Livré |
| A12 Remise TPS et TVQ | UC-FIS-07, UC-FIS-13 | Taxes | Livré |
| A13 Plan d'affaires | UC-ENT-01, UC-ENT-02, UC-ENT-09 | Entrepreneuriat | Livré |
| A14 Incorporation | UC-ENT-05, UC-ENT-06, UC-ENT-07, UC-ENT-10 | Incorporation | Livré |
| A15 Mandat d'audit | UC-AUD-01 à UC-AUD-07 | Audit | Livré |
| A16 Demande de soumission | UC-COM-12, UC-COM-13 | Marketplace | Livré |
| A17 Requête à l'assistant | UC-IA-01, UC-IA-02, UC-IA-06, UC-IA-07 | Assistant | Livré |
| A18 Approbation humaine | UC-IA-09, UC-IA-10 | Gouvernance de l'IA | Livré |
| A19 Changement de forfait | UC-ADM-06, UC-ADM-08 | Abonnement | Livré, résiliation partielle |
| A20 Demande d'export | UC-AUD-09 voisin | Droits sur les données | Livré — partiel |
6.2 Séquences#
| Diagramme | Cas d'utilisation couverts | Domaine d'histoires | Statut |
|---|
| Q01 Authentification | Socle commun à tous les cas | Accès | Livré |
| Q02 Tableau de bord contextuel | UC-ENT-10, tous les domaines | Accueil contextuel | Livré |
| Q03 Bascule de contexte | UC-ENT-10, UC-STU-01, UC-EXP-08 | Contextes | Livré |
| Q04 Téléversement et extraction | UC-DOC-01, UC-DOC-03, UC-DOC-04 | Documents | Livré |
| Q05 Calcul fiscal | UC-FIS-06 | Fiscalité | Livré |
| Q06 Demande de document | UC-DOC-05, UC-DOC-06 | Documents partagés | Livré |
| Q07 Signature multi-parties | UC-DOC-11, UC-DOC-12, UC-IMM-05 | Signature | Livré |
| Q08 Paiement et rapprochement | UC-FAC-05, UC-CPT-04 | Encaissement | Livré |
| Q09 Souscription et droits | UC-ADM-06 | Abonnement | Livré |
| Q10 Achat de module | UC-STU-01, UC-EXP-08, UC-ADM-06 | Modules et ensembles | Livré |
| Q11 Crédits et refus au plafond | UC-IA-06, UC-IA-07, UC-IA-08 | Crédits IA | Livré |
| Q12 Orchestration multi-agents | UC-IA-04, UC-IA-05 | Agents | Livré |
| Q13 Extraction par vision | UC-DOC-03, UC-DOC-04 | Vision documentaire | Livré |
| Q14 Prévision de trésorerie | UC-TRE-04 | Trésorerie | Livré |
| Q15 Flux de travail automatisé | UC-IA-09, domaines transverses | Automatisations | Livré |
| Q16 Rendez-vous avec visioconférence | UC-RDV-05, UC-RDV-08, UC-RDV-09 | Rendez-vous | Livré |
| Q17 Notification multicanal | Transverse à dix-neuf domaines | Notifications | Livré |
| Q18 Écart de catalogue | UC-ADM-05 | Gouvernance du catalogue | Livré |
6.3 États#
| Diagramme d'états | Cas d'utilisation qui font transiter l'objet | Statut |
|---|
| Dossier fiscal | UC-FIS-01, UC-FIS-02, UC-FIS-10, UC-FIS-13 | Livré |
| Facture | UC-FAC-03, UC-FAC-05, UC-FAC-06, UC-FAC-08, UC-FAC-14 | Livré |
| Document | UC-DOC-01 à UC-DOC-12 | Livré |
| Mandat | UC-AUD-01, UC-CON-01, UC-CON-04 | Livré |
| Abonnement | UC-ADM-06, UC-ADM-08, A19 | Livré, résiliation partielle |
| Demande d'approbation IA | UC-IA-09, UC-IA-10 | Livré |
6.4 Ancrage code des affirmations de ce document#
| Affirmation | Origine relevée le 17 août 2026 |
|---|
| Dix contextes Client, neuf Professionnels, un repli | Registre de métadonnées de contexte partagé web et mobile |
| Trois contextes conditionnés à une clef d'offre et trois tableaux de bord dédiés | Même registre |
| Points d'entrée de fiscalité — T2125, T776, taxes, acomptes, report, calendrier, transmission, listes de contrôle | Points d'entrée du service de fiscalité |
| Points d'entrée de paie — employés, rémunérations, retenues, bulletins, feuillets fédéraux, relevés provinciaux, relevé d'emploi | Points d'entrée du service de paie |
| Points d'entrée de comptabilité — plan comptable, écritures, rapprochement, états financiers, clôtures, immobilisations, budgets | Points d'entrée du service de comptabilité |
| Points d'entrée de trésorerie — comptes, plan, positions, prévisions, taux de change, facilités | Points d'entrée du service de trésorerie |
| Points d'entrée documentaires — dépôt, dossiers, demandes, partages, listes de contrôle, extraction, versions, recherche | Points d'entrée du service de documents |
| Points d'entrée de réservation — disponibilités, exceptions, liens, réservation publique, séances de groupe, visioconférence, synchronisation | Points d'entrée du service de réservation |
| Points d'entrée de flux de travail — modèles, instances, événements, automatisations | Points d'entrée du service de flux |
| Refus au solde nul avec un code d'erreur dédié | Point d'entrée de consommation de crédits du service de facturation, et point d'entrée de messagerie du service d'espaces |
| Distinction « crédits insuffisants » et « passerelle injoignable » | Client de modèle d'un service d'agent — le repli est journalisé avec sa cause |
| Approbation humaine avec rejeu différé sur les quatre surfaces | Brief commun §1.5 |
| Absence de plafond de dépense configurable, présence d'un seuil de recharge | Brief commun §1.5, constat É3 |
| Export en attente sans travailleur d'exécution | Brief commun §1.5, constat É1 |
| Résiliation en libre-service au portail Affaires seulement | Brief commun §1.5, constat É2 |
| Authentification à deux facteurs non implémentée | Brief commun §1.5 |
| Écart de catalogue — 10 crédits servis contre 23 en base pour le forfait Gratuit | Relevé de contrôle du catalogue de la plateforme |
| Séparation des pouvoirs sur le catalogue tarifaire | Matrice route × rôle du portail Administration, 06-portail-admin.md §2 |
| Principe « ne jamais fabriquer un zéro » | 06-portail-admin.md §1.3 |
Ce qui n'a pas pu être vérifié dans ce passage. Les délais réels de chaque étape — aucune mesure de temps de réponse n'a été relevée. Le comportement des connecteurs externes en conditions de panne — prestataire de paiement, service de signature, service de visioconférence — n'a pas été observé en direct ; les branches d'erreur décrivent le comportement attendu du code appelant, pas la réponse du tiers. Les codes de refus exacts renvoyés par les administrations fiscales n'ont pas été relevés. Le contenu exact des barèmes de retenues à la source n'a pas été inspecté ligne à ligne.
Kaxentra — dossier de lancement. Document interne, version 1.0 du 17 août 2026. Marque publique : Kaxentra. Éditeur : i2t Digital. Les éléments marqués [HYPOTHÈSE] ne sont pas publiables en l'état. Les personas d'extension communautaire (E01–E08) décrivent des fonctionnalités non livrées.