Subcontractor Insurance Compliance, full edition — refuses to post a supplier payment when the subcontractor's certificate of insurance or workers' compensation clearance has expired at the payment date, with a written and traced override. Plus classification codes, rates, experience modification and payroll declarations.
Présentation
Attestations de sous-traitants et assurance accidents du travail — édition complète
Édition complète, pour Odoo 19 Community. Elle prolonge le registre gratuit dyo_attestations_na_lite par le seul geste qu'aucun portail extérieur ne peut faire à votre place.
Le geste qui décide de l'achat
Ce module refuse de confirmer le paiement d'un sous-traitant dont l'attestation a expiré.
Les attestations de sous-traitants sont déjà servies, hors ERP, par des portails d'abonnement : ISNetworld et Avetta aux États-Unis, myCOI, TrustLayer et Billy sur le même créneau, Aprovall et Provigis en France. Ils collectent la pièce, la datent, la font expirer, et vous écrivent. Ils font tout cela très bien.
Aucun d'eux ne peut empêcher votre comptable de cliquer « Confirmer » sur le virement du vendredi. Ce clic se produit dans l'ERP, et le refus doit s'y produire aussi. C'est là que se joue la seule chose qui coûte vraiment : l'argent est parti, et la preuve manquait.
Comment le refus est construit
Le contrôle s'apprécie à la date du paiement, pas à celle du jour. Une attestation périmée la veille ne couvre pas le paiement du lendemain, et une attestation obtenue après coup ne prouve pas ce qui était connu le jour où l'argent est parti.
Le refus nomme la pièce, le sous-traitant et la date d'expiration. « Paiement bloqué » n'aide personne ; « le certificate of insurance de Panhandle Earthworks a expiré le 14 septembre 2025 » se règle par un appel.
Seul un décaissement vers un fournisseur suivi au registre est contrôlé. Un encaissement client, un virement interne ou un tiers hors registre passent sans rien déclencher. Un blocage absurde est le plus court chemin vers une dérogation systématique, et une dérogation systématique ne trace plus rien.
Passer outre reste possible, jamais en silence. La dérogation est réservée au responsable, exige un motif écrit, retient le nom de celui qui la prend et la date, et publie au fil de discussion la liste des blocages franchis. Un écran « Paiements sur dérogation » les réunit : c'est la première liste qu'un contrôleur demande.
La facture fournisseur, elle, n'est pas bloquée. La dette existe, et une comptabilité qui refuse d'enregistrer ce qui est dû devient fausse. La facture porte le constat en clair — ce qui manquera au moment de payer — sans rien empêcher.
Trois modes, et le plus strict est le défaut. « Refuser le paiement » à la livraison ; « consigner au fil de discussion » pour les premières semaines, le temps de rattraper un registre en retard ; « ne rien contrôler ». Un module de conformité dont le contrôle est éteint à la livraison ne protège personne, et personne ne pense à l'allumer.
Les classifications, les taux et les primes
Aucun taux, aucun code de classification n'est livré. Ce n'est pas une paresse, c'est la structure du régime. Le NCCI est un bureau de notation privé : il propose des taux à des États qui les approuvent, les modifient ou les ignorent, et plusieurs États ont leur propre bureau ou leur propre fonds. Au Canada, chaque commission provinciale publie sa propre échelle d'unités de classification. Un même code de métier ne vaut pas le même taux d'un État à l'autre, et il change chaque année.
Un taux saisi sans sa source est refusé par une contrainte, pas par une note. Un taux non sourcé sera tenu pour vrai sans jamais être revérifié, et il finira dans une déclaration signée.
L'unité du taux est saisie, jamais devinée — par tranche de cent, de mille, ou en pourcentage. Un facteur cent dans une déclaration de masse salariale ne se voit pas à la relecture.
La modulation d'expérience est saisie, jamais calculée. Aux États-Unis, le facteur est calculé par le bureau de notation compétent à partir de données de sinistralité que l'ERP n'a pas, selon des paramètres propres à chaque juridiction ; au Canada, le taux personnalisé est notifié par la commission. Le recalculer donnerait un nombre différent de celui qui sera facturé.
La déclaration refuse d'être déposée tant qu'une classification n'a pas de taux relevé. Sa ligne n'est pas calculée à zéro : une prime nulle dans une déclaration signée a l'air d'une déclaration remplie.
Les portails : l'API et son contournement
Le module se greffe sur la chaîne de sources de dyo_connexions_base — il n'en écrit pas une seconde. Il y ajoute une question, « ce tiers est-il couvert, et jusqu'à quand ? », et trois services capables d'y répondre.
Les connecteurs ISNetworld et Avetta sont livrés inactifs, sans clé, et marqués « non éprouvé en production » : aucun de ces éditeurs ne publie de documentation d'API accessible sans compte, et ni le point d'entrée, ni le nom de l'en-tête portant la clé, ni la forme de la réponse n'ont pu être vérifiés par appel réel. URL, en-tête et clé sont modifiables depuis l'écran, et la réponse est lue de façon défensive.
Le dernier maillon est le registre interne — celui que l'édition gratuite remplit à la main. Il ne part jamais sur le réseau, il répond toujours, et il rend la même forme de réponse que les autres. Un utilisateur sans aucun abonnement a donc la fonction complète. Un utilisateur abonné voit la même chose se remplir toute seule. Le contournement est ici le cas normal, pas le repli honteux — et c'est d'autant plus vrai que ces abonnements sont facturés au sous-traitant, pas au donneur d'ordre.
Le module constate, il ne conclut pas
Il dit qu'une attestation a expiré et refuse le paiement. Il ne dit pas que le contrat doit être résilié, ni que le chantier doit s'arrêter. Il produit un montant de prime calculé à partir de ce qu'on lui a donné ; il ne dit pas que c'est le montant dû. La déclaration reste celle de l'entreprise.
Ce qu'il faut avant
dyo_attestations_na_lite (le registre, gratuit), la comptabilité d'Odoo, et dyo_connexions_base pour la chaîne de sources.
Caractéristiques
| Prix | 129 € HT |
|---|---|
| Licence | OPL-1 |
| Séries Odoo | 19.0 : publiée sur l'Odoo Apps Store ; 20.0 : publiée sur l'Odoo Apps Store |
| Version | 1.0.0 |
| Édition | Odoo Community / sur site |
| Nom technique | dyo_attestations_na |
| Domaine | Comptabilité et finance |
| Version gratuite (lite) | dyo_attestations_na_lite |
Prix hors taxes tel qu'affiché sur l'Odoo Apps Store ; l'achat et l'installation se font sur le Store ou via votre instance Omnifloo.