Comment extraire les données d'une facture commerciale d'exportation (Handelsrechnung) allemande
pour la douane et la comptabilité
Une facture commerciale d'exportation (Handelsrechnung) allemande comporte environ une douzaine de champs qu'une facture nationale (Rechnung) ne contient pas : le numéro EORI de l'exportateur, le code tarifaire douanier (Zolltarifnummer) à 11 chiffres par ligne, le pays d'origine (Ursprungsland) par position, les Incoterms applicables, le poids net et le poids brut, ainsi que la section de certificat 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 un seul résultat structuré — une ligne par Handelsrechnung, des colonnes définies une fois pour toutes, chaque champ extrait du PDF.
Points clés à retenir
- Une facture commerciale d'exportation (Handelsrechnung) allemande comporte environ une douzaine de champs réservés à la douane — numéro EORI, code SH à 11 chiffres par ligne, pays d'origine, Incoterms, poids net et brut — qu'une facture nationale (Rechnung) n'exige jamais, et chacun doit être ressaisi du PDF vers ATLAS et l'ERP.
- Un exportateur qui réalise 30 expéditions mensuelles retranscrit environ 240 champs douaniers de PDF vers des tableurs chaque mois — chaque frappe étant une source potentielle d'écart entre ce que la douane voit et ce que la comptabilité enregistre, un écart que le Finanzamt recoupe lors des audits.
- Définissez vos colonnes d'extraction une fois, importez les PDF au lieu de les ressaisir, et les deux pipelines — déclaration d'exportation ATLAS et écriture comptable ERP — puisent dans un seul tableur structuré, éliminant ainsi le fossé de transcription à la source.
Ce qui distingue une Handelsrechnung d'une facture nationale (Rechnung)
Toute entreprise allemande émet des factures. Une facture nationale (Rechnung) doit comporter, conformément au §14 UStG, le nom et l'adresse du fournisseur, la date et le numéro de facture, le nom et l'adresse du client, la quantité et la description des biens ou services, le montant net, le taux et le montant de la TVA, ainsi que le total brut. Ce sont les données qui alimentent le système de comptabilité clients, la déclaration préalable de TVA (UVA) 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 facture commerciale d'exportation (Handelsrechnung) reprend 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 de douane, 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 tiers doit inclure :
| Champ (terme allemand) | Description en anglais | Pourquoi les douanes en ont 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. Obligatoire selon 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 = SH international, chiffres 7-8 = Nomenclature combinée de l'UE, chiffres 9-10 = TARIC, chiffre 11 = code national allemand | Détermine la classification de contrôle à l'exportation, les éventuelles restrictions d'exportation et, pour l'importateur, le taux de droit 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 du code des douanes de l'Union) | 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 seules) 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 transport 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 conformément au §4 Nr. 1a UStG. Sans elle, l'exportateur ne peut pas justifier l'exonération fiscale dans la déclaration préalable de TVA (UVA). |
Chacun de ces champs est saisi dans le modèle de facture commerciale d'exportation (Handelsrechnung) par le service export. Ces mêmes champs doivent ensuite figurer dans la déclaration d'exportation ATLAS — et le service export ou un transitaire en douane les y ressaisit. Puis le service comptabilité a besoin d'un sous-ensemble (numéro de facture, total, numéro EORI pour le registre des exportations) saisi une troisième fois dans le progiciel de gestion intégré (ERP) interne. La facture commerciale d'exportation (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 factures commerciales d'exportation (Handelsrechnungen). Chacune d'elles transite par deux pipelines de données totalement distincts — et aucun des deux ne communique avec l'autre.
Pipeline 1 : Douane (ATLAS AES). Le service export ou un transitaire douanier (Zollspediteur) reprend les données de la facture commerciale d'exportation (Handelsrechnung) et les saisit dans la déclaration d'exportation ATLAS AES (Ausfuhranmeldung). Cette déclaration requiert 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 courtier en douane. ATLAS la traite, effectue une analyse de risques et, si elle est acceptée, délivre 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 le visa de sortie (Ausgangsvermerk) — la preuve que les marchandises ont physiquement quitté le territoire, justifiant l'exonération de TVA.
Pipeline 2 : Comptabilité (ERP). Le service comptabilité reçoit la même facture commerciale d'exportation (Handelsrechnung) — généralement au format PDF, soit du service export, soit 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 imputés à 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 facture commerciale d'exportation (Handelsrechnung) avec son visa de sortie (Ausgangsvermerk) afin de justifier le chiffre d'affaires exonéré d'impôt conformément au §4 Nr. 1a UStG. Pour la déclaration Intrastat (statistiques du commerce intra-UE, obligatoire 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.
Le fossé. 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 courtier. Le pipeline 2 reçoit ses données du PDF de la facture commerciale d'exportation (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 manuellement le numéro de facture, la date, le total, le numéro EORI, les Incoterms et les codes SH dans l'ERP. Pour 30 factures commerciales d'exportation (Handelsrechnungen) par mois, avec environ 8 champs pertinents pour la douane chacune, cela représente 240 champs transcrits manuellement du PDF vers le tableur — par mois. Chaque frappe de touche est une erreur de transcription potentielle. Chaque erreur a des répercussions : un code SH mal saisi dans le grand livre comptable peut ne pas correspondre au code SH déclaré dans ATLAS, créant une divergence qui apparaît lors d'un contrôle douanier (Zollprüfung) ou d'un contrôle fiscal de TVA (Umsatzsteuer-Sonderprüfung).
Il s'agit du même fossé structurel décrit dans l'analyse des raisons pour lesquelles ATLAS crée la lacune de ressaisie des données qu'il était censé combler — le système qui a numérisé les déclarations en douane renvoie les données à l'importateur sous forme de PDF, et l'étape de transcription manuelle comble le fossé entre la sortie d'ATLAS et l'entrée dans l'ERP. La facture commerciale d'exportation (Handelsrechnung) est le point de départ de ce même pipeline côté exportation : les données sont créées sous forme d'entrée structurée, livrées en interne sous forme de PDF, et 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 à modifier 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 moment où elles entrent dans chaque pipeline aval — en supprimant l'étape de ressaisie 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 — indépendamment de l'emplacement de la valeur sur la page ou des différences de mise en page entre les factures. Vous définissez les colonnes une fois. Chaque Handelsrechnung que vous importez par la suite remplit la même structure de tableur.
Étape 1 : Définir les colonnes douanières principales
Voici les champs requis par le Pipeline 1 — la déclaration d'exportation ATLAS. Définissez chaque colonne en utilisant la terminologie allemande exacte employée par votre équipe export, afin que l'IA corresponde correctement au contexte sémantique :
| Nom de colonne | Ce que l'IA extrait |
|---|---|
Handelsrechnung Nummer (Commercial Invoice Number) | Le numéro de facture — généralement préfixé par « HR- » ou « EX- » sur les factures d'exportation allemandes, distinct de la numérotation des factures nationales (Rechnung) |
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 douanier 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 exemple DE pour les marchandises d'origine allemande, CN pour les marchandises d'origine chinoise |
Lieferbedingungen (Incoterms 2020) | La clause Incoterms — par exemple 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 le recoupement
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 facture commerciale d'exportation (Handelsrechnung) peut indiquer implicitement, mais que la déclaration en douane exige explicitement. Ajoutez ces colonnes en dessous de vos colonnes d'extraction directe :
| Nom de la colonne inférée | Ce que l'IA déduit |
|---|---|
Chapitre SH (déduit du code tarifaire douanier : afficher le numéro du chapitre à 2 chiffres avec description, 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 où le chapitre d'un code 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 facture commerciale d'exportation (Handelsrechnung) (qui peut être indiquée en EXW, FOB ou CIF selon les Incoterms utilisés) diffère de la valeur requise 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, 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 minus Summe aller Positionen — afficher « OK » si écart ≤ 1 €, « À VÉRIFIER » si écart > 1 €) | Additionne tous les montants des lignes d'articles 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, compter le total des 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 de manière sécurisée et ne sont pas conservés.
Étape 4 : Téléchargez chaque Handelsrechnung de chaque envoi d'exportation
Téléchargez les PDF des factures commerciales d'exportation (Handelsrechnung) — du mois en cours, du trimestre en cours ou d'un exercice fiscal complet. L'IA traite chaque facture indépendamment dans le lot. Une facture qui utilise une mise en page différente (modèle différent, positions de colonnes différentes, emplacement des Incoterms différent) est traitée de la même manière que le modèle standard — car l'IA localise les champs par leur sens sémantique, et non par leur position sur la page.
Pour les exportateurs allemands qui gèrent également des factures nationales (Rechnung) en plus des factures commerciales d'exportation (Handelsrechnung), l'approche d'extraction traite les deux types de documents dans le même lot — définissez les colonnes pertinentes pour la douane (numéro EORI, codes SH, origine, Incoterms, poids) comme vos colonnes, et pour les factures nationales (Rechnung) qui ne comportent pas ces champs, ces cellules resteront simplement vides. Les champs communs — numéro de facture, date, client, total — sont renseignés pour les deux types de documents, vous obtenez ainsi un seul tableur d'exportation consolidé, que la facture soit une facture nationale (Rechnung) ou une facture commerciale d'exportation (Handelsrechnung).
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 le module complémentaire Google Sheets — avec une ligne par Handelsrechnung. Les colonnes sont celles que vous avez définies. Les valeurs dans 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 courtier en douane les saisit directement dans le logiciel ATLAS à partir du tableur — inutile d'ouvrir chaque PDF et de les ressaisir. Si votre logiciel ATLAS (AEB, DAKOSY, MIC-CUST) prend en charge l'import CSV ou Excel pour les déclarations en masse, les données alimentent directement la déclaration. Si vous utilisez un courtier en douane, vous lui envoyez le tableur au lieu des PDFs — le courtier saisit les données plus rapidement et avec moins d'erreurs de transcription car il copie depuis un tableau, et non en lisant 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 que le comptable ouvre 30 PDFs et ressaisisse 240 champs, il ouvre un seul tableur, vérifie les valeurs par rapport aux PDFs et 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 l'identifiant d'exportateur correct. Filtrez par chapitre SH pour regrouper le volume d'exportation par marchandise pour le rapport Intrastat trimestriel. Comparez la colonne calculée « Vérification 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 dans les deux pipelines, éliminant la constatation d'audit fréquente où la valeur déclarée en douane diffère de la valeur comptabilisée.
FAQ — Extraction de données des factures commerciales d'exportation (Handelsrechnung)
Peut-elle traiter les 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 « par Position » et l'IA traitera chaque ligne de marchandise comme une unité d'extraction distincte. Pour la plupart des flux d'exportation, une ligne par facture avec les codes SH et les origines agrégés ou représentés par l'article principal est suffisante, car la déclaration ATLAS contient déjà le détail des lignes et l'écriture comptable n'a besoin que du récapitulatif 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 une même facture ?
L'IA extrait les Incoterms tels qu'indiqués 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 alimente 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 « Vérification total facture vs somme des lignes » 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ée 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 courtier en douane) et un enregistrement actif en tant que 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 — et non le logiciel lui-même. Pour le flux complet, de la déclaration en douane à un jeu de données structuré, le guide d'extraction des données de déclaration douanière allemande vers Excel couvre l'équivalent côté importation.
Comment l'Ausfuhrbestätigung / Ausgangsvermerk s'intègre-t-elle dans ce flux ?
L'Ausfuhrbestätigung (certificat 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 distinct qui arrive après le traitement de la déclaration d'exportation. Dans le flux 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 reçu (O/N) — et marquer manuellement chaque ligne lorsque la confirmation arrive, offrant ainsi à votre équipe comptable une vue unique des exportations justifiées pour le taux zéro de TVA et de celles en attente.
La même configuration de colonnes peut-elle extraire des données des factures nationales (Rechnung) allemandes ?
Oui — les champs courants (numéro de facture, date, client, montants) sont renseignés quel que soit le format de facture. Les colonnes spécifiques aux douanes (numéro EORI, codes SH, origine, Incoterms, poids) resteront vides pour les factures nationales (Rechnung). Cela signifie que vous pouvez importer un lot mixte — 20 factures commerciales d'exportation (Handelsrechnung) et 40 factures nationales (Rechnung) — et obtenir un seul tableau unifié. 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 allemands vers Excel applique la même approche de définition de colonnes à un type de document différent.
La facture commerciale d'exportation (Handelsrechnung) contient déjà tous les champs dont votre déclaration en douane 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 faudrait des tableurs.
Extraire une Handelsrechnung