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
La barre d'outils au-dessus du tableau combine filtre de dates, recherche texte, puces de statut et raccourcis.
Plage de dates
Le filtre de dates à gauche s'applique à la dernière mise à jour de chaque facture. Préréglage par défaut : Hier. Autres préréglages : Aujourd'hui, 7 derniers jours, Ce mois, Mois dernier et Plage personnalisée (saisie manuelle des dates de début et de fin).
Filtres texte
Chaque champ filtre la liste à la saisie — la recherche se déclenche après une courte pause :
| Champ | Critère |
|---|---|
| Doc | Numéro de document interne (par ex. 12345). |
| Dct | Code du type de document (par ex. RI, RN). |
| Kco | Code société (par ex. 00070). |
| Contrat | Référence du contrat porté par la facture. |
| Nom du client | Nom de la partie acheteur. |
Sélecteur de routage BAR
Une déroulante distincte filtre par code BAR (B2B, B2G, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY, DOCUMENT) — la classification de canal documentée dans UBL Defaults → Document Type / BAR Routing.
Puces de statut
À droite, une rangée de puces de statut affiche un badge par statut présent dans la plage de dates. Chaque puce indique le libellé du statut, son compteur et une couleur de famille. Cliquer sur une puce active un filtre sur la liste ; un nouveau clic le retire.
Effacer les filtres
Quand au moins un filtre est actif, une puce ✕ Effacer le filtre apparaît en fin de rangée. Elle efface tous les filtres sauf la plage de dates.
Débordement des pastilles de statut (2026.05.10)
La ligne de pastilles de statut est plafonnée à 5 pastilles inline ; le reste se replie dans un menu +N more avec un point coloré par code. Les drill-throughs multi-statuts depuis les tableaux de bord (par ex. En vol = 5 codes) remontent la valeur active dans le groupe inline quand elle tombe au-delà du plafond, donc le filtre actif reste visible.
Filtres avancés (2026.05.10)
Un panneau Filtres avancés pliable se trouve sous la rangée de pastilles. Il propose une ligne par colonne filtrable de la spec Vues de liste active — 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, donc taper dans le panneau ne sature pas le back-end.
L'ensemble des colonnes filtrables est défini par la liste blanche filter: true de la spec — les opérateurs choisissent quelles colonnes ils interrogent réellement et retirent les autres du panneau sans les perdre dans la grille. Voir Vues de liste pour l'éditeur.
Depuis 2026.05.12, la page fonctionne en mode hybride client-side : chaque Exécuter charge une tranche capée depuis le serveur (spec.maxRows, 5000 par défaut) et TanStack gère filter / sort / paginate / group dans cette tranche — pas d'aller-retour quand on tape dans la ligne de filtre par colonne, les filtres survivent à la pagination. Quand le cap de la tranche est atteint, un message X / Y lignes à côté de Exécuter indique d'affiner la plage de dates ou les Filtres avancés.
Depuis 2026.05.13, les colonnes refList (Statut, statut e-reporting, listes personnalisées) reçoivent un picker multi-sélection 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 inline, et un ✕ à droite réinitialise la sélection en un clic. Le serveur applique une clause IN (?,?,?) — choisir trois statuts renvoie l'union.
Rafraîchir et Nouvelle facture
Deux boutons sont placés à droite :
| Bouton | Comportement |
|---|---|
| Rafraîchir (flèche circulaire) | Relance la requête courante sans modifier les filtres. |
| + Nouvelle facture | Ouvre la modale de création / d'édition de facture. Masqué pour les sessions en lecture seule. |
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.
Depuis 2026.05.10, 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 vit déjà dans le catalogue.
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é. |
| Date d'émission | BT-2 issu du document UBL. |
| Client | Nom de la partie acheteur. |
| 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. |
| Revue (2026.05.9) | Badge de drapeau de revue coloré, alimenté par UHALRTPSD. Allumé quand la ligne demande une attention opérateur — typiquement 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. Vide quand le drapeau est libre. La colonne se balaie d'un coup d'œil : quelques badges jaunes dans une page sinon verte 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 (2026.05.10)
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 expose 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. Toutes les actions de la page sont unitaires : pas de sélection multi-lignes.
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.
Onglet Résumé (défaut)
L'onglet Résumé affiche un badge de statut coloré en haut, suivi des boutons d'action (Modifier l'UBL, Copier, Supprimer) à droite.
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.
Depuis 2026.05.15 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. |
| 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 ou les mêmes références documentaires (BT-128), un en-tête de livraison ou un en-tête de référence documentaire 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. |
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.
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.
Depuis 2026.05.10, 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.
- Fournisseur — alimenté depuis l'annuaire des fournisseurs (UBL Defaults → Suppliers / Companies) ; modifiable par facture.
- Client — saisie manuelle ou recherche via l'annuaire PPF.
- Livraison — groupe livraison facultatif.
- 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.
- 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. 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 plage de dates. Hier (défaut) convient au pointage du matin ; Plage personnalisée couvre la clôture mensuelle. Les autres filtres s'appliquent en plus.
- Les puces de statut sont le filtre le plus rapide. Une puce rouge à compteur non nul est en général le bon point de départ pour traiter les exceptions.
- 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.