Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20)
Ireland RCT Compliance — contract notification, payment notification and deduction authorisation: one authorisation covers one subcontractor and one payment only, and expires at its return period's due date. The module refuses a payment covered by a reused or expired authorisation, and prices the pe
Captures d'écran
-
Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20) — capture 1 -
Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20) — capture 2 -
Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20) — capture 3 -
Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20) — capture 4 -
Sous-traitance BTP — Irlande : Relevant Contracts Tax (Odoo 20) — capture 5
Une autorisation de déduction par paiement — et aucun taux mis en cache
Sous le Relevant Contracts Tax, le contractant ne vérifie pas son sous-traitant une fois pour toutes : il notifie Revenue immédiatement avant chaque paiement, et applique le taux que l'autorisation lui rend. Extension du socle gratuit dyo_soustraitance.
| Odoo 20 Community — On Premise | ✔ |
| Odoo.sh | ✔ |
| Odoo Online (SaaS) | ✔ |
Le constat
Le RCT a une particularité que la plupart des logiciels ratent : une autorisation vaut pour un sous-traitant et un paiement, et rien de plus. Le règlement 6(3) du S.I. n° 576 de 2012 la dit valable « only in respect of the subcontractor named on it and the relevant payment to which it relates », et le règlement 6(2) lui donne son terme : le premier de quatre événements.
Et le contractant n'a pas le droit de retenir autrement : « A principal […] shall deduct tax from the relevant payment concerned only in accordance with the terms of the deduction authorisation » — article 530F(1) TCA 1997. Réutiliser l'autorisation du mois dernier n'est pas une négligence vénielle : c'est payer sans autorisation.
Aucun taux n'est mis en cache, et voici pourquoi. Ni sur la fiche du sous-traitant, ni sur le contrat. Revenue est explicite : l'accusé de la notification de contrat porte le taux dernièrement notifié « for information purposes only », et « This rate must NOT be taken as the rate of RCT applicable to payments to be made under the contract concerned » (Tax and Duty Manual 18-02-04, § 4). Le taux change entre deux paiements de trois façons : révision groupée mensuelle, auto-révision demandée sur ROS « effective immediately », ou intervention d'un agent de Revenue, à la hausse comme à la baisse, à tout moment.
Le terme calendaire, calculé
Le premier de quatre événements : le paiement fait, la due date de la période où l'autorisation a été émise, le dépôt de la déclaration, ou l'annulation de la notification. Le module le calcule et refuse au-delà.
L'unicité, vérifiée
Une autorisation déjà consommée par un paiement ne peut pas en couvrir un second. Le module le vérifie plutôt que de faire confiance.
La notification de paiement
Immédiatement avant de payer, et pour le montant qu'on va payer : c'est l'ordre qu'impose l'article 530C(1), et c'est celui de l'écran.
Trois taux, un seul littéral de la loi
Le module ne les devine pas : il applique celui que porte l'autorisation, et le dit quand il n'en a pas.
Ce que fait l'application
Notification de contrat
Enregistrée avec son accusé, sans que le taux qu'elle porte ne serve jamais à retenir quoi que ce soit.
Autorisation de déduction
Un enregistrement par paiement, avec son taux, sa référence et son terme calculé.
Refus au terme et au doublon
Un paiement couvert par une autorisation périmée ou déjà employée est refusé, avec le motif en clair.
Déduction au taux rendu
Jamais au taux d'un réglage, jamais au taux de la fois précédente.
Traçabilité du geste
Qui a notifié, quand, pour quel montant, et quelle réponse est revenue — c'est ce qu'on présente au contrôle.
Dérogation motivée
Possible, tracée au nom de qui la prend, et jamais silencieuse.
Le parcours, en vrai



L’application en mouvement
Le module en marche, enregistré dans le vrai client Odoo 19 : Paiements (fiche), Paiements, Vérifications puis Contrats. 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 — 230 ko, 1280 px, 3.3 s, 4 écrans. Une amorce animée est aussi livrée en GIF (196 ko, 560 px) pour les contextes qui n’affichent pas la balise vidéo.
Ce que le module ne fait pas
- Il ne se connecte pas à ROS : la notification et le dépôt se font sur le portail de Revenue, leur résultat est enregistré ici.
- Il ne calcule pas la TVA à autoliquidation du bâtiment, ni la paie.
- Il ne devine aucun taux RCT et n'en garde aucun en mémoire — c'est un choix, expliqué ci-dessus, pas une lacune.
- Les règles de terme livrées suivent le S.I. n° 576 de 2012 tel que cité ; elles se confirment auprès de votre conseil irlandais.
Fiche technique
| Modèles étendus | dyo.st.verification, dyo.st.contrat, dyo.st.paiement, res.company, res.partner |
| Langue | Français, termes d'origine entre parenthèses |
| Dépendances | dyo_soustraitance |
| Licence | OPL-1 (Odoo Proprietary License v1.0) |
| Prix | GRATUIT |
| Version | 20.0.1.0.0 |
| Nom technique | dyo_soustraitance_ie |
DYONYSOS — welcome@dyonysos.fr
Ce que l'application ne fait pas
- Il ne se connecte pas à ROS : la notification et le dépôt se font sur le portail de Revenue, leur résultat est enregistré ici.
- Il ne calcule pas la TVA à autoliquidation du bâtiment, ni la paie.
- Il ne devine aucun taux RCT et n'en garde aucun en mémoire — c'est un choix, expliqué ci-dessus, pas une lacune.
- Les règles de terme livrées suivent le S.I. n° 576 de 2012 tel que cité ; elles se confirment auprès de votre conseil irlandais.
Applications du magasin nécessaires
Modules Odoo Community utilisés
Aucun.
| Série | Version | État | Publiée le |
|---|---|---|---|
| 20.0 | 20.0.1.0.0 | Disponible | 02/10/2026 |
| 19.0 | 19.0.1.0.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. Conforme.
| 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) | conforme | 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 (63 actuellement) | conforme | info |
| Résumé en français | absent | 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.