Comment extraire les données d'exportation des Handelsrechnung allemandes
pour la douane et la comptabilité
Une facture commerciale d'exportation allemande comporte environ une douzaine de champs qu'une facture nationale (Rechnung) ne contient pas : le numéro EORI de l'exportateur, le numéro de tarif douanier à 11 chiffres (Zolltarifnummer) par ligne, le pays d'origine (Ursprungsland) par position, les Incoterms applicables, le poids net et le poids brut, ainsi que la section de confirmation d'exportation (Ausfuhrbestätigung). Chacun de ces champs a été saisi dans le modèle de facture par le service export. Et chacun d'eux doit être ressaisi dans au moins deux autres systèmes : la déclaration d'exportation ATLAS pour la douane, et l'ERP interne pour la comptabilité. L'approche d'extraction décrite ci-dessous remplace ces deux étapes de ressaisie par une seule sortie structurée — une ligne par Handelsrechnung, des colonnes définies une seule fois, chaque champ capturé à partir du PDF.

Points clés à retenir
- Une Handelsrechnung allemande comporte environ une douzaine de champs exclusivement douaniers — numéro EORI, code SH à 11 chiffres par ligne, pays d'origine, Incoterms, poids net et brut — qu'une Rechnung nationale n'exige jamais, et chacun doit être ressaisi depuis le PDF dans ATLAS et l'ERP.
- Un exportateur avec 30 expéditions mensuelles transcrit environ 240 champs douaniers de PDF vers des feuilles de calcul chaque mois — chaque frappe étant une source potentielle d'écart entre ce que voit la douane et ce que comptabilise la comptabilité, une divergence que le Finanzamt recoupe lors des audits.
- Définissez vos colonnes d'extraction une seule fois, téléversez les PDF au lieu de les ressaisir, et les deux pipelines — déclaration d'exportation ATLAS et écriture comptable ERP — puisent dans une seule feuille de calcul structurée, éliminant l'écart de transcription à la source.
Ce qui distingue une Handelsrechnung d'une Rechnung nationale
Chaque entreprise allemande émet des factures. Une Rechnung nationale (facture de vente) doit inclure, conformément au §14 UStG, le nom et l'adresse du fournisseur, la date et le numéro de la facture, le nom et l'adresse du client, la quantité et la désignation des biens ou services, le montant net, le taux et le montant de la TVA, ainsi que le total brut. Ce sont ces champs qui alimentent le système de comptabilité clients, la déclaration de TVA (Umsatzsteuervoranmeldung) et les états financiers de fin d'exercice. Ce sont les champs que tous les logiciels de comptabilité allemands — DATEV, Lexware, SAP — sont conçus pour traiter.
Une Handelsrechnung contient tous ces champs. Mais elle comporte également un ensemble supplémentaire de champs qui n'existent que pour une seule raison : les marchandises franchissent une frontière douanière. Ce sont les champs que les autorités douanières du pays de destination exigent pour évaluer les droits, vérifier l'origine et valider la valeur déclarée. Conformément au code des douanes de l'Union (CDU, règlement (UE) n° 952/2013), toute facture commerciale accompagnant des marchandises exportées de l'UE vers un pays hors UE doit inclure :
| Champ (terme allemand) | Description en anglais | Pourquoi la douane en a besoin |
|---|---|---|
| EORI-Nummer | Numéro d'enregistrement et d'identification des opérateurs économiques — format : DE + 15 chiffres | Identifie l'exportateur dans le système douanier de l'UE. Requis en vertu de l'art. 9 du code des douanes de l'Union (UCC) pour toutes les déclarations en douane. Sans lui, ATLAS rejette la déclaration d'exportation. |
| Zolltarifnummer (code SH) | Code tarifaire douanier allemand à 11 chiffres par ligne d'article — les 6 premiers chiffres = code SH international, chiffres 7-8 = nomenclature combinée de l'UE, chiffres 9-10 = TARIC, chiffre 11 = code national allemand | Détermine la classification du contrôle des exportations, les éventuelles restrictions à l'exportation et — pour l'importateur — le taux de droits d'importation à destination. Par ligne d'article, pas par facture. |
| Ursprungsland | Pays d'origine par ligne d'article — le pays où les marchandises ont été entièrement obtenues ou ont subi la dernière transformation substantielle (art. 60 UCC) | Détermine l'éligibilité aux droits préférentiels à destination. Doit être indiqué par ligne d'article car un envoi peut contenir des marchandises de plusieurs origines. |
| Lieferbedingungen (Incoterms) | Clause Incoterms 2020 — p. ex. EXW Stuttgart, FOB Hambourg, CIF New York, DDP Tokyo | Définit qui supporte les frais de transport, l'assurance et le risque douanier à chaque étape. Détermine ce que comprend la valeur en douane déclarée (fret + assurance, ou non). |
| Nettogewicht / Bruttogewicht | Poids net (marchandises uniquement) et poids brut (marchandises + emballage) par ligne d'article ou par envoi, en kilogrammes | Requis pour les documents de transport (CMR, LTA, connaissement) et l'évaluation en douane. Le poids brut détermine les frais de fret et les exigences de manutention. |
| Ausfuhrbestätigung | Section de confirmation d'exportation — généralement une zone réservée aux tampons douaniers ou à la note de sortie électronique ATLAS (Ausgangsvermerk) | Preuve que les marchandises ont physiquement quitté le territoire douanier de l'UE. Requise pour l'exonération de TVA en vertu du §4 Nr. 1a UStG. Sans elle, l'exportateur ne peut pas justifier l'exonération fiscale sur la UVA. |
Chacun de ces champs est saisi dans le modèle de Handelsrechnung par le service export. Les mêmes champs doivent ensuite figurer dans la déclaration d'exportation ATLAS — et le service export ou un transitaire en douane les ressaisit à cet endroit. Puis le service comptabilité a besoin d'un sous-ensemble (numéro de facture, total, EORI pour le registre des exportations) ressaisi une troisième fois dans l'ERP interne. La Handelsrechnung est créée une fois. Ses données sont saisies trois fois.

