Sous-traitance BTP — Allemagne : retenue sur travaux de construction (Odoo Online)
German Construction Withholding Tax for Odoo Online — version SaaS sans code Python : retenue sur les paiements de travaux de construction, attestation d'exonération et sa date de fin, déclaration mensuelle de la retenue.
Screenshots
Installation sur Odoo Online — lisez ceci d'abord
Cette version est un module de données : elle ne contient aucun fichier Python, et c'est ce qui la rend installable sur Odoo Online, là où un module classique est refusé. Elle ne s'installe donc pas par le bouton « Installer » habituel, mais par un import.
- Téléchargez le fichier .zip reçu à l'achat.
- Dans votre base : Paramètres → section Outils développeur → Activer le mode développeur.
- Ouvrez le menu Applications → Importer un module (Import Module).
- Choisissez le zip, cochez les données de démonstration si vous voulez découvrir l'application remplie, puis Importer.
Fonctionne aussi sur Odoo.sh et en auto-hébergement. Compatible Community comme Enterprise, et sans Odoo Studio : le plan Standard suffit.
§ 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 19 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 | 19.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
Découvrir les applications Dyonysos en vidéo
Démonstrations courtes, cas d'usage et nouveautés Odoo 19.
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
- Sous-traitance BTP — vérification obligatoire avant paiement (Odoo Online)
dyo_soustraitance_online
Odoo Community modules used
base_automation
| 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. À corriger : Tests automatisés (tests/test_*.py).
| 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) | absent | déclasse |
| Traduction française (i18n/fr.po) | absent | info |
| Section « Ce que le module ne fait pas » | conforme | info |
| Titre de 70 caractères au plus (82 actuellement) | absent | info |
| Résumé en français | conforme | info |
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.
