Aller au contenu principal

E-Reporting

L'écran E-Reporting est le point d'entrée opérationnel du workflow d'e-reporting de NomaUBL — la voie déclarative de la Réforme de la Facturation Électronique (RFE). À la différence d'E-Invoicing, qui dépose une facture structurée vers la Plateforme Agréée du destinataire, E-Reporting dépose une déclaration agrégée vers l'administration fiscale via cette même PA, pour les transactions hors périmètre de l'e-invoicing :

  • Transactions B2C — ventes à des particuliers.
  • Transactions B2B intra-UE — ventes à un acheteur d'un autre État membre.
  • Exports et autres transactions hors périmètre — ventes à des acheteurs hors UE, flux internes inter-sociétés, etc.

Pour ces transactions, l'acheteur ne reçoit pas de facture structurée via la PA. Le vendeur déclare quand même le chiffre d'affaires pour permettre à l'administration fiscale de calculer la TVA due. NomaUBL regroupe les transactions, construit le XML correspondant, le dépose sur la PA et suit son cycle de vie.

La page fonctionne quel que soit le système source — JD Edwards, SAP, NetSuite ou un ERP personnalisé.


Positionnement de l'e-reporting

L'e-reporting est la voie déclarative de la réforme — l'e-invoicing prend en charge la facture B2B structurée, l'e-reporting couvre tout ce qui ne passe pas par cette voie mais doit être déclaré pour la TVA.

📊 VOIE E-REPORTINGVente(tout système source)Routage BARdécision📤 E-Invoicingfacture structurée via PAB2B / B2GFlux 10.1détail B2BINT · par factureFlux 10.3B2C / OUTOFSCOPE · agrégéB2BINTB2C / OUTOFSCOPE🏢 PA acheteurfacture structurée reçue🏛 Administration fiscaledéclaration agrégée · via PA

La règle de routage BAR définie dans UBL Defaults → Document Type / BAR Routing pilote la répartition. La configurer correctement en amont garantit que les transactions vont automatiquement dans le bon flux.


Deux flux, quatre types de document

La spécification française d'e-reporting définit deux flux sortants et quatre types de document qui précisent si le rapport est une soumission initiale ou une correction.

FluxPérimètreForme du contenu
10.1Détail B2BINTUn élément <Invoice> par facture B2B internationale de la période — ID, date d'émission, code de type, devise, Vendeur (déclarant), Acheteur (contrepartie), totaux monétaires et un <TaxSubTotal> par taux de TVA. Les factures B2C ne sont jamais émises ici, conformément à la règle de routage de la spécification.
10.3B2C / OUTOFSCOPE agrégéUn bloc <Transactions> par (code catégorie, devise), avec des <TaxSubTotal> imbriqués par taux portant la base imposable (en devise source) et le montant de TVA (toujours en EUR).
CodeSignificationCas d'usage type
INInitialPremière déclaration de la période — valeur par défaut.
RERemplacementRemplace une déclaration précédente sur la même période après correction.
COAnnulationAnnule une déclaration précédente (par ex. soumise par erreur).
MOModificationAjuste certaines lignes d'une déclaration précédente sans remplacement complet.

Les rapports suivent une fréquence configurable — MONTHLY (mois calendaire, défaut), DECADAL (1-10, 11-20, 21-fin de mois) ou WEEKLY (semaine ISO, lundi → dimanche) — définie dans le template e-reporting de config.json.

Codes de catégorie de transaction (flux 10.3)

Le bloc <Transactions> en flux 10.3 contient un <CategoryCode> (TT-81) qui classe l'opération sous-jacente parmi les quatre codes acceptés par la spécification :

CodeSignificationCas d'usage type
TLB1Livraisons de biens taxablesVentes de biens soumises à la TVA française.
TPS1Prestations de services taxablesPrestations de services soumises à la TVA française.
TNT1Non taxableOpérations hors champ de la TVA française — ventes à distance intracommunautaires, services relevant de l'article 259 B du CGI, exportations.
TMA1Régime de la margeOpérations relevant du régime de TVA sur la marge (articles 266 e, 268, 297 A du CGI).

NomaUBL dérive la catégorie depuis la ligne facture sous-jacente. Quand une ligne source a une valeur en dehors de l'ensemble accepté, la plateforme bascule automatiquement sur TLB1 (taux positif) ou TNT1 (taux nul).

