Sous-traitance BTP — Allemagne : retenue sur travaux de construction (Odoo 20)
German Construction Withholding Tax — retenue sur les paiements de travaux de construction, attestation d'exonération et sa date de fin, déclaration mensuelle de la retenue.
Screenshots
§ 48 EStG : l'exonération levée par l'attestation, rétablie à son expiration
Retenue sur les paiements de travaux de construction, attestation d'exonération et sa date de fin, seuil de minimis annuel, déclaration mensuelle. Extension du socle gratuit dyo_soustraitance. Libellés en français, termes d'origine entre parenthèses.
| Odoo 20 Community — On Premise | ✔ |
| Odoo.sh | ✔ |
| Odoo Online (SaaS) | ✔ |
Le constat
Le § 48 EStG impose de retenir une part des paiements de travaux de construction, sauf attestation d'exonération en cours de validité. L'attestation a expiré en mars, les paiements ont continué, et personne ne l'a vu avant le contrôle : c'est exactement là que les entreprises se font reprendre.
L'attestation lève la retenue
Tant qu'elle couvre la date du paiement, le taux est nul.
Son expiration la rétablit seule
Paiement du dernier jour : rien. Le lendemain : taux plein. Personne n'a rien décidé entre les deux.
Le seuil de minimis annuel
Sous le seuil, aucune retenue — avec un seuil majoré quand le donneur d'ordre (Leistungsempfänger) relève du § 4 Nr. 12 Satz 1 UStG, jamais le prestataire.
Le numéro fiscal exigé
Dès qu'une retenue s'applique : sans lui, elle serait versée sans que l'administration sache à qui la créditer.
Ce que fait l'application
Attestation d'exonération
Numéro de sécurité, centre des impôts émetteur, date de fin recopiée du document et fichier en pièce jointe.
Levée et rétablissement automatiques
La retenue suit la date du paiement, pas une décision : rien à surveiller, rien à relâcher à la main.
Seuil de minimis annuel
Cumul des paiements de l'année civile au même prestataire, comparé au seuil réglé. Le seuil majoré tient au donneur d'ordre (§ 48 Abs. 2 S. 1 n° 1 EStG).
Numéro fiscal (Steuernummer)
Exigé dès qu'une retenue s'applique ; inutile quand le paiement est exonéré.
Vérification auprès de l'office fédéral
Source de vérification dédiée : confronter l'attestation présentée à ce qui a réellement été délivré.
Déclaration mensuelle de la retenue
Ne rattache que les paiements sur lesquels une retenue a réellement porté : un paiement exonéré n'a rien à déclarer.
L’application en mouvement
Le module en marche, enregistré dans le vrai client Odoo 19 : Paiements (fiche), Paiements, Vérifications puis Attestations. Ce n’est pas un montage — ce sont les trames du navigateur sur le module livré, pris sur sa propre base. Cette édition se greffe sur les écrans du socle dont elle dépend : le parcours montre donc ces écrans, enrichis des champs et des boutons qu’elle y ajoute.
Vidéo MP4 — 213 ko, 1280 px, 3.3 s, 4 écrans. Une amorce animée est aussi livrée en GIF (184 ko, 560 px) pour les contextes qui n’affichent pas la balise vidéo.
Ce que le module ne fait pas
- Ne se connecte pas au portail de l'administration : la vérification et le dépôt se font en ligne, leur résultat est enregistré ici.
- Ne verse rien : la retenue est calculée et tracée, son paiement relève de la comptabilité.
- Pas de TVA à autoliquidation (§ 13b UStG), qui est un autre régime.
- Il n'existe aucune durée de validité d'une vérification : c'est la date portée sur l'attestation, comparée à celle du paiement, qui décide (§ 48 Abs. 2 S. 1 EStG). Le taux, les seuils et la date limite livrés sont des valeurs par défaut usuelles, à confirmer auprès de votre conseil fiscal allemand ; la méthode d'appréciation du seuil de minimis mise en œuvre est une approximation prudente, documentée dans le guide utilisateur.
Fiche technique
| Version | 20.0.1.1.0 |
| Dépendances | dyo_soustraitance |
| Licence | OPL-1 |
| Prix | GRATUIT |
| Modèles ajoutés | dyo.st.de.declaration |
| Modèles étendus | dyo.st.attestation, dyo.st.verification, dyo.st.paiement, res.company, res.partner |
| Langue | Français |
DYONYSOS — welcome@dyonysos.fr
What this app does not do
- Ne se connecte pas au portail de l'administration : la vérification et le dépôt se font en ligne, leur résultat est enregistré ici.
- Ne verse rien : la retenue est calculée et tracée, son paiement relève de la comptabilité.
- Pas de TVA à autoliquidation (§ 13b UStG), qui est un autre régime.
- Il n'existe aucune durée de validité d'une vérification : c'est la date portée sur l'attestation, comparée à celle du paiement, qui décide (§ 48 Abs. 2 S. 1 EStG). Le taux, les seuils et la date limite livrés sont des valeurs par défaut usuelles, à confirmer auprès de votre conseil fiscal allemand ;
Store apps required
Odoo Community modules used
None.
| Series | Version | Status | Published on |
|---|---|---|---|
| 20.0 | 20.0.1.1.0 | Available | 02/10/2026 |
| 19.0 | 19.0.1.1.0 | Available |
Listing generated from the publisher's code (private repository, branch 20.0): the source code is not published.
Automatic store check (separate from the publisher's), applied to all apps. Conforme.
| Check | Result | Effect if absent |
|---|---|---|
| Manifeste lisible sans exécution | conforme | bloquant |
| Licence reconnue (OPL-1) | conforme | bloquant |
| Aucune dépendance vers Odoo Enterprise | conforme | bloquant |
| Aucun import de code Enterprise | conforme | bloquant |
| Aucun en-tête de licence Enterprise | conforme | bloquant |
| Icône static/description/icon.png | conforme | déclasse |
| Description (static/description/index.html ou README) | conforme | déclasse |
| Tests automatisés (tests/test_*.py) | conforme | déclasse |
| Traduction française (i18n/fr.po) | conforme | info |
| Section « Ce que le module ne fait pas » | conforme | info |
| Titre de 70 caractères au plus (78 actuellement) | absent | info |
| Résumé en français | conforme | info |
Guide utilisateur — Sous-traitance BTP, Allemagne (§ 48 EStG)
Ce guide complète celui du socle dyo_soustraitance. Lisez-le d'abord : la
vérification, le blocage du paiement et la dérogation y sont décrits, et rien de cela
ne change ici.
Avant toute mise en production. Le taux, les seuils, la durée de validité d'une vérification et la date limite de dépôt livrés avec ce module sont des valeurs par défaut usuelles, réglables société par société. Ce ne sont pas des citations réglementaires. Confirmez-les auprès de votre conseil fiscal allemand avant de vous y fier.
Ce que dit le régime, en deux phrases
Le § 48 de la loi allemande sur l'impôt sur le revenu (Einkommensteuergesetz) impose au donneur d'ordre de retenir une part des paiements qu'il fait pour des travaux de construction (Bauleistungen) et de la verser au centre des impôts. Il y échappe quand le prestataire produit une attestation d'exonération en cours de validité (Freistellungsbescheinigung, § 48b), ou quand les paiements de l'année restent sous un seuil de minimis (Bagatellgrenze).
1. Régler les paramètres de la société
Paramètres → Sociétés → votre société → onglet « Sous-traitance — Allemagne (§ 48 EStG) ».
| Paramètre | Ce qu'il commande |
|---|---|
| Taux de retenue (%) | Part retenue faute d'attestation valide |
| Seuil de minimis annuel | En dessous, aucune retenue |
| Seuil de minimis majoré | Quand le donneur d'ordre réalise exclusivement des opérations exonérées (§ 4 Nr. 12 Satz 1 UStG) |
| Jour limite de dépôt de la déclaration | Date limite de dépôt et de versement, le mois suivant |
Vous ne trouverez pas de « validité d'une vérification », et c'est voulu : il n'en existe aucune. Le § 48 Abs. 2 S. 1 EStG exonère sur présentation d'une attestation « im Zeitpunkt der Gegenleistung gültige » : c'est la date de fin portée sur l'attestation, comparée à la date du paiement, qui décide. Le § 48b Abs. 6 EStG n'attache aucune durée à la consultation, et l'attestation peut être révoquée rétroactivement (§ 130 AO) : mettre la vérification en cache ferait payer sans retenue un prestataire dont l'attestation a été retirée.
2. Le numéro fiscal
Sur la fiche du sous-traitant, renseignez le numéro fiscal allemand (Steuernummer).
La case « Opérations exclusivement exonérées (§ 4 Nr. 12 Satz 1 UStG) » se coche, elle, sur la fiche du donneur d'ordre — votre société, ou le donneur d'ordre nommé sur le contrat. C'est de lui, et de lui seul, que dépend le seuil de minimis majoré : le § 48 Abs. 2 S. 1 n° 1 EStG vise le Leistungsempfänger. Cochée sur un prestataire, elle reste sans effet — et c'est voulu : appliquer le seuil majoré à une situation qui relève des 5 000 € ferait omettre la retenue, dont le donneur d'ordre répond sans faute (§ 48a Abs. 3 EStG).
Quand une retenue s'applique, le paiement est refusé sans numéro fiscal. Sans lui, la retenue serait versée sans que l'administration sache à qui la créditer — le prestataire la perdrait.
Quand aucune retenue ne s'applique, le numéro n'est pas exigé : il n'y a rien à imputer.
3. Enregistrer l'attestation d'exonération
Menu Sous-traitance → Attestations → Nouveau.
- Pièce : « Attestation d'exonération de retenue (Freistellungsbescheinigung, § 48b EStG) ».
- Sous-traitant, date de délivrance, et surtout la date de fin portée sur l'attestation. Elle ne se déduit d'aucune durée standard : recopiez celle du document.
- Numéro de sécurité (Sicherheitsnummer) — obligatoire. Sans lui, l'attestation n'est pas vérifiable auprès de l'administration, et c'est sur elle que repose la levée de la retenue.
- Centre des impôts émetteur (Finanzamt), et le fichier en pièce jointe.
4. Ce que fait le module, et qui compte
Tant que l'attestation couvre la date du paiement, la retenue est levée. Le lendemain de son expiration, elle se rétablit d'elle-même.
Un paiement daté du dernier jour de validité n'est pas retenu. Le même paiement daté du lendemain l'est, au taux plein. Personne n'a rien décidé entre les deux : c'est le calendrier qui a tourné.
C'est exactement là que les entreprises se font reprendre. L'attestation a expiré en mars, les paiements ont continué, et personne ne l'a vu avant le contrôle.
Sur chaque paiement, la fiche montre :
- l'attestation d'exonération retenue — vide, la retenue s'applique ;
- le cumulé sur l'année civile et le témoin sous le seuil de minimis.
Une attestation ne couvre jamais un paiement antérieur à sa délivrance, ni le paiement d'un autre prestataire.
5. Le seuil de minimis
Sous le seuil annuel, aucune retenue. Le module additionne les paiements déjà validés de l'année civile au même prestataire, plus celui que vous préparez, et compare au seuil.
Exemple avec un seuil de 5 000 € :
| Cumulé | Retenue | |
|---|---|---|
| Premier paiement de 3 000 € | 3 000 | aucune |
| Second paiement de 3 000 € | 6 000 | taux plein |
Le seuil majoré s'applique quand le donneur d'ordre porte la case « Opérations exclusivement exonérées (§ 4 Nr. 12 Satz 1 UStG) » — jamais quand c'est le prestataire qui la porte.
Cette appréciation du seuil est une approximation prudente de la règle réelle. Vérifiez le seuil et sa méthode d'appréciation auprès de votre conseil fiscal.
6. Vérifier l'attestation auprès de l'office fédéral
Menu Sous-traitance → Vérifications → Nouveau, source « Consultation en ligne de l'attestation d'exonération (portail EIBE du BZSt ; l'attestation est délivrée par le Finanzamt) », avec le numéro de sécurité confronté au fichier de l'administration.
Elle ne se périme pas au calendrier. Le champ « Valable jusqu'au » reste vide, et ce n'est pas un oubli : aucune durée n'est attachée à la consultation (§ 48b Abs. 6 EStG). Ce qui décide est la date de fin portée sur l'attestation, comparée à la date du paiement. Chaque paiement porte d'ailleurs un motif en clair qui dit lequel des deux cas s'applique, et sur quel fondement.
Qui fait quoi. Le BZSt opère la consultation en ligne — portail EIBE — et stocke les attestations. C'est le Finanzamt compétent qui les délivre et qui les révoque (§ 48b Abs. 6 EStG). La durée maximale de trois ans qu'on lit partout vient du Merkblatt du BZSt : c'est une règle administrative, pas légale — le § 48b EStG n'en fixe aucune.
À distinguer de l'attestation elle-même. L'attestation lève la retenue ; la vérification prouve que vous avez confronté le papier présenté à ce que l'administration a réellement délivré. L'une agit sur le montant, l'autre sur le droit de payer.
7. Déclarer et verser la retenue
Menu Sous-traitance → Allemagne (§ 48 EStG) → Déclarations de la retenue → Nouveau.
- Choisissez le mois : la date saisie est ramenée au premier du mois, et la date limite de dépôt et de versement se calcule seule.
- Rattacher les paiements retenus du mois : le module ne ramène que les paiements sur lesquels une retenue a réellement porté. Un paiement exonéré n'a rien à déclarer ; le rattacher gonflerait la liste sans rien ajouter au montant à verser.
- Renseignez le centre des impôts destinataire, le numéro d'accusé rendu par le portail, puis Marquer déposée.
Deux déclarations du même mois sont refusées : les mêmes retenues seraient versées deux fois. Annuler une déclaration relâche ses paiements, qui redeviennent rattachables.
Reviews from signed-in customers. One rated review per customer; the publisher can reply. Sign in to leave a review.
- Publisher
- DYONYSOS
- contact@omnifloo.com
- Omnifloo customers
- Support included with your plan: help centre.
