Nouvelles fonctionnalités, améliorations et corrections dans Travel Expense.
Deux nouveaux rôles pour les équipes où quelqu'un d'autre prépare la paperasse : le Directeur voit la dépense de toute la société, approuve, et gère le parc de véhicules ; le Délégué partage cette vue d'ensemble et peut désormais saisir une note ou un voyage au nom d'un collègue — qui reste, lui, la personne remboursée. Chaque note et chaque voyage peut désormais montrer qui l'a réellement saisi, l'annuaire de l'équipe s'ouvre à tous les rôles à périmètre société, et la production se limite maintenant à une liste de sociétés autorisées.
Le Directeur voit les notes de frais, les voyages et les indemnités kilométriques de toute la société, les approuve ou les refuse, et a la main sur le parc de véhicules — les mêmes droits qu'un admin sur la dépense et le parc, sans la gestion de l'équipe ni des paramètres.
Le Délégué voit lui aussi la dépense de toute la société et peut saisir une note ou un voyage au nom d'une autre personne, mais n'approuve rien et ne touche pas au parc de véhicules : préparer n'est pas décider.
Un Directeur ou un Délégué peut désormais créer une note de frais ou un voyage en désignant qui en est le bénéficiaire — pratique quand une assistante programme les voyages d'un commercial ou tient son lettrage. Le bénéficiaire reste la personne remboursée ; qui a réellement saisi la pièce est conservé dans tous les cas.
Une note de frais ou un voyage peut désormais afficher un petit avatar indiquant qui l'a saisi — il n'apparaît que là où il apprend quelque chose : une vue à périmètre société, ou un auteur différent du bénéficiaire. Un auteur qu'on ne peut pas identifier s'affiche en gris plutôt qu'avec un nom deviné. Les notes et voyages antérieurs à cette mise à jour n'ont pas d'auteur connu et garderont cette pastille grise — rien n'a été supposé à leur place.
Les deux nouveaux rôles figurent désormais dans le sélecteur de rôle en face de chaque membre, aux côtés de Lecteur, Éditeur et Approbateur — jusqu'ici ils s'affichaient en pastille grise, non modifiable, et ne s'accordaient qu'ailleurs. Admin reste hors de ce sélecteur : créer un autre admin est un changement d'autorité qui se règle dans « Ma société ». L'invitation, elle, continue de ne proposer que Lecteur, Éditeur et Approbateur — la vue société se donne après coup, à quelqu'un qui a déjà un compte.
L'écran Équipe se consulte désormais par le Directeur, le Délégué et l'Approbateur, pas seulement par l'admin — il fallait bien cela pour mettre un nom sur les auteurs qu'ils voient désormais. Inviter quelqu'un et changer un rôle restent réservés à l'admin.
En production, Travel Expense ne sert désormais qu'une liste de sociétés explicitement autorisées ; toute autre société reçoit un refus neutre, qui ne révèle ni la liste ni si sa société en fait partie.
Travel Expense a désormais une politique de confidentialité, des conditions générales et des mentions légales — obligatoires en droit français, et prérequis pour ouvrir l'intégration Google Calendar au-delà d'une seule organisation. La page d'accueil ne promet plus davantage que ce que l'architecture tient, et une nouvelle sonde signale une base injoignable.
Le scan de reçus tournait sur le modèle le plus cher disponible, pour chaque scan. Mesuré sur des appels réels et quatre reçus de difficulté croissante, un modèle bien moins cher lit le marchand, la date, le montant et la devise tout aussi exactement. Le scan démarre donc là, et ne monte vers un modèle plus puissant que si un contrôle arithmétique juge l'extraction incohérente — une TVA qui ne se réconcilie pas avec le total au taux annoncé, par exemple. C'est ce contrôle qui décide, pas la confiance du modèle en lui-même : lors des tests, les lectures fausses s'attribuaient 98 sur 100.
Trois pages publiques, accessibles sans compte et liées depuis le pied de page d'accueil. La politique nomme chaque sous-traitant et ce qu'il reçoit, et décrit précisément l'intégration Google Calendar — portée en lecture seule, jetons chiffrés, révocation à la déconnexion — comme l'exige la validation OAuth de Google. Les conditions générales lisent leurs quotas dans la source que le serveur applique : elles ne peuvent pas dériver de ce que le produit accorde réellement.
La page d'accueil annonçait « données hébergées en France » sans réserve. L'application et sa base le sont bien, mais les images de justificatifs sont stockées chez Cloudflare et la lecture des reçus passe par Anthropic, hors UE. La mention dit désormais ce qui est vrai et renvoie à la liste complète des sous-traitants.
Un nouveau point d'entrée indique si la base répond, et rend 503 sinon. Le contrôle de santé existant reste volontairement inchangé : c'est la sonde du répartiteur de charge, et la faire dépendre de la base ferait tomber tout le site — accueil, documentation et pages légales compris — au premier hoquet de la base.
Les événements cochés dans un mois ne sont plus perdus en naviguant vers un autre — « Continuer » ne faisait alors tout simplement rien. La vue mois gagne aussi un menu pour sauter directement à n'importe quel mois de l'exercice, et le résultat d'import renvoie désormais vers les voyages créés.
Naviguer vers un autre mois recharge les événements de ce mois, ce qui rendait introuvable tout ce qui avait été coché avant : le compteur affichait toujours « 2 sélectionné(s) » mais « Continuer » ne faisait rien, sans le moindre message. La sélection retient désormais les événements eux-mêmes et survit à autant de changements de mois que voulu.
Le libellé du mois dans la vue calendrier devient un menu déroulant listant tous les mois de l'exercice sélectionné. Atteindre un mois éloigné ne coûte plus un clic de flèche par mois d'écart.
Lancé depuis Indemnités, l'import ne crée plus que des indemnités — une par événement, jamais un voyage, sans regroupement même-ville. Un événement sans lieu reste une indemnité dont la destination est à saisir, et l'import l'attend au lieu de produire discrètement un voyage introuvable depuis cette page. Lancé depuis Voyages, rien ne change : l'heuristique complète propose toujours un voyage, un voyage + indemnité, ou une indemnité simple.
Quand un import crée effectivement des voyages, le panneau de résultat le dit et renvoie directement vers eux, au lieu de vous laisser deviner quelle liste ouvrir.
Jusqu'à 5 comptes A13S peuvent désormais être liés et basculés instantanément depuis une nouvelle section « Comptes » du menu avatar, et le planificateur d'itinéraire gagne un bouton « Enregistrer » qui laisse la fenêtre ouverte, aux côtés d'« Enregistrer et fermer ».
Une nouvelle section « Comptes » dans le popover du menu avatar liste tous vos comptes A13S liés et permet de basculer instantanément vers un autre, sans ressaisir votre mot de passe. « Ajouter un compte » en lie un nouveau (jusqu'à 5), et chaque compte se déconnecte individuellement ou tous ensemble via « Déconnexion de tous les comptes ».
Le planificateur d'itinéraire propose désormais deux boutons distincts : « Enregistrer » sauvegarde et laisse la fenêtre ouverte pour continuer la saisie, tandis qu'« Enregistrer et fermer » sauvegarde puis referme — mais seulement si l'enregistrement a réussi, pour ne jamais perdre votre saisie en cas de coupure réseau.
Le planificateur d'itinéraire bloque désormais les dates incohérentes et signale les trajets retour manquants ou les jours à découvert, la liste des voyages et la mini-carte sont corrigées, l'import du calendrier révèle les événements exclus et calcule automatiquement les indemnités kilométriques depuis vos adresses connues, plusieurs comptes Google Agenda peuvent être liés avec leurs événements fusionnés à l'import, et la sidebar se simplifie en déplaçant Équipe, Paramètres, Changelog et Docs dans le menu utilisateur.
Un trajet daté avant le précédent, avant le début du voyage ou après sa fin est désormais bloqué et expliqué sous la ligne fautive. Le bouton « Réordonner par date » remet tous les trajets en ordre chronologique en un clic.
Quand l'itinéraire ne revient pas à son point de départ, un bandeau le signale et propose « Ajouter le trajet retour », pré-rempli avec le départ à la dernière arrivée et l'arrivée au point de départ initial.
Un bandeau signale désormais les jours du voyage qui ne sont couverts ni par un trajet ni par une nuit d'hôtel déduite — un vrai trou dans l'itinéraire, pas un simple séjour prolongé au même endroit.
Enregistrer un itinéraire rafraîchit désormais la liste des voyages sur-le-champ : les montants prévus n'affichent plus une valeur périmée le temps d'un rechargement manuel.
La mini-carte affichée sur les cartes voyage utilise désormais un zoom régional plutôt qu'un zoom rue : un point unique n'affiche plus une tuile ultra-zoomée qui débordait de la vignette.
Le message de confirmation après l'enregistrement d'un itinéraire détaille désormais les nuits et les justificatifs attendus par nature, par exemple « Itinéraire enregistré · 2 nuits · 3 justificatifs attendus (1 hôtel · 2 repas) ».
Le bouton « Afficher/Masquer les exclus (N) » révèle les événements écartés par vos règles d'exclusion : ils apparaissent atténués avec le badge de la règle responsable, et restent cochables pour forcer leur import malgré tout.
Le bouton « Importer du calendrier » est désormais disponible depuis la page Indemnités kilométriques, pas seulement depuis Voyages — même atelier, mêmes règles d'exclusion.
Quand le lieu d'un événement importé correspond à une adresse enregistrée, la distance et le montant de l'indemnité kilométrique se calculent automatiquement — en priorité depuis vos adresses connues, sinon par géocodage du lieu.
Réglages > Intégrations liste désormais chaque compte Google connecté avec sa date de connexion, propose « Ajouter un compte Google » pour en lier un second, et permet de déconnecter chaque compte individuellement.
L'atelier d'import du calendrier regroupe désormais les agendas et les événements de tous vos comptes Google liés, étiquetés par compte d'origine ; un événement déjà importé reste détecté comme doublon même s'il provient d'un autre compte.
Équipe, Paramètres, Changelog et Docs quittent la sidebar pour rejoindre le menu de l'avatar en bas, sur desktop comme sur mobile ; la version de l'application reste affichée discrètement au bas du rail.
Voyages peut désormais importer vos événements Google Agenda dans un atelier plein écran, avec règles d'exclusion et confirmation événement par événement. Les indemnités kilométriques ont leur propre section, avec des compteurs par véhicule et par équipe, et le montant de chaque trajet applique désormais le barème URSSAF au cumul annuel par véhicule plutôt qu'un taux fixe. Le header Voyages est allégé, et une IK ne peut plus se créer sans véhicule.
Le bouton « Importer du calendrier » de Voyages ouvre désormais un atelier plein écran : tous vos agendas Google, en vue liste ou en vue mois, chargé sur aujourd'hui avec la navigation dans le passé. Les événements se filtrent par exercice comptable (courant ou précédent) et par présence ou non d'un lieu, et se sélectionnent en lot.
Des règles d'exclusion par mot-clé écartent les événements récurrents indésirables, un bouton « Exclure les semblables » en crée une depuis un titre, et l'atelier suggère une règle après trois refus similaires. Chaque événement retenu se confirme individuellement en IK aller-retour depuis le Bureau (distance calculée automatiquement) ou en Voyage pour les séjours de plusieurs jours, avec regroupement des événements consécutifs dans la même ville. Un événement déjà importé est mémorisé : aucun doublon n'est possible, et l'événement lui-même sert de justificatif à la note ou au voyage créé.
Un nouveau lien de la sidebar ouvre /ik, la section dédiée aux indemnités kilométriques : un compteur d'exercice par véhicule (kilomètres cumulés, montant, tranche URSSAF en cours avec la progression vers le prochain seuil), et pour les approbateurs et les admins, un compteur d'équipe qui récapitule les kilomètres cumulés de toute la société.
La liste des indemnités kilométriques s'affiche au choix en cartes, avec une vraie mini-carte du trajet, ou en liste dense pour comparer davantage de lignes d'un coup — un bouton bascule entre les deux vues.
La vue détail d'une note kilométrique affiche désormais une vraie carte du trajet à la place de la zone justificatif, avec le barème verrouillé en lecture seule. « Modifier le trajet » rouvre le calculateur pré-rempli et met à jour la note existante.
Le montant de chaque trajet applique désormais le barème kilométrique URSSAF au cumul annuel par véhicule, avec un calcul marginal exact sur les tranches à 5 000 et 20 000 km — plutôt qu'un taux unique appliqué à chaque trajet indépendamment. Un bandeau explique le calcul dès qu'un véhicule entre dans sa deuxième tranche ou au-delà.
Une nouvelle indemnité kilométrique ne peut plus se créer sans véhicule rattaché : le montant dépend du barème du véhicule et le compteur annuel se tient par véhicule, donc une IK sans véhicule ne compterait nulle part.
Les indemnités kilométriques créées avant cette règle et restées sans véhicule se rattrapent en lot : choisissez un véhicule, sélectionnez les notes orphelines concernées, et l'attribution les range dans le compteur du véhicule choisi — sans changer leur montant déjà calculé.
Les boutons « Importer Ulys » et « Calculer IK » disparaissent du header de Voyages : l'import Ulys n'était pas branché et les indemnités kilométriques ont désormais leur propre section (/ik) avec leur propre bouton.
La liste de suggestions d'adresse (calculateur IK, planificateur, formulaires) restait parfois ouverte après un clic ailleurs sur l'écran ; elle se ferme désormais correctement.
Les notes kilométriques ont leur propre vue détail avec un vrai bouton « Modifier le trajet », les voyages et les notes IK peuvent être créés à la volée sans quitter le calculateur ou le formulaire, la navigation est reconstruite autour du logo comme sélecteur d'applications avec un vrai shell mobile, et le tableau de bord, Analytics et les Réglages n'affichent plus de fausses données ni de boutons factices.
Une note d'indemnité kilométrique ouvre désormais une vue détail dédiée qui affiche le trajet, la distance, le véhicule et le barème utilisé — le montant reste verrouillé sur ce barème. « Modifier le trajet » rouvre le calculateur pré-rempli et met à jour la note.
Le calculateur d'indemnités kilométriques et le formulaire de note de frais peuvent désormais créer un nouveau voyage sans quitter l'écran — plus besoin de détour par la page Voyages pour rattacher une note à un voyage qui n'existe pas encore.
Construire l'itinéraire d'un voyage se fait désormais sur un planificateur plein écran : les trajets à gauche, groupés par jour (avec la même autocomplétion d'adresse géocodée que le calculateur IK et un bouton « Calculer la distance » OSRM), une carte OpenStreetMap panoramique à droite qui trace le parcours au fil de la saisie — un pin par lieu, une branche par trajet. Les trajets se réordonnent par glisser-déposer, et les nuits d'hôtel sont déduites une par une, chacune avec sa case décochable (« nuit chez un tiers ») et son estimation modifiable.
Juste après la création d'un voyage, son itinéraire s'ouvre automatiquement en « Étape 2 » facultative — construire la route est à un clic au lieu d'une démarche séparée.
Le logo ouvre désormais le sélecteur d'applications (le bouton « Apps » séparé disparaît). Sur mobile, une topbar avec une icône ouvre un menu plein écran et un menu de compte plein écran ; la liste des notes de frais passe en cartes (avec une variante dédiée pour les notes kilométriques) ; les cartes de voyage affichent une vraie mini-carte de la destination sur desktop.
Chaque lien et chiffre du Tableau de bord et d'Analytics est désormais branché sur de vraies données, avec des icônes Phosphor et des états vides honnêtes plutôt que des valeurs figées. Analytics gagne un vrai export CSV (le PDF est annoncé « Bientôt »).
L'entrée de la sidebar pour la file en attente de décision s'appelle désormais « Validation », pour coller au vocabulaire du reste de l'application.
Les champs d'identité sont désormais en lecture seule dans les Réglages — ils se gèrent depuis votre compte A13S — et les intégrations sont réduites à Google Agenda. Chaque bouton restant sur la page fait réellement quelque chose.
L'ouverture d'une page voyage n'affiche plus un message « Voyage introuvable » le temps d'un instant avant que les vraies données arrivent.
Un nouveau bouton « Importer du calendrier » est visible sur l'écran des voyages. Il est annoncé comme à venir et reste désactivé pendant que la fonctionnalité est conçue.
Chaque voyage a désormais une page de détail partageable qui compare le prévu et le réel par nature, construite depuis un vrai itinéraire. Un reçu peut être classé en deux secondes puis rapproché plus tard des justificatifs attendus et de la carte bancaire. L'usage du scan IA est mesuré avec des packs achetables, la tarification vit à un seul endroit, et Google Agenda peut amorcer un voyage depuis un événement.
Chaque voyage a une page de détail partageable avec le budget prévu ventilé par nature (hôtel, IK, repas) en face du réel, construite depuis un itinéraire ordonné de trajets (adresses connues, mode de transport, véhicule). Les séjours et les nuitées sont dérivés automatiquement de cet itinéraire.
La page voyage liste les justificatifs qu'elle attend et signale ceux qui manquent encore, génère les notes d'indemnités kilométriques prévisionnelles de l'itinéraire en un clic, et propose un rapprochement avec le voyage dès qu'un reçu est scanné.
« Enregistrer pour plus tard » classe un reçu scanné sans relancer une analyse IA à la qualification — vous revenez le compléter quand vous avez un instant, sans perdre la photo ni rescanner.
Une note avec des invités mais sans voyage lié demande désormais un motif professionnel (conforme URSSAF) avant d'être soumise, pour rester justifiable sans voyage auquel s'accrocher.
Le scan de reçu extrait et affiche désormais la ventilation TVA quand un ticket porte plusieurs taux (ex. repas + alcool), et les notes sont rapprochées automatiquement de votre carte bancaire enregistrée.
Les Paramètres gagnent un registre des cartes de paiement (libellé + 4 derniers chiffres uniquement) utilisé pour le rapprochement des notes — coller un numéro de carte complet est refusé.
Les Réglages affichent une jauge en direct de votre usage de scans du mois. L'offre Starter inclut 100 notes + 30 scans/mois, l'offre Pro (à vie) inclut des notes illimitées + 20 scans/mois, et des packs supplémentaires de 50 scans (5 €) peuvent être achetés en complément en cas de dépassement.
La tarification vit désormais à un seul endroit, sur la page d'accueil — /pricing redirige simplement vers cette ancre. L'offre Pro est maintenant un paiement unique de 99 € au lieu d'un abonnement.
Connectez votre compte Google depuis les Réglages pour voir vos prochains événements avec leur lieu, et transformer n'importe lequel en voyage en un clic.
Les suggestions d'adresse conservent désormais le numéro de rue, l'aperçu affiche une vraie mini-carte OSM à la place d'un placeholder, et l'adresse de la société est proposée par défaut pour l'entrée Bureau.
Le calculateur d'indemnités kilométriques gagne des puces d'adresses connues en un clic, un historique des adresses récentes, un sélecteur de voyage et un raccourci depuis l'écran Notes de frais. Le barème URSSAF passe au millésime 2026 (coefficients inchangés depuis l'arrêté 2023).
La sidebar affiche désormais de vrais compteurs et le vrai libellé de période au lieu de valeurs figées, chaque champ de date utilise le datepicker enrichi (sélection rapide de mois/année), les icônes de navigation sont de retour, et chaque écran — y compris les voyages et la page voyage — reste utilisable jusqu'aux petits téléphones.
Chaque écran est désormais câblé sur de vraies données : saisie manuelle de note, vrai calculateur d'indemnités kilométriques URSSAF, export comptable, KPIs du tableau de bord en direct, paramètres et onboarding persistants, et pages publiques tarifs et abonnement.
Un vrai formulaire « Nouvelle note » crée une note en brouillon (montant, catégorie, date, marchand, voyage lié) qui apparaît immédiatement dans votre liste et votre tableau de bord.
Choisissez un véhicule et des adresses réels, calculez la distance routière depuis les adresses (modifiable), et obtenez le montant URSSAF exact — surcharge +20 % électrique/hybride comprise — calculé côté serveur avec le détail affiché. L'enregistrement crée la note.
La fenêtre d'export télécharge un vrai fichier de vos notes filtrées — CSV compatible Excel FR (point-virgule, BOM, dd/MM/yyyy) ou vrai classeur XLSX aux montants sommables.
Les Paramètres persistent pour de vrai : véhicules (CRUD, taux URSSAF affiché par véhicule), adresses géocodées avec suggestions en direct, et politiques société (plafonds repas/hôtel, justificatif obligatoire) conservées au rechargement.
L'assistant de bienvenue enregistre désormais vos adresses domicile et bureau (géocodées) et votre véhicule en base, pré-remplit l'existant et n'écrase jamais silencieusement.
Les quatre cartes hero (IK mensuel, provision IK, reçus à valider, trajets validés) sont calculées depuis votre base — zéros honnêtes compris.
Chaque carte voyage gagne Modifier (formulaire pré-rempli) et Supprimer (boîte de confirmation) — les changements persistent au rechargement.
Une vraie landing, une page tarifs (Gratuit 0 € / Starter 9 € / Pro 29 €) adossée à Stripe, une page abonnement montrant votre offre courante, plus la documentation et ce changelog.
Le flux de scan de reçu est entièrement câblé sur le système IA gouverné (OCR mesuré, champs extraits modifiables, stockage prêt). Il s'active dès que le service IA est configuré pour votre espace.
Soleil rejoint l'authentification OIDC partagée par toutes les apps A13S. Un seul compte ouvre Soleil et le reste de la plateforme, et le navigateur ne conserve plus aucun jeton : la session vit dans un cookie httpOnly côté serveur (modèle BFF). Se déconnecter de Soleil vous déconnecte partout.
Soleil rejoint l'authentification centrale OIDC partagée par toutes les apps A13S — le même compte les ouvre toutes, sans seconde connexion.
La session est désormais protégée par des cookies httpOnly côté serveur (modèle BFF) au lieu d'un jeton stocké dans le navigateur, ce qui supprime toute une classe de risques de vol de jeton.
Se déconnecter de Soleil vous déconnecte de l'ensemble des apps A13S : une machine partagée ou perdue ne laisse plus de session ouverte ailleurs.
La première version de l'application de notes de frais : la direction visuelle Soleil (Indigo · Light), la sidebar sombre chaleureuse, un tableau de bord avec KPIs, une table des notes récentes et une répartition par catégorie, ainsi que la connexion au service d'authentification local.
L'écran d'accueil arrive avec ses cartes KPI, une table des notes récentes et une répartition des dépenses par catégorie.
Le langage visuel de Soleil est posé : un canvas crème clair à accent indigo, et une sidebar sombre chaleureuse façon macOS aux bords arrondis.