Les montants de TVA sont toujours en EUR

Tous les éléments <TaxAmount> et <TaxTotal> produits par NomaUBL sont forcés en euros, quelle que soit la devise de la facture source. Le <TaxableAmount> garde la devise d'origine de la facture, pour que le montant de l'opération sous-jacente reste auditable.


Statuts du cycle de vie

Les rapports e-reporting suivent un cycle de vie dédié, distinct de celui des factures. NomaUBL enregistre l'un de ces huit codes à chaque transition entre la génération et l'acquittement (ou rejet) PA :

Chemin nominal9950 Généré9952 Envoyé PA9953 En attente9955 Déposé ✓Échec / variantes9951 Envoi désactivé·9954 Échec d'envoi·9956 Échec d'import·9957 Rejeté ✗
CodeTagSignification
9950EREPORT_CREATEDXML construit et persisté ; pas encore de tentative de dépôt.
9951EREPORT_SUBMIT_SKIPPEDRapport généré ; envoi PA désactivé (sendToPA=N sur le template e-reporting). Le XML reste téléchargeable mais n'atteint jamais la PA.
9952EREPORT_SENT_TO_PARapport déposé sur la PA en HTTP ; en attente de l'accusé de réception initial.
9953EREPORT_PENDINGLa PA a accusé réception et traite le rapport.
9954EREPORT_ERROR_SENTÉchec de la soumission au niveau réseau ou HTTP — typiquement transitoire. Resend permet la reprise.
9955EREPORT_DEPOSITEDLa PA a accepté et enregistré le rapport — succès terminal.
9956EREPORT_FAILED_IMPORTLa PA n'a pas pu importer le rapport (erreur de traitement post-acquittement).
9957EREPORT_REJECTEDLa PA a rejeté le rapport sur une règle de validation — échec terminal. La reprise passe par un RE corrigé.

Les codes 99509954 sont transitoires (le rapport est en mouvement). 99559957 sont terminaux (pas de transition automatique ultérieure) ; un rapport RE (remplacement) est le seul moyen de surcharger un 9957 sur la même période.


Vue d'ensemble

E-Reporting↻ Rafraîchir+ Générer🔍 Société (KCO)…Période (AAAA-MM)…Tous les flux ▾DATE · KCO · PÉRIODE · FLUX · TYPE · STATUT · ID DÉPÔT2026-05-01 · 00070 · 2026-04 · 10.1 · IN9955 · AcceptéeERS-2026-00422026-05-01 · 00070 · 2026-04 · 10.3 · IN9955 · AcceptéeERS-2026-00432026-04-01 · 00070 · 2026-03 · 10.1 · IN9957 · RejetéeERS-2026-00212026-04-02 · 00070 · 2026-03 · 10.1 · RE9955 · AcceptéeERS-2026-00222026-05-01 · 00001 · 2026-04 · 10.3 · IN9952 · EnvoyéeERS-2026-00442026-05-01 · 00001 · 2026-04 · 10.1 · IN9951 · AttenteERS-2026-00451 — 50 sur 386Page 1 ▾ · 50 ▾ ‹ ›MODALE GÉNÉRERSociété · Période · Type — choisir une ligne pour déposer un rapport.00070 ▾2026-04IN — Initial ▾Générer et déposerProduit Flux 10.1 (détail B2BINT) + Flux 10.3 (B2C / OUTOFSCOPE agrégé) en un seul appel.Filtressociété · période · fluxBadge de statut9951 / 9952 / 9955 / 9957Remplacement (RE)surcharge un rejet 9957Modale Générerun clic → 10.1 + 10.3

Barre d'outils

La barre d'outils au-dessus du tableau combine trois filtres texte avec deux raccourcis.

SociétéFluxStatut↻ RafraîchirGénérer un rapport
ChampCritère
SociétéCode société (Kco) auquel le rapport est rattaché (par ex. 00070).
FluxCode de flux — 10.1 (détail B2BINT) ou 10.3 (B2C / OUTOFSCOPE agrégé).
StatutRecherche libre sur le code ou le libellé du statut courant.
RafraîchirRelance la requête courante sans modifier les filtres.
Générer un rapportOuvre la modale de génération — décrite plus bas. Masquée pour les sessions en lecture seule.

