Guide CompletExtraction NF-e Brésilienne

Chaque XML NF-e brésilien contient plus de 500 champs structurés — y compris les ventilations fiscales par ligne qui déterminent votre récupération de crédits ICMS et PIS/COFINS. Pourtant, la plupart des équipes FP en extraient moins de 20. Ce guide est une référence complète pour transformer un XML NF-e en données exploitables : tables de mappage des champs, validation des taux ICMS par paire d'États, codes CST et CFOP, gestion de l'ICMS-ST, et les étapes pratiques pour la transition vers le double schéma de 2026.

Arrêtez la saisie manuelle — laissez l'IA lire vos documents
Image ou PDF — données structurées en 10 secondes
Essayer maintenant
Sans inscription · Sans carte bancaire · Résultat en 10 secondes
Guide complet d'extraction XML NF-e brésilienne — mappage des champs, validation des taxes ICMS et workflow de données pour tableur

Extraire des données d'une NF-e brésilienne est fondamentalement différent de l'extraction sur une facture classique. Une facture standard au format PDF nécessite une OCR ou une compréhension documentaire par IA pour lire les champs d'une mise en page visuelle. Une NF-e arrive sous forme de fichier XML — lisible par machine par conception — avec une structure validée par plus de 400 règles automatisées par la SEFAZ, l'autorité fiscale de l'État brésilien, avant même que les marchandises qu'elle décrit ne soient autorisées à quitter l'entrepôt.

Le défi n'est pas la disponibilité des données. C'est leur complexité. Une facture européenne Peppol BIS utilise environ 100 éléments XML. Une NF-e sous la version 4.0 de mise en page contient plus de 500 groupes d'éléments structurés répartis sur plusieurs niveaux imbriqués, avec quatre branches de calcul fiscal distinctes par article, chacune utilisant son propre code de situation fiscale, sa base de calcul imposable, son taux et sa règle de crédit. Les données sont complètes — mais les extraire correctement nécessite de comprendre ce que chaque champ signifie et comment il se connecte aux autres.

Ce guide est conçu comme une référence pratique. Si vous mettez en place un flux d'extraction NF-e pour la première fois, commencez par le processus étape par étape dans la section 2. Si vous avez déjà un pipeline d'extraction en cours et devez valider un taux ICMS spécifique ou rechercher un code CFOP, passez directement aux tableaux de référence des sections 3 à 6. Chaque section est utilisable indépendamment, mais la valeur complète réside dans la vue d'ensemble : savoir quels champs extraire, comment vérifier leur exactitude, et quoi faire lorsque la NF-e arrive avec un événement d'annulation ou un indicateur de contingence.

Si vous débutez totalement avec la NF-e, commencez par notre guide du débutant sur la Nota Fiscal Eletrônica avant de plonger dans les spécificités de l'extraction. Ce guide suppose que vous comprenez la distinction de base entre DANFE et XML, le processus d'autorisation SEFAZ, et les quatre taxes principales — et se concentre sur l'extraction correcte de ces données.

Ce qui distingue l'extraction NF-e de l'extraction de factures classiques

Trois différences structurelles définissent le fonctionnement de l'extraction NF-e et expliquent pourquoi une approche standard d'extraction de factures — importer un PDF, définir des colonnes, obtenir les données — ne résout qu'une partie du problème.

1. La source est un XML, pas un document visuel. L'extraction de factures classiques est un problème de lecture : l'IA ou l'OCR doit localiser le texte sur une page, reconnaître quelle chaîne correspond au numéro de facture et la mapper à la bonne colonne. L'extraction NF-e est un problème d'analyse et de mappage : les données sont déjà dans des balises lisibles par machine, mais la structure XML utilise des noms de balises en portugais (<emit> pour l'émetteur, <dest> pour le destinataire, <imposto> pour les taxes) et des hiérarchies profondément imbriquées qui varient selon le régime fiscal. Le défi de l'extraction passe de « trouver les données » à « mapper le bon chemin XML vers chaque colonne de sortie ».

2. La structure fiscale est multidimensionnelle. Une seule ligne d'article NF-e comporte jusqu'à quatre calculs de taxe indépendants — ICMS (étatique, avec plus de 10 variantes selon le code CST), IPI (accise fédérale, dépendante du produit), PIS et COFINS (contributions sociales fédérales). Chaque taxe a sa propre base de calcul, son taux, son CST (code de situation fiscale) et ses règles d'éligibilité au crédit. Contrairement à une facture TVA européenne où un seul pourcentage de taxe s'applique à toute la ligne, une ligne NF-e contient des sous-groupes <ICMS>, <IPI>, <PIS> et <COFINS> distincts, chacun avec des bases imposables potentiellement différentes. Extraire uniquement les totaux néglige les détails qui déterminent si chaque crédit de taxe a été calculé correctement.

3. Le flux d'extraction doit tenir compte des événements post-émission. Une NF-e peut être annulée dans les 24 heures. Elle peut recevoir une Carta de Correção (CC-e) qui modifie certains champs. Elle peut être émise en mode de contingence si SEFAZ est inaccessible. Elle déclenche des événements côté destinataire appelés manifestação do destinatário — une obligation légale pour l'acheteur de confirmer la réception, d'accuser la transaction ou de la rejeter. Un pipeline d'extraction complet doit gérer ces changements basés sur des événements, et pas seulement extraire le XML initial et s'arrêter là. Pour un aperçu plus approfondi de l'impact des règles d'annulation et de contingence sur les flux de comptes fournisseurs, consultez notre analyse de la complexité du traitement NF-e.

Ces trois différences signifient que l'extraction NF-e n'est pas « une extraction de factures avec des noms de champs en portugais ». C'est une catégorie à part entière — plus proche de l'analyse EDI que de l'OCR de documents, mais avec une complexité fiscale qui dépasse la plupart des normes EDI d'un ordre de grandeur. Pour un aperçu de l'autre grand système de facture électronique latino-américain avec ses propres complexités structurelles, consultez notre guide complet de l'extraction CFDI mexicaine.

Le workflow complet d'extraction NF-e : étape par étape

Un workflow d'extraction NF-e de bout en bout, qu'il soit manuel, basé sur des scripts ou piloté par IA, suit la même séquence logique. Chaque étape produit un résultat spécifique qui alimente la suivante.

