NFS-e multi-villes, un seul tableur :
Traitement par lots sans modèles municipaux
Le Brésil compte 5 570 municipalités. Un cabinet de conseil avec des prestataires dans 10 d'entre elles n'obtient pas un seul format de NFS-e (Nota Fiscal de Serviços Eletrônica). Il en obtient 10 — chacun avec un taux d'ISS (Imposto Sobre Serviços) différent entre 2 % et 5 %, une mise en page différente et une autorité fiscale municipale distincte. Les traiter un par un n'est pas seulement lent. Cela masque les schémas de rapprochement que seule une vue par lots révèle.
Points clés
- Vous pouvez calculer le coût en temps de la saisie manuelle de chaque NFS-e — mais le vrai coût se cache dans les pénalités de retenue d'ISS, les anomalies de taux manquées et les lacunes de conformité qui ne deviennent visibles que lorsque chaque facture se trouve dans un seul tableau.
- L'ISS Retido na Fonte transfère légalement la charge de remise de l'impôt à votre entreprise, et sur 30 factures provenant de 5 villes, une approche document par document garantit qu'au moins une obligation sera oubliée.
- ImageToTable.ai traite toutes les NFS-e de chaque municipalité en un seul lot et met en évidence les écarts d'ISS, les obligations de retenue et les totaux par ville dans un seul tableur — votre travail passe ainsi de la saisie des chiffres à leur vérification.
Pourquoi le traitement par lot des NFS-e est un problème différent de l'extraction d'un document unique
Si vous avez lu le guide d'extraction d'une NFS-e unique, vous connaissez le mécanisme de base : l'extraction sémantique lit une NFS-e en comprenant la signification de chaque champ — localiser le CNPJ do Prestador (identifiant fiscal du prestataire) à 14 chiffres à côté du libellé « Prestador », la base de cálculo do ISS (base de calcul de l'ISS) dans la section ISS, l'alíquota ISS (taux d'ISS) là où la municipalité l'a imprimé. Un document, un ensemble de définitions de colonnes, une ligne de résultat. Le problème des variations municipales est résolu au niveau du document.
Le traitement par lot introduit une catégorie de défis différente que l'extraction d'un document unique ne révèle pas. Lorsque vous déposez 30 documents NFS-e de prestataires de São Paulo (ISS 5 % pour le conseil en TI), Rio de Janeiro (ISS 5 % pour le même service), Belo Horizonte (ISS 3 %), Curitiba (ISS 4 %) et six autres villes dans une seule file de traitement, trois choses se produisent qui n'arrivent jamais avec un seul document :
Premièrement, la vérification inter-villes du taux d'ISS devient nécessaire. Une NFS-e unique à 3 % d'ISS semble correcte isolément. Mais lorsque vous constatez que le même code de service (item 1.01 — Análise e desenvolvimento de sistemas, ou analyse et développement de systèmes informatiques) apparaît à 5 % de São Paulo, 5 % de Rio et 3 % de Belo Horizonte dans le même lot, le taux de Belo Horizonte ressort immédiatement. Peut-être est-il correct — Belo Horizonte fixe ses propres taux. Peut-être le prestataire a-t-il appliqué le mauvais taux municipal. Une vue au niveau du lot est le seul moyen de le détecter.
Deuxièmement, le suivi de l'ISS Retido na Fonte (ISS retenu à la source) devient une tâche de conformité à l'échelle du lot. Lorsqu'une NFS-e est marquée « ISS Retido na Fonte = Sim », l'obligation de reverser l'ISS passe du prestataire au preneur du service — vous. Chaque occurrence nécessite un paiement séparé à la prefeitura (mairie) concernée, chacune avec sa propre date d'échéance et son propre système de paiement. Sur 10 documents de plusieurs villes, savoir quelles factures déclenchent cette obligation et lesquelles ne le font pas n'est pas gérable manuellement.
Troisièmement, les données elles-mêmes ont plus de valeur agrégées. Les totaux d'ISS par prestataire, les dépenses de services par ville, le ratio d'impôt retenu par rapport à l'impôt payé par le prestataire — rien de tout cela n'est visible à partir d'un seul document. Cela n'émerge que lorsque l'ensemble du lot se trouve dans un seul tableur.
Il ne s'agit pas d'exécuter plus rapidement le flux de travail d'un document unique. Il s'agit de faire quelque chose que le flux de travail d'un document unique ne peut tout simplement pas faire.
Ce qui rend le traitement des NFS-e intercommunales fondamentalement différent du traitement par lots standard des factures
Le traitement par lots standard des factures — 50 PDF de 50 fournisseurs aux États-Unis ou en Europe — est avant tout un problème de volume. Les factures ont des apparences différentes, mais la logique fiscale sous-jacente est cohérente : TVA au taux national, taxe de vente par État, et les champs se trouvent à des positions globalement prévisibles avec des libellés globalement prévisibles.
Le traitement par lots des NFS-e brésiliennes ajoute une couche structurelle que le traitement standard des factures n'a pas. Parce que l'ISS est un impôt municipal régi par la Loi Complémentaire 116/2003, et parce que chaque municipalité gère son propre système fiscal, le même champ logique — « le taux d'ISS » — peut avoir une valeur différente pour chaque document du lot, et cette valeur détermine si la taxe sur ce document a été correctement calculée.
C'est là que l'extraction basée sur des modèles — l'approche utilisée par la plupart des outils d'extraction de documents — devient structurellement inutilisable. Un modèle définit une zone rectangulaire pour chaque champ : « le CNPJ do Prestador est à la position pixel (x=150, y=320). » Cela fonctionne pour une municipalité. Cela échoue pour la suivante. Maintenir une bibliothèque de modèles pour chaque ville où vos prestataires opèrent n'est pas pratique lorsque le nombre de villes possibles est de 5 570 et que le nombre de villes mettant activement à jour leurs mises en page — São Paulo a publié la version 3.2 de son manuel NFS-e en août 2025 — ne cesse de croître.
L'alternative est l'extraction sémantique : au lieu de définir où se trouve un champ sur la page, vous dites au moteur d'extraction ce que vous recherchez — « le CNPJ à 14 chiffres libellé Prestador » — et il lit le document pour le trouver. La position n'a pas d'importance car le moteur comprend le contenu du document, pas ses coordonnées. Une NFS-e de São Paulo et une NFS-e de Porto Alegre dans le même lot sont traitées avec les mêmes définitions de colonnes, car l'IA cherche le sens, pas une position.
Voici la différence architecturale : les outils basés sur des modèles évoluent en ajoutant plus de modèles — un par ville, par révision de mise en page. L'extraction sémantique évolue en comprenant plus de contenu de document. Lorsque vous ajoutez une 10e ville de NFS-e au lot, le coût est effectivement nul. Lorsque vous ajoutez un 10e modèle de ville, le coût est la construction, le test et la maintenance de ce modèle — et sa mise à jour à chaque fois que la prefeitura modifie sa mise en page.
Pour le détail complet de la façon dont l'extraction sémantique traite les champs individuels des NFS-e — correspondance CNPJ, classification des services LC 116, ventilation de la taxe ISS — consultez le guide d'extraction d'une seule NFS-e. Le flux de travail par lots hérite de tout cela et ajoute la couche multi-documents.
Comment l'extraction sémantique traite les NFS-e de 10 villes en un seul lot
Le flux d'extraction pour le traitement par lot de NFS-e repose sur l'extraction par colonnes personnalisées : vous saisissez les noms des champs souhaités dans votre fichier de sortie — « CNPJ du Prestataire », « Code du Service (LC 116) », « Taux ISS », « Montant ISS », « ISS Retenu (Retido na Fonte) », « Numéro NFS-e » — et l'IA localise chaque valeur sur chaque document en comprenant la signification de l'étiquette. Ces noms de colonnes deviennent vos en-têtes de tableur. Vous les définissez une fois. Ils fonctionnent pour toutes les municipalités du lot.
Mais le traitement par lot de NFS-e bénéficie d'aller au-delà de l'extraction directe. Deux modes de colonnes supplémentaires rendent possible le rapprochement inter-villes au moment de l'extraction, et non dans un exercice séparé sur tableur :
Les colonnes calculées vous permettent de définir une logique de validation qui s'exécute pendant l'extraction. Pour le traitement par lot de NFS-e, la colonne calculée la plus utile est une vérification de l'ISS : « Taux ISS × Base de calcul ISS = Montant ISS ? » Lorsque le total calculé correspond au montant ISS extrait, la colonne affiche « OK ». Sinon, elle affiche l'écart — signalant, au niveau du lot, les documents à revoir avant d'importer les données dans votre ERP. Sur un seul document, cette vérification prend 30 secondes. Sur 50 documents, une colonne calculée le fait automatiquement — et vous voyez le résultat dans le même tableur que les données extraites.
Les colonnes inférées permettent à l'IA de classer ou d'étiqueter les documents en fonction de leur contenu. Ajoutez une colonne nommée « Municipalité (extraite du document) » sans référence de champ spécifique, et l'IA lit l'identifiant de la prefeitura (mairie) sur la NFS-e et renseigne le nom de la ville. Votre sortie par lot dispose désormais d'une colonne de municipalité triable — faisant des totaux ISS par ville et des déclarations fiscales par ville un simple tableau croisé dynamique au lieu d'un exercice manuel de recoupement.
Ces trois types de colonnes — extraction directe, calculée et inférée — fonctionnent ensemble en une seule exécution par lot. Vous n'extrayez pas d'abord pour valider ensuite. La validation a lieu pendant l'extraction, et les résultats atterrissent dans le même tableur.
Étape par étape : du tas de NFS-e multi-villes à un seul tableur
Voici le workflow pratique pour traiter par lots des documents NFS-e de plusieurs municipalités brésiliennes en un seul fichier Excel. Vous effectuez cette configuration une fois par lot — les mêmes définitions de colonnes traitent chaque document, quelle que soit sa ville d'origine.
Les fichiers sont traités de manière sécurisée et ne sont pas conservés.
Rapprochement ISS intercommunal : la vue par lot
Le principal avantage du traitement par lot des NFS-e n'est pas le temps gagné — même si passer de 3 minutes par document à 5-10 secondes par page représente un gain de 18x. L'avantage clé, c'est la vue de rapprochement qui n'existe que lorsque tous les documents sont réunis dans un seul tableau.
Voici ce que cette vue permet, contrairement au traitement document par document :
Totaux ISS par commune
Regroupez les résultats par commune et additionnez le montant de l'ISS. Vous obtenez le total de l'ISS appliqué à vos achats de services dans chaque ville — une donnée utile pour deux raisons. D'abord, elle indique si le total ISS de tous les prestataires d'une commune donnée correspond à votre répartition interne des coûts pour cette juridiction. Ensuite, si vous êtes le responsable de la retenue de l'ISS sur certaines de ces factures, le total par commune est le chiffre à rapprocher de vos déclarations fiscales municipales. Le guide fiscal mondial de Dentons note que « les conflits entre communes qui revendiquent toutes deux l'ISS sont fréquents » — une vue par lot constitue votre piste d'audit si une deuxième commune vous interroge.
Suivi ISS Retido na Fonte
Lorsqu'une NFS-e porte le drapeau « ISS Retido na Fonte = Sim », c'est votre entreprise — et non le prestataire — qui est responsable du versement de l'ISS à la municipalité du prestataire. Ce n'est pas une simple note de saisie, mais une obligation fiscale avec un délai et un système de paiement qui varie selon la ville. Dans un export par lot, trier par la colonne ISS Retido vous donne une liste complète et unique de toutes les factures nécessitant votre action. Fini de chercher dans 30 PDF individuels pour trouver les trois qui avaient le drapeau.
Le cadre juridique de la retenue d'ISS a été testé devant la plus haute instance brésilienne. En 2020, le Supremo Tribunal Federal (STF) a statué dans le RE 1167509 que les municipalités ne peuvent pas imposer la retenue d'ISS aux preneurs de services lorsque le prestataire n'est pas inscrit dans cette municipalité — annulant ainsi l'exigence d'inscription au Cadastro de Prestadores de Outros Municípios (CPOM) de São Paulo. Mais les obligations de retenue établies par la loi fédérale, où la combinaison type de service et municipalité déclenche une retenue légitime, restent en vigueur. Savoir quelles factures comportent une obligation de retenue valide nécessite de voir le lot.
Détection des écarts de taux d'ISS
La LC 116/2003 établit des taux d'ISS entre 2 % et 5 % par municipalité et type de service. Mais les municipalités se font concurrence sur les taux pour attirer les entreprises — le diagnostic du PNUD sur le système fiscal brésilien note « une guerre prédatrice sur les avantages fiscaux de l'ICMS et de l'ISS ». Un prestataire peut appliquer un taux de 2 % pour un code de service que São Paulo taxe à 5 % parce que le prestataire est inscrit dans une municipalité qui a baissé son taux pour attirer les entreprises. La validité de ce taux est une décision fiscale que votre équipe comptable doit prendre. Mais le repérer nécessite de voir le lot. Un document à 2 % semble normal. Dix documents à 5 % et un à 2 %, tous pour le même code de service — voilà un écart qui mérite d'être investigué.
Ce que le Standard National NFS-e Signifie pour le Traitement par Lots
Le Sistema Nacional da NFS-e (SNNFS-e, Système National NFS-e) est l'effort du Brésil pour unifier les formats de factures de services entre les municipalités. En août 2025, 1 463 municipalités y avaient adhéré — mais l'adoption est volontaire, et les grandes villes comme São Paulo ont publiquement confirmé qu'elles conserveraient leurs propres systèmes. Il en résulte un paysage hybride : certains de vos fournisseurs émettent des NFS-e selon le standard XML national, d'autres selon le système de leur ville, et vous ne contrôlez pas lequel.
Du point de vue du traitement par lots, ce paysage hybride renforce la valeur de l'extraction indépendante de la mise en page. Les outils basés sur des modèles nécessitent désormais des modèles à la fois pour les mises en page municipales pré-standard et pour le standard SNNFS-e — ainsi que des chemins de mise à jour lorsque les villes migrent de l'un à l'autre. L'extraction sémantique lit ce qui se trouve sur le document, quel que soit le standard qui l'a produit. Une NFS-e au standard national et une NFS-e au format personnalisé de São Paulo atterrissent dans le même lot, définissent les mêmes colonnes et produisent la même sortie. Le processus de normalisation modifie le contenu du document, pas l'approche d'extraction.
La réforme fiscale de 2026 — qui remplacera progressivement l'ISS par l'IBS (Imposto sobre Bens e Serviços) d'ici 2033 — ajoute une autre couche. Pendant la transition, les documents NFS-e peuvent porter à la fois les anciens champs ISS et les nouveaux champs IBS/CBS. L'approche d'extraction s'adapte en ajoutant de nouveaux noms de colonnes — « Montant IBS », « Montant CBS » — aux côtés des colonnes ISS existantes. Aucune refonte de modèle requise.
Si votre organisation traite également des factures de biens brésiliennes, le flux de travail d'extraction XML NF-e est couvert dans le guide d'extraction NF-e. Les deux types de documents peuvent coexister dans le même lot lorsque vos définitions de colonnes sont suffisamment larges, bien que les champs spécifiques à NFS-e comme le code LC 116 soient vides pour les documents NF-e — ce qui est attendu et ne provoque pas d'erreurs.
FAQ : Traitement par lot des NFS-e
Puis-je traiter par lot des NFS-e de prestataires de différentes villes ensemble ?
Oui — c'est même le cas d'usage principal. L'extraction sémantique lit chaque document indépendamment en comprenant le contenu, sans se baser sur la mise en page d'une ville spécifique. Une NFS-e de São Paulo (ISS 5 %), une de Belo Horizonte (ISS 3 %) et une de Curitiba (ISS 4 %) dans le même lot sont toutes traitées avec les mêmes définitions de colonnes. L'IA localise le CNPJ do Prestador, la base de cálculo de l'ISS et les autres champs sur chaque document, peu importe où ils apparaissent sur la page.
Comment l'ISS Retido na Fonte est-il géré dans l'export par lot ?
Le champ « ISS Retenu » est extrait dans une colonne dédiée — contenant généralement « Sim » (oui) ou « Não » (non). Dans le tableur de l'export par lot, trier par cette colonne vous donne la liste complète de toutes les factures pour lesquelles votre entreprise est l'agent de retenue. Ensuite, vous calculez le montant à reverser (taux d'ISS × base de chaque facture concernée) et vous dirigez chaque paiement vers le système de la préfecture correspondante. L'outil d'extraction fournit les données. Le reversement de la taxe reste une étape de conformité distincte que votre équipe comptable effectue via le portail de paiement de chaque municipalité.
Que faire si un prestataire émet une NFS-e avec des erreurs de mise en page ou des champs manquants ?
Le moteur d'extraction lit ce qui figure sur le document. Si un champ obligatoire — le CNPJ par exemple — est manquant ou illisible, la cellule correspondante dans l'export sera vide. C'est en fait utile : une cellule vide dans l'export par lot identifie immédiatement le document à relancer auprès du prestataire, alors qu'une saisie manuelle de 30 documents pourrait vous faire passer à côté d'un champ vide parmi les autres. La vue par lot rend les omissions visibles.
Puis-je mélanger des NFS-e et des factures de services internationales dans le même lot ?
Oui. Si vos définitions de colonnes couvrent les deux types de documents — par exemple « Numéro de facture », « Nom du fournisseur », « Montant total », « Montant de la taxe » — les factures internationales et les NFS-e peuvent coexister dans le même lot. Les colonnes spécifiques aux NFS-e comme « Code service LC 116 » ou « Taux d'ISS » seront vides pour les documents non brésiliens, et les colonnes spécifiques aux factures internationales comme « Numéro de TVA » seront vides pour les NFS-e. Ces deux comportements sont normaux et ne génèrent pas d'erreurs.
Le moteur d'extraction gère-t-il les champs de la réforme fiscale 2026 (IBS/CBS) sur les documents NFS-e ?
Oui — lorsqu'une municipalité met à jour son modèle de NFS-e pour inclure les champs IBS ou CBS, vous ajoutez les noms de colonnes correspondants (ex. « Montant IBS », « Montant CBS ») à votre définition de lot. Le moteur d'extraction localise ces nouveaux champs en comprenant le contenu du document, de la même manière qu'il localise les champs ISS et CNPJ existants. Aucune reconfiguration de modèle n'est nécessaire. Pendant la période de transition jusqu'en 2033, vous pouvez exécuter des lots contenant des documents NFS-e avec des champs ISS et IBS — définissez des colonnes pour les deux, et la sortie renseignera les champs présents sur chaque document.
En quoi le traitement par lot se compare-t-il à l'intégration directe de l'API de chaque municipalité ?
L'intégration d'API municipale nécessite de construire et de maintenir une connexion distincte pour chaque ville où vos prestataires opèrent — chacune avec sa propre méthode d'authentification, son schéma et son calendrier de mise à jour. La norme nationale SNNFS-e simplifie cela pour les municipalités participantes, mais des grandes villes comme São Paulo ont refusé d'y adhérer. L'extraction sémantique par lot traite les documents que vous recevez déjà — PDF, XML, impressions DANFSE — sans nécessiter d'accès API à aucun système municipal. Ce n'est pas une alternative à l'intégration API pour l'émission sortante de NFS-e. C'est la solution côté réception lorsque vous êtes le preneur de service (tomador), et non l'émetteur.
Pour une vue plus large de l'extraction de documents par lot au-delà de la NFS-e, découvrez comment l'extraction de factures par lot vers Excel fonctionne pour différents types de documents et devises.
De la saisie par municipalité à la réconciliation par lot
La NFS-e a été conçue pour rendre la collecte fiscale efficace pour le gouvernement — et elle y parvient. Chaque facture de service que vous recevez a été validée par une autorité fiscale municipale avant d'arriver dans votre boîte de réception. Le CNPJ a été vérifié. Le taux d'ISS a été contrôlé par rapport au code de service. Le numéro de facture a été attribué. Ces données existent. Elles sont exactes. Elles ont passé une étape de validation gouvernementale que la plupart des factures internationales ne connaissent jamais.
L'inefficacité se situe entièrement du côté de la réception : ressaisir des champs validés à partir de documents qui varient selon les villes dans un tableur qui doit être correct pour la réconciliation SPED. L'extraction sémantique par lot comble cet écart non pas en accélérant la saisie, mais en la supprimant — et ce faisant, elle vous offre une vue inter-municipalités que la saisie manuelle n'aurait jamais pu produire.
La prochaine fois que vous recevrez une pile de NFS-e de prestataires de São Paulo, Rio, Belo Horizonte et d'ailleurs, essayez de les traiter en un seul lot. Définissez vos colonnes une fois. Laissez l'extraction s'exécuter. Triez ensuite par municipalité et vérifiez les totaux d'ISS. Voyez si la vue par lot révèle quelque chose que les documents individuels n'ont pas montré.
Aucune inscription requise pour vos 50 premières pages.