Filtres avancés (2026.05.10)

Un panneau Filtres avancés pliable sous la barre d'outils propose une ligne par colonne filtrable de la spec Vues de liste active (view.ereporting) — avec des sélecteurs d'opérateurs par colonne (contains, equals, , <, , >, , between, empty, not empty). Les modifications restent en brouillon tant que Exécuter ne les valide pas.

Depuis 2026.05.12, la page fonctionne en mode hybride client-side — une tranche serveur capée par Exécuter (spec.maxRows, 5000 par défaut), puis TanStack gère filter / sort / paginate dans la tranche. Un message X / Y lignes à côté de Exécuter signale quand le cap est atteint. Depuis 2026.05.13, la colonne refList status reçoit un picker multi-sélection qui émet une clause IN (?,?,?) côté serveur — choisir plusieurs codes de statut renvoie l'union.


Liste des rapports

Le tableau affiche une ligne par rapport. Tri par défaut : RGDOC décroissant. Cliquer sur un en-tête de colonne pour trier ; cliquer sur une ligne ouvre la modale de détail.

Depuis 2026.05.10, la table passe par DataTableV2 en mode piloté par spec : la forme des colonnes vient de la spec view.ereporting sur db-nomaubl et le défaut embarqué livre toutes les colonnes listées ci-dessous. Ajouter des colonnes depuis le catalogue ou retirer une colonne de la liste blanche de filtres se fait depuis l'éditeur Vues de liste.

ID
Flux
Société
Type
Période
Factures
Statut
UUID PA
Création
1042
10.1
00070
IN
2026-04-01 → 2026-04-30
142
9955 Déposé
a1b2c3d4…f9e8
2026-05-02 09:30
1041
10.3
00070
IN
2026-04-01 → 2026-04-30
38
9955 Déposé
f6a7b8c9…d4e5
2026-05-02 09:31
1040
10.1
00070
RE
2026-03-01 → 2026-03-31
12
9953 En attente
2026-04-15 14:22
1039
10.3
00080
IN
2026-03-01 → 2026-03-31
27
9957 Rejeté
9d8e7f6a…2b1c
2026-04-02 11:15

Colonnes par défaut

ColonneDescription
IDIdentifiant interne du rapport (RGDOC). Auto-incrémenté.
Flux10.1 (détail B2BINT) ou 10.3 (B2C / OUTOFSCOPE agrégé).
SociétéCode société (Kco) auquel le rapport s'applique.
TypeType de document — IN / RE / CO / MO.
PériodePlage déclarative — début → fin (ISO 8601).
FacturesNombre de factures sources incluses dans le rapport.
StatutBadge du statut courant — code + libellé, coloré par famille.
UUID PAIdentifiant unique renvoyé par la PA après acceptation. Tronqué à 8…8 ; valeur complète au survol.
CréationHorodatage de génération.

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 rapports correspondants apparaît à côté de la pagination.

Export CSV

Le bouton standard Exporter de la barre d'outils exporte la vue courante (filtres compris) au format CSV sous le nom ereporting.csv.


Modale de détail

Cliquer sur une ligne ouvre une modale qui contient trois onglets en haut : En-tête, Factures, Historique. Le titre de la modale affiche le triplet Flux / Kco / Rgdoc.

Détail rapport — 10.1 / 00070 / 1042
⬇ Télécharger XMLRenvoyer à la PA
En-tête
Factures (142)
Historique (3)
Contenu de l'onglet — varie selon l'onglet actif

Onglet En-tête (défaut)

Grille des champs qui résument l'identité du rapport et le résultat du dépôt.

ChampDescription
RGDOCIdentifiant interne du rapport.
FLUX10.1 ou 10.3.
KCOCode société.
TypeIN / RE / CO / MO.
Début / fin de périodeDates ISO 8601 qui délimitent la fenêtre déclarative.
ExpéditeurMatricule du transmetteur, schéma 0238 — typiquement l'entité enregistrée auprès de la PA.
ÉmetteurIdentifiant de l'émetteur légal, schéma 0002 (SIREN).
UUID PAIdentifiant retourné par la PA à l'acceptation. Vide tant que le rapport n'a pas été accepté.
StatutStatut courant du cycle de vie — code + libellé.
Message de statutDernier message renvoyé par la PA — typiquement le motif de rejet pour les soumissions échouées.
FacturesNombre de factures sources incluses dans le rapport.
Date de créationHorodatage de génération.