1

Récupérez le XML — pas seulement le DANFE

Chaque transaction NF-e génère un fichier XML. Si votre fournisseur n'a envoyé que le DANFE, utilisez la clé d'accès à 44 chiffres imprimée sur le DANFE pour télécharger le XML complet depuis le portail SEFAZ de l'État émetteur. La loi brésilienne oblige les fournisseurs à fournir le XML, nécessaire à l'extraction et à l'archivage obligatoire de cinq ans. Conservez les XML originaux tels quels — toute modification invalide la signature numérique et compromet la piste d'audit.

2

Vérifiez la clé d'accès et le statut SEFAZ

Avant tout traitement, confirmez la validité de la NF-e. Extrayez la chave de acesso à 44 chiffres de l'élément <chNFe> et interrogez le service web ou le portail SEFAZ. Vérifiez que le statut est « Autorizada » (autorisée) — pas « Cancelada » (annulée) ni « Denegada » (refusée). Cette étape doit être automatisée dans tout script ou outil, car une NF-e peut être annulée dans les 24 heures suivant son émission. Vérifier la clé d'accès au moment de l'extraction évite de traiter un document sans valeur légale.

3

Analysez la structure XML en groupes

Un XML NF-e a une structure de haut niveau prévisible. Les principaux groupes d'éléments sont : <ide> (identification du document), <emit> (émetteur/fournisseur), <dest> (destinataire/vous), <det> (lignes d'articles — répété par produit), <total> (totaux de la facture — un par type de taxe), <transp> (transport/fret), <cobr> (paiement/facturation) et <infAdic> (informations complémentaires). Votre script ou outil d'extraction doit analyser chaque groupe indépendamment, puis joindre les résultats au niveau des lignes d'articles.

4

Mappez les champs aux colonnes de sortie à l'aide du tableau de référence

Pour chaque champ nécessaire dans votre feuille de calcul ou fichier d'import ERP, identifiez le chemin XML exact, le type de données attendu et la transformation requise (dates au format ISO, montants en décimales à deux chiffres, chaînes CNPJ avec remplissage de zéros conservé). Utilisez la référence de mappage des champs dans la section 3 ci-dessous. La distinction cruciale à cette étape : séparez les champs d'en-tête (extraits une fois par NF-e) des champs de lignes d'articles (extraits pour chaque élément <det>). Votre structure de sortie doit refléter cela : un tableau d'en-tête avec une ligne par facture, et un tableau de lignes d'articles avec plusieurs lignes par facture.

5

Valider les calculs fiscaux par rapport aux données de référence

Les XML NF-e contiennent les calculs fiscaux du fournisseur, pas les vôtres. Votre processus d'extraction doit inclure des contrôles de validation : le taux ICMS correspond-il au taux correct pour la paire d'États d'origine-destination ? Le taux IPI correspond-il à la plage de codes NCM du produit ? Le code CST est-il cohérent avec le type de transaction décrit par le CFOP ? La section 4 de ce guide fournit les tables de référence nécessaires pour ces vérifications. Signalez toute divergence pour examen — n'importez pas silencieusement des données fiscales non conformes dans votre ERP.

6

Exporter, archiver et surveiller les événements

Exportez les données structurées vers votre ERP ou tableur. Archivez à la fois le XML original (exactement comme reçu, sans modification) et le résultat de l'extraction. Mettez ensuite en place un processus de surveillance : revérifiez le statut SEFAZ des NF-e extraites 48 heures après l'extraction pour détecter d'éventuelles annulations ou corrections. Un fournisseur peut annuler une NF-e dans les 24 heures sans vous en informer. Si vous avez extrait des données d'une NF-e désormais annulée et les avez importées dans votre ERP, vous devez créer une écriture de contre-passation. Des outils automatisés peuvent gérer cette étape de surveillance — les équipes humaines l'oublient souvent.

Référence de mappage des champs XML NF-e

Les tableaux suivants mappent les chemins XML essentiels des NF-e aux colonnes d'un tableur. Les champs sont classés par criticité : Critique (requis pour le traitement de base), Important (nécessaire pour la validation fiscale et la récupération de crédits) et Spécifique (nécessaire pour des scénarios particuliers comme les douanes ou les déclarations SPED). Tous les chemins sont relatifs à l'espace de noms XML standard de la NF-e.

Champs d'en-tête (une ligne par facture)

