E-Invoicing
L'écran E-Invoicing est la page principale de NomaUBL — le point d'entrée du workflow officiel de la Réforme de la Facturation Électronique (RFE). Il liste toutes les factures traitées par la plateforme et propose des filtres complets, une vue détaillée selon le statut, et les actions du quotidien : éditer, copier, supprimer, changer manuellement un statut, envoyer le PDF au client par e-mail, redéposer sur la Plateforme Agréée.
La page fonctionne quel que soit le système source — JD Edwards, SAP, NetSuite ou ERP personnalisé. Toutes les factures visibles ici ont été enregistrées dans la base NomaUBL locale après passage dans le pipeline de traitement.
Vue d'ensemble
Barre d'outils
Au-dessus de la grille, deux rangées : la période, la direction, Exclure les erreurs traitées et, à droite, + Nouvelle facture ; puis le statut par étape. + Nouvelle facture est proposé aux rôles autorisés à créer des factures (invoice.create), qui ouvre la fenêtre de création / modification. Viennent ensuite le panneau Filtres avancés et la barre d'outils de la grille (recherche, Exécuter, actions groupées).
Période
Le sélecteur de période commun : périodes prédéfinies, calendrier sur deux mois et base de date au pied du panneau. La liste s'ouvre sur Ce mois-ci, ou sur la période par défaut définie pour la vue Invoices. Une liste ouverte depuis un tableau de bord ou un drill-down TVA reprend les dates de cette page.
Base de date
Le pied du sélecteur de période choisit sur quelle colonne de date la période s'applique.
| Valeur | Colonne de date | Quand l'utiliser |
|---|---|---|
| Date de mise à jour (par défaut) | Dernière modification de la facture dans NomaUBL. | Exploitation au quotidien. |
| Date d'émission | Celle imprimée sur la facture (BT-2 du document UBL). | Rapprochement avec la page Déclaration de TVA ou avec un système externe indexé sur la date d'émission. |
| Date d'archivage | La date à laquelle le document a été traité dans l'archive. | Rapprochement avec le tableau de bord IT et les rapports de traitement. |
Le choix est conservé pendant la session en cours. Il est aussi positionné automatiquement quand la liste est ouverte depuis un tableau de bord ou un drill-down TVA : le nombre affiché correspond à celui d'où l'on vient.
Direction
Un sélecteur à côté de la période : Émises (ventes) (par défaut), Reçues (achats) ou Toutes les directions.
| Valeur | Effet |
|---|---|
| Émises (ventes) | Seules les factures envoyées aux clients (UHDRIN = '2'). |
| Reçues (achats) | Seules les factures fournisseur récupérées depuis la PA (voir Synchronisation → Fetch Input → PA entrante et le document livré received-ubl). |
| Toutes les directions | Aucun filtre de direction — les deux sont listées. |
Le sélecteur s'appuie sur l'indicateur UHDRIN enregistré sur chaque ligne — un changement de Direction sur un modèle ne reclasse pas les lignes historiques, le résultat reste donc stable dans le temps.
Sur une ligne Reçue, la colonne Contrepartie lit depuis AccountingSupplierParty (le fournisseur), pas depuis AccountingCustomerParty — la colonne affiche donc le nom du fournisseur sur les factures entrantes et le nom du client sur les sortantes. Le cycle de vie, la fenêtre de détail et le catalogue de colonnes sont par ailleurs identiques ; seules les actions vendeur (Renvoyer à la PA, Marquer envoyée, Avoir…) sont masquées sur les lignes reçues.
Exclure les erreurs traitées
Le switch Exclure les erreurs traitées, à côté du sélecteur de direction, masque les lignes déjà marquées Traité qui restent dans un statut en erreur (groupes errorTech / errorBusiness du modèle des statuts) : la liste ne garde que les erreurs que personne n'a encore regardées. Les lignes traitées dans tout autre statut restent affichées. Le switch est activé par défaut ; une liste ouverte depuis un tableau de bord (Synthèse, Statistiques, Exploitation) reprend le choix du tableau de bord. L'endpoint GET /api/invoices accepte le même filtre avec excludeReviewedErrors=true.
Statut par étape
La rangée Statut regroupe les statuts de la période dans les cinq étapes du tableau de bord Statistiques — À corriger, Décision à prendre, En traitement, Sur la plateforme, Terminées — plus Autres quand un statut hors de ces groupes a des factures ou est sélectionné. Chaque étape est une pastille avec sa couleur et son nombre.
| Geste | Effet |
|---|---|
| Clic sur le nom de l'étape | Sélectionne tous les statuts de l'étape (N'afficher que cette étape) ; un second clic réaffiche tous les statuts. |
| Clic sur la flèche ▾ | Ouvre Choisir les statuts : une case à cocher pour toute l'étape (tout, rien ou partiel) et une par statut, avec sa couleur, son libellé et son nombre, du plus fréquent au moins fréquent. |
| Sélection partielle | Le nombre s'affiche choisis / total et la pastille prend une bordure en pointillés. |
| ✕ Effacer les filtres | Apparaît dès qu'un statut est choisi ; efface la sélection. |
Une étape sans facture sur la période est grisée. Un clic depuis un tableau de bord (une file, une étape, un statut) ouvre la liste avec les statuts correspondants déjà choisis.
Filtres avancés
Un panneau Filtres avancés pliable se trouve sous la rangée des statuts. Il propose une ligne par colonne filtrable de la spec Vues de liste active — par défaut DOC, DCT, Société, Code Tiers, Tiers, Type doc., Suivi, Statut, Type facture, Code activité, Code motif — avec un sélecteur d'opérateur par colonne (contains, equals, ≠, <, ≤, >, ≥, between, empty, not empty). Les modifications restent en brouillon tant que Exécuter ne les valide pas : la saisie dans le panneau ne sollicite pas le serveur.
Un filtre texte correspond depuis le début de la valeur et utilise l'index de la colonne : la liste reste rapide sur une grande table. Pour chercher un texte n'importe où dans la valeur, l'encadrer de signes pourcent — %acme% trouve acme où qu'il apparaisse, au prix d'un parcours complet. Le filtre DOC prend un raccourci : une valeur entièrement numérique recherche directement le numéro de document. Les filtres sur les colonnes adossées à une liste de référence (statut, routage…) acceptent plusieurs valeurs à la fois — la liste affiche alors les lignes qui correspondent à l'une d'elles.
L'ensemble des colonnes filtrables est défini par la liste blanche filter: true de la spec — chacun choisit les colonnes qu'il interroge réellement et retire les autres du panneau sans les perdre dans la grille. Voir Vues de liste pour l'éditeur.
La page fonctionne en mode hybride : chaque Exécuter charge une tranche limitée depuis le serveur (spec.maxRows, le réglage Rows loaded de Paramètres › Navigation & lists, sauf valeur propre à la vue — 100 000 par défaut) et la grille filtre, trie, pagine et regroupe dans cette tranche — pas d'aller-retour pendant la saisie dans la ligne de filtre par colonne, les filtres se conservent d'une page à l'autre. Quand la limite est atteinte, un message X / Y lignes à côté d'Exécuter invite à affiner la période ou les Filtres avancés.
Les colonnes adossées à une liste de référence (Statut, statut e-reporting, listes personnalisées) reçoivent une sélection multiple dans le panneau Filtres avancés et dans la ligne de filtre par colonne — choisir un nombre quelconque de codes, le déclencheur affiche N sélectionné(s) au-delà du plafond, et un ✕ à droite réinitialise la sélection en un clic. Le serveur applique une clause IN (?,?,?) : choisir trois statuts renvoie l'union. Un code peut aussi se saisir dans la recherche de la liste (Entrée, plusieurs séparés par des virgules) : une liste incomplète ou encore vide permet donc tout de même de filtrer.
Barre d'outils de la grille
À côté de la recherche de la grille : Exécuter (recharge la liste avec les filtres en cours), puis Renvoyer la sélection (N), Retraiter la sélection (N) et Marquer comme traitées (N) quand des lignes sont cochées (voir Renvoi groupé, Retraitement et Marquer comme traitées). Le sélecteur de vues enregistre et rappelle l'affichage de la liste — colonnes, largeurs, tri, filtres, période : voir Vues enregistrées.
Liste des factures
Le tableau affiche une ligne par facture. Tri par défaut : numéro de document décroissant. Cliquer sur un en-tête de colonne pour trier.
La grille passe par DataTableV2 en mode piloté par spec : la forme des colonnes — libellés, format, alignement, largeur et la liste blanche de filtres — vient de la spec view.invoices stockée sur db-nomaubl (avec un défaut embarqué dans le JAR). Ajouter ou retirer des colonnes se fait depuis l'éditeur Vues de liste — aucune modification de code n'est nécessaire quand la colonne figure déjà dans le catalogue.
La valeur Mise à jour porte l'heure : une colonne Mise à jour au format datetime dans la spec affiche 2026-09-15 15:23:45 au lieu de la seule date. (La date d'émission reste sans heure — JDE n'en stocke pas pour elle.)
Colonnes par défaut
| Colonne | Description |
|---|---|
| Doc | Numéro de document interne. |
| Dct | Type de document. |
| Kco | Code société. |
| Numéro UBL | Numéro de facture tel qu'il apparaît dans le document UBL généré. Filtrable depuis le panneau Filtres avancés et via le paramètre d'URL ?ublNumber=, en plus de la zone de recherche texte. |
| Date d'émission | BT-2 issu du document UBL. |
| Client | Nom de la partie acheteur. |
| Pays | Code pays ISO 3166 à deux lettres de la contrepartie (FR, DE, BE, US…). Capturé à l'insertion depuis le UBL — pays de l'acheteur pour les ventes, du fournisseur pour les achats. Pilote la classification par zone utilisée par la page Déclaration de TVA. |
| Total HT | Montant total hors taxes. |
| Total TTC | Montant total toutes taxes comprises. |
| Devise | Code ISO 4217. |
| Statut | Badge de statut — code + libellé, coloré par famille. |
| Envoi PA | Destination de la facture : À transmettre à la PA, Non destinée à la PA ou En attente de revue avant envoi (list-send-pa), filtrable. |
| Suivi | Badge de suivi coloré — En attente (du service client) ou Traité. Allumé quand la ligne demande une attention opérateur — un statut que le dispatcher n'a pas su résoudre tout seul, une édition manuelle marquée à l'enregistrement, ou un système aval qui a balisé la ligne pour vérification. Il s'allume aussi pour une facture Déposée (200) avec le motif NON_TRANSMISE : pas une erreur, mais le destinataire n'a pas d'adresse de réception active, l'opérateur doit donc la transmettre manuellement — les autres 200 gardent un tiret discret. Une facture corrigée à la main — enregistrée depuis la fenêtre facture ou réparée avec Corriger destinataire — passe à Traité dès que la validation qui suit ne signale aucune erreur, quel que soit son statut. Vide quand rien n'est en attente : quelques badges dans une page sinon nette indiquent précisément par où commencer. |
Un sélecteur de taille de page en bas du tableau est réglé sur 50 par défaut ; des valeurs jusqu'à 500 sont acceptées. Le nombre total de factures correspondant aux filtres apparaît à côté de la pagination.
Colonnes du catalogue
La requête SQL de la vue Factures joint maintenant F564231 (UH) et F564230 (FE) sur doc / dct / kco via un LEFT JOIN, donc le catalogue de colonnes comporte 16 colonnes archive / journal supplémentaires. Toutes peuvent être ajoutées à la spec depuis le picker + Ajouter une colonne de l'éditeur Vues de liste — la jointure gauche préserve les lignes factures sans entrée de journal.
| Colonne catalogue | Contenu |
|---|---|
logSourceFile | Nom du fichier source qui a produit la facture. |
logActivityCode / logSubType | Code d'activité et sous-type enregistrés à l'ingestion. |
logAlphaKey | Alias alpha-key utilisé par certains systèmes amont. |
logAmount | Montant porté par la ligne de journal (brut, sans rebase de devise). |
logInvoiceDate / logDueDate | Date de facture et date d'échéance enregistrées à l'ingestion. |
logCreated | Horodatage de création (composite UPMJ + UPMT). |
logUser / logJobn / logPid / logVersion | Tampons utilisateur, job, PID et version JDE. |
logBusinessUnit | Unité d'activité enregistrée à l'ingestion. |
logRouting | Routage BAR enregistré à l'ingestion. |
logSendToPaFlag | Flag capturé à l'ingestion qui indique l'éligibilité de la ligne au dépôt PA. |
logPaUuid | UUID côté PA assigné à la facture au moment du dépôt. |
Navigation au clic
Cliquer sur une ligne ouvre la modale de détail de la facture. La plupart des actions sont unitaires, mais la liste permet aussi un renvoi groupé — voir ci-dessous.
Marquer comme traitées
Le service client marque comme traitées les factures en erreur qu'il a prises en charge : elles sortent des comptages et des listes d'erreurs tant que Exclure les erreurs traitées est activé. La facture garde son statut.
- Depuis la liste — cocher les factures, puis Marquer comme traitées (N). Le bouton apparaît quand au moins une facture cochée est en erreur et pas encore traitée. Une confirmation précise que les factures sélectionnées seront considérées comme traitées et n'apparaîtront plus dans les erreurs à traiter ; seules les factures encore en erreur sont marquées.
- Depuis la fenêtre de la facture — la pastille Traité, à droite des onglets, pose la marque (en pointillés quand elle est absente) ou la retire (en vert quand elle est posée), chaque fois après confirmation. La retirer fait réapparaître la facture dans les erreurs à traiter.
Les deux demandent l'action Marquer comme traitée (invoice.review) dans la page Rôles. La marque est la colonne Suivi (UHALRTPSD).
Renvoi groupé
Chaque ligne porte une case à cocher, et un bouton Renvoyer la sélection (N) apparaît dans la barre d'outils dès qu'au moins une ligne cochée peut être renvoyée. Il renvoie tout le lot vers la Plateforme Agréée en une seule action, via la même fenêtre de progression qu'ailleurs (compteurs en direct, Annuler, Continuer en arrière-plan). Le bouton ne compte et n'envoie que les factures cochées renvoyables selon les règles de renvoi — ni type de document Ne pas envoyer, ni Échec de validation (9905), ni statut déjà traité par la plateforme. Une telle ligne reste cochable pour un retraitement ou un marquage. Le serveur applique les mêmes règles à chaque facture du lot.
Retraitement
Un bouton Retraiter la sélection (N) apparaît à côté de Renvoyer la sélection quand les lignes cochées comprennent des factures concernées par le retraitement. Le retraitement est une réimpression : pour une facture déposée sans être transmise par la plateforme (statut 200, motif NON_TRANSMISE), il régénère le PDF / XML lisible et le fichier UBL à partir de la source archivée lors du premier traitement (le XML source d'un document à source XML, le XML issu de la conversion d'un document à source PDF), dans les dossiers de sortie et d'éclatement. Rien ne change en base et l'UBL n'est pas revalidé : la facture électronique enregistrée, y compris une correction ultérieure par Corriger destinataire, reste la référence, et ses résultats de validation sont conservés. La facture garde son statut, une entrée Retraitement est ajoutée à son historique, rien n'est renvoyé à la plateforme, et chaque facture n'est retraitée qu'une fois. Seules les factures d'un document avec Allow reprocess activé (un document à source XML ou PDF — voir Documents) sont concernées ; les autres sont ignorées dans la sélection. Le même traitement est disponible depuis le Tableau de bord IT et la ligne de commande.
La sélection couvre aussi les échecs de validation : une facture en Échec de validation (9905) sur un modèle où Allow full reprocess est activé est retraitée en totalité — enrichissement interrogé de nouveau, UBL régénéré, validé et envoyé à la PA selon les réglages du modèle et du type de document ; l'historique est conservé et un nouveau cycle démarre. La confirmation précise quelles factures sont réimprimées et lesquelles sont retraitées en totalité. La fenêtre facture propose le même retraitement complet via un bouton Retraiter sur une 9905.
Plusieurs factures sont retraitées en un lot par modèle, en arrière-plan avec son journal en direct : leurs sources sont déposées dans un dossier de travail, le réglage global Max threads limite le parallélisme et une facture n'est jamais traitée deux fois. Une facture seule est toujours traitée à part.
Règles de renvoi et de retraitement
Le serveur applique ces règles à chaque renvoi et à chaque retraitement, quel qu'en soit le point de départ : fenêtre facture, sélection dans la liste, cartes du Tableau de bord IT, tâche de relance automatique, ligne de commande ou API.
Renvoi — l'UBL enregistré redéposé sur la PA
| Condition | Règle |
|---|---|
| Statut | Accepté pour tout statut interne 99xx sauf 9905, 9911 et 9913 : 9900, 9901, 9902, 9903, 9904, 9906, 9907, 9912… Refusé pour 9905 (Échec de validation) : un UBL en échec de validation n'est jamais envoyé — corriger d'abord la facture (modification, Corriger destinataire) ou lancer un retraitement complet. Refusé pour tout statut standard de la plateforme — tout code numérique qui ne commence pas par 99 (1, 8, 10, 43, 45, 48, 200, 213…) — ainsi que pour 9911 / 9913, étapes déjà acceptées par la plateforme. |
| Motif | Non contrôlé. |
| Type de document | Refusé quand l'indicateur d'envoi du type de document est Ne pas envoyer (FEEV10 = 2). |
| UBL enregistré | Refusé quand l'en-tête de la facture ne contient aucun UBL. |
| Utilisateur | Action Renvoyer à la PA (invoice.resend) sur la page Rôles, et facture visible par l'utilisateur. |
La fenêtre facture masque Renvoyer à la PA dans tous les cas que le serveur refuserait : utilisateur sans la permission, type de document Ne pas envoyer, 9905, statut déjà traité par la plateforme. Un appel passé malgré tout (API, écran antérieur) se termine par Validation failed (status 9905) — correct the invoice before resending ou Already processed by the PA (status …) — resend refused.
Un renvoi groupé — Renvoyer la sélection, Tout renvoyer (N) du tableau de bord, une tâche de relance automatique — sélectionne les factures (par statut pour le tableau de bord et la reprise auto : 9904 par défaut, ou une liste comme 9904,9907), puis applique les mêmes règles à chaque facture.
La seule exception à cette protection est la réparation Corriger destinataire d'une facture Rejetée (213) pour un motif d'adressage (ADR_ERR, REJ_ADR, DEST_INC), avec son option de renvoi à la PA — envoi seulement si la revalidation réussit.
Retraitement — deux variantes, choisies d'après le statut
| Variante | Statut | Motif | Réglage du document | Renouvelable |
|---|---|---|---|---|
| Réimpression — PDF et XML régénérés, rien d'écrit en base, aucun envoi | 200 | NON_TRANSMISE (exactement) | Allow reprocess = Y | Non — une seule fois : le marqueur 9912 laissé par la première réimpression bloque la suivante. |
| Retraitement complet — régénération avec un nouvel appel à l'enrichissement, validation, puis envoi si les réglages le prévoient | 9905 | Non contrôlé | Allow full reprocess = Y | Oui |
Les deux variantes demandent aussi :
- que le document enregistré sur la facture (
UHTMPL) existe toujours ; - que ce document ait une source XML ou PDF — un document à source UBL ne se retraite pas.
L'indicateur d'envoi du type de document n'entre pas en compte : un retraitement n'envoie jamais rien de lui-même.
Une facture hors de ces règles — une 9904 pour une réimpression, un statut standard de la plateforme pour un renvoi — ne peut évoluer que par Définir statut. Une 9905 se corrige, puis se valide de nouveau à l'enregistrement ou au retraitement complet.
Export
Un bouton Exporter dans la barre d'outils exporte la vue courante (filtres compris) au format CSV sous le nom invoices.csv.
Modale de détail
Cliquer sur une ligne ouvre une modale qui contient sept onglets en haut : Résumé, Parties, Lignes, TVA, Notes, Historique, PDF. Le titre de la modale affiche le triplet DOC / DCT / KCO. Un bouton plein écran dans l'en-tête bascule entre vue fenêtrée et vue plein écran. À droite des onglets, la pastille Traité pose ou retire la marque de suivi d'une facture en erreur.
Des flèches précédent / suivant (et les touches ← →) dans l'en-tête passent d'une facture à l'autre de la liste sans fermer la fenêtre — même ordre et mêmes filtres que le tableau affiché — avec un indicateur de position (par ex. 3 / 50). Après la dernière facture, la navigation reboucle sur la première.
Onglet Résumé (défaut)
L'onglet Résumé affiche un badge de statut coloré en haut — avec, en dessous, le détail du statut et le jeu de règles selon lequel la facture a été produite (voir Jeux de règles) — suivi des boutons d'action (Modifier l'UBL, Copier, Supprimer) à droite. Supprimer retire la facture et tous les enregistrements associés — ligne de journal (XML source, référence de transaction PA, nom du fichier source), cycle de vie, lignes, TVA et validation : un nouveau traitement du même document repart de zéro, et les dossiers surveillés peuvent reprendre son fichier source. La suppression suit la même protection que Corriger destinataire : le bouton disparaît dès que la PA a traité la facture, sauf pour un rejet 213 au motif d'adressage. Juste sous le badge, quand la plateforme les a renvoyés, le motif de rejet, l'action attendue et la note de statut courants s'affichent en ligne, et le message de statut complet se trouve dans un groupe replié — à déplier pour le texte d'erreur long de la plateforme. Ces mêmes valeurs alimentent les actions personnalisées via les variables {message}, {reasonLabel}, {actionLabel} et {actionNote} (voir Actions), sans colonne de vue de liste à configurer.
Corriger destinataire
Les rejets PA les plus fréquents portent sur les identifiants de l'acheteur — SIREN (BT-47), SIRET (BT-46), TVA intracommunautaire (BT-48) et adresse électronique (BT-49). Un bouton Corriger destinataire ouvre un formulaire compact pré-rempli depuis l'UBL stocké, avec la recherche d'entreprises INSEE et le sélecteur d'adresses électroniques du PPF, pour corriger uniquement ces champs sans rééditer toute la facture. Seuls les identifiants modifiés sont remplacés dans l'UBL stocké — le reste du document est intact — puis la facture est revalidée immédiatement, un événement d'audit trace les anciennes et nouvelles valeurs dans l'historique, et une option renvoie à la PA si la validation réussit. Le bouton n'apparaît que tant que la facture est encore corrigeable — avant sa prise en charge par la PA, ou quand elle a été rejetée (213) pour un motif d'adressage : ADR_ERR, REJ_ADR (contrôle d'adressage de la plateforme) ou DEST_INC (destinataire inconnu de l'annuaire). Dans ces trois cas, la facture n'est jamais parvenue au client, le renvoi est donc sans risque ; tout autre statut traité par la PA reste verrouillé. Une réparation dont la validation ne signale aucune erreur marque aussi la facture Traité dans la liste. L'adresse électronique de l'acheteur (BT-49) conserve le schéma déjà présent dans le document — 0225 à défaut. La correction est tracée par une simple entrée d'historique (Identifiants acheteur corrigés), sans redéclencher la règle de notification du statut courant, et le résultat de la nouvelle validation (9901 / 9902) s'ajoute à l'historique dès qu'il diffère du dernier événement. Les clés enregistrées sur la ligne au premier traitement du document (clé alpha, numéro client, unité opérationnelle, code d'acheminement) sont conservées ; il en va de même pour un enregistrement depuis la fenêtre de modification. Des garde-fous de format (longueur et cohérence SIREN/SIRET, forme de la TVA) et la règle de protection PA s'appliquent — les mêmes contrôles que l'endpoint POST /api/invoices/{doc}/{dct}/{kco}/fix-buyer de la référence API.
Sous le statut, quand la facture est dans un statut qui demande une action côté vendeur (par ex. 205, 206, 207, 208, 210, 213, 9904, 9907), un bandeau bleu Actions vendeur propose les actions recommandées :
Correspondance statut → actions :
| Statut | Actions suggérées |
|---|---|
| 205 Payée | Marquer paiement reçu |
| 206 Approuvée partiellement / 207 En litige | Émettre un avoir, Émettre une facture rectificative |
| 208 Suspendue | Marquer envoi terminé |
| 210 Refusée | Annuler comptable |
| 213 Rejetée | Annuler comptable, Émettre une nouvelle facture |
| 9904 Erreur d'envoi / 9907 Rejet PA | Redéposer sur PA |
Chaque action est rattachée à un endpoint de connecteur API configuré dans Configuration → API Connectors. Un clic exécute le connecteur avec les données de la facture. Une action grisée signifie que le connecteur n'est pas configuré sur ce déploiement.
Un second groupe se trouve sous le groupe réglementaire — Actions personnalisées. Boutons toujours visibles configurés sur la page Actions ; chacun déclenche sa propre chaîne d'appels connecteur et reste indépendant du statut courant de la facture. Le bandeau de résultat est rattaché au groupe dont le bouton a déclenché la chaîne — un échec d'action personnalisée n'écrase pas le bandeau d'une action réglementaire affichée en même temps, et les bandeaux périmés sont effacés automatiquement quand la modale se ferme ou change de facture.
Le reste de l'onglet Résumé se présente sous forme de groupes dépliables :
- Document — DOC / DCT / KCO, numéro UBL, type de facture, profile ID, références contrat / acheteur / commande / projet, référence comptable.
- Dates et devise — date d'émission, date d'échéance, devise, période de début / fin.
- Montants — total HT, total TTC, montant à payer.
- Paiement — code de moyen de paiement, IBAN, nom du compte, BIC, identifiant de paiement, conditions de paiement.
- Remises / charges au niveau document — remises ou charges au niveau du document avec type, motif, montant, catégorie de TVA.
Onglet Parties
Trois groupes dépliables remplis à partir du document UBL :
- Fournisseur — nom, SIREN, SIRET, identifiant à la TVA, adresse électronique, adresse postale, contact (nom, téléphone, e-mail).
- Client — nom, identifiant société, adresse électronique, TVA, adresse, contact.
- Agent Party (facultatif) — pour l'extension française — nom, adresse, pays.
- Livraison (facultatif) — date, nom de la partie, identifiant de lieu, adresse.
Un groupe sans donnée n'apparaît pas.
123 456 789123 456 789 00012FR121234567890009:1234567890001275001 Paris · FR
987 654 321FR989876543210009:9876543210001569002 Lyon · FR
2026-04-260088:301234560000369800 Saint-Priest · FR
Onglet Lignes
Tableau des lignes de facture : une ligne principale par ligne, plus des sous-lignes qui détaillent les compléments présents dans le document UBL.
| Colonne | Description |
|---|---|
| Description | Texte libre décrivant l'élément facturé. |
| Item | Identifiant article (code, SKU). |
| Quantité | Quantité facturée. |
| Unité | Code unité de mesure (par ex. EA pièce, H87 unité, DAY jour, KGM kilogramme). |
| Prix unitaire | Prix unitaire hors taxes. Affiché à sa précision réelle — jusqu'à 6 décimales (BT-146), au plus près de la source. La norme EN 16931 autorise une précision plus fine sur le prix que sur les totaux monétaires, qui restent à 2 décimales. |
| Montant ligne | Quantité × prix unitaire (hors taxes). |
| Catégorie de taxe | Code de catégorie TVA UBL (S standard, AE autoliquidation, E exonéré, Z taux zéro, O hors champ, K intra-UE, G export, L Canaries, M Ceuta/Melilla). |
| Taux de taxe | Taux de TVA applicable, en pourcentage. |
Des sous-lignes apparaissent sous chaque ligne principale pour :
- Description de l'article
- Période (début → fin)
- Identifiants article acheteur / standard / classification
- Note de ligne (
BT-127) - Remise / charge au niveau prix (
BT-147) - Remises / charges au niveau ligne (
BG-27/BG-28) - Propriétés additionnelles d'article (
BG-32)
Quand plusieurs lignes partagent la même livraison, les mêmes références documentaires (BT-128) ou le même numéro de commande client (EXT-FR-FE-135), un en-tête de livraison, un en-tête de référence documentaire ou un en-tête Référence Cde Client apparaît une seule fois en haut du groupe, au lieu d'être répété sur chaque ligne.
Onglet TVA
Tableau des sous-totaux TVA présents dans le document UBL : code de catégorie, taux, base imposable, montant de TVA, devise, code et libellé d'exonération (le cas échéant).
Onglet Notes
Notes au niveau document (BT-22). Chaque note s'affiche sous forme de carte avec un badge de préfixe (par ex. PMD, PMT, REG) suivi du texte libre. Le libellé du préfixe vient de la liste de référence note-types ; survoler le badge l'affiche.
Onglet Historique
Trois sections dans cet onglet :
Barre d'actions en haut
| Bouton | Comportement |
|---|---|
| Valider l'UBL | Relance la validation XSD + Schematron sur le document UBL stocké en base. Le résultat (valide / avertissement / erreur) s'affiche en ligne, avec le détail si nécessaire. |
| Modifier le statut | Ouvre la modale de modification de statut — voir plus bas. |
| Renvoyer | Redépose le document UBL sur la Plateforme Agréée. Une confirmation est demandée avant exécution. |
| Télécharger UBL | Enregistre l'UBL archivé de la facture. |
| Télécharger CII | Affiché quand le document a une post-transformation : l'UBL archivé converti à la demande, au nom de la post-transformation (Télécharger fichier converti quand elle n'a pas de nom). |
Groupe Cycle de vie
Le cycle de vie est la trace d'audit de tous les statuts traversés par la facture. Chaque événement affiche :
- Le badge de statut (code + couleur de famille).
- Le libellé du statut et le message renvoyé par la plateforme.
- Pour les refus, détails facultatifs : code et libellé du motif de rejet, code et libellé de l'action attendue, note de statut additionnelle.
Le cycle de vie est en mode ajout seul — les événements sont créés par le job Synchronisation → Récupérer les statuts et ne sont jamais modifiés. Chaque événement porte toutefois un bouton supprimer (avec confirmation) : retirer un événement réaligne le statut de la facture sur le dernier restant — la correction manuelle propre quand la plateforme a livré un statut parasite (une Refusée qu'elle a ensuite dépassée, par exemple). Réservé par une action dédiée Supprimer l'événement de cycle de vie dans les rôles.
Les trois champs de refus — motif de rejet, action attendue et note de statut — figurent aussi dans le catalogue de colonnes : on peut les épingler comme colonnes de liste et les filtrer depuis l'éditeur de Vues de liste quand une équipe doit balayer ou trier par motif de refus sans ouvrir chaque facture.
RR-016 — Quantité non conforme à la livraisonAC-04 — Émettre une facture rectificativeGroupe Erreurs de validation
Liste les erreurs de validation (XSD / Schematron) enregistrées sur cette facture. Chaque ligne donne la sévérité, l'identifiant de la règle et le message correspondant. Vide quand la facture passe sans erreur.
Onglet PDF
L'onglet PDF affiche un PDF de la facture généré à la volée (vue <iframe>). En bas de l'onglet :
| Bouton | Comportement |
|---|---|
| Ouvre la modale d'envoi d'e-mail avec le PDF déjà attaché. | |
| Télécharger | Télécharge le PDF sur l'ordinateur local. |
Modales d'action
Modale de modification de statut
Ouverte depuis le bouton Modifier le statut de l'onglet Historique. Permet de placer manuellement la facture sur un statut donné — utile pour corriger une erreur ou pour forcer une transition que la plateforme n'a pas remontée.
| Champ | Description |
|---|---|
| Cible | PA (envoie une mise à jour de statut à la Plateforme Agréée) ou DB (écrit le nouveau statut directement en base locale, sans notification PA). |
| Statut | Liste déroulante de tous les statuts de la liste de référence statuses, avec code + libellé. |
| Date du statut (PA uniquement) | Date / heure de l'événement. Défaut : maintenant. |
| Motif | Motif libre. Pré-rempli avec le libellé du statut ; modifiable. |
| Code et libellé du motif de rejet (le cas échéant) | Code issu de la liste rejection-reason-codes, plus sa traduction. |
| Code et libellé de l'action (le cas échéant) | Code issu de la liste action-codes, plus sa traduction. |
Quand Cible = DB est sélectionné, un encart orange rappelle que la modification est locale uniquement et ne sera pas propagée vers la PA.
Cliquer sur Soumettre pour appliquer. Un bandeau vert confirme le succès et la modale se ferme peu après.
Modale d'envoi d'e-mail
Ouverte depuis l'onglet PDF. Permet d'envoyer le PDF de la facture au client par SMTP, avec les identifiants configurés dans le template global.
| Champ | Description |
|---|---|
| À (obligatoire) | Adresse e-mail du destinataire. |
| Cc | Copie facultative. |
| Objet | Pré-rempli avec Invoice <ublNumber> ; modifiable. |
| Corps | Pré-rempli avec un modèle français ou anglais selon la langue de l'utilisateur : salutation, ligne principale qui référence le numéro de facture et le total, ligne de contact, signature. Entièrement modifiable. |
Le PDF affiché dans l'onglet PDF est attaché automatiquement. Si le PDF n'a pas été pré-chargé, le serveur le récupère depuis la base avant l'envoi.
Pendant l'envoi, la modale est désactivée par un voile jusqu'à la confirmation du serveur SMTP. Un bandeau vert confirme l'envoi ; la modale se ferme automatiquement après ~2 s.
Modale de création / édition de facture
Ouverte depuis + Nouvelle facture dans la barre d'outils, ou depuis les boutons Modifier l'UBL / Copier de l'onglet Résumé. Permet de créer une facture vierge ou de modifier une facture existante. La modale prend l'apparence d'une facture imprimable. L'utilisateur remplit le formulaire ; à l'enregistrement, NomaUBL génère le document UBL correspondant.
Les sections et champs affichés dépendent du rôle de l'utilisateur : un rôle qui dispose de formulaires de saisie ouvre l'éditeur sur son formulaire par défaut — certains champs en lecture seule ou masqués, valeurs par défaut renseignées, champs obligatoires contrôlés à l'enregistrement — et un sélecteur dans l'en-tête passe d'un formulaire à l'autre. Sans formulaire, le rôle garde l'éditeur complet. Sur une ligne, + Prix ouvre le détail du prix (PU brut, remise, PU net) et + Delivery le bloc de livraison de la ligne ; la corbeille les referme.
Modifier une facture existante ne réinitialise plus son cbc:CustomizationID au défaut EN16931. Le formulaire porte maintenant la valeur customizationId du UBL source et l'écrit verbatim — les nouvelles factures restent par défaut à urn:cen.eu:en16931:2017.
La modale est divisée en sections verticales :
- Document — numéro, type de facture, profile ID, références contrat / acheteur / commande.
- En-tête — dates d'émission / échéance, devise, période de début / fin, l'Avis d'expédition (BT-16 — numéro et date), ainsi qu'un bloc Factures antérieures (BG-3, 0..n) : chaque ligne un numéro de référence (BT-25) et une date d'émission facultative (BT-26), avec + Ajouter une facture antérieure (BG-3). Sur un avoir, c'est la référence à la facture corrigée.
- Fournisseur — alimenté depuis l'annuaire des fournisseurs (UBL Defaults → Suppliers / Companies) ; modifiable par facture.
- Client — renseigné de bout en bout depuis la recherche d'entreprise : les résultats affichent le badge, le nom et l'identifiant sur une ligne, l'adresse en dessous ; une recherche par SIREN ou SIRET seul liste tous les établissements (même seconde interrogation INSEE que l'E-Directory), et un champ SIRET facultatif complète le SIREN. L'adresse électronique n'est pas déduite du SIREN/SIRET — une liste d'adresses électroniques du PPF (ouverte automatiquement après le choix d'une entreprise, ou à tout moment via le bouton à côté du champ identifiant) présente les adresses enregistrées pour le SIREN avec leur état actif/désactivé ; en choisir une renseigne l'identifiant et son schéma, puis la liste se referme. Un bloc Autres id. (BT-46) ajoute autant d'identifiants acheteur supplémentaires que voulu, chacun avec son schéma de la liste EAS — un code de routage ou un second SIRET porté par le document devient visible, modifiable et supprimable au lieu de voyager de façon invisible.
- Livraison — groupe livraison facultatif au niveau du document (BG-13). Seule la livraison saisie au niveau document y apparaît ; les livraisons portées par les lignes restent sur les lignes et ne remontent jamais dans l'en-tête.
- Paiement — code de moyen de paiement, IBAN, BIC, mandat, conditions.
- Remises / charges — remises / charges au niveau document.
- Notes — notes libres par préfixe
BT-22. - Lignes — lignes de facture avec article, quantité, unité, prix, remises, propriétés. Le champ Prix unitaire accepte une précision fine (jusqu'à 6 décimales), pour les prix qui en portent plus de 2 à la source. Un bloc Prix (BG-29) par ligne fixe le prix unitaire brut (BT-148) et la remise sur prix (BT-147) ; le prix net en est déduit et pilote le montant de ligne, lequel divise par la quantité de base (BT-149) — un prix pour 100 ou 1 000 unités est ainsi calculé correctement. Le bloc Références de la ligne porte aussi des références de facture antérieure par ligne (EXT-FR-FE-136) — numéro, date facultative et un DocumentStatusCode choisi parmi
INFORMATION/DETAIL/GROUP. Trois boutons rapides du même bloc renseignent les références de commande de la ligne, toutes portées parcac:OrderLineReference: Référence Cde Client (numéro de commande de l'acheteur, EXT-FR-FE-135 — la clé de regroupement des lignes sur le PDF), Numéro de commande (numéro de commande du vendeur, EXT-FR-FE-144) et N° ligne client (numéro de la ligne dans la commande de l'acheteur, BT-132). Un quatrième bouton, Avis d'expédition, ajoute la référence et la date de l'avis d'expédition de la ligne (EXT-FR-FE-BG-07). - Récapitulatif TVA — calculé automatiquement depuis les lignes (lecture seule — les modifications de ligne s'y reflètent).
- Totaux — calculés automatiquement (lecture seule).
Le bouton Enregistrer en bas valide la saisie, écrit en base, génère le document UBL et le dépose sur la PA selon les paramètres du template e-invoicing. La modale se ferme après un enregistrement réussi.
Un bouton plein écran dans l'en-tête bascule entre fenêtré et plein écran — pratique pour les factures qui ont beaucoup de lignes.
Confirmation de redépôt
Le bouton Renvoyer (dans l'onglet Historique, ou via le bandeau Actions vendeur sur les statuts 9904 / 9907) ouvre une confirmation avant de redéposer le document UBL sur la Plateforme Agréée, dans le respect des règles de renvoi — le document part immédiatement et son statut passe à En attente (9906). Après confirmation, la facture est redéposée. Un bandeau en ligne affiche le succès ou l'erreur renvoyée par la PA. Le cycle de vie est mis à jour pour refléter le nouveau dépôt.
Conseils & bonnes pratiques
- Commencer par la période. Hier convient au contrôle du matin, une plage personnalisée couvre la clôture mensuelle ; la période d'ouverture se règle une fois dans Périodes par défaut. Les autres filtres s'appliquent en plus.
- Les étapes sont le filtre le plus rapide. À corriger et Décision à prendre avec un nombre non nul sont en général le bon point de départ pour traiter les exceptions ; la flèche restreint l'étape à un seul statut.
- Le cycle de vie (onglet Historique) est la source de vérité. Il enregistre tous les statuts traversés, avec messages, motifs de rejet et actions attendues — c'est l'endroit pour instruire un litige ou retrouver une décision côté PA.
- Utiliser le bandeau Actions vendeur. Les actions proposées sur
205/206/207/208/210/213/9904/9907sont les étapes recommandées par la plateforme. Elles ramènent un workflow multi-étapes (retrouver le client, rédiger l'avoir, etc.) à un seul clic, à condition que le connecteur soit configuré. - N'utiliser Modifier le statut qu'en cas de besoin. Un Modifier le statut → DB manuel désynchronise le dossier local de la PA. À réserver aux nettoyages après restauration de sauvegarde ou aux statuts non couverts par le job de cycle de vie.
- Modifier l'UBL puis Enregistrer est la méthode standard pour corriger une facture — l'enregistrement réécrit la facture en base et la redépose sur la PA. Éviter d'éditer directement le XML source via Outils UBL → XML Viewer, sauf si le fichier sur disque est la source de référence.
- Utiliser Copier pour la facturation récurrente. La modale est pré-remplie avec toutes les parties, les lignes et la TVA ; seuls le numéro, les dates et les éventuels écarts restent à modifier.