Onglet Factures

Tableau de chaque facture source incluse dans le rapport. Les colonnes correspondent à l'enregistrement e-invoicing sous-jacent — pour croiser le rapport et ses sources.

ColonneDescription
NuméroNuméro de facture — BT-1 quand il est renseigné, sinon DOC/DCT/KCO.
DateDate d'émission (BT-2).
BARCode de routage BAR porté par la facture (B2C, B2BINT, OUTOFSCOPE, …).
ClientNom de la partie acheteur.
HTMontant total hors taxes.
TVAMontant total de la TVA.
TTCMontant total toutes taxes comprises.
DeviseCode devise ISO 4217.

La liste reflète l'état enregistré au moment de la génération — relancer un rapport (RE) ne modifie pas rétroactivement la vue de l'IN précédent.

Onglet Historique

Le cycle de vie du rapport — chaque statut traversé, en mode ajout seul, dans l'ordre de soumission.

ColonneDescription
#Numéro de séquence — 1 correspond à l'état initial à la génération, les lignes suivantes sont les événements renvoyés par la PA.
StatutCode + libellé du statut issu du catalogue e-reporting (par ex. 9950 Généré, 9952 Envoyé PA, 9953 En attente, 9955 Déposé, 9957 Rejeté). Voir Statuts du cycle de vie plus haut.
MessageTexte libre renvoyé par la PA — typiquement le motif de rejet ou la note d'acceptation.
DateHorodatage de l'événement.

Le cycle de vie est en lecture seule ici ; la seule action disponible est Renvoyer à la PA dans l'en-tête de la modale, qui ajoute un nouvel événement après un redépôt réussi.

Actions de l'en-tête

BoutonComportement
Télécharger XMLTélécharge le XML formaté du rapport (format de nom ereporting-<flux>-<kco>-<rgdoc>.xml). Le XML est mis en forme quand c'est possible, sinon le contenu stocké brut est conservé.
Renvoyer à la PARedépose le XML existant sur la Plateforme Agréée. Utile après une erreur PA transitoire. Masqué pour les sessions en lecture seule. Le cycle de vie est mis à jour avec le résultat du nouveau dépôt.
Fermer (✕)Ferme la modale sans modification.

Modale de génération

Ouverte via Générer un rapport dans la barre d'outils. Construit et dépose un ou plusieurs rapports pour une combinaison société / flux / période choisie.

Générer un e-reporting
Société (kco)
00070
Laisser vide pour appliquer à toutes les sociétés configurées.
Flux à générer
10.110.3
Type de document
INRECOMO
Début de période
2026-04-01
Fin de période
2026-04-30
📅 Calculer la période
AnnulerGénérer
ChampDescription
Société (kco)Restreint la génération à une seule société. Laisser vide pour appliquer à toutes les sociétés déclarées dans le template e-reporting.
Flux à générerSélection multiple entre 10.1 et 10.3. Les deux sont sélectionnés par défaut — un rapport est émis par flux actif.
Type de documentUne valeur parmi IN (initial), RE (remplacement), CO (annulation), MO (modification). Défaut : IN.
Début / fin de périodeDates ISO 8601 délimitant la fenêtre déclarative.
Calculer la périodePré-remplit Début / Fin avec la prochaine fenêtre due selon la fréquence configurée (MONTHLY / DECADAL / WEEKLY).
AnnulerFerme la modale sans générer.
GénérerConstruit le XML pour chaque flux sélectionné, persiste la ligne du rapport et dépose sur la PA. La liste se rafraîchit en cas de succès.

Lors de la génération, les blocs Expéditeur, Émetteur et Business Process par facture (TT-7 / TT-12 / TT-28 / TT-29) sont remplis à partir du template e-reporting. Ces valeurs par défaut se configurent une seule fois dans Configuration → Système → E-Reporting (Expéditeur / matricule PA + rôle WK, Émetteur / SIREN sous schéma 0002 pour les sociétés françaises, Business Process émis uniquement sur les factures B2BINT). En l'absence d'identifiant de transmission saisi manuellement, le rapport est identifié par {siren}-{flux}-{début}-{fin} : la valeur reste stable d'une régénération à l'autre sur la même période et permet à la PA de dédupliquer des dépôts identiques.