Le problème du double pipeline : une facture, deux systèmes, zéro connexion

Un exportateur allemand qui expédie 30 envois par mois crée 30 Handelsrechnungen. Chacune passe par deux pipelines de données entièrement distincts — et aucun des deux ne communique avec l'autre.
Pipeline 1 : Douane (ATLAS AES). Le service export ou un Zollspediteur reprend les données de la Handelsrechnung et les saisit dans la déclaration d'exportation ATLAS AES (Ausfuhranmeldung). Cette déclaration exige le numéro EORI, les codes SH par ligne d'article, le pays d'origine par ligne d'article, les Incoterms, la valeur en douane et le poids net/brut. La déclaration est soumise via un logiciel compatible ATLAS — AEB Export Filing, DAKOSY GE, MIC-CUST, SAP GTS — ou via le système propre du transitaire. ATLAS la traite, effectue une analyse de risque et, si elle est acceptée, émet le document d'accompagnement d'exportation (EAD, Ausfuhrbegleitdokument) avec un numéro de référence de mouvement (MRN) à 18 caractères. Lorsque les marchandises quittent l'UE, l'exportateur reçoit la confirmation de sortie (Ausgangsvermerk) — la preuve que les marchandises ont physiquement quitté le territoire, qui justifie l'exonération de TVA.
Pipeline 2 : Comptabilité (ERP). Le service comptabilité reçoit la même Handelsrechnung — généralement sous forme de PDF provenant du service export ou du système de gestion documentaire. Le comptable doit comptabiliser la vente à l'exportation : le numéro de facture, la date de facture, le nom du client, la valeur totale, les Incoterms pour l'affectation des coûts (le fret et l'assurance sont comptabilisés sur des comptes différents de la valeur des marchandises) et le numéro EORI pour le registre des exportations (Ausfuhrbuch). Pour la déclaration de TVA (Umsatzsteuervoranmeldung ou UVA), le comptable doit faire correspondre chaque Handelsrechnung à son Ausgangsvermerk afin de justifier le chiffre d'affaires d'exportation exonéré d'impôt conformément au §4 Nr. 1a UStG. Pour la déclaration Intrastat (statistiques du commerce intra-UE, obligatoires en vertu de la Außenhandelsstatistikgesetz), le comptable a besoin des codes SH, du pays de destination et de la valeur statistique par code de marchandise.
La lacune. Le pipeline 1 reçoit ses données du service export, qui les saisit directement dans le logiciel ATLAS ou les envoie par e-mail à un transitaire. Le pipeline 2 reçoit ses données du PDF de la Handelsrechnung, qui arrive dans la boîte de réception comptable sous forme de document plat — tous les champs visibles, aucun structuré. Le comptable ouvre le PDF et ressaisit le numéro de facture, la date, le total, l'EORI, les Incoterms et les codes SH dans l'ERP. Pour 30 Handelsrechnungen par mois, avec environ 8 champs pertinents pour la douane chacun, cela représente 240 champs transcrits manuellement du PDF vers le tableur — par mois. Chaque frappe est une erreur de transcription potentielle. Chaque erreur a des répercussions : un code SH mal saisi dans le registre comptable peut ne pas correspondre au code SH déclaré dans ATLAS, créant un écart qui apparaît lors d'un contrôle douanier (Zollprüfung) ou d'un contrôle TVA (Umsatzsteuer-Sonderprüfung).
Il s'agit de la même lacune structurelle décrite dans l'analyse de la raison pour laquelle ATLAS crée la lacune de ressaisie des données qu'il était conçu pour combler — le système qui numérise les déclarations en douane renvoie les données à l'importateur sous forme de PDF, et l'étape de saisie manuelle comble l'écart entre la sortie ATLAS et l'entrée ERP. La Handelsrechnung est le point de départ de ce même pipeline côté export : les données sont créées sous forme d'entrée structurée, livrées en interne sous forme de PDF, puis ressaisies dans chaque système qui en a besoin.
Comment configurer l'extraction : définissez vos colonnes une fois, traitez chaque Handelsrechnung
La solution ne consiste pas à changer la façon dont le service export crée les Handelsrechnungen. Ils saisissent déjà les données une fois. La solution consiste à capturer ces données à partir du PDF au point où elles entrent dans chaque pipeline en aval — en supprimant l'étape de ressaisie qui se situe entre le PDF et le système.
L'extraction de colonnes personnalisées fonctionne en définissant un ensemble de noms de colonnes qui décrivent ce que vous souhaitez extraire de chaque document. L'IA lit chaque PDF, comprend le contenu sémantiquement et localise la valeur correspondante pour chaque colonne — quel que soit l'endroit où la valeur se trouve sur la page ou la façon dont la mise en page diffère entre les factures. Vous définissez les colonnes une seule fois. Chaque Handelsrechnung que vous téléversez ensuite remplit la même structure de feuille de calcul.
Étape 1 : définissez les colonnes douanières principales
Ce sont les champs requis par le pipeline 1 — la déclaration d'exportation ATLAS. Définissez chaque colonne en utilisant la terminologie allemande exacte utilisée par votre équipe export, afin que l'IA fasse correspondre le contexte sémantique correctement :
| Nom de la colonne | Ce que l'IA extrait |
|---|---|
Handelsrechnung Nummer (Commercial Invoice Number) | Le numéro de facture — généralement préfixé « HR- » ou « EX- » sur les factures d'exportation allemandes, distinct de la numérotation Rechnung nationale |
Handelsrechnung Datum (Invoice Date, DD.MM.YYYY) | La date d'émission de la facture au format de date allemand |
EORI-Nummer (DE + 15 digits) | Le numéro EORI de l'exportateur — doit correspondre à l'entité qui dépose la déclaration ATLAS |
Kunde (Customer Name and Address) | Le nom complet et l'adresse de l'acheteur étranger, y compris le pays |
Zolltarifnummer (11-digit Customs Tariff Code) per Position | Le code tarifaire allemand complet à 11 chiffres pour chaque ligne d'article de la facture |
Ursprungsland (Country of Origin, ISO Code) per Position | Le pays d'origine par ligne d'article — par ex. DE pour les marchandises d'origine allemande, CN pour les marchandises d'origine chinoise |
Lieferbedingungen (Incoterms 2020) | La clause Incoterms — par ex. FOB Hambourg, CIF New York, EXW Stuttgart, DDP Tokyo |
Nettogewicht pro Position (Net Weight per Line Item, in kg) | Le poids net par ligne de marchandise |
Bruttogewicht Gesamt (Total Gross Weight, in kg) | Le poids brut total de l'envoi, y compris tous les emballages |
Étape 2 : Ajouter des colonnes inférées pour la vérification croisée
Les colonnes inférées permettent à l'IA de déduire des informations à partir de ce qu'elle a déjà lu — produisant des valeurs que la Handelsrechnung peut indiquer implicitement mais que la déclaration en douane exige explicitement. Ajoutez ces colonnes sous vos colonnes d'extraction directe :
| Nom de la colonne inférée | Ce que l'IA déduit |
|---|---|
Chapitre SH (dérivé de la Zolltarifnummer : sortie du numéro de chapitre à 2 chiffres avec description, p. ex. « 84 — Machines et appareils mécaniques ») | Convertit le code à 11 chiffres en chapitre SH lisible — utile pour le regroupement des marchandises Intrastat et pour détecter les erreurs de classification lorsqu'un code de chapitre ne correspond pas à la description du produit |
Bestimmungsland (pays de destination, à partir de l'adresse du client) | Extrait le pays de destination de l'adresse du client — le pays vers lequel les marchandises sont physiquement expédiées, qui peut différer de l'adresse de facturation |
Étape 3 : Ajouter une colonne calculée pour la validation de la valeur en douane
Une erreur courante sur les déclarations d'exportation allemandes est l'écart de valeur en douane — la valeur déclarée sur la Handelsrechnung (qui peut être indiquée en EXW, FOB ou CIF selon les Incoterms utilisés) diffère de la valeur exigée par la déclaration ATLAS. La déclaration d'exportation ATLAS nécessite la valeur statistique à la frontière allemande — généralement la valeur FOB ou EXW plus le transport intérieur jusqu'au port ou aéroport de sortie allemand.
Ajoutez une colonne calculée pour signaler tout écart entre le total de la facture et la somme des lignes d'articles, ce qui est un précurseur du calcul de la valeur en douane :
| Nom de la colonne calculée | Ce que l'IA calcule |
|---|---|
Vérification total facture vs somme des lignes (Rechnungssumme moins Summe aller Positionen — sortie « OK » si correspondance à 1 € près, « CHECK » si l'écart dépasse 1 €) | Additionne tous les montants des lignes et les compare au total de la facture — détecte les erreurs arithmétiques avant que les données n'atteignent la déclaration ATLAS ou l'écriture comptable |
Positionen Anzahl (nombre de lignes d'articles, comptez le nombre total de lignes de marchandises sur cette facture) | Compte le nombre de lignes d'articles — utile pour vérifier que l'extraction a capturé toutes les lignes et pour le reporting Intrastat où chaque code de marchandise constitue une entrée statistique distincte |
Les fichiers sont traités en toute sécurité et ne sont pas stockés.
Étape 4 : Téléversez chaque Handelsrechnung de chaque envoi d'exportation
Téléversez les PDF Handelsrechnung — du mois en cours, du trimestre en cours ou d'une année fiscale entière. L'IA traite chaque facture indépendamment dans le lot. Une facture avec une mise en page différente (modèle différent, positions de colonnes différentes, placement différent des Incoterms) est traitée de la même manière que le modèle standard — car l'IA localise les champs par leur signification sémantique, et non par leur position sur la page.
Pour les exportateurs allemands qui gèrent également des Rechnungen nationales en plus des Handelsrechnungen, l'approche d'extraction traite les deux types de documents dans le même lot — définissez les colonnes pertinentes pour la douane (EORI, codes SH, origine, Incoterms, poids) comme vos colonnes, et pour les Rechnungen nationales (qui n'ont pas ces champs), ces cellules seront simplement vides. Les champs communs — numéro de facture, date, client, total — sont renseignés pour les deux types de documents, vous donnant ainsi une feuille de calcul d'exportation consolidée, que la facture soit une Rechnung nationale ou une Handelsrechnung d'exportation.
Ce que vous obtenez : une ligne par Handelsrechnung, chaque champ à sa place

Le résultat est un tableur — Excel, CSV ou directement dans Google Sheets via l'extension Google Sheets — avec une ligne par Handelsrechnung. Les colonnes sont celles que vous avez définies. Les valeurs de chaque cellule sont celles extraites par l'IA du PDF.
Ce tableur alimente simultanément les deux pipelines :
Le numéro EORI, les codes SH, les pays d'origine, les Incoterms et les poids requis par la déclaration ATLAS sont déjà dans le tableur. Le service export ou le transitaire les saisit directement dans le logiciel ATLAS à partir du tableur — sans avoir à ouvrir chaque PDF et à les ressaisir. Si votre logiciel ATLAS (AEB, DAKOSY, MIC-CUST) prend en charge l'import CSV ou Excel pour les déclarations groupées, les données alimentent directement la déclaration. Si vous passez par un transitaire, vous lui envoyez le tableur au lieu des PDF — il saisit les données plus rapidement et avec moins d'erreurs de transcription, car il copie depuis un tableau, et non depuis un PDF.
Le numéro de facture, la date, le client, le total, l'EORI et les Incoterms alimentent le registre des exportations (Ausfuhrbuch) et la déclaration de TVA (UVA). Les chapitres SH et les pays de destination alimentent la déclaration Intrastat. Au lieu d'ouvrir 30 PDF et de ressaisir 240 champs, le comptable ouvre un seul tableur, vérifie les valeurs par rapport aux PDF, puis importe les données dans DATEV, Lexware ou SAP. La vérification détecte les erreurs. La transcription les crée.
Le tableur devient la source unique de vérité pour les données de la Handelsrechnung. Filtrez par numéro EORI pour confirmer que chaque déclaration d'exportation utilise le bon identifiant d'exportateur. Filtrez par chapitre SH pour regrouper le volume d'exportation par marchandise pour le rapport Intrastat trimestriel. Comparez la colonne calculée « Total facture vs somme des lignes » pour détecter les écarts arithmétiques avant qu'ils n'atteignent la déclaration ATLAS. Le même jeu de données qui alimente la déclaration d'exportation alimente l'écriture comptable — des données sources cohérentes entre les deux pipelines, éliminant ainsi la constatation d'audit courante où la valeur déclarée en douane diffère de la valeur comptabilisée.
FAQ — Extraction de données Handelsrechnung allemande
Peut-elle traiter des Handelsrechnungen avec plusieurs lignes d'articles, chacune ayant des codes SH et des pays d'origine différents ?
Oui. Chaque ligne d'article est extraite avec son propre code SH et son pays d'origine. La sortie conserve la structure d'une ligne par facture — si vous avez besoin d'une ligne par article, définissez vos colonnes avec le préfixe « per Position » et l'IA traitera chaque ligne de marchandise comme une unité d'extraction distincte. Pour la plupart des flux de travail d'exportation, une ligne par facture avec les codes SH et les origines agrégés ou représentés par la marchandise principale est toutefois suffisante, car la déclaration ATLAS contient déjà le détail des lignes d'articles et l'écriture comptable ne nécessite que le résumé au niveau de la facture.
Comment l'extraction gère-t-elle les différents Incoterms — notamment la différence entre les valeurs EXW, FOB et CIF sur la même facture ?
L'IA extrait les Incoterms tels qu'ils figurent sur la facture — FOB Hambourg, CIF New York, EXW Stuttgart. Elle ne calcule pas les suppléments de transport ou d'assurance. Pour le calcul de la valeur en douane (la valeur qui entre dans la déclaration ATLAS), vous devez ajuster la valeur de la facture en fonction des Incoterms : valeur EXW + transport intérieur jusqu'à la frontière de l'UE = valeur statistique ; la valeur FOB est généralement suffisante telle quelle pour la déclaration d'exportation ATLAS ; la valeur CIF inclut le fret et l'assurance qui doivent être séparés pour la déclaration côté exportation. La colonne calculée « Total facture vs somme des lignes d'articles » valide l'arithmétique de la facture, mais l'ajustement des Incoterms à la valeur en douane reste une étape de calcul manuelle — ou peut être automatisé avec une colonne calculée si vos coûts de fret et d'assurance sont connus par envoi.
Remplace-t-elle le dépôt de la déclaration d'exportation ATLAS AES ?
Non. L'extraction produit les données d'entrée pour la déclaration ATLAS. Le dépôt de la déclaration nécessite toujours un logiciel compatible ATLAS (AEB, DAKOSY, MIC-CUST, SAP GTS ou le système du transitaire en douane) et un enregistrement actif de participant ATLAS auprès de l'administration douanière allemande (Generalzolldirektion). L'extraction remplace l'étape de saisie manuelle des données — lecture du PDF Handelsrechnung et saisie des champs dans le logiciel ATLAS — mais pas le logiciel lui-même. Pour le flux de travail complet, de la déclaration en douane à un ensemble de données structuré, le guide d'extraction des données de déclaration en douane allemande vers Excel couvre l'équivalent côté importation.
Comment l'Ausfuhrbestätigung / l'Ausgangsvermerk s'intègre-t-il dans ce flux de travail ?
L'Ausfuhrbestätigung (confirmation d'exportation) est la preuve que les marchandises ont physiquement quitté le territoire douanier de l'UE. Elle est délivrée par le bureau de douane de sortie via ATLAS après la présentation et le dédouanement des marchandises. Ce n'est pas un champ de la Handelsrechnung elle-même — c'est un message électronique ou un cachet séparé qui arrive après le traitement de la déclaration d'exportation. Dans le flux de travail d'extraction, les données de la Handelsrechnung sont d'abord extraites (produisant les données d'entrée pour la déclaration ATLAS). Après le dépôt de la déclaration et la sortie des marchandises, l'Ausgangsvermerk est reçu. À ce stade, vous pouvez ajouter une colonne à votre feuille de calcul — Ausgangsvermerk erhalten (J/N) — et marquer manuellement chaque ligne lorsque la confirmation arrive, donnant ainsi à votre équipe comptable une vue unique des exportations justifiées pour la taxation à taux zéro de la TVA et de celles en attente.
La même configuration de colonnes peut-elle extraire des données de Rechnungen nationales allemandes ?
Oui — les champs courants (numéro de facture, date, client, montants) sont renseignés à partir de tout format de facture. Les colonnes spécifiques aux douanes (EORI, codes SH, origine, Incoterms, poids) resteront vides pour les Rechnungen nationales. Cela signifie que vous pouvez télécharger un lot mixte — 20 Handelsrechnungen et 40 Rechnungen nationales — et obtenir une feuille de calcul unifiée. Triez par la colonne EORI pour séparer les factures d'exportation des factures nationales. Le même principe s'applique à l'extraction des données des formulaires fiscaux ELSTER : définissez les colonnes une fois et alimentez-les à partir des documents sources — le guide d'extraction des données des formulaires fiscaux ELSTER vers Excel applique la même approche de définition de colonnes à un type de document différent.
La Handelsrechnung contient déjà tous les champs dont votre déclaration douanière et votre système comptable ont besoin. Le goulot d'étranglement n'est pas une donnée manquante — c'est un PDF là où il devrait y avoir une feuille de calcul.
Extraire une Handelsrechnung