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.
Captures d'écran
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.
Ce que l'application 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 ;
Applications du magasin nécessaires
- Sous-traitance BTP — vérification obligatoire avant paiement (Odoo Online)
dyo_soustraitance_online
Modules Odoo Community utilisés
base_automation
| Série | Version | État | Publiée le |
|---|---|---|---|
| 20.0 | 20.0.1.1.0 | Disponible | 02/10/2026 |
| 19.0 | 19.0.1.1.0 | Disponible |
Fiche générée depuis le code de l'éditeur (dépôt privé, branche 20.0) : le code source n'est pas publié.
Contrôle automatique du magasin (distinct de l'éditeur), appliqué à toutes les applications. À corriger : Tests automatisés (tests/test_*.py).
| Contrôle | Résultat | Effet si 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 |
Avis des clients connectés. Un avis noté par client ; l'éditeur peut y répondre. Connectez-vous pour laisser un avis.
- Éditeur
- DYONYSOS
- contact@omnifloo.com
- Clients Omnifloo
- Support inclus selon votre formule : centre d'aide.