Après une exécution réussie, les nouveaux rapports apparaissent en tête de liste avec un statut 9950 (Généré) qui progresse rapidement par 9952 (Envoyé PA) et 9953 (En attente), puis aboutit à 9955 (Déposé) quand la PA accuse réception. Quand l'option Send to PA est désactivée (sendToPA=N), le rapport reste en 9951 (Envoi désactivé) et le XML reste téléchargeable pour relecture hors ligne.


Conseils & bonnes pratiques

  • Configurer le routage BAR en premier. La liste des factures qui arrive en flux 10.1 / 10.3 est pilotée par UBL Defaults → Document Type / BAR Routing. B2BINT alimente le flux 10.1 (détail par facture) ; B2C et OUTOFSCOPE alimentent le flux 10.3 (agrégé). Une facture mal classée n'arrive ni dans l'un ni dans l'autre — chaque type de document doit être rattaché à B2B, B2G, B2C, B2BINT ou OUTOFSCOPE avant la première génération.
  • Préférer Calculer la période à la saisie manuelle. Cette option respecte la fréquence configurée dans le template e-reporting, donc la fenêtre suggérée correspond à l'échéance réglementaire (mois plein précédent pour MONTHLY, décade précédente pour DECADAL, semaine ISO précédente pour WEEKLY).
  • IN d'abord, puis RE pour les corrections. Une facture arrivée tardivement ou un montant corrigé demande un rapport RE qui couvre la même période — ne jamais ré-émettre un IN sur une période déjà déclarée.
  • Réserver CO à l'annulation totale. À utiliser quand une période entière a été déclarée par erreur ; les corrections partielles passent par RE.
  • L'UUID PA est l'accusé de réception. Il reste vide entre la soumission et l'acceptation (statuts 9952 et 9953), puis devient définitif quand la PA accuse 9955 (Déposé). C'est la preuve juridique de la déclaration en cas de contrôle.
  • Redéposer après une erreur PA transitoire, pas après un rejet Schematron. Un 9954 (Échec d'envoi) indique un incident réseau ou HTTP — Renvoyer permet la reprise. Un 9957 (Rejeté) donne un motif Schematron ou règle métier dans le Message de statut — corriger les données BAR ou la facture en amont et générer un nouveau RE, plutôt que de redéposer à l'aveugle. Un 9956 (Échec d'import) se situe entre les deux : lire le message avant de choisir entre redépôt et reconstruction.
  • L'onglet Factures est un instantané. Il enregistre les factures sources telles qu'elles étaient au moment de la génération. Les modifications ultérieures ne modifient pas rétroactivement le rapport déposé — elles apparaissent dans le RE suivant si elles sont matérielles.
  • Les données de TVA sont lues depuis l'UBL en priorité. Lors de la génération, NomaUBL parse les nœuds cac:TaxTotal/cac:TaxSubtotal au niveau document de chaque UBL stocké — les sous-totaux par ligne sont ignorés pour éviter le double comptage. La table de synthèse TVA n'est consultée qu'en secours. Si un rapport B2C sort avec des blocs <Transactions> vides alors que les factures et leur UBL sont bien en base, la synthèse TVA est probablement désynchronisée par rapport à l'UBL — relancer la génération depuis l'UBL résout l'écart.
  • Configurer une seule fois les valeurs Expéditeur / Émetteur / Business Process. Configuration → Système → E-Reporting regroupe le matricule PA (Expéditeur, rôle par défaut WK), le SIREN de l'émetteur (Émetteur, schéma par défaut 0002 pour les sociétés françaises ; 0223 / 0227 / 0228 / 0229 pour les cas internationaux) et le processus métier par facture (émis uniquement en B2BINT). Garder ces valeurs au niveau du template garantit la cohérence de tous les rapports générés et évite les surcharges au cas par cas.
  • Les codes catégorie hors-liste sont remappés automatiquement. Une ligne source avec un code catégorie autre que TLB1 / TPS1 / TNT1 / TMA1 est ramenée automatiquement à TLB1 (taux positif) ou TNT1 (taux nul) au moment de la génération. Renseigner explicitement la catégorie sur la ligne source dès que la valeur par défaut ne convient pas (par exemple un service qui doit aboutir en TPS1 plutôt qu'en TLB1).