Sous-traitance BTP — Royaume-Uni : Construction Industry Scheme (Odoo 20)
UK CIS Compliance — vérification du sous-traitant, déduction sur la seule part main-d'œuvre, déclaration mensuelle et relevé de paiement et de déduction. La consultation automatique du statut est câblée mais décochée par défaut : HMRC n'expose la vérification CIS que par son Transaction Engine XML,
Captures d'écran
-
Sous-traitance BTP — Royaume-Uni : Construction Industry Scheme (Odoo 20) — capture 1 -
Sous-traitance BTP — Royaume-Uni : Construction Industry Scheme (Odoo 20) — capture 2 -
Sous-traitance BTP — Royaume-Uni : Construction Industry Scheme (Odoo 20) — capture 3 -
Sous-traitance BTP — Royaume-Uni : Construction Industry Scheme (Odoo 20) — capture 4
Construction Industry Scheme : la déduction ne porte jamais sur les matériaux
Vérification du sous-traitant, statut de déduction, part matériaux retirée de la base, déclaration mensuelle et relevé de paiement et de déduction. 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
Sous le CIS, le contractant retient un taux rendu par l'administration sur les sommes payées — mais sur la seule part main-d'œuvre. Appliquer le taux au montant entier de la facture, c'est retenir trop, rembourser, et perdre la confiance de ses sous-traitants ; ne pas déduire les matériaux de la base, c'est se retrouver en défaut.
Les matériaux sortent de la base
Sur 40 000 dont 12 000 de matériaux, la déduction porte sur 28 000. La facture, elle, ne bouge pas.
L'administration rend un taux
Paiement brut, taux standard ou taux majoré : c'est le statut rendu qui commande, pas un réglage.
Le mois fiscal n'est pas le mois civil
Ses bornes sont un paramètre : c'est elles qui font qu'un paiement tombe dans une période plutôt qu'une autre.
Le relevé, sinon il paie deux fois
Un relevé par sous-traitant, engendré au dépôt, avec sa date limite de remise.
Ce que fait l'application
Vérification CIS
Source de vérification dédiée, avec le statut de déduction rendu et la référence de la réponse.
Numéro de contribuable (UTR)
Exigé : sans lui, l'administration ne peut pas être interrogée, et le paiement est refusé.
Part matériaux
Saisie sur chaque paiement et retirée d'elle-même de la base de déduction. Une part supérieure à la facture est refusée.
Déclaration mensuelle
Période et date limite calculées, rattachement des paiements validés, totaux distinguant brut, matériaux, base et déduction.
Relevés de déduction
Un par sous-traitant, engendré au dépôt, avec date limite de remise et signalement du retard.
Paramètres par société
Taux standard et majoré, validité d'une vérification, bornes du mois fiscal, délais de dépôt et de remise.
La consultation automatique du statut CIS : ce qu'on a vérifié, et pourquoi elle est décochée
HMRC expose bien un service « Construction Industry Scheme Online » qui, selon sa propre description, permet de vérifier un sous-traitant et de déposer les déclarations mensuelles. Mais c'est une API XML, servie par le Transaction Engine, en XML signé par IRmark, et elle exige un Vendor ID délivré par HMRC. Le bac à sable développeur gratuit ne sert pas les API XML. Il n'existe donc aucune adresse ouverte à brancher.
L'application ne fait pas semblant. La consultation automatique est décochée par défaut, son adresse est vide, et la fiche de la vérification dit en clair pourquoi. Le statut CIS continue de se saisir à la main, exactement comme avant. Vendre une vérification automatique qui n'existe pas coûterait plus cher que de ne pas en avoir.
La tuyauterie, elle, est complète et éprouvée : file d'attente, cache daté, dégradé propre, journal, et aucun appel réseau dans l'écran. Si vous disposez d'un Vendor ID ou d'un service intermédiaire, renseignez son adresse et la consultation fonctionne sans autre changement. L'application attend alors un taxTreatment valant gross, net ou unmatched — les trois valeurs du régime lui-même (CIS340).
Deux principes qui ne bougent pas : la consultation ne réécrit jamais le statut que le contractant a acté, elle constate à côté avec sa date ; et unmatched est présenté pour ce qu'il est — une réponse, qui commande le taux majoré, pas un jugement sur le sous-traitant, dont l'enregistrement récent peut n'être pas encore rapproché.
Une chaîne de sources, et un chemin qui marche aujourd'hui
Faute de Vendor ID, la saisie depuis le portail HMRC est le seul chemin praticable — et c'est celui que prennent réellement les entreprises : le donneur d'ordre vérifie son sous-traitant à l'écran et recopie le numéro rendu. L'application le traite exactement comme un verdict de service : daté, portant sa source, périmant selon la même règle. Vous remplissez ce que vous avez, elle fait le reste.
| Passerelle vers HMRC (si Vendor ID) | Vérifié à la source |
| Portail HMRC, relevé à la main | Déclaré — saisi à la main |
Une valeur saisie à la main n'est jamais présentée comme vérifiée. La provenance se lit sur la fiche, dans la liste et dans vos exports, et le verdict déclaré commence lui-même par « Verdict déclaré ». La consultation, quand elle existe, ne réécrit jamais le statut que vous avez acté : elle constate à côté, avec sa date.


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 — 213 ko, 1280 px, 3.3 s, 4 écrans. Une amorce animée est aussi livrée en GIF (183 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 service en ligne de l'administration : la vérification et le dépôt se font sur le portail officiel, leur résultat est enregistré ici.
- Pas de paie, pas de détermination du statut de travailleur (employment status), pas de TVA à autoliquidation.
- Les taux, durées et dates limites livrés sont des valeurs par défaut usuelles, à confirmer auprès de votre comptable britannique — ce ne sont pas des citations réglementaires.
- La validité d'une vérification s'exprime en exercices fiscaux — exercice courant et deux précédents — ancrée sur la dernière inclusion du sous-traitant dans une déclaration mensuelle déposée (CIS340 ; manuel HMRC CISR51050), et non sur l'appel de vérification.
Fiche technique
| Version | 20.0.1.1.0 |
| Dépendances | dyo_soustraitance |
| Licence | OPL-1 |
| Prix | GRATUIT |
| Modèles ajoutés | dyo.st.uk.declaration, dyo.st.uk.releve |
| Modèles étendus | dyo.st.verification, dyo.st.paiement, res.company, res.partner |
| Langue | Français |
DYONYSOS — welcome@dyonysos.fr
Ce que l'application ne fait pas
- Ne se connecte pas au service en ligne de l'administration : la vérification et le dépôt se font sur le portail officiel, leur résultat est enregistré ici.
- Pas de paie, pas de détermination du statut de travailleur (employment status), pas de TVA à autoliquidation.
- Les taux, durées et dates limites livrés sont des valeurs par défaut usuelles, à confirmer auprès de votre comptable britannique — ce ne sont pas des citations réglementaires.
- La validité d'une vérification s'exprime en exercices fiscaux — exercice courant et deux précédents — ancrée sur la dernière inclusion du sous-traitant dans une déclaration mensuelle déposée (CIS340 ; manuel HMRC CISR51050), et non sur l'appel de vérification.
Applications du magasin nécessaires
Modules Odoo Community utilisés
Aucun.
| 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. 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) | conforme | info |
| Section « Ce que le module ne fait pas » | conforme | info |
| Titre de 70 caractères au plus (73 actuellement) | absent | info |
| Résumé en français | conforme | info |
Guide utilisateur — Sous-traitance BTP, Royaume-Uni (Construction Industry Scheme)
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. Les taux, le nombre d'exercices couverts, les bornes du mois fiscal et les délais 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 comptable britannique avant de vous y fier.
Ce que dit le régime, en deux phrases
Sous le Construction Industry Scheme (CIS), le contractant vérifie son sous-traitant auprès de l'administration fiscale, qui répond par un statut de déduction. Il retient ce taux sur les sommes payées — jamais sur les matériaux —, dépose une déclaration mensuelle, et remet à chaque sous-traitant un relevé de paiement et de déduction.
1. Régler les paramètres de la société
Paramètres → Sociétés → votre société → onglet « Sous-traitance — Royaume-Uni (CIS) ».
| Paramètre | Ce qu'il commande |
|---|---|
| Taux de déduction standard (%) | Sous-traitant vérifié et inscrit au régime |
| Taux majoré, faute de vérification (%) | Sous-traitant que l'administration ne reconnaît pas |
| Premier jour du mois fiscal | Le mois fiscal britannique ne suit pas le mois civil (le 6) |
| Premier mois de l'exercice fiscal | L'exercice court du 6 avril au 5 avril (avril) |
| Exercices antérieurs couverts par une vérification | Deux, en l'état de la règle CIS |
| Jour limite de dépôt de la déclaration | Date limite, le mois suivant la fin de la période |
| Délai de remise des relevés (jours) | Délai pour remettre son relevé à chaque sous-traitant |
Vous ne trouverez plus de « validité d'une vérification en jours », et c'est voulu : la règle ne s'exprime pas en durée. Aucune re-vérification n'est due tant que le sous-traitant a été inclus dans une déclaration mensuelle au cours de l'exercice fiscal courant ou de l'un des deux exercices précédents (CIS340 ; gov.uk, « verify subcontractors » ; manuel HMRC CISR51050). Soit de 730 à 1 095 jours selon le moment.
2. Le numéro de contribuable
Sur la fiche du sous-traitant, renseignez le numéro de contribuable britannique (UTR) : dix chiffres.
Sans lui, le paiement est refusé. Ce n'est pas une coquetterie : sans UTR, l'administration ne peut pas être interrogée, et le taux majoré s'appliquerait au sous-traitant sans qu'il ait aucun recours. Autant le lui réclamer avant de le payer.
3. Vérifier le sous-traitant
Menu Sous-traitance → Vérifications → Nouveau.
- Source : « Administration fiscale britannique — vérification CIS (HMRC) ».
- Reportez le statut de déduction rendu : - Paiement brut — aucune déduction, et c'est légitime ; - Taux standard — le sous-traitant est inscrit au régime ; - Taux majoré — l'administration ne le reconnaît pas.
- Notez la référence de vérification rendue par l'administration : c'est elle que vous reporterez sur la déclaration mensuelle.
Le module refuse une vérification CIS sans statut : elle ne dirait rien, et ne permettrait pas de retenir. Il refuse aussi de marquer « conforme » une réponse où l'administration ne reconnaît pas le sous-traitant — c'est ce résultat qui justifie le taux majoré auprès de l'intéressé.
Le taux majoré n'est pas un refus. Un sous-traitant non reconnu se paie : au taux majoré. Le module le laisse passer, avec sa déduction.
Quand faut-il revérifier ?
Pas tous les ans. Tant que le sous-traitant a figuré dans une déclaration mensuelle déposée au cours de l'exercice fiscal courant ou de l'un des deux exercices précédents, aucune re-vérification n'est due. La fiche de la vérification porte deux repères :
- Dernière inclusion en déclaration mensuelle — l'événement qui réarme le compteur ;
- Valable jusqu'au — le 5 avril de fin de couverture, recalculé à chaque dépôt.
Faute d'inclusion, c'est la date de la vérification elle-même qui sert d'ancrage. Une re-vérification manquée fait basculer le sous-traitant au taux majoré de 30 % : le module bloque alors le paiement plutôt que de le laisser partir mal déduit.
La consultation automatique : pourquoi elle est décochée
Vous chercherez peut-être un bouton qui interroge HMRC à votre place. Il existe, mais il est décoché par défaut, et ce n'est pas un oubli.
HMRC n'expose la vérification d'un sous-traitant que par son Transaction Engine XML, qui exige un Vendor ID délivré par HMRC et des identifiants Government Gateway. Son bac à sable développeur gratuit ne sert pas les API XML. Il n'existe donc aucune adresse ouverte à brancher, et le module préfère vous le dire plutôt que de vous laisser croire qu'il vérifie quelque chose.
La fiche de la vérification l'affiche en clair, dans Ce qui manque au registre.
Ce que vous relevez sur le portail vaut verdict. C'est le chemin que prennent réellement les entreprises, et le module le traite comme tel. Saisissez le statut, la référence de vérification et la date dans « Vérification obtenue sur le portail HMRC le » : il en fait un verdict daté, portant sa source, qui périme selon la même règle qu'une réponse de service. Sa provenance dira « Déclaré — saisi à la main », et non « Vérifié à la source » : c'est la vérité, et un verdict déclaré ne vaut pas un verdict vérifié.
Si vous disposez d'un Vendor ID, ou d'un service intermédiaire qui traduit le XML de HMRC
en JSON, renseignez son adresse dans les réglages de la société (Adresse du service de
vérification CIS) et cochez Consulter automatiquement le statut CIS. Le module
attend alors une réponse portant taxTreatment valant gross, net ou unmatched, et
verificationNumber. La passerelle prend alors le premier rang, et sa réponse n'est
jamais écrasée par du déclaratif.
Trois garanties, dans tous les cas :
- le bouton n'appelle personne : il met en file, une tâche planifiée appelle. Aucun paiement n'attend jamais un service extérieur ;
- la consultation ne réécrit jamais le statut que vous avez saisi. Elle constate à côté, avec sa date ;
- un service injoignable, un quota dépassé ou une réponse illisible sont dits, la dernière réponse connue reste affichée avec sa date, et rien n'est bloqué.
4. Payer — et l'erreur à ne pas faire
Sur le paiement, deux montants au lieu d'un :
- Montant brut — ce que le sous-traitant facture. Il ne bouge pas.
- Dont matériaux (hors déduction) — la part de la facture qui ne subit pas la déduction.
La base de déduction est la différence, et c'est sur elle seule que le taux s'applique.
Exemple, au taux standard de 20 % :
| Facture du sous-traitant | 40 000 |
| Dont matériaux | 12 000 |
| Base de déduction | 28 000 |
| Déduction (20 %) | 5 600 |
| Net à payer | 34 400 |
Appliquer 20 % aux 40 000 donnerait 8 000 : 2 400 de trop retenus, à rembourser, et un sous-traitant qui ne vous fait plus confiance. C'est l'erreur classique du régime, et c'est celle que ce module existe pour empêcher.
Le module refuse une part matériaux supérieure à la facture — il resterait une main-d'œuvre négative.
Sans vérification valide, le taux majoré s'applique et le paiement est bloqué par le socle : le module vous montre ce que vous retiendrez si vous passez outre.
5. La déclaration mensuelle
Menu Sous-traitance → Royaume-Uni (CIS) → Déclarations mensuelles → Nouveau.
- Saisissez le début de la période. La fin et la date limite de dépôt se calculent seules d'après les paramètres de la société.
- Rattacher les paiements de la période : le module ramène les paiements britanniques validés ou payés de la période, pas encore déclarés. Les brouillons sont volontairement exclus : ils n'ont pas passé le contrôle d'éligibilité, et les déclarer reviendrait à déclarer ce qu'on n'a pas le droit de payer.
- Les totaux distinguent le brut, les matériaux, la base et la déduction.
- Saisissez le numéro d'accusé rendu par le portail, puis Marquer déposée.
Deux déclarations dont les périodes se chevauchent sont refusées : les mêmes paiements seraient comptés deux fois.
Une fois la déclaration déposée, les paiements qu'elle porte ne se rouvrent plus. Le module refuse de les remettre en brouillon : la déclaration deviendrait fausse sans que l'administration en sache rien. Si vous devez corriger, annulez la déclaration — ce qui relâche ses paiements — ou corrigez auprès de l'administration.
6. Les relevés remis aux sous-traitants
Le dépôt de la déclaration engendre un relevé par sous-traitant payé sur la période : montant brut, matériaux, base, déduction, numéro de contribuable.
Chaque relevé porte une date limite de remise, calculée depuis la fin de la période et le délai réglé dans la société. Passé ce jour, le relevé apparaît en rouge, marqué En retard.
Cliquez sur Remis quand vous l'avez transmis.
Sans ce relevé, le sous-traitant ne peut pas faire valoir la déduction déjà supportée — et il paie deux fois. C'est la raison d'être du document.
Menu Sous-traitance → Royaume-Uni (CIS) → Relevés de déduction pour les voir tous, toutes périodes confondues.
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.