Colonne de sortieChemin XML (relatif à <nfeProc>/<NFe>/<infNFe>)Exemple de valeurCriticité
Chave de Acesso@Id (remover prefixo "NFe") ou <ide>/<cNF> combinado com prefixo35200600012345000106550010000012341012345678Critique
Número NF-e<ide>/<nNF>1234Critique
Série NF-e<ide>/<serie>1Critique
Data de Emissão<ide>/<dhEmi>2026-06-15T14:30:00-03:00Critique
Protocolo de Autorização SEFAZ<ide>/<nProt>135260001234567Critique
Tipo de Emissão<ide>/<tpEmis>1 (normal), 2-6 (contingência)Important
CNPJ do Fornecedor<emit>/<CNPJ>00.000.000/0001-91Critique
Razão Social do Fornecedor<emit>/<xNome>Fornecedor Exemplo LtdaCritique
Inscrição Estadual do Fornecedor<emit>/<IE>123.456.789.110Important
Estado do Fornecedor (Código IBGE)<emit>/<enderEmit>/<cUF>35 (São Paulo), 33 (Rio de Janeiro)Critique
CNPJ do Comprador<dest>/<CNPJ>00.000.000/0002-82Critique
Estado do Comprador (Código IBGE)<dest>/<enderDest>/<cUF>31 (Minas Gerais)Critique
Valor Total NF-e<total>/<ICMSTot>/<vNF>12500.00Critique
Montant total ICMS<total>/<ICMSTot>/<vICMS>1500.00Important
Montant total ICMS-ST<total>/<ICMSTot>/<vST>450.00Important
Montant total IPI<total>/<ICMSTot>/<vIPI>625.00Important
Montant total PIS<total>/<ICMSTot>/<vPIS>206.25Important
Montant total COFINS<total>/<ICMSTot>/<vCOFINS>950.00Important
Montant remise<total>/<ICMSTot>/<vDesc>250.00Niche
Montant fret<total>/<ICMSTot>/<vFrete>350.00Important
Montant assurance<total>/<ICMSTot>/<vSeg>50.00Niche
Infos paiement/facturation<cobr>/<dup>/<dVenc> (échéance) et <vDup> (montant)2026-07-15 / 12500.00Important
CFOP (au niveau de l'en-tête — généralement du premier article)<det>[1]/<prod>/<CFOP>2101Important
Nature de l'opération<ide>/<natOp>Venda de mercadoria adquirida de terceirosNiche

Champs de ligne (une ligne par produit)

Chaque élément <det> dans <infNFe> représente une ligne de produit. L'attribut nItem donne le numéro de ligne (indexé à partir de 1). Les champs suivants se répètent pour chaque <det> :

Colonne de sortieChemin XML (par <det>)Criticité
Numéro de ligne@nItemCritique
Code produit (code interne fournisseur)<prod>/<cProd>Important
Description du produit<prod>/<xProd>Critique
Code NCM (classification produit à 8 chiffres)<prod>/<NCM>Critique
Code CFOP (opération fiscale à 4 chiffres)<prod>/<CFOP>Critique
CST — Code situation fiscale ICMS<imposto>/<ICMS>/<ICMS00>/<CST> (varie selon sous-groupe)Critique
Quantité<prod>/<qCom>Critique
Prix unitaire<prod>/<vUnCom>Critique
Total ligne (brut)<prod>/<vProd>Critique
Base de calcul ICMS (BC ICMS)<imposto>/<ICMS>/<ICMS00>/<vBC>Important
Taux ICMS (%)<imposto>/<ICMS>/<ICMS00>/<pICMS>Important
Montant ICMS<imposto>/<ICMS>/<ICMS00>/<vICMS>Critique
Base de calcul ICMS-ST (si applicable)<imposto>/<ICMS>/<ICMSST>/<vBCST>Important
Montant ICMS-ST (si applicable)<imposto>/<ICMS>/<ICMSST>/<vICMSST>Important
Base de calcul IPI<imposto>/<IPI>/<IPITrib>/<vBC>Important
Taux IPI (%)<imposto>/<IPI>/<IPITrib>/<pIPI>Important
Montant IPI<imposto>/<IPI>/<IPITrib>/<vIPI>Important
Base PIS<imposto>/<PIS>/<PISAliq>/<vBC>Important
Taux PIS (%)<imposto>/<PIS>/<PISAliq>/<pPIS>Important
Montant PIS<imposto>/<PIS>/<PISAliq>/<vPIS>Important
Base COFINS<imposto>/<COFINS>/<COFINSAliq>/<vBC>Important
Taux COFINS (%)<imposto>/<COFINS>/<COFINSAliq>/<pCOFINS>Important
Montant COFINS<imposto>/<COFINS>/<COFINSAliq>/<vCOFINS>Important
UO (Unité)<prod>/<uCom>Niche
GTIN/EAN (Code-barres)<prod>/<cEAN>Niche
EX TIPI (Code exonération IPI)<prod>/<EXTIPI>Niche

Note importante sur les sous-groupes ICMS : Le chemin XML ICMS dans <imposto> varie selon le code CST. Un ICMS taxé normalement utilise le sous-groupe <ICMS00>. Les autres codes CST utilisent <ICMS10> (taxé + ST), <ICMS20> (base réduite), <ICMS30> (ST exonéré de l'ICMS normal), <ICMS40> (exonéré), <ICMS51> (différé), <ICMS60> (déjà collecté), <ICMS90> (autres), <ICMSPart> (DIFAL — différentiel de taux interétatique) et <ICMSST> (substitution fiscale). Votre mappage d'extraction doit gérer toutes ces variantes, pas seulement <ICMS00>.

Validation fiscale : comment vérifier vos numéros extraits

Un XML de NF-e contient les propres calculs fiscaux du fournisseur, qui peuvent être erronés. La SEFAZ vérifie que la structure du XML est complète et que l'arithmétique de base est cohérente, mais elle ne vérifie pas que le taux d'ICMS correct a été utilisé pour la paire origine-destination, ni que le taux d'IPI correspond au taux TIPI officiel du code NCM. Ces vérifications sont de votre responsabilité en tant qu'acheteur — et elles constituent la source la plus courante de trop-perçus récupérables dans la PA brésilienne.

Validation du taux d'ICMS interétatique par paire d'États

Le taux d'ICMS sur une transaction interétatique dépend de l'État d'origine (où le fournisseur expédie) et de l'État de destination (où se trouve votre entité). Utilisez ce tableau pour vérifier que le taux d'ICMS sur la NF-e correspond au taux correct pour la paire d'États :

État d'origineÉtat de destinationTaux d'ICMS standardRemarque
Tout État du Sud/Sud-Est (SP, RJ, MG, ES, PR, SC, RS)Tout État du Sud/Sud-Est12 %Taux interétatique standard dans la région Sud/Sud-Est
Tout État du Sud/Sud-EstTout État du Nord/Nord-Est/Centre-Ouest7 %Taux réduit pour les régions moins développées (Art. 2, I, LC 87/96)
Tout État du Nord/Nord-Est/Centre-OuestTout État (y compris Sud/Sud-Est)12 %Taux de sortie standard des régions en développement
Tout ÉtatTout État (biens importés avec >40 % de contenu étranger)4 %Resolução Senado 13/2012 — s'applique aux produits contenant plus de 40 % de contenu importé
État fournisseur = État destinataire (intraétatique)Même État17 %–22 %Varie selon l'État : SP=18 %, RJ=20 %, MG=18 %, PR=19 %, RS=17 %, etc.

Si le taux d'ICMS sur la NF-e ne correspond pas au taux attendu pour la paire origine-destination (de <emit>/<enderEmit>/<cUF> à <dest>/<enderDest>/<cUF>), signalez le document pour révision. Les écarts de taux sont l'une des erreurs les plus courantes sur les factures des fournisseurs brésiliens et peuvent entraîner des calculs incorrects de crédits d'impôt.

Codes CST : Les codes de situation fiscale qui changent tout

Le CST (Código da Situação Tributária) est un code à trois chiffres qui indique comment une taxe a été appliquée, et pas seulement son taux. Chaque calcul d'ICMS, IPI, PIS et COFINS sur une NF-e porte son propre CST. Le premier chiffre du CST indique l'origine du régime fiscal (0=national, 1=étranger, 2=étranger avec contenu national — varie selon la taxe). Pour l'ICMS spécifiquement, le CST détermine si l'ICMS est taxable, exonéré, différé, substitué (ST) ou collecté via un régime spécial. Les codes CST ICMS à trois chiffres suivent une logique spécifique :

CST (ICMS)SignificationCrédit disponible ?Impact AP
00Taxé — taux ICMS complet applicableOuiAchat standard. Extraire vBC, pICMS, vICMS normalement.
10Taxé + Substitution fiscale (ICMS-ST)Oui (ICMS régulier uniquement)Deux montants ICMS : régulier et ST. Extraire les deux — le montant ST n'est pas votre crédit.
20Taxé avec base de calcul réduiteOui (proportionnel)La base taxable est réduite (ex. d'1/3). Le champ vBC reflète la base réduite.
30Exonéré d'ICMS régulier + ST applicableNonPas d'ICMS régulier à extraire. Seuls les champs ST existent. Votre coût inclut le montant ST.
40Exonéré — aucun ICMS facturéNonAucune valeur ICMS. Le total de la ligne reste identique mais aucun crédit n'est généré.
41Exonéré — non taxableNonSimilaire au CST 40. Pas d'ICMS à extraire ni de crédit.
51Différé — paiement ICMS reporté à une étape ultérieureSelon casExtraire vBC et pICMS même si vICMS est nul — le différé affecte les événements futurs.
60ICMS déjà collecté par le fournisseur (ou maillon précédent de la chaîne)NonFréquent dans carburant, énergie, télécom. L'ICMS n'est pas une ligne — il a été payé en amont.
70Taxé avec base réduite + STOui (proportionnel)Hybride : base réduite sur ICMS régulier + montant ST séparé. Les deux doivent être extraits.
90Autre — régime spécial non couvert ci-dessusSelon casVérifier manuellement. Le champ <infAdic> de la NF-e doit expliquer le régime.

Votre processus d'extraction doit toujours capturer le code CST en même temps que le montant de la taxe — un « ICMS nul » avec CST 40 (exonéré) est une situation très différente d'un « ICMS nul » avec CST 00 (erreur). Le CST détermine si zéro est un traitement fiscal légitime ou une lacune de données à investiguer.

Validation IPI, PIS et COFINS

Vérification IPI : Le taux d'IPI est déterminé par le code NCM du produit. Le Brésil publie la TIPI (Tabela de Incidência do IPI), une table complète des taux qui associe chaque code NCM à un taux d'IPI. Bien qu'il soit impossible de maintenir l'intégralité de la feuille TIPI en interne (elle contient des milliers d'entrées et est mise à jour périodiquement par la Receita Federal), vous pouvez vérifier ponctuellement les articles de grande valeur : extraire le NCM, rechercher sa fourchette de taux TIPI et confirmer que le champ pIPI se situe dans la plage attendue. Le code CST IPI est également important — le CST 50 signifie que l'IPI est exonéré, tandis que le 00 signifie qu'il est imposable.

Vérification PIS et COFINS : Ces contributions fédérales s'appliquent selon le régime cumulatif ou non cumulatif. Le régime est déterminé par la classification fiscale du fournisseur et régit à la fois le taux et la disponibilité des crédits pour vous en tant qu'acheteur :

RégimeTaux PISTaux COFINSCombinéL'acheteur obtient-il des crédits ?
Non cumulatif (Lucro Real)1,65 %7,6 %9,25 %Oui — l'acheteur peut créditer le PIS et le COFINS sur ses propres contributions
Cumulatif (Lucro Presumido)0,65 %3,0 %3,65 %Non — aucun crédit d'entrée n'est généré sous le régime cumulatif

Si le taux PIS sur la NF-e est de 1,65 % et le COFINS de 7,6 %, le fournisseur est sous le régime non cumulatif et vous pouvez demander des crédits d'entrée PIS/COFINS. Si les taux sont de 0,65 % et 3,0 %, aucun crédit n'est disponible. Le CST du fournisseur (généralement 01 = non cumulatif ou 02 = cumulatif) confirme le régime. L'extraction et la validation de ces taux affectent directement votre position fiscale récupérable.

Règle de validation pratique : Pour chaque NF-e, extrayez le taux PIS et le taux COFINS au niveau de la ligne. Si le taux combiné est de 9,25 %, signalez-le pour le suivi des crédits. S'il est de 3,65 %, confirmez le régime du fournisseur et notez qu'aucun crédit PIS/COFINS ne s'applique. Une seule hypothèse de régime incorrecte sur une facture de 100 000 BRL représente 9 250 BRL de crédits manqués — ou 5 600 BRL de crédits indûment réclamés.

Substituição Tributária do ICMS (ICMS-ST) : Le mécanisme incontournable

L'ICMS-ST (Substituição Tributária) est un mécanisme par lequel l'administration fiscale confie au premier maillon de la chaîne — généralement le fabricant ou l'importateur — la responsabilité de collecter l'ICMS sur l'ensemble de la chaîne d'approvisionnement. Au lieu que chaque acheteur de la chaîne (fabricant → distributeur → détaillant) paie l'ICMS sur sa propre marge, le fabricant collecte l'ICMS sur le prix de vente final présumé au consommateur dès le début de la chaîne. Cette « substitution » du contribuable déplace le point de collecte de l'impôt en amont.

Pour les équipes AP traitant les documents NF-e, l'ICMS-ST apparaît dans deux scénarios :

Scénario 1 — Votre entreprise est au milieu de la chaîne (achat auprès du substitué). Vous achetez des biens à un distributeur qui les a déjà achetés sous ST auprès du fabricant. La NF-e comporte l'ICMS normal (CST 00, taxé normalement) et un montant ICMS-ST distinct (CST 10, sous <ICMS10> ou <ICMSST>). Votre extraction doit capturer les deux : l'ICMS normal est votre crédit d'entrée ; l'ICMS-ST n'est pas un crédit — c'est une charge incluse dans le coût déjà reversée à la SEFAZ par le fournisseur en amont. Vous ne pouvez pas le récupérer.

Scénario 2 — Votre entreprise est le dernier maillon (détaillant ou consommateur final). Vous achetez auprès d'un fournisseur qui est le substitué. La NF-e comporte un seul montant ICMS-ST (CST 30 — exonéré d'ICMS normal, ST applicable). L'intégralité du coût ICMS de la chaîne est intégrée dans ce montant unique. Votre extraction ne capture que les champs ST, et aucun crédit d'ICMS normal n'est disponible.

Pour distinguer ces deux scénarios dans votre flux d'extraction, vérifiez le code CST : CST 10 = ICMS normal + ST (vous obtenez des crédits partiels), CST 30 = ST uniquement (pas de crédits ICMS normaux). Le chemin XML de l'ICMS-ST utilise un sous-groupe distinct : <imposto>/<ICMS>/<ICMSST>/<vICMSST> pour le montant ST et <vBCST> pour la base de calcul ST. Extrayez-les dans des colonnes distinctes de l'ICMS normal — ne les additionnez jamais dans un seul champ « ICMS total ». Certaines équipes AP additionnent l'ICMS normal et la ST et comptabilisent un montant combiné, ce qui surestime leur position de crédit ICMS et déclenche des constats d'audit.

CFOP et NCM : extraire les codes qui déterminent la conformité fiscale

Chaque ligne d'une NF-e comporte deux codes qui déterminent ensemble le traitement fiscal du produit. Il ne s'agit pas de métadonnées facultatives, mais des intrants de votre logique de détermination fiscale.

Référence des codes CFOP (classification par premier chiffre)

Le CFOP (Código Fiscal de Operações e Prestações) est un code à quatre chiffres dont le premier indique la direction et la nature de la transaction. Pour le traitement des NF-e entrantes (côté acheteur), les codes CFOP les plus courants se situent dans les plages 1xxx, 2xxx et 3xxx :

Premier chiffreClassificationCodes entrants courants
1Entrante — même État (intra-étatique)1102 = achat pour revente, 1101 = achat pour industrialisation, 1116 = achat pour usage/consommation
2Entrante — autre État (inter-étatique)2101 = achat pour industrialisation, 2102 = achat pour revente, 2116 = achat pour usage/consommation
3Entrante — de l'étranger (importation)3101 = importation pour industrialisation, 3102 = importation pour revente, 3126 = importation pour usage/consommation
5Sortante (vente) — rare sur NF-e entrante
6Sortante inter-étatique — pertinente seulement si vous émettez des NF-e
7Sortante vers l'étranger — opérations d'exportation

Pourquoi le CFOP est important pour l'extraction : le code CFOP détermine les règles ICMS applicables à la transaction. Un CFOP commençant par 1 (intra-étatique) signifie que le taux ICMS doit être le taux interne de l'État du fournisseur (17-22 %), et non un taux inter-étatique. Un CFOP commençant par 2 (inter-étatique) signifie que le taux doit correspondre au tableau des taux inter-étatiques ci-dessus. Si le CFOP et le taux ICMS sont incohérents — par exemple, CFOP 1102 (intra-étatique) avec un taux ICMS de 12 % (qui est un taux inter-étatique) — la facture présente une discordance structurelle nécessitant une correction. Votre flux d'extraction doit signaler cela automatiquement.

Código NCM : la classification produit qui détermine l'IPI et les droits d'importation

Le NCM (Nomenclatura Comum do Mercosul) est un code de classification produit à huit chiffres basé sur le Système harmonisé (SH) avec deux chiffres supplémentaires spécifiques au Mercosur. Format : NNNN.NN.NN (les 6 premiers chiffres correspondent au code SH). Le code NCM détermine :

  • Taux IPI : Mappé via la table TIPI. Les produits dont le NCM commence par certains chapitres sont soumis à des taux IPI plus ou moins élevés.
  • Applicabilité ICMS-ST : Certains chapitres NCM sont soumis à des protocoles ICMS-ST obligatoires (convênios) entre États.
  • Droit d'importation (II) pour les achats internationaux.
  • Taux de taxe de substitution (ex. calculs simplifiés ICMS-ST selon le protocole CONFAZ).

Pour l'extraction, le NCM doit toujours être saisi comme champ texte en conservant les zéros non significatifs. Ne jamais le convertir en nombre — le NCM 8471.30.00 (équipement informatique) perdrait sa structure initiale s'il était traité numériquement. Le NCM sert également de clé primaire pour rechercher les taux IPI si votre flux de travail inclut une validation automatisée des taux.

Gestion des événements spéciaux de la NF-e dans votre flux d'extraction

Une NF-e n'est pas un document statique. Elle peut être modifiée, annulée ou réémise via une série d'événements légalement définis. Un flux d'extraction complet doit tenir compte de ces événements, car ils peuvent modifier les données déjà extraites.

Annulation. L'émetteur peut annuler une NF-e dans les 24 heures suivant la réception du protocole d'autorisation, à condition que les marchandises n'aient pas physiquement bougé. L'événement d'annulation est enregistré auprès de la SEFAZ et lié à la même clé d'accès. Passé 24 heures, l'annulation n'est plus possible — l'émetteur doit demander une annulation spéciale auprès de l'administration fiscale ou émettre une note de crédit (NF-e de devolução). Pour votre flux d'extraction : la validation clé consiste à vérifier le statut de la NF-e au moment de l'extraction et à nouveau avant le paiement. Si vous traitez des documents NF-e par programmation, incluez une étape de vérification du statut qui interroge le service web SEFAZ ConsNFeDest pour la liste des statuts des NF-e reçues par l'acheteur.

Carta de Correção (CC-e). Si le fournisseur doit corriger un champ sur une NF-e déjà autorisée (ex. corriger la description du produit, l'adresse de livraison, la date d'échéance du paiement), il émet une CC-e — une lettre de correction électronique liée à la clé d'accès de la NF-e. La CC-e ne remplace pas le XML ; elle modifie des champs spécifiques. Votre flux d'extraction doit, lors du traitement des documents NF-e, vérifier si des événements CC-e existent pour cette clé d'accès. Le traitement par lots d'ImageToTable.ai inclut l'option de vérifier les événements de correction sur les documents extraits — car si le fournisseur a corrigé la date d'échéance via CC-e et que votre flux a utilisé la date d'échéance du XML d'origine, vous payez selon un mauvais calendrier.

Modes de contingence. Si la SEFAZ est inaccessible, les fournisseurs peuvent émettre des NF-e en mode contingence. Le type d'émission (<ide>/<tpEmis>) indique la méthode de contingence : 2 = FS-DA (DANFE tapé), 3 = EPEC (contingence pré-événement), 4 = DPEC (contingence électronique), 5 = FS-IA (contingence formulaire), 6 = SVC (contingence virtuelle SEFAZ — un serveur d'autorisation de secours). En mode contingence, la NF-e peut manquer du protocole d'autorisation complet de la SEFAZ au moment de l'extraction. Votre flux doit signaler les documents émis en contingence pour suivi : une fois le système rétabli, le fournisseur transmettra la NF-e complète, et vous devrez récupérer le XML final et réextraire si des champs ont changé.

Manifestação do Destinatário. Ce n'est pas un événement fournisseur — c'est une obligation de l'acheteur. Selon la loi brésilienne, l'acheteur de marchandises doit enregistrer sa réponse sur le portail SEFAZ dans des délais précis : confirmer la réception sous 10 jours, puis accepter ou rejeter la transaction. Ce processus s'appelle la manifestação do destinatário et se gère via la plateforme DF-e de la SEFAZ. Bien que la manifestação soit une étape de conformité distincte de l'extraction, votre flux d'extraction doit enregistrer la clé d'accès de chaque NF-e traitée dans un système de suivi afin que la conformité puisse soumettre les événements requis à temps. Sans enregistrement de la manifestação, la SEFAZ considère la transaction comme non reconnue, ce qui peut bloquer l'émission future de NF-e par ce fournisseur.

Pour approfondir ces types d'événements et leur impact sur la comptabilité fournisseurs, consultez notre analyse de la complexité du traitement des NF-e.

Méthodes d'extraction comparées : quelle approche selon votre volume

Il existe quatre méthodes courantes pour extraire les données des NF-e. Le choix dépend de votre volume, de vos ressources techniques et de la nécessité d'obtenir le détail fiscal par ligne ou seulement les totaux.

MéthodeFonctionnementChamps extraitsVolume idéalLimite principale
Saisie manuelle du DANFEUn opérateur lit le DANFE imprimé et le saisit dans Excel ou l'ERP~20 champs d'en-tête, sans détail fiscal par ligne< 10 par moisIgnore 90 % des données, dont toutes les ventilations fiscales ; taux d'erreur élevé
Script XML (Python, Power Query)Un script personnalisé analyse le XML de la NF-e et exporte les champs vers CSV/ExcelTous les champs d'en-tête et de ligne ; nécessite un mappage XPath prédéfini10–100 par moisNécessite des compétences en programmation ; cassé lors des mises à jour de schéma (double schéma 2026) ; pas de validation fiscale intégrée
Module de localisation ERP (SAP/Oracle/Dynamics)Module ERP spécifique au Brésil qui reçoit le XML de la NF-e et le comptabilise automatiquementJeu de champs complet, mappage des comptes fiscaux, intégration SPED100+ par moisCoût élevé (licence + mise en œuvre) ; fonctionne uniquement avec cet ERP ; mappage de schéma rigide
Extraction par IATéléchargez les PDF des DANFE ou les XML des NF-e ; l'IA analyse et mappe vers des colonnes définiesTous les champs visibles du DANFE depuis les PDF ; champs complets depuis le XML10–500+ par moisL'analyse XML nécessite que l'outil prenne en charge les données structurées (pas seulement les PDF visuels)

La distinction cruciale pour la NF-e est de savoir si la méthode d'extraction gère à la fois le DANFE et le XML. Si vos fournisseurs envoient un mélange — certains transmettent le XML directement, d'autres impriment et expédient uniquement le DANFE — vous avez besoin d'une méthode qui traite les deux sources de manière cohérente. ImageToTable.ai prend en charge les deux : vous pouvez télécharger des fichiers XML bruts de NF-e avec des PDF de DANFE dans le même lot, définir un modèle de colonne unique et obtenir un tableau unifié. L'outil gère également les chemins de sous-groupes ICMS variables décrits ci-dessus — un avantage significatif lorsque la complexité du schéma oblige les équipes de script à maintenir des dizaines de variantes XPath. Pour un guide pratique du traitement par lots de plusieurs documents NF-e, consultez notre guide du traitement par lots des NF-e.

XML / PDF / JPG Extraction IA

Les fichiers sont traités en toute sécurité et ne sont pas conservés.

Préparer votre workflow d'extraction pour la réforme fiscale de 2026

L'amendement constitutionnel 132/2023 et la loi complémentaire 214/2025 du Brésil instaurent un système de TVA double qui remplace cinq taxes existantes par deux nouvelles. Pour l'extraction des NF-e, cela signifie que le schéma XML que vous analysez aujourd'hui contiendra à la fois les anciens et les nouveaux champs fiscaux pendant une période de transition allant d'août 2026 à 2033. Voici ce qui change au niveau de l'extraction et ce que vous devez faire.

Ce qui reste : La structure XML globale (<ide>, <emit>, <det>, <total>) reste inchangée. Les champs d'en-tête, les quantités par ligne, les codes NCM et les codes CFOP ne sont pas affectés.

Ce qui change : De nouveaux groupes d'éléments XML sont ajoutés à la section <imposto> de chaque ligne d'article et au groupe récapitulatif <total>. Les nouveaux groupes contiennent les calculs de la CBS (fédérale) et de l'IBS (étatique/municipale) en plus des champs ICMS, IPI, PIS et COFINS existants. Pendant la période de transition, vous devez extraire les deux ensembles de champs et les rendre disponibles pour les systèmes en aval.

Taxe actuelleRemplacée parImpact sur l'extractionCalendrier de transition
PIS (1,65 % / 0,65 %)CBS (fédéral, ~8,8 %)De nouveaux éléments <CBS> apparaissent aux côtés de <PIS>. Les deux doivent être extraits pendant la transition. CBS remplace entièrement PIS d'ici 2033.2026 : champs test CBS (taux 0,9 %). 2027 : CBS actif, PIS supprimé.
COFINS (7,6 % / 3,0 %)CBS (fédéral, ~8,8 %)Identique au PIS — les champs COFINS coexistent avec les champs CBS. L'extraction combinée PIS+COFINS doit tenir compte du taux CBS fusionné.2027 : COFINS supprimé, CBS au taux plein.
ICMS (étatique, 17-22 % interne, 4-12 % interétatique)IBS (étatique/municipal, ~17,7 %)Nouveau groupe d'éléments <IBS> avec vBC, pIBS, vIBS. ICMS et IBS coexistent par ligne d'article. L'extraction doit capturer les deux bases fiscales — elles peuvent différer.2026 : champs test IBS (taux 0,1 %). 2029-2032 : IBS déployé état par état, remplaçant progressivement ICMS.
IPI (0-330 % selon NCM)IS (Taxe sélective, variable)IS remplace progressivement IPI. IPI et IS peuvent coexister pendant la transition. Le NCM reste le classificateur de produits.Les taux IPI commencent à être réduits à zéro en 2027. Remplacement complet d'ici 2033.

Trois étapes pratiques pour préparer votre flux d'extraction :

1

Auditez votre plan de champ actuel

Parcourez votre modèle d'extraction et identifiez chaque champ qui mappe actuellement à ICMS, IPI, PIS ou COFINS. Pour chacun, ajoutez un champ parallèle pour la nouvelle taxe correspondante (CBS pour PIS/COFINS, IBS pour ICMS, IS pour IPI). Même si vous n'utilisez pas encore les nouveaux champs, l'espace de schéma doit être mappé pour que vos colonnes de sortie d'extraction existent et soient prêtes à recevoir des données lorsque les champs CBS/IBS seront renseignés.

2

Testez avec des échantillons NF-e à double schéma

Demandez à vos fournisseurs des échantillons XML NF-e incluant déjà les nouveaux champs CBS et IBS (toutes les NF-e émises à partir du 1er août 2026 les porteront). Passez-les dans votre pipeline d'extraction et vérifiez que les anciens et nouveaux champs de taxe s'extraient correctement. Si votre extraction est basée sur des scripts, confirmez que les requêtes XPath pour ICMS ne capturent pas accidentellement les valeurs IBS — les groupes d'éléments partagent des motifs de nommage similaires.

3

Décidez de votre stratégie de double champ

Pendant les 7 à 8 prochaines années, vos données extraites porteront à la fois les anciens et les nouveaux champs de taxe. Décidez si (a) vous maintenez des colonnes parallèles dans votre feuille de calcul de sortie et laissez les utilisateurs aval choisir lesquelles utiliser, ou (b) vous mettez en œuvre un calendrier de migration où certaines colonnes sont introduites progressivement et d'autres supprimées à des dates spécifiques. La plupart des équipes AP préféreront l'option (a) pendant les premières années de transition — cela crée un tableau de sortie plus long mais évite le risque de supprimer le seul champ valide pendant la période de régime mixte.

Foire aux questions

Dois-je gérer les espaces de noms XML lors de l'extraction des champs de la NF-e ?

Oui. Le XML de la NF-e utilise un espace de noms par défaut déclaré sur l'élément <nfeProc> (généralement xmlns="http://www.portalfiscal.inf.br/nfe"). Toute requête XPath doit soit enregistrer cet espace de noms (dans lxml de Python : ns = {'nfe': 'http://www.portalfiscal.inf.br/nfe'}), soit utiliser local-name() pour le contourner. Le connecteur XML de Power Query gère automatiquement les espaces de noms dans la plupart des cas. Si votre outil d'extraction nécessite un enregistrement explicite de l'espace de noms, assurez-vous d'utiliser l'URI correct — une discordance produira silencieusement des ensembles de résultats vides.

Dois-je additionner les montants de taxe par ligne et les comparer aux totaux de l'en-tête ?

Oui — c'est l'une des vérifications de validation les plus utiles que vous puissiez mettre en œuvre. Le XML de la NF-e contient les totaux de taxe dans <total>/<ICMSTot> et le détail par ligne dans chaque <det>. Ceux-ci doivent correspondre. Un écart entre la somme des lignes et le total de l'en-tête est un signal d'alarme : cela peut indiquer qu'un article a été omis lors de la génération du XML, qu'une remise a été appliquée de manière incohérente, ou que l'ERP du fournisseur présente une erreur de configuration. Reconciliez les montants de taxe par ligne avec les totaux de l'en-tête comme étape standard dans chaque lot d'extraction.

L'extraction de la NF-e couvre-t-elle les exigences de déclaration SPED ?

Non. Le SPED (Sistema Público de Escrituração Digital) est le système brésilien de déclarations comptables numériques — EFD-ICMS/IPI pour les taxes d'État et EFD-Contribuições pour les contributions fédérales — qui nécessitent que les données soient formatées selon des mises en page SPED spécifiques et soumises via un logiciel accrédité. L'extraction de la NF-e permet d'obtenir les données de la facture dans un tableur ; elle ne génère pas d'enregistrements conformes au SPED. Cependant, les données que vous extrayez de la NF-e (ICMS par ligne, PIS, COFINS, CFOP, NCM, CST) sont les mêmes données qui alimentent les déclarations SPED. Si votre flux d'extraction capture correctement le détail fiscal au niveau de la ligne, votre équipe comptable brésilienne peut utiliser ces données pour remplir les enregistrements SPED requis plutôt que de les ressaisir à partir des documents sources. Le mappage des champs de la NF-e vers les positions de la mise en page SPED est une étape de transformation distincte que certains modules de localisation ERP gèrent automatiquement.

Que faire si mon entreprise possède plusieurs CNPJ dans différents États brésiliens ?

C'est courant pour les grandes organisations. Chaque CNPJ (ou « estabelecimento » en portugais) est une entité juridique distincte à des fins fiscales, et l'État de destination dans la NF-e correspond au CNPJ qui a reçu les marchandises. Lors de l'extraction des données NF-e pour une organisation multi-entités, filtrez votre extraction par le CNPJ destinataire (<dest>/<CNPJ>) et maintenez des correspondances GL distinctes par entité. La validation du taux ICMS diffère également selon l'entité — les marchandises expédiées à votre CNPJ de São Paulo sont soumises à des taux différents de celles expédiées à votre CNPJ de Bahia, même auprès du même fournisseur. Pour en savoir plus sur la gestion de la complexité par État au Brésil, consultez notre guide pour une extraction NF-e abordable.

Que se passe-t-il si le code NCM change alors que j'ai extrait des données d'une période passée ?

Les codes NCM sont mis à jour périodiquement par la Receita Federal (généralement chaque année, mais parfois avec des ajustements en cours d'année via des Notas Técnicas). Si un code NCM change, le taux IPI pour cette classification de produit peut également changer. Pour l'extraction, vous devez capturer le code NCM tel qu'il apparaît sur la NF-e au moment de l'émission — c'est le code en vigueur à la date de la facture, et il détermine les taxes légalement dues. Si vous effectuez une analyse rétrospective ou des ajustements SPED, utilisez le NCM tel qu'enregistré sur le document original, et non la liste NCM actuelle.

Que faire si le XML NF-e du fournisseur contient des éléments manquants ou mal formés ?

Cela arrive. Les problèmes les plus courants sont : groupe <cobr> (facturation) manquant, adresse incomplète dans <enderEmit>, ou sous-groupes ICMS ne respectant pas la variante de schéma attendue pour le code CST déclaré. Votre processus d'extraction doit les gérer avec souplesse — renvoyez null ou un espace réservé pour les champs manquants, et enregistrez un avertissement de validation. Ne bloquez jamais sur des éléments non critiques manquants. Pour les champs critiques (clé d'accès, CNPJ, totaux des lignes), une valeur manquante doit entraîner le rejet de cette NF-e du lot avec un message d'erreur clair. Un rapport de synthèse de validation est essentiel : enregistrez chaque NF-e ayant des champs manquants ou anormaux afin que votre équipe puisse enquêter avant de les reporter dans la GL.

Comment gérer le DIFAL (différence de taux d'ICMS entre États) ?

Le DIFAL (Diferencial de Alíquota do ICMS) s'applique lors de ventes interétatiques lorsque le taux d'ICMS de l'État de destination est supérieur au taux interétatique payé à l'origine. L'acheteur doit payer la différence à son propre État. Sur la NF-e, le DIFAL est représenté par le sous-groupe <ICMSPart> sous <imposto>/<ICMS>. Ce sous-groupe contient vBC (la base de calcul), pICMS (le taux interétatique déjà appliqué), pICMSUf (le taux interne de l'État de destination) et vICMS (le montant du DIFAL = différence entre les deux taux sur la base). Vous devez extraire le montant du DIFAL séparément et le traiter via vos workflows de crédit ICMS propres à chaque État — il ne fait pas partie du crédit ICMS ordinaire.

Dois-je extraire le fret et l'assurance séparément des valeurs des produits ?

Oui. Le XML de la NF-e décompose la transaction en valeur du produit (vProd), fret (vFrete), assurance (vSeg) et autres frais (vOutro). La base taxable de l'ICMS inclut souvent la somme de la valeur du produit + fret + assurance + autres frais — mais pas toujours. Certains produits ont un ICMS calculé uniquement sur la valeur du produit. Extraire chaque composant séparément vous permet de vérifier que la base taxable de l'ICMS correspond à votre compréhension de la structure de prix. Si le fret est inclus dans la base ICMS sur la NF-e mais que votre modèle ERP s'attend à ce qu'il soit en dehors, vous avez un élément de rapprochement à résoudre.

Les outils d'extraction basés sur l'IA peuvent-ils traiter l'intégralité du XML de la NF-e, ou seulement le PDF du DANFE ?

Cela dépend de l'outil. L'extraction basée sur l'IA d'ImageToTable.ai peut traiter à la fois les fichiers XML de la NF-e (données structurées) et les PDF du DANFE (document visuel) dans le même lot. Lorsque vous téléchargez un XML, l'outil lit directement les éléments structurés — sans OCR — et les mappe à votre modèle de colonnes. Lorsque vous téléchargez un PDF DANFE, l'IA lit le contenu visuel et extrait les champs visibles. L'avantage clé d'une plateforme unique pour les deux est la cohérence : vous définissez un modèle de colonnes pour « Clé d'accès NF-e », « Montant ICMS », « Code CFOP », et l'outil les remplit à partir du document source reçu. Cela élimine le besoin de maintenir des workflows séparés pour les fournisseurs basés sur XML ou DANFE — un point de fragmentation courant dans les opérations AP brésiliennes.

Dois-je archiver le résultat de l'extraction avec le XML ?

La loi brésilienne exige que le XML original de la NF-e soit archivé pendant cinq ans à compter de la fin de l'exercice fiscal de la transaction. Le résultat de l'extraction (votre tableur ou vos enregistrements ERP) ne remplace pas le XML. Cependant, conserver un résultat d'extraction structuré parallèlement à l'archive XML brute est une bonne pratique pour la réconciliation interne et la réponse aux audits. Lors d'un audit SEFAZ, vous devrez probablement produire les deux : les XML originaux (pour prouver l'existence et l'autorisation des documents) et vos registres comptables (pour montrer comment les données ont été traitées). Un workflow d'extraction qui archive automatiquement le XML source et le résultat extrait dans une structure liée — avec la clé d'accès comme clé de jointure — vous fera gagner un temps précieux lors de la préparation d'audit. Pour des options de conformité économiques, consultez notre guide d'extraction NF-e pour les petites entreprises.

Testez l'Extraction sur Vos Propres Documents NF-e

L'extraction NF-e n'est pas un exercice théorique. Chaque XML que vous recevez contient des données entièrement structurées, validées par le gouvernement et prêtes à l'emploi. La seule question est de savoir si votre workflow en extrait suffisamment — et les valide correctement — avant qu'elles n'atteignent votre ERP ou vos registres financiers. Les tables de mappage, les tableaux de validation fiscale et les références de codes de ce guide vous fournissent la couche de référence. Le moteur d'extraction traite les documents. La combinaison transforme une NF-e brésilienne d'un fichier XML opaque que votre équipe a du mal à analyser en une source transparente de données financières que vous pouvez utiliser en toute confiance — pour la comptabilisation, la récupération de crédits et la défense en cas de contrôle fiscal.

📮 contact email: [email protected]