<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tbnetsys</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tbnetsys"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/Tbnetsys"/>
	<updated>2026-10-30T07:08:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66136</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66136"/>
		<updated>2026-05-11T07:01:18Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: /* 3.3 Créer un mandat (workflow) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: PHP 8.4&#039;&#039;&#039;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Module ID&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 493220&lt;br /&gt;
*&#039;&#039;&#039;Famille&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Facturation (billing)&lt;br /&gt;
*&#039;&#039;&#039;Dépend de&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: modFacture, modSociete, modECM&lt;br /&gt;
*&#039;&#039;&#039;Version&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Licence&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].           &lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Table des matières==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*#[[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*#[[#3. Installation|Installation]]&lt;br /&gt;
*#[[#4. Configuration|Configuration]]&lt;br /&gt;
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*#[[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*#[[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*#[[#8. Licence|Licence]]&lt;br /&gt;
*&#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*#[[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*#[[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*#[[#4. Le débours|Le débours]]&lt;br /&gt;
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*#[[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*#[[#8. FAQ|FAQ]]&lt;br /&gt;
*#[[#9. Glossaire|Glossaire]]&lt;br /&gt;
*#[[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installateur / intégrateur / dev==&lt;br /&gt;
&lt;br /&gt;
===1. Cadre légal===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
#être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
#être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
#être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
#porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
#être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
#être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
===2. Fonctionnalités===&lt;br /&gt;
&lt;br /&gt;
*Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
*Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
*&#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
*Refacturation au choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
**&#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
*&#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
*&#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
*&#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
*&#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
*&#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
*&#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Installation===&lt;br /&gt;
&lt;br /&gt;
#Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
#Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Configuration===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Section!!Contenu!!Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||&amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||&amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. Rétention &amp;amp; désinstallation||Durée (années) et conservation des tables||&amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||&amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. Avancé||Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Profils types====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en franchise||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;||au choix&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en dépassement||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;||non&lt;br /&gt;
|-&lt;br /&gt;
|Autres régimes (BNC réel, SAS, SARL)||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||au choix||non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
====Diagnostic de conformité====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Cycle de vie utilisateur===&lt;br /&gt;
&lt;br /&gt;
====5.1 Mandats clients====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
====5.2 Débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
====5.3 Écrans principaux====&lt;br /&gt;
&lt;br /&gt;
=====Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Filtres&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
=====Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=====Saisie d&#039;une ligne (fiche débours en brouillon)=====&lt;br /&gt;
&lt;br /&gt;
*Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
*Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
*&#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
*Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Boutons d&#039;action=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu||Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Validé||Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Refacturé||Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
|Annulé||Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode A&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
*&#039;&#039;&#039;Mode B&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
=====Onglets de la fiche débours=====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche facture client=====&lt;br /&gt;
Le module ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
*Un bandeau « X débours rattachés. Total avancé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Y € » dans le bloc options.&lt;br /&gt;
*Deux boutons en barre d&#039;actions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
*Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche tiers=====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Documentation complémentaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fichier!!Contenu!!Audience&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre||Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Internationalisation===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Préfixe!!Clés!!Domaine&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt;||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt;||93||Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt;||66||Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt;||21||Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt;||19||Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt;||9||Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt;||9||Registre&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt;||8||Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt;||6||Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt;||4||Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. Licence===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Manuel de l&#039;utilisateur==&lt;br /&gt;
&lt;br /&gt;
===1. À quoi ça sert===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
*entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
*relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
#La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
#Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
#Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
#Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
#Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
#Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===2. Premiers pas===&lt;br /&gt;
&lt;br /&gt;
====2.1 Configuration====&lt;br /&gt;
[[File:Config1.png|alt=Capture ecran Config Partie 1|thumb|Capture ecran Config Partie 1]]&lt;br /&gt;
[[File:Config2.png|alt=Capture Ecran Config Partie 2|thumb|Capture Ecran Config Partie 2]]&lt;br /&gt;
[[File:Config3.png|alt=Capture Ecran Config Partie 3|thumb|Capture Ecran Config Partie 3]]&lt;br /&gt;
[[File:Config4.png|alt=Capture Ecran Config Partie 4|thumb|Capture Ecran Config Partie 4]]&lt;br /&gt;
[[File:Config5.png|alt=Capture Ecran Config Partie 5|thumb|Capture Ecran Config Partie 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow&lt;br /&gt;
|-&lt;br /&gt;
|Micro-franchise (débutant·e)||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Micro en dépassement seuil TVA||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Société / autre régime||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
*&#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: registre seul, aucun contrôle bloquant&lt;br /&gt;
**&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
**&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
**&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
*&#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
====2.2 Profil URSSAF====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type d&#039;activité!!Code interne&lt;br /&gt;
|-&lt;br /&gt;
|Vente de marchandises (achat-revente)||&amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Prestations de services BIC||&amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales non réglementées (BNC)||&amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales CIPAV||&amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EI/EURL régime réel||&amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|SAS / SARL gérant minoritaire / majoritaire||&amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Personnalisé||&amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Le mandat client===&lt;br /&gt;
[[File:MandatsClients.png|alt=Les mandats clients|thumb|Les mandats clients]]&lt;br /&gt;
[[File:Fiche mandat.png|alt=Fiche Mandat|thumb|Fiche Mandat]]&lt;br /&gt;
[[File:Mandat signé.png|alt=Mandat signé, justificatif|thumb|Mandat Signé]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
====3.1 À quoi sert un mandat====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3.2 Cycle de vie du mandat====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Brouillon&#039;&#039;&#039;||Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Actif&#039;&#039;&#039;||Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Révoqué&#039;&#039;&#039;||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====3.3 Créer un mandat (workflow)====&lt;br /&gt;
[[File:Creer un mandat.png|alt=Créer un mandat|thumb|Créer un mandat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Date de signature&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aujourd&#039;hui par défaut&lt;br /&gt;
*&#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
*&#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
====3.4 Révoquer un mandat====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
====3.5 Supprimer un mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié||✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié||❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Le débours===&lt;br /&gt;
&lt;br /&gt;
====4.1 Cycle de vie du débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.2 Créer un débours====&lt;br /&gt;
[[File:Créer un débours.png|alt=Créer un débours|thumb|Créer un débours]]&lt;br /&gt;
[[File:Capture Ecran 1 fiche débours.png|alt=Capture Ecran 1 fiche débours|thumb|Capture Ecran 1 fiche débours]]&lt;br /&gt;
[[File:Capture Ecran 2 Fiche débours.png|alt=Capture Ecran 2 Fiche débours|thumb|Capture Ecran 2 Fiche débours]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Libellé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
*&#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.3 Saisir les lignes====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Champ!!Contenu&lt;br /&gt;
|-&lt;br /&gt;
|Description||Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
|Fournisseur||Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
|N° facture fournisseur||Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
|Date facture fournisseur||Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
|HT, TVA, TTC||Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif||Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
|☐ « Facture fournisseur au nom du client »||&#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.4 Téléverser les justificatifs====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.5 Modifier l&#039;en-tête====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.6 Valider le débours====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Contrôle!!Niveau&lt;br /&gt;
|-&lt;br /&gt;
|Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt;||workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif présent sur chaque ligne||workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Case « facture au nom du client » cochée||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle globale||tous&lt;br /&gt;
|-&lt;br /&gt;
|Mention CGI configurée non vide||tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.7 Rattacher à une facture client====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: chaque ligne du débours est insérée comme ligne facture avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
**&amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
**Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*#Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*#Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====4.8 Détacher====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.9 Remboursement (Refacturé → Remboursé)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.10 Annuler / Supprimer====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action!!Quand!!Effet&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Annuler&#039;&#039;&#039;||Brouillon → Refacturé (sauf si facture validée)||Soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rouvrir&#039;&#039;&#039;||Annulé||Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Supprimer&#039;&#039;&#039;||Brouillon ou Annulé||Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Verrouillage légal automatique===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====5.1 Verrouillage des justificatifs débours====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut débours!!Upload!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5.2 Verrouillage des pièces de mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut mandat!!Upload scan!!Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌||❌&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué||❌||✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====5.3 Verrouillage facture validée====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#&#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*#&#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Reports et exports===&lt;br /&gt;
&lt;br /&gt;
====6.1 Registre des débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
====6.2 Journal comptable 467====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
====6.3 Rapport CA / CA réel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
*IR sur versement libératoire si applicable&lt;br /&gt;
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Particularités micro-entrepreneur===&lt;br /&gt;
&lt;br /&gt;
====7.1 Franchise en base====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
*sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
*n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
====7.2 Versement libératoire IR====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====&lt;br /&gt;
&lt;br /&gt;
*Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
*Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. FAQ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
*Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===9. Glossaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Terme!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Débours&#039;&#039;&#039;||Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mandat&#039;&#039;&#039;||Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Compte 467&#039;&#039;&#039;||Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CGI&#039;&#039;&#039;||Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;special_code 493220&#039;&#039;&#039;||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039;||Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039;||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow simple&#039;&#039;&#039;||Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow complet&#039;&#039;&#039;||Strict CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===10. Aide et contact===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: audit automatique de tous vos débours validés.&lt;br /&gt;
*&#039;&#039;&#039;Documentation technique&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&#039;&#039;&#039;Mainteneur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Capture_Ecran_2_Fiche_d%C3%A9bours.png&amp;diff=66135</id>
		<title>File:Capture Ecran 2 Fiche débours.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Capture_Ecran_2_Fiche_d%C3%A9bours.png&amp;diff=66135"/>
		<updated>2026-05-11T07:00:36Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran 2 Fiche débours&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Capture_Ecran_1_fiche_d%C3%A9bours.png&amp;diff=66134</id>
		<title>File:Capture Ecran 1 fiche débours.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Capture_Ecran_1_fiche_d%C3%A9bours.png&amp;diff=66134"/>
		<updated>2026-05-11T06:59:19Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran 1 fiche débours&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Cr%C3%A9er_un_d%C3%A9bours.png&amp;diff=66133</id>
		<title>File:Créer un débours.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Cr%C3%A9er_un_d%C3%A9bours.png&amp;diff=66133"/>
		<updated>2026-05-11T06:55:25Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Créer un débours&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Creer_un_mandat.png&amp;diff=66132</id>
		<title>File:Creer un mandat.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Creer_un_mandat.png&amp;diff=66132"/>
		<updated>2026-05-11T06:53:16Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creer un mandat&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Cr%C3%A9er_un_mandat.png&amp;diff=66131</id>
		<title>File:Créer un mandat.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Cr%C3%A9er_un_mandat.png&amp;diff=66131"/>
		<updated>2026-05-11T06:51:17Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creer un mandat&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66130</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66130"/>
		<updated>2026-05-11T06:49:41Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: /* 3. Le mandat client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: PHP 8.4&#039;&#039;&#039;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Module ID&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 493220&lt;br /&gt;
*&#039;&#039;&#039;Famille&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Facturation (billing)&lt;br /&gt;
*&#039;&#039;&#039;Dépend de&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: modFacture, modSociete, modECM&lt;br /&gt;
*&#039;&#039;&#039;Version&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Licence&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].           &lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Table des matières==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*#[[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*#[[#3. Installation|Installation]]&lt;br /&gt;
*#[[#4. Configuration|Configuration]]&lt;br /&gt;
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*#[[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*#[[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*#[[#8. Licence|Licence]]&lt;br /&gt;
*&#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*#[[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*#[[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*#[[#4. Le débours|Le débours]]&lt;br /&gt;
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*#[[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*#[[#8. FAQ|FAQ]]&lt;br /&gt;
*#[[#9. Glossaire|Glossaire]]&lt;br /&gt;
*#[[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installateur / intégrateur / dev==&lt;br /&gt;
&lt;br /&gt;
===1. Cadre légal===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
#être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
#être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
#être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
#porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
#être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
#être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
===2. Fonctionnalités===&lt;br /&gt;
&lt;br /&gt;
*Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
*Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
*&#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
*Refacturation au choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
**&#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
*&#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
*&#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
*&#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
*&#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
*&#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
*&#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Installation===&lt;br /&gt;
&lt;br /&gt;
#Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
#Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Configuration===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Section!!Contenu!!Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||&amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||&amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. Rétention &amp;amp; désinstallation||Durée (années) et conservation des tables||&amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||&amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. Avancé||Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Profils types====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en franchise||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;||au choix&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en dépassement||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;||non&lt;br /&gt;
|-&lt;br /&gt;
|Autres régimes (BNC réel, SAS, SARL)||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||au choix||non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
====Diagnostic de conformité====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Cycle de vie utilisateur===&lt;br /&gt;
&lt;br /&gt;
====5.1 Mandats clients====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
====5.2 Débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
====5.3 Écrans principaux====&lt;br /&gt;
&lt;br /&gt;
=====Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Filtres&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
=====Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=====Saisie d&#039;une ligne (fiche débours en brouillon)=====&lt;br /&gt;
&lt;br /&gt;
*Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
*Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
*&#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
*Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Boutons d&#039;action=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu||Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Validé||Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Refacturé||Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
|Annulé||Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode A&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
*&#039;&#039;&#039;Mode B&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
=====Onglets de la fiche débours=====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche facture client=====&lt;br /&gt;
Le module ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
*Un bandeau « X débours rattachés. Total avancé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Y € » dans le bloc options.&lt;br /&gt;
*Deux boutons en barre d&#039;actions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
*Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche tiers=====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Documentation complémentaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fichier!!Contenu!!Audience&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre||Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Internationalisation===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Préfixe!!Clés!!Domaine&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt;||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt;||93||Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt;||66||Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt;||21||Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt;||19||Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt;||9||Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt;||9||Registre&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt;||8||Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt;||6||Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt;||4||Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. Licence===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Manuel de l&#039;utilisateur==&lt;br /&gt;
&lt;br /&gt;
===1. À quoi ça sert===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
*entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
*relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
#La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
#Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
#Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
#Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
#Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
#Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===2. Premiers pas===&lt;br /&gt;
&lt;br /&gt;
====2.1 Configuration====&lt;br /&gt;
[[File:Config1.png|alt=Capture ecran Config Partie 1|thumb|Capture ecran Config Partie 1]]&lt;br /&gt;
[[File:Config2.png|alt=Capture Ecran Config Partie 2|thumb|Capture Ecran Config Partie 2]]&lt;br /&gt;
[[File:Config3.png|alt=Capture Ecran Config Partie 3|thumb|Capture Ecran Config Partie 3]]&lt;br /&gt;
[[File:Config4.png|alt=Capture Ecran Config Partie 4|thumb|Capture Ecran Config Partie 4]]&lt;br /&gt;
[[File:Config5.png|alt=Capture Ecran Config Partie 5|thumb|Capture Ecran Config Partie 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow&lt;br /&gt;
|-&lt;br /&gt;
|Micro-franchise (débutant·e)||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Micro en dépassement seuil TVA||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Société / autre régime||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
*&#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: registre seul, aucun contrôle bloquant&lt;br /&gt;
**&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
**&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
**&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
*&#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
====2.2 Profil URSSAF====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type d&#039;activité!!Code interne&lt;br /&gt;
|-&lt;br /&gt;
|Vente de marchandises (achat-revente)||&amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Prestations de services BIC||&amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales non réglementées (BNC)||&amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales CIPAV||&amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EI/EURL régime réel||&amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|SAS / SARL gérant minoritaire / majoritaire||&amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Personnalisé||&amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Le mandat client===&lt;br /&gt;
[[File:MandatsClients.png|alt=Les mandats clients|thumb|Les mandats clients]]&lt;br /&gt;
[[File:Fiche mandat.png|alt=Fiche Mandat|thumb|Fiche Mandat]]&lt;br /&gt;
[[File:Mandat signé.png|alt=Mandat signé, justificatif|thumb|Mandat Signé]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
====3.1 À quoi sert un mandat====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3.2 Cycle de vie du mandat====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Brouillon&#039;&#039;&#039;||Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Actif&#039;&#039;&#039;||Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Révoqué&#039;&#039;&#039;||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====3.3 Créer un mandat (workflow)====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Date de signature&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aujourd&#039;hui par défaut&lt;br /&gt;
*&#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
*&#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
====3.4 Révoquer un mandat====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
====3.5 Supprimer un mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié||✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié||❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Le débours===&lt;br /&gt;
&lt;br /&gt;
====4.1 Cycle de vie du débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.2 Créer un débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Libellé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
*&#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.3 Saisir les lignes====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Champ!!Contenu&lt;br /&gt;
|-&lt;br /&gt;
|Description||Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
|Fournisseur||Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
|N° facture fournisseur||Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
|Date facture fournisseur||Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
|HT, TVA, TTC||Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif||Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
|☐ « Facture fournisseur au nom du client »||&#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.4 Téléverser les justificatifs====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.5 Modifier l&#039;en-tête====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.6 Valider le débours====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Contrôle!!Niveau&lt;br /&gt;
|-&lt;br /&gt;
|Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt;||workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif présent sur chaque ligne||workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Case « facture au nom du client » cochée||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle globale||tous&lt;br /&gt;
|-&lt;br /&gt;
|Mention CGI configurée non vide||tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.7 Rattacher à une facture client====&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: chaque ligne du débours est insérée comme ligne facture avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
**&amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
**Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*#Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*#Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====4.8 Détacher====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.9 Remboursement (Refacturé → Remboursé)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.10 Annuler / Supprimer====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action!!Quand!!Effet&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Annuler&#039;&#039;&#039;||Brouillon → Refacturé (sauf si facture validée)||Soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rouvrir&#039;&#039;&#039;||Annulé||Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Supprimer&#039;&#039;&#039;||Brouillon ou Annulé||Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Verrouillage légal automatique===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====5.1 Verrouillage des justificatifs débours====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut débours!!Upload!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5.2 Verrouillage des pièces de mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut mandat!!Upload scan!!Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌||❌&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué||❌||✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====5.3 Verrouillage facture validée====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#&#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*#&#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Reports et exports===&lt;br /&gt;
&lt;br /&gt;
====6.1 Registre des débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
====6.2 Journal comptable 467====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
====6.3 Rapport CA / CA réel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
*IR sur versement libératoire si applicable&lt;br /&gt;
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Particularités micro-entrepreneur===&lt;br /&gt;
&lt;br /&gt;
====7.1 Franchise en base====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
*sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
*n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
====7.2 Versement libératoire IR====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====&lt;br /&gt;
&lt;br /&gt;
*Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
*Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. FAQ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
*Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===9. Glossaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Terme!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Débours&#039;&#039;&#039;||Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mandat&#039;&#039;&#039;||Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Compte 467&#039;&#039;&#039;||Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CGI&#039;&#039;&#039;||Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;special_code 493220&#039;&#039;&#039;||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039;||Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039;||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow simple&#039;&#039;&#039;||Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow complet&#039;&#039;&#039;||Strict CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===10. Aide et contact===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: audit automatique de tous vos débours validés.&lt;br /&gt;
*&#039;&#039;&#039;Documentation technique&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&#039;&#039;&#039;Mainteneur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Mandat_sign%C3%A9.png&amp;diff=66129</id>
		<title>File:Mandat signé.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Mandat_sign%C3%A9.png&amp;diff=66129"/>
		<updated>2026-05-11T06:48:57Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mandat Signé&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Fiche_mandat.png&amp;diff=66128</id>
		<title>File:Fiche mandat.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Fiche_mandat.png&amp;diff=66128"/>
		<updated>2026-05-11T06:47:21Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fiche Mandat&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:MandatsClients.png&amp;diff=66127</id>
		<title>File:MandatsClients.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:MandatsClients.png&amp;diff=66127"/>
		<updated>2026-05-11T06:45:05Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Les mandats Clients&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66126</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66126"/>
		<updated>2026-05-11T06:42:21Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: /* 2.1 Configuration */ Captures Ecran&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: PHP 8.4&#039;&#039;&#039;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Module ID&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 493220&lt;br /&gt;
*&#039;&#039;&#039;Famille&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Facturation (billing)&lt;br /&gt;
*&#039;&#039;&#039;Dépend de&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: modFacture, modSociete, modECM&lt;br /&gt;
*&#039;&#039;&#039;Version&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Licence&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].           &lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Table des matières==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*#[[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*#[[#3. Installation|Installation]]&lt;br /&gt;
*#[[#4. Configuration|Configuration]]&lt;br /&gt;
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*#[[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*#[[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*#[[#8. Licence|Licence]]&lt;br /&gt;
*&#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*#[[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*#[[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*#[[#4. Le débours|Le débours]]&lt;br /&gt;
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*#[[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*#[[#8. FAQ|FAQ]]&lt;br /&gt;
*#[[#9. Glossaire|Glossaire]]&lt;br /&gt;
*#[[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installateur / intégrateur / dev==&lt;br /&gt;
&lt;br /&gt;
===1. Cadre légal===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
#être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
#être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
#être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
#porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
#être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
#être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
===2. Fonctionnalités===&lt;br /&gt;
&lt;br /&gt;
*Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
*Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
*&#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
*Refacturation au choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
**&#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
*&#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
*&#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
*&#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
*&#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
*&#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
*&#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Installation===&lt;br /&gt;
&lt;br /&gt;
#Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
#Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Configuration===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Section!!Contenu!!Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||&amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||&amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. Rétention &amp;amp; désinstallation||Durée (années) et conservation des tables||&amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||&amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. Avancé||Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Profils types====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en franchise||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;||au choix&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en dépassement||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;||non&lt;br /&gt;
|-&lt;br /&gt;
|Autres régimes (BNC réel, SAS, SARL)||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||au choix||non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
====Diagnostic de conformité====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Cycle de vie utilisateur===&lt;br /&gt;
&lt;br /&gt;
====5.1 Mandats clients====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
====5.2 Débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
====5.3 Écrans principaux====&lt;br /&gt;
&lt;br /&gt;
=====Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Filtres&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
=====Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=====Saisie d&#039;une ligne (fiche débours en brouillon)=====&lt;br /&gt;
&lt;br /&gt;
*Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
*Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
*&#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
*Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Boutons d&#039;action=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu||Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Validé||Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Refacturé||Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
|Annulé||Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode A&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
*&#039;&#039;&#039;Mode B&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
=====Onglets de la fiche débours=====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche facture client=====&lt;br /&gt;
Le module ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
*Un bandeau « X débours rattachés. Total avancé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Y € » dans le bloc options.&lt;br /&gt;
*Deux boutons en barre d&#039;actions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
*Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche tiers=====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Documentation complémentaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fichier!!Contenu!!Audience&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre||Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Internationalisation===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Préfixe!!Clés!!Domaine&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt;||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt;||93||Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt;||66||Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt;||21||Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt;||19||Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt;||9||Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt;||9||Registre&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt;||8||Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt;||6||Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt;||4||Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. Licence===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Manuel de l&#039;utilisateur==&lt;br /&gt;
&lt;br /&gt;
===1. À quoi ça sert===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
*entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
*relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
#La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
#Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
#Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
#Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
#Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
#Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===2. Premiers pas===&lt;br /&gt;
&lt;br /&gt;
====2.1 Configuration====&lt;br /&gt;
[[File:Config1.png|alt=Capture ecran Config Partie 1|thumb|Capture ecran Config Partie 1]]&lt;br /&gt;
[[File:Config2.png|alt=Capture Ecran Config Partie 2|thumb|Capture Ecran Config Partie 2]]&lt;br /&gt;
[[File:Config3.png|alt=Capture Ecran Config Partie 3|thumb|Capture Ecran Config Partie 3]]&lt;br /&gt;
[[File:Config4.png|alt=Capture Ecran Config Partie 4|thumb|Capture Ecran Config Partie 4]]&lt;br /&gt;
[[File:Config5.png|alt=Capture Ecran Config Partie 5|thumb|Capture Ecran Config Partie 5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow&lt;br /&gt;
|-&lt;br /&gt;
|Micro-franchise (débutant·e)||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Micro en dépassement seuil TVA||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Société / autre régime||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
*&#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: registre seul, aucun contrôle bloquant&lt;br /&gt;
**&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
**&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
**&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
*&#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
====2.2 Profil URSSAF====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type d&#039;activité!!Code interne&lt;br /&gt;
|-&lt;br /&gt;
|Vente de marchandises (achat-revente)||&amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Prestations de services BIC||&amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales non réglementées (BNC)||&amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales CIPAV||&amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EI/EURL régime réel||&amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|SAS / SARL gérant minoritaire / majoritaire||&amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Personnalisé||&amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Le mandat client===&lt;br /&gt;
&lt;br /&gt;
====3.1 À quoi sert un mandat====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3.2 Cycle de vie du mandat====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Brouillon&#039;&#039;&#039;||Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Actif&#039;&#039;&#039;||Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Révoqué&#039;&#039;&#039;||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====3.3 Créer un mandat (workflow)====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Date de signature&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aujourd&#039;hui par défaut&lt;br /&gt;
*&#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
*&#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
====3.4 Révoquer un mandat====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
====3.5 Supprimer un mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié||✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié||❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Le débours===&lt;br /&gt;
&lt;br /&gt;
====4.1 Cycle de vie du débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.2 Créer un débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Libellé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
*&#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.3 Saisir les lignes====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Champ!!Contenu&lt;br /&gt;
|-&lt;br /&gt;
|Description||Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
|Fournisseur||Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
|N° facture fournisseur||Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
|Date facture fournisseur||Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
|HT, TVA, TTC||Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif||Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
|☐ « Facture fournisseur au nom du client »||&#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.4 Téléverser les justificatifs====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.5 Modifier l&#039;en-tête====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.6 Valider le débours====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Contrôle!!Niveau&lt;br /&gt;
|-&lt;br /&gt;
|Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt;||workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif présent sur chaque ligne||workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Case « facture au nom du client » cochée||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle globale||tous&lt;br /&gt;
|-&lt;br /&gt;
|Mention CGI configurée non vide||tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.7 Rattacher à une facture client====&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: chaque ligne du débours est insérée comme ligne facture avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
**&amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
**Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*#Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*#Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====4.8 Détacher====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.9 Remboursement (Refacturé → Remboursé)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.10 Annuler / Supprimer====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action!!Quand!!Effet&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Annuler&#039;&#039;&#039;||Brouillon → Refacturé (sauf si facture validée)||Soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rouvrir&#039;&#039;&#039;||Annulé||Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Supprimer&#039;&#039;&#039;||Brouillon ou Annulé||Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Verrouillage légal automatique===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====5.1 Verrouillage des justificatifs débours====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut débours!!Upload!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5.2 Verrouillage des pièces de mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut mandat!!Upload scan!!Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌||❌&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué||❌||✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====5.3 Verrouillage facture validée====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#&#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*#&#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Reports et exports===&lt;br /&gt;
&lt;br /&gt;
====6.1 Registre des débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
====6.2 Journal comptable 467====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
====6.3 Rapport CA / CA réel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
*IR sur versement libératoire si applicable&lt;br /&gt;
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Particularités micro-entrepreneur===&lt;br /&gt;
&lt;br /&gt;
====7.1 Franchise en base====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
*sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
*n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
====7.2 Versement libératoire IR====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====&lt;br /&gt;
&lt;br /&gt;
*Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
*Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. FAQ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
*Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===9. Glossaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Terme!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Débours&#039;&#039;&#039;||Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mandat&#039;&#039;&#039;||Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Compte 467&#039;&#039;&#039;||Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CGI&#039;&#039;&#039;||Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;special_code 493220&#039;&#039;&#039;||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039;||Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039;||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow simple&#039;&#039;&#039;||Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow complet&#039;&#039;&#039;||Strict CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===10. Aide et contact===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: audit automatique de tous vos débours validés.&lt;br /&gt;
*&#039;&#039;&#039;Documentation technique&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&#039;&#039;&#039;Mainteneur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Config5.png&amp;diff=66125</id>
		<title>File:Config5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Config5.png&amp;diff=66125"/>
		<updated>2026-05-11T06:41:50Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran Config Partie 5&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Config4.png&amp;diff=66124</id>
		<title>File:Config4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Config4.png&amp;diff=66124"/>
		<updated>2026-05-11T06:40:34Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran Config Partie 4&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Config3.png&amp;diff=66123</id>
		<title>File:Config3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Config3.png&amp;diff=66123"/>
		<updated>2026-05-11T06:39:11Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran Config Partie 3&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Config2.png&amp;diff=66122</id>
		<title>File:Config2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Config2.png&amp;diff=66122"/>
		<updated>2026-05-11T06:37:08Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture Ecran Config 2&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Config1.png&amp;diff=66121</id>
		<title>File:Config1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Config1.png&amp;diff=66121"/>
		<updated>2026-05-11T06:35:18Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;capture ecran config 1&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66119</id>
		<title>Module Factur-X TBNETSYS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66119"/>
		<updated>2026-05-10T21:57:17Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dispatch pdp.png|alt=Dispatch PDP|thumb|Dispatch PDP]]&lt;br /&gt;
&lt;br /&gt;
=facturxtbnetsys=&lt;br /&gt;
&lt;br /&gt;
Plugin Dolibarr de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; qui régénère chaque facture client au format &#039;&#039;&#039;Factur-X&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF/A-3 avec un XML EN16931 (CII) embarqué, selon les spécifications françaises FNFE (profil EN16931 / Comfort).&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&lt;br /&gt;
&lt;br /&gt;
Deux backends de génération PDF interchangeables, sélectionnables dans l&#039;onglet Paramétrage section « Pipeline PDF »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;horstoeko/PDF/A-3B portable&#039;&#039;&#039; &#039;&#039;(défaut)&#039;&#039;. Sous-processus PHP CLI utilisant la librairie &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; embarquée dans &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;. &#039;&#039;&#039;Aucune dépendance système&#039;&#039;&#039; hors php-cli. Validation FNFE/PDP strictement identique au mode 3U. Fonctionne tel quel sur tout hébergement Dolibarr, y compris mutualisé.&lt;br /&gt;
*&#039;&#039;&#039;Mustang/PDF/A-3U strict&#039;&#039;&#039;. Pipeline historique Ghostscript + Mustang CLI. Recommandé pour archivage légal long terme (extractibilité Unicode garantie). Nécessite Ghostscript, Java JRE, Mustang JAR et le profil ICC sRGB sur le serveur (cf. § Installation des prérequis système). À choisir explicitement dans l&#039;onglet Paramétrage.&lt;br /&gt;
&lt;br /&gt;
Le mode par défaut horstoeko ne nécessite que l&#039;extension PHP &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; côté CLI (généralement présente). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne l&#039;a pas, pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; vers une version qui l&#039;inclut (par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Côté pilotage de la transmission, le plugin fournit une page &#039;&#039;&#039;Dispatch PDP&#039;&#039;&#039; qui liste les factures candidates avec leur statut local (SIREN vendeur/acheteur, PDF Factur-X présent) et leur statut côté plateforme (conformité, transmission). Deux actions en série sont proposées avec &#039;&#039;&#039;popup de progression en temps réel&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;« Vérifier la sélection »&#039;&#039;&#039;. Interroge SUPERPDP pour chaque facture cochée (validation Factur-X + statut transmission). Compteurs colorés (conformes / non conformes / transmises / en cours / en échec / jamais transmises) et journal détaillé par facture.&lt;br /&gt;
*&#039;&#039;&#039;« Envoyer au PDP la sélection »&#039;&#039;&#039;. Envoie effectivement chaque facture éligible vers SUPERPDP (avec confirmation préalable). Compteurs envoyées / ignorées / en erreur ; les factures déjà transmises ou non éligibles sont automatiquement ignorées.&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la popup affiche une barre d&#039;avancement, le numéro de la facture en cours, et un bouton d&#039;annulation. Les résultats sont persistés au fur et à mesure&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vous pouvez fermer la popup à mi-parcours et reprendre plus tard sans perdre ce qui a déjà été traité, ce qui rend le contrôle et l&#039;envoi de gros stocks (centaines voire milliers de factures) confortables et résistants aux timeouts.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compatibilité==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Composant!!Version requise&lt;br /&gt;
|-&lt;br /&gt;
|Dolibarr||22.0.3 ou supérieur&lt;br /&gt;
|-&lt;br /&gt;
|PHP||8.2 minimum (8.4 recommandé)&lt;br /&gt;
|-&lt;br /&gt;
|Système d&#039;exploitation cible||Debian 13 (les commandes ci-dessous sont prévues pour Debian/Ubuntu)&lt;br /&gt;
|-&lt;br /&gt;
|Multi-entité (Multicompany)||Pris en charge. Toutes les requêtes filtrent par &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;getEntity(&#039;invoice&#039;)&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;getEntity(&#039;bank_account&#039;)&amp;lt;/code&amp;gt;) et la table de cache PDP &amp;lt;code&amp;gt;llx_facturxtbnetsys_pdp_check&amp;lt;/code&amp;gt; porte une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; avec index unique &amp;lt;code&amp;gt;(fk_facture, entity)&amp;lt;/code&amp;gt;, ce qui isole les données par société sans collision.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sur d&#039;autres distributions (RedHat, Alpine, etc.) le principe reste identique mais les noms de paquets et le gestionnaire (&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;…) changent ; adapter en conséquence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Choix du moteur PDF. Mustang ou horstoeko ?==&lt;br /&gt;
&lt;br /&gt;
Le plugin propose &#039;&#039;&#039;deux moteurs PDF interchangeables&#039;&#039;&#039; au choix de l&#039;utilisateur, sélectionnables dans l&#039;onglet &#039;&#039;Paramétrage&#039;&#039; après installation. Le mode &#039;&#039;&#039;horstoeko (PDF/A-3B portable)&#039;&#039;&#039; est le &#039;&#039;&#039;défaut depuis la version 1.1.0&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il fonctionne sans aucune dépendance système et couvre la quasi-totalité des cas d&#039;usage. Le mode Mustang reste disponible pour les utilisateurs qui ont besoin d&#039;un archivage légal PDF/A-3U strict avec extractibilité Unicode garantie ; il s&#039;active explicitement dans l&#039;onglet Paramétrage. Avant de poursuivre, choisissez celui qui correspond à votre environnement et à vos contraintes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la suite du README s&#039;organise autour de ce choix.&lt;br /&gt;
&lt;br /&gt;
===Arbre de décision===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Question!!Réponse → Mode à choisir&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Votre archivage légal exige-t-il l&#039;extractibilité Unicode du texte (PDF/A-3U strict) ?&#039;&#039;&#039;||Non → &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (défaut, rien à configurer)&lt;br /&gt;
|-&lt;br /&gt;
|Si oui&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: avez-vous un accès terminal au serveur avec privilèges sudo ou root ?||Oui → &#039;&#039;&#039;Mustang&#039;&#039;&#039; recommandé (extractibilité Unicode garantie)&lt;br /&gt;
|-&lt;br /&gt;
|Sinon (pas d&#039;accès root)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:||&#039;&#039;&#039;horstoeko&#039;&#039;&#039; reste le seul choix possible. Mustang nécessite root pour installer Ghostscript / Java / Mustang JAR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Comparatif détaillé===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Critère!!Mode &#039;&#039;&#039;Mustang&#039;&#039;&#039; (PDF/A-3U strict)!!Mode &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (PDF/A-3B portable)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Niveau PDF/A&#039;&#039;&#039;||3U. Extractibilité Unicode garantie (archivage légal long terme, accessibilité, indexation, recherche plein texte)||3B. Apparence fidèle, validité format Factur-X, archivage acceptable mais sans garantie d&#039;extractibilité Unicode&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Validation FNFE / PDP&#039;&#039;&#039;||✓ 0 erreur sur les 189 contrôles XSD CII + EN16931 + BR-FR-CTC-Flux2||✓ 0 erreur sur les &#039;&#039;&#039;mêmes&#039;&#039;&#039; 189 contrôles (validation strictement identique côté SUPERPDP)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;XML CII embarqué&#039;&#039;&#039;||Identique (généré par le builder du module)||Identique (généré par le builder du module)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Accès terminal serveur requis&#039;&#039;&#039;||&#039;&#039;&#039;Oui. Sudo ou root indispensable&#039;&#039;&#039; pour installer Ghostscript, Java JRE, Mustang JAR, profil ICC sRGB||&#039;&#039;&#039;Non. Aucune installation système&#039;&#039;&#039;. Le module fonctionne tel quel via PHP CLI&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Hébergement mutualisé / instance managée sans SSH&#039;&#039;&#039;||❌ Inadapté||✓ Pleinement supporté&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Empreinte serveur&#039;&#039;&#039;||~50 Mo (Java + Mustang) en plus des paquets système habituels||~27 Mo de &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer embarqués dans le module&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Robustesse face à un PDF source quelconque&#039;&#039;&#039;||Ghostscript ré-encode entièrement le PDF en PDF/A-3 valide, quel que soit le PDF source. Aucune contrainte sur les polices ou les modèles utilisés par Dolibarr ou par d&#039;autres modules||Repose sur le PDF source produit par Dolibarr (modèle « crabe » par défaut). Couvre les cas standards, mais un PDF source produit par un modèle tiers exotique peut donner un PDF/A-3B moins propre&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Validation Schematron au niveau pipeline local&#039;&#039;&#039;||Oui (Mustang valide XSD + règles métier FNFE en local)||Validation locale par horstoeko/zugferd côté XML uniquement ; la validation Schematron complète est faite côté SUPERPDP via &amp;lt;code&amp;gt;validation_reports&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Les deux modes peuvent coexister===&lt;br /&gt;
&lt;br /&gt;
Le choix est fait par une simple constante dans Dolibarr (&amp;lt;code&amp;gt;FACTURXTBNETSYS_PDF_ENGINE&amp;lt;/code&amp;gt;). Vous pouvez&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Démarrer en horstoeko&#039;&#039;&#039; (défaut, sans rien configurer) pour valider le plugin sans toucher au système (test, validation fonctionnelle)&lt;br /&gt;
*&#039;&#039;&#039;Basculer vers Mustang&#039;&#039;&#039; plus tard si vos exigences d&#039;archivage évoluent. La bascule est instantanée, sans régénérer les anciennes factures&lt;br /&gt;
*&#039;&#039;&#039;Inversement, dégrader vers horstoeko&#039;&#039;&#039; si une migration vers un hébergement mutualisé devient nécessaire&lt;br /&gt;
&lt;br /&gt;
Aucun re-traitement des factures déjà générées n&#039;est requis lors d&#039;un changement de mode&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les anciennes factures restent valides, seules les nouvelles seront générées avec le moteur courant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation des prérequis système. &#039;&#039;Mode Mustang uniquement&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode horstoeko ?&#039;&#039;&#039; Sautez cette section et passez directement à [[#Mode horstoeko. Aucun prérequis système]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette section est conçue pour un utilisateur &#039;&#039;&#039;non administrateur système&#039;&#039;&#039; mais disposant tout de même d&#039;un &#039;&#039;&#039;accès terminal avec privilèges sudo ou root&#039;&#039;&#039;. Sans cet accès, le mode Mustang n&#039;est pas installable. Basculer sur le mode horstoeko. Chaque étape est expliquée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: à quoi sert l&#039;outil, comment l&#039;installer, comment vérifier qu&#039;il est correctement en place. Suivre les blocs dans l&#039;ordre.&lt;br /&gt;
&lt;br /&gt;
===Conventions===&lt;br /&gt;
&lt;br /&gt;
*Toutes les commandes doivent être exécutées &#039;&#039;&#039;avec les droits root&#039;&#039;&#039; sur le serveur Dolibarr. Si vous n&#039;êtes pas connecté en root, préfixer chaque commande par &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; (par exemple &amp;lt;code&amp;gt;sudo apt install …&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; est l&#039;utilisateur Linux sous lequel le serveur web (Apache/Nginx) exécute Dolibarr. Lorsqu&#039;une commande doit être lancée en tant que &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;, c&#039;est explicitement indiqué.&lt;br /&gt;
*&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; au début d&#039;une ligne signifie « commentaire, ne pas taper ».&lt;br /&gt;
*Toujours &#039;&#039;&#039;copier-coller&#039;&#039;&#039; les commandes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un caractère manquant ou un tiret recopié à la main peut casser l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
===Étape 1. Mettre à jour la liste des paquets===&lt;br /&gt;
&lt;br /&gt;
Avant d&#039;installer quoi que ce soit, on rafraîchit l&#039;index du gestionnaire de paquets pour récupérer les versions les plus récentes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande ne modifie rien sur le système&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: elle se contente de télécharger la liste des paquets disponibles. Elle peut afficher quelques avertissements (&amp;lt;code&amp;gt;Different settings for HTTP/HTTPS&amp;lt;/code&amp;gt;), c&#039;est normal.&lt;br /&gt;
&lt;br /&gt;
===Étape 2. Installer Ghostscript===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Ghostscript (commande &amp;lt;code&amp;gt;gs&amp;lt;/code&amp;gt;) est l&#039;outil qui convertit le PDF généré par Dolibarr en &#039;&#039;&#039;PDF/A-3&#039;&#039;&#039;, le format obligatoire pour qu&#039;un Factur-X soit valide. Sans lui, le PDF n&#039;est pas conforme et le destinataire le rejettera.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y ghostscript&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;option &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; accepte automatiquement les questions « voulez-vous continuer ? » que pose &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher un numéro de version (par ex. &amp;lt;code&amp;gt;10.03.1&amp;lt;/code&amp;gt;). Si la commande renvoie &amp;lt;code&amp;gt;command not found&amp;lt;/code&amp;gt;, l&#039;installation a échoué. Relire les messages d&#039;erreur d&#039;&amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Étape 3. Installer Java (JRE)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mustang (étape suivante) est un programme écrit en Java. Pour pouvoir l&#039;exécuter, il faut une JVM (machine virtuelle Java) installée sur le serveur. On installe le &#039;&#039;&#039;JDK headless&#039;&#039;&#039; (sans interface graphique, suffisant pour un serveur).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y default-jre default-jdk-headless&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;default-jre&amp;lt;/code&amp;gt; (Java Runtime Environment) suffirait pour exécuter un programme, mais &amp;lt;code&amp;gt;default-jdk-headless&amp;lt;/code&amp;gt; garantit que tous les outils annexes (notamment ceux utilisés par Mustang à l&#039;initialisation) soient disponibles. Les deux paquets ne se contredisent pas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher quelque chose comme &amp;lt;code&amp;gt;openjdk version &amp;quot;17.0.x&amp;quot;&amp;lt;/code&amp;gt;. La sortie part &#039;&#039;&#039;par défaut sur la sortie d&#039;erreur&#039;&#039;&#039;, c&#039;est normal. Le résultat reste lisible à l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
===Étape 4. Télécharger Mustang CLI===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mustang est l&#039;outil qui prend le PDF/A-3 fabriqué à l&#039;étape 2 et le XML EN16931 généré par le plugin, puis les fusionne en un véritable PDF Factur-X (avec les bonnes métadonnées XMP, le nom canonique &amp;lt;code&amp;gt;factur-x.xml&amp;lt;/code&amp;gt; du fichier embarqué, etc.). Le plugin appelle Mustang en arrière-plan à chaque régénération de facture.&lt;br /&gt;
&lt;br /&gt;
Mustang n&#039;est pas distribué via &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;. Il faut télécharger le &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; (un programme Java empaqueté) depuis sa page officielle GitHub et le placer à un endroit fixe. Le plugin cherche par défaut le fichier dans &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Se positionner dans /opt (répertoire conventionnel pour les logiciels tiers)&lt;br /&gt;
cd /opt&lt;br /&gt;
&lt;br /&gt;
# Télécharger la version 2.22.0 (testée et validée avec ce plugin)&lt;br /&gt;
wget github.com/ZUGFeRD/mustangproject/releases/download/core-2.22.0/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; est un téléchargeur en ligne de commande. S&#039;il n&#039;est pas installé, l&#039;ajouter avec &amp;lt;code&amp;gt;apt install -y wget&amp;lt;/code&amp;gt;. La commande crée le fichier &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; (~30 Mo).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /opt/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher une ligne avec une taille d&#039;environ 30 Mo. Si le fichier est plus petit (quelques Ko), le téléchargement a échoué. Supprimer le fichier (&amp;lt;code&amp;gt;rm /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;) et recommencer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si vous voulez utiliser une autre version de Mustang&#039;&#039;&#039; (par ex. une plus récente), saisissez le nouveau chemin dans la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; de Dolibarr, section « Chemins des utilitaires système » (champ « Mustang CLI (.jar) »).&lt;br /&gt;
&lt;br /&gt;
===Étape 5. Vérifier la présence du profil ICC sRGB===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF/A-3 doit déclarer un &#039;&#039;&#039;profil colorimétrique de référence&#039;&#039;&#039; (le profil ICC). Le plugin utilise sRGB par défaut, le plus standard. Ce profil est généralement présent par défaut sur Debian via le paquet &amp;lt;code&amp;gt;icc-profiles-free&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /usr/share/color/icc/sRGB.icc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Si le fichier existe&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rien à faire.&lt;br /&gt;
*Si le fichier est absent (&amp;lt;code&amp;gt;No such file or directory&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y icc-profiles-free&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur certaines distributions, le paquet peut s&#039;appeler différemment (&amp;lt;code&amp;gt;icc-profiles&amp;lt;/code&amp;gt;). Si vraiment introuvable, le plugin accepte un chemin alternatif modifiable dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, section « Chemins des utilitaires système » (champ « Profil ICC sRGB »).&lt;br /&gt;
&lt;br /&gt;
===Étape 6. Installer les paquets PHP utilisés par Dolibarr===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Dolibarr et le plugin s&#039;appuient sur quelques bibliothèques PHP pour manipuler les PDF (TCPDF, FPDI), pour parser des PDF lus (Poppler), et pour quelques utilitaires bas niveau (binutils).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y binutils php-tcpdf php-fpdi poppler-utils&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détail rapide&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Paquet!!Utilité&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;||Outils binaires bas niveau utilisés par certaines libs&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;php-tcpdf&amp;lt;/code&amp;gt;||Génération PDF côté Dolibarr&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;php-fpdi&amp;lt;/code&amp;gt;||Lecture/import de PDF existants&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;poppler-utils&amp;lt;/code&amp;gt;||Outils annexes (&amp;lt;code&amp;gt;pdfinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdftotext&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version &amp;amp;&amp;amp; java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si les deux commandes répondent, les briques principales sont en place.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Mode horstoeko. Aucun prérequis système==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode Mustang ?&#039;&#039;&#039; Cette section ne vous concerne pas, passer à [[#Installation du plugin]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le mode horstoeko/PDF/A-3B fonctionne avec un &#039;&#039;&#039;PHP CLI&#039;&#039;&#039; disposant de l&#039;extension &#039;&#039;&#039;SimpleXML&#039;&#039;&#039;. Sur l&#039;écrasante majorité des hébergements Dolibarr, c&#039;est déjà le cas. Vous n&#039;avez donc &#039;&#039;&#039;aucune installation à effectuer côté système&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Vérification rapide depuis votre Dolibarr===&lt;br /&gt;
&lt;br /&gt;
Si vous avez accès au serveur en SSH (même sans sudo), vérifier que PHP CLI a SimpleXML&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK\n&amp;quot; : &amp;quot;ABSENT\n&amp;quot;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous obtenez &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt;, vous êtes prêt. Le plugin fonctionnera tel quel. Il suffit de [[#Installation du plugin|l&#039;installer]] puis de sélectionner le mode horstoeko dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
===Si vous n&#039;avez pas du tout accès au shell===&lt;br /&gt;
&lt;br /&gt;
Sur certains hébergements mutualisés, vous n&#039;avez accès qu&#039;au panel d&#039;administration et à un éditeur de fichiers via FTP/SFTP. Dans ce cas&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#[[#Installation du plugin|Installez le plugin]] en uploadant son répertoire dans &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt;&lt;br /&gt;
#Activez-le dans Dolibarr&lt;br /&gt;
#Allez dans &#039;&#039;&#039;Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la page vérifiera &#039;&#039;&#039;automatiquement&#039;&#039;&#039; que le PHP CLI cible (via la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt;) a bien SimpleXML&lt;br /&gt;
#Si SimpleXML manque côté CLI, le diagnostic vous l&#039;indiquera&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il faudra alors demander à votre hébergeur d&#039;activer l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; ou de pointer le plugin sur une autre version de PHP CLI qui l&#039;inclut&lt;br /&gt;
&lt;br /&gt;
===Vendor Composer fourni dans le plugin===&lt;br /&gt;
&lt;br /&gt;
La bibliothèque &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; et ses dépendances sont &#039;&#039;&#039;embarquées dans le plugin&#039;&#039;&#039; au moment de la distribution (répertoire &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;). Aucune installation Composer n&#039;est nécessaire côté serveur cible. Si vous compilez le plugin depuis les sources, exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module avant déploiement.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation du plugin==&lt;br /&gt;
&lt;br /&gt;
Cette étape est commune aux deux modes. Une fois les prérequis correspondant à votre choix de mode validés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Copier le répertoire &amp;lt;code&amp;gt;facturxtbnetsys/&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -r facturxtbnetsys /var/www/dolibarr/htdocs/custom/&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Activer le module dans Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules &amp;gt; Onglet &amp;quot;Facturation/Comptabilité&amp;quot;&#039;&#039;&#039; → activer &#039;&#039;&#039;FacturXTbnetsys&#039;&#039;&#039;.&lt;br /&gt;
#Créer le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; (à côté de &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, ou dans un répertoire dédié aux secrets) et y renseigner les identifiants de connexion à votre PDP, puis indiquer son chemin absolu à Dolibarr dans l&#039;onglet Paramétrage (voir la sous-section [[#Configuration du fichier .secret (credentials PDP)|Configuration du fichier .secret]] ci-dessous).&lt;br /&gt;
#Vérifier la santé de l&#039;installation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Diagnostic&#039;&#039;&#039;. La page liste les vérifications avec un code couleur (le contenu varie selon le backend PDF sélectionné) ; toutes doivent être au vert (à l&#039;exception éventuelle de &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; qui peut être marqué « optionnel » tant que vous n&#039;avez pas finalisé la configuration PDP).&lt;br /&gt;
&lt;br /&gt;
===Configuration du fichier .secret (credentials PDP)===&lt;br /&gt;
&lt;br /&gt;
Le plugin se connecte à votre Plateforme de Dématérialisation Partenaire (PDP) (par défaut &#039;&#039;&#039;SUPERPDP&#039;&#039;&#039;) via OAuth2 (flux &amp;lt;code&amp;gt;client_credentials&amp;lt;/code&amp;gt;). Vos identifiants OAuth2 sont stockés dans un fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, lu uniquement côté serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Sans &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, le plugin reste fonctionnel&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la régénération Factur-X (PDF/A-3 + XML EN16931) continue de fonctionner. Seul l&#039;envoi automatique vers la PDP est désactivé. Le diagnostic affiche alors &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; en orange « optionnel ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emplacement recommandé. Hors de la racine web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; doit être placé &#039;&#039;&#039;en dehors du dossier &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;&#039;&#039;&#039; (la racine web servie par Apache / Nginx) afin qu&#039;il ne puisse jamais être servi par le serveur HTTP en cas de mauvaise configuration ou de bug. Sur une installation type &amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/&amp;lt;/code&amp;gt;, placez-le par exemple&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Emplacement!!Recommandation&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Au même niveau d&#039;arborescence que &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, donc inaccessible via HTTP par construction&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/dolibarr-secrets/pdp.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Répertoire système dédié aux secrets, idéal pour gérer plusieurs environnements (&amp;lt;code&amp;gt;pdp-prod.secret&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdp-sandbox.secret&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;À éviter&#039;&#039;&#039;. Fonctionne (chemin par défaut codé), mais place le fichier sous la racine web&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: tout problème de configuration serveur peut l&#039;exposer en clair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier créé, son chemin absolu doit être renseigné dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;, section &#039;&#039;&#039;API PDP&#039;&#039;&#039;, champ &#039;&#039;&#039;Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Tant que cette constante n&#039;est pas renseignée, le plugin retombe sur le défaut codé (chemin sous la racine web), ce qui n&#039;est pas l&#039;emplacement souhaitable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obtention des identifiants&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: récupérer &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; depuis l&#039;espace administrateur de votre PDP. Pour SUPERPDP, l&#039;endpoint d&#039;authentification utilisé par le plugin est &amp;lt;code&amp;gt;api.superpdp.tech/oauth2/token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format attendu&#039;&#039;&#039;. Fichier texte, une clé par ligne, valeur entre guillemets droits (les guillemets sont optionnels). Les lignes vides et celles commençant par &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; sont ignorées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Credentials OAuth2 SUPERPDP. NE PAS COMMITER&lt;br /&gt;
client_id=&amp;quot;votre-client-id-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
client_secret=&amp;quot;votre-client-secret-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Création et droits Unix&#039;&#039;&#039;. Le plugin fournit un modèle &amp;lt;code&amp;gt;.secret.example&amp;lt;/code&amp;gt; à la racine du plugin. Copiez-le &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; puis complétez-le&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Copier le modele HORS de la racine web (exemple : au meme niveau que htdocs/)&lt;br /&gt;
cp /var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret.example /var/www/dolibarr/.secret&lt;br /&gt;
# Renseigner client_id et client_secret avec votre editeur favori&lt;br /&gt;
nano /var/www/dolibarr/.secret&lt;br /&gt;
# Restreindre les droits (lecture/ecriture par www-data uniquement)&lt;br /&gt;
chmod 600 /var/www/dolibarr/.secret&lt;br /&gt;
chown www-data:www-data /var/www/dolibarr/.secret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis, dans Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage &amp;gt; API PDP &amp;gt; Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; → saisir &amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt; (adapter à votre installation) et enregistrer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Précautions de sécurité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Placer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; hors de la racine web&#039;&#039;&#039; (cf. tableau ci-dessus)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: c&#039;est la garantie la plus solide qu&#039;il ne sera jamais servi en HTTP.&lt;br /&gt;
*&#039;&#039;&#039;Ne jamais committer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; dans un dépôt git (ajouter &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; au &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; du plugin si vous forkez le code).&lt;br /&gt;
*&#039;&#039;&#039;Ne jamais transmettre le fichier par email/messagerie&#039;&#039;&#039; en clair.&lt;br /&gt;
*En cas de fuite suspectée, &#039;&#039;&#039;révoquer immédiatement le &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; depuis l&#039;admin de la PDP et en générer un nouveau.&lt;br /&gt;
*Le fichier doit appartenir à &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; et être en &amp;lt;code&amp;gt;0600&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aucun autre utilisateur Unix de la machine ne doit pouvoir le lire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;. Après création, ouvrir &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Ligne diagnostic!!État attendu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Fichier présent et &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; non vides&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt;||&#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Un Bearer token a été obtenu avec succès&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; ressort « KO » (rouge), le fichier existe mais une des deux clés est absente ou mal formée. Relire le format ci-dessus. Si &amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt; ressort en erreur, les identifiants sont rejetés par la PDP&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vérifier qu&#039;ils sont corrects et actifs côté admin de la plateforme. Les détails de l&#039;erreur sont tracés dans le journal Dolibarr (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;, préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Sélection du moteur PDF dans Dolibarr===&lt;br /&gt;
&lt;br /&gt;
Une fois le module activé, aller dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;. La section &#039;&#039;&#039;« Pipeline PDF »&#039;&#039;&#039; propose un radio à deux choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;horstoeko/zugferd / PDF/A-3B portable&#039;&#039;&#039;. Choix par défaut depuis la version 1.1.0. Aucun prérequis système. Sous le radio, un champ &#039;&#039;&#039;« Binaire php-cli »&#039;&#039;&#039; permet de pointer vers la version de PHP utilisée par le sous-processus (par défaut &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt;). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne dispose pas de l&#039;extension SimpleXML, indiquer ici une version qui l&#039;inclut, par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;Mustang / PDF/A-3U strict&#039;&#039;&#039;. Choix optionnel pour archivage légal long terme. Nécessite que la procédure [[#Installation des prérequis système. Mode Mustang uniquement|Installation des prérequis système]] ait été suivie au préalable.&lt;br /&gt;
&lt;br /&gt;
Sélectionner le mode souhaité, sauvegarder, puis ouvrir l&#039;onglet &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; pour vérifier que toutes les briques nécessaires au mode choisi sont au vert. Le contenu de cette page s&#039;adapte automatiquement au mode sélectionné. Vous ne verrez les checks Ghostscript/Java/Mustang qu&#039;en mode Mustang, et les checks PHP CLI/SimpleXML/Composer vendor qu&#039;en mode horstoeko.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vérification finale en une commande==&lt;br /&gt;
&lt;br /&gt;
===Mode Mustang===&lt;br /&gt;
&lt;br /&gt;
Pour vérifier en bloc tous les prérequis Mustang depuis la ligne de commande&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== Ghostscript ===&amp;quot; &amp;amp;&amp;amp; gs --version &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Java ===&amp;quot; &amp;amp;&amp;amp; java -version 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Mustang JAR ===&amp;quot; &amp;amp;&amp;amp; ls -l /opt/Mustang-CLI-2.22.0.jar &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== ICC sRGB ===&amp;quot; &amp;amp;&amp;amp; ls -l /usr/share/color/icc/sRGB.icc &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si la dernière ligne &amp;lt;code&amp;gt;=== Tout est OK ===&amp;lt;/code&amp;gt; s&#039;affiche, l&#039;installation système est complète. Sinon, l&#039;erreur juste avant indique précisément ce qui manque.&lt;br /&gt;
&lt;br /&gt;
===Mode horstoeko===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== PHP CLI ===&amp;quot; &amp;amp;&amp;amp; php -v | head -1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== SimpleXML ===&amp;quot; &amp;amp;&amp;amp; php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK&amp;quot; : &amp;quot;ABSENT&amp;quot;, PHP_EOL;&#039; &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== vendor ===&amp;quot; &amp;amp;&amp;amp; ls -d /var/www/dolibarr/htdocs/custom/facturxtbnetsys/vendor/horstoeko/zugferd &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez configuré une version PHP CLI spécifique (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;), remplacer &amp;lt;code&amp;gt;php&amp;lt;/code&amp;gt; par ce binaire dans les deux premières lignes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Pièges fréquents==&lt;br /&gt;
&lt;br /&gt;
===Mode Mustang===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gs: command not found&amp;lt;/code&amp;gt; lors de la régénération||Ghostscript pas installé ou pas dans le &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; du serveur web||Re-vérifier l&#039;étape 2. Au besoin, renseigner le chemin absolu dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Binaire Ghostscript »&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mustang JAR introuvable/illisible&amp;lt;/code&amp;gt;||Le fichier n&#039;est pas à &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;, ou pas lisible par &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;chmod +r /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; ou ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Mustang CLI (.jar) »&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;java: command not found&amp;lt;/code&amp;gt;||JRE non installé||Re-vérifier l&#039;étape 3&lt;br /&gt;
|-&lt;br /&gt;
|Erreur PDF/A-3 « no ICC profile »||Le profil sRGB n&#039;est pas trouvé||Re-vérifier l&#039;étape 5, ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Profil ICC sRGB » si nécessaire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mode horstoeko===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendor/autoload.php introuvable&amp;lt;/code&amp;gt; dans le journal||Le &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer n&#039;a pas été déployé avec le plugin||Réinstaller le plugin depuis l&#039;archive officielle (qui inclut &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;) ou exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Binaire php-cli introuvable ou non exécutable&amp;lt;/code&amp;gt;||La constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; pointe sur un chemin invalide||Ajuster dans &#039;&#039;&#039;Paramétrage &amp;gt; Pipeline PDF &amp;gt; Binaire php-cli&#039;&#039;&#039; (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;extension SimpleXML absente&amp;lt;/code&amp;gt; (badge KO dans Diagnostic)||La version de PHP CLI désignée n&#039;a pas l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt;||Pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; sur une autre version de PHP CLI qui inclut SimpleXML, ou demander à l&#039;hébergeur d&#039;activer l&#039;extension côté CLI&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Sous-processus horstoeko a échoué (rc=…)&amp;lt;/code&amp;gt;||Erreur dans la lib horstoeko/zugferd ; le PDF source produit par Dolibarr peut être atypique||Consulter le journal Dolibarr (préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;) ; en dernier recours, basculer temporairement sur le mode Mustang pour identifier si le PDF source est en cause&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Communs aux deux modes===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;proc_open() has been disabled&amp;lt;/code&amp;gt; dans le syslog||Le serveur (souvent un VPS mutualisé) interdit l&#039;exécution de processus externes||Demander à l&#039;hébergeur d&#039;autoriser &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;disable_functions&amp;lt;/code&amp;gt;). &#039;&#039;&#039;Les deux modes&#039;&#039;&#039; utilisent &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; (Mustang pour Ghostscript+Java, horstoeko pour le sous-processus PHP). Le plugin &#039;&#039;&#039;ne peut pas fonctionner sans&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Page Diagnostic affiche tout en vert mais erreur à l&#039;usage||Cache OPcache PHP||Redémarrer Apache/Nginx (&amp;lt;code&amp;gt;systemctl reload apache2&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Catégories TVA. Comment le plugin classe vos factures==&lt;br /&gt;
&lt;br /&gt;
À chaque régénération de facture, le plugin détermine &#039;&#039;&#039;automatiquement&#039;&#039;&#039; le régime TVA applicable à chaque ligne et le code d&#039;exonération correspondant exigé par la norme européenne EN16931. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: tout est déduit de la configuration de votre société, du pays du client et des taux de TVA de la facture.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin et dans quels cas, pour que vous puissiez vérifier que cela correspond bien à votre situation fiscale.&lt;br /&gt;
&lt;br /&gt;
===Les 6 cas reconnus (du plus prioritaire au moins prioritaire)===&lt;br /&gt;
&lt;br /&gt;
Pour chaque ligne, le plugin parcourt la liste suivante de haut en bas et s&#039;arrête à la première règle qui s&#039;applique.&lt;br /&gt;
&lt;br /&gt;
====1. Vous êtes en franchise en base de TVA (micro-entreprise)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: dans Dolibarr, &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA » = Non&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
→ Toutes les lignes de toutes vos factures sont marquées « hors champ TVA » avec la mention légale &#039;&#039;&#039;« TVA non applicable, art. 293 B du CGI »&#039;&#039;&#039; ajoutée automatiquement dans le document (factures &#039;&#039;&#039;et&#039;&#039;&#039; avoirs).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Cette règle est prioritaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous êtes en franchise, le plugin ne tient compte ni des taux, ni du pays du client, ni des lignes de débours. Tout sort en franchise.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. La ligne est un débours (refacturation à l&#039;identique d&#039;un frais)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la ligne a été saisie via le plugin &#039;&#039;&#039;debourstbnetsys&#039;&#039;&#039; (refacturation à l&#039;identique au client d&#039;un frais que vous avez avancé pour son compte).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification &#039;&#039;&#039;art. 267 II 2° CGI&#039;&#039;&#039; (les débours sont par nature hors champ de la TVA, indépendamment du pays du client).&lt;br /&gt;
&lt;br /&gt;
====3. La ligne porte un taux de TVA standard====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la ligne a un taux de TVA strictement supérieur à 0 % (5,5 %, 10 %, 20 %, etc.).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « TVA au taux standard », sans code d&#039;exonération. C&#039;est le cas le plus courant.&lt;br /&gt;
&lt;br /&gt;
====4. Vous facturez un client professionnel établi dans l&#039;Union européenne====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le taux est à 0 %, le client est dans un pays UE différent de la France, et &#039;&#039;&#039;son numéro de TVA intracommunautaire est renseigné&#039;&#039;&#039; dans sa fiche tiers.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « livraison intracommunautaire » avec autoliquidation par l&#039;acheteur (art. 196 de la directive 2006/112/CE). Vous devrez également mentionner manuellement « Autoliquidation » sur la facture (voir « À savoir » ci-dessous).&lt;br /&gt;
&lt;br /&gt;
====5. Vous facturez un client hors Union européenne====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le taux est à 0 % et le client est dans un pays hors UE.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « export », exonérée au titre de l&#039;&#039;&#039;&#039;&#039;art. 262 I du CGI&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====6. Tous les autres cas avec un taux à 0 %====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: taux à 0 %, client en France ou client UE sans numéro de TVA intracommunautaire (cas typique&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: particulier européen).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification française par défaut.&lt;br /&gt;
&lt;br /&gt;
===À savoir avant de mettre en service===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Numéro de TVA intracommunautaire indispensable pour vos clients UE professionnels.&#039;&#039;&#039; Si vous facturez un client allemand, italien, espagnol, etc. sans avoir renseigné son n° TVA intra dans Dolibarr, le plugin considérera qu&#039;il s&#039;agit d&#039;un particulier (cas n° 6) au lieu d&#039;une livraison intracommunautaire (cas n° 4). Pensez à compléter la fiche tiers avant la première facture.&lt;br /&gt;
*&#039;&#039;&#039;Mention « Autoliquidation » à ajouter manuellement.&#039;&#039;&#039; Pour les factures intracommunautaires (cas n° 4), la réglementation impose que la facture mentionne explicitement « Autoliquidation ». Le plugin ne l&#039;ajoute pas automatiquement pour l&#039;instant&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: pensez à le faire dans le libellé de votre facture.&lt;br /&gt;
*&#039;&#039;&#039;Vérifiez votre statut TVA si vous êtes micro-entreprise.&#039;&#039;&#039; Le plugin détecte la franchise via le paramètre Dolibarr &#039;&#039;&#039;Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA »&#039;&#039;&#039;. Vérifiez qu&#039;il est bien sur &#039;&#039;&#039;Non&#039;&#039;&#039; si vous êtes effectivement en franchise. Sinon vos factures sortiront avec un régime TVA classique au lieu de la mention 293 B.&lt;br /&gt;
*&#039;&#039;&#039;Si vous mettez à jour le plugin depuis une version antérieure&#039;&#039;&#039; et que vous émettez régulièrement des factures intracommunautaires ou à l&#039;export&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vos prochaines régénérations utiliseront un code TVA plus précis qu&#039;avant (correction de conformité). Les factures déjà émises ne sont pas modifiées. Faites un essai sur une facture représentative pour vérifier qu&#039;elle est bien acceptée par votre PDP avant de regénérer en masse.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Acomptes. Comment le plugin gère les factures d&#039;acompte et leur imputation==&lt;br /&gt;
&lt;br /&gt;
Le plugin reconnaît automatiquement les &#039;&#039;&#039;factures d&#039;acompte&#039;&#039;&#039; que vous émettez dans Dolibarr (type « Acompte ») ainsi que les &#039;&#039;&#039;factures finales&#039;&#039;&#039; sur lesquelles ces acomptes sont imputés. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la détection se fait au moment de la régénération.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin pour que vous sachiez à quoi vous attendre dans le XML envoyé à votre PDP ou à votre client.&lt;br /&gt;
&lt;br /&gt;
===Si vous émettez une facture d&#039;acompte===&lt;br /&gt;
&lt;br /&gt;
Quand le type de la facture Dolibarr est &#039;&#039;&#039;« Acompte »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
→ Le XML est marqué comme « facture d&#039;acompte » (code document &amp;lt;code&amp;gt;386&amp;lt;/code&amp;gt; au sens du standard EN16931, distinct du code &amp;lt;code&amp;gt;380&amp;lt;/code&amp;gt; des factures classiques et du &amp;lt;code&amp;gt;381&amp;lt;/code&amp;gt; des avoirs).&lt;br /&gt;
&lt;br /&gt;
→ Les mentions légales obligatoires en France (indemnité de recouvrement 40 €, pénalités de retard, escompte) sont conservées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un acompte est une &#039;&#039;&#039;facture exigible&#039;&#039;&#039; au sens fiscal, la TVA y est exigible.&lt;br /&gt;
&lt;br /&gt;
→ Aucune mention d&#039;acompte antérieur n&#039;est ajoutée (par construction, l&#039;acompte est lui-même la première facture du cycle).&lt;br /&gt;
&lt;br /&gt;
===Si vous émettez la facture finale après un ou plusieurs acomptes===&lt;br /&gt;
&lt;br /&gt;
Quand vous facturez le solde d&#039;une commande déjà partiellement payée par acompte(s)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
→ Le plugin lit dans Dolibarr la liste des &#039;&#039;&#039;factures d&#039;acompte rattachées&#039;&#039;&#039; à cette facture finale et insère pour chacune une référence dans le XML (numéro de la facture d&#039;acompte). Le destinataire et le PDP peuvent ainsi tracer l&#039;historique complet du cycle.&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant total des acomptes imputés&#039;&#039;&#039; est inscrit dans le XML sous une balise dédiée (BT-113 « Total prepaid amount » au sens EN16931).&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant restant à payer&#039;&#039;&#039; est recalculé automatiquement comme &amp;lt;code&amp;gt;total TTC – acomptes déjà versés&amp;lt;/code&amp;gt;. C&#039;est ce montant net qui apparaît comme « somme due » (BT-115 « Due payable amount »), pas le total brut.&lt;br /&gt;
&lt;br /&gt;
→ Si un écart d&#039;arrondi minime existe entre le total TTC Dolibarr et le total recalculé par taux de TVA (cas rare, dépend de la composition des taux sur la facture), il est inscrit séparément (BT-114 « Rounding amount ») pour que la cohérence comptable reste vérifiable par le PDP.&lt;br /&gt;
&lt;br /&gt;
===À savoir avant de mettre en service (acomptes)===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Bien lier l&#039;acompte à la facture finale dans Dolibarr.&#039;&#039;&#039; L&#039;imputation est lue depuis la table standard Dolibarr des « remises et avoirs déjà appliqués ». Si vous saisissez la facture finale sans déclarer explicitement l&#039;acompte précédent (par exemple en passant par les écritures de paiement uniquement, sans utiliser le mécanisme « consommer cet acompte »), le plugin ne pourra pas en tenir compte automatiquement.&lt;br /&gt;
*&#039;&#039;&#039;Avoirs imputés non comptabilisés en BT-113.&#039;&#039;&#039; Si vous imputez un avoir sur une facture finale, le plugin ne l&#039;inclut &#039;&#039;&#039;pas&#039;&#039;&#039; dans le « total déjà payé » (BT-113). C&#039;est conforme à la norme EN16931 qui réserve cette balise aux &#039;&#039;&#039;avances reçues&#039;&#039;&#039; (acomptes), pas aux compensations (avoirs). Le solde net reste correct car l&#039;avoir est traité comme un mode de règlement classique côté Dolibarr.&lt;br /&gt;
*&#039;&#039;&#039;Avoir d&#039;acompte (cas marginal).&#039;&#039;&#039; Émettre un avoir qui annule une facture d&#039;acompte fonctionne mais le XML produit ne référence pas explicitement la facture d&#039;acompte annulée. À éviter en l&#039;état si vous avez besoin d&#039;une traçabilité formelle ; sinon le résultat reste valide EN16931.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Unités de mesure (UN/ECE Rec 20)==&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de facture est exportée dans le XML EN16931 avec un code unité standardisé UN/ECE Rec 20 dans l&#039;attribut &amp;lt;code&amp;gt;BilledQuantity@unitCode&amp;lt;/code&amp;gt; (BT-130). Le plugin lit l&#039;unité saisie sur la ligne Dolibarr (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; → table &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) et la convertit automatiquement.&lt;br /&gt;
&lt;br /&gt;
Le code Dolibarr (colonne &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; de &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) est utilisé comme clé de conversion plutôt que le libellé court (&amp;lt;code&amp;gt;short_label&amp;lt;/code&amp;gt;) car celui-ci comporte des collisions (par exemple &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; désigne à la fois le mètre et le mois dans Dolibarr).&lt;br /&gt;
&lt;br /&gt;
===Table de conversion appliquée===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Famille!!Dolibarr (&amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;) → UN/ECE Rec 20&lt;br /&gt;
|-&lt;br /&gt;
|Temps||&amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt;→SEC · &amp;lt;code&amp;gt;MI&amp;lt;/code&amp;gt;→MIN · &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;→HUR · &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;→DAY · &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;→WEE · &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;→MON · &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;→ANN&lt;br /&gt;
|-&lt;br /&gt;
|Poids||&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;→TNE · &amp;lt;code&amp;gt;KG&amp;lt;/code&amp;gt;→KGM · &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;→GRM · &amp;lt;code&amp;gt;MG&amp;lt;/code&amp;gt;→MGM · &amp;lt;code&amp;gt;OZ&amp;lt;/code&amp;gt;→ONZ · &amp;lt;code&amp;gt;LB&amp;lt;/code&amp;gt;→LBR&lt;br /&gt;
|-&lt;br /&gt;
|Longueur||&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;→MTR · &amp;lt;code&amp;gt;DM&amp;lt;/code&amp;gt;→DMT · &amp;lt;code&amp;gt;CM&amp;lt;/code&amp;gt;→CMT · &amp;lt;code&amp;gt;MM&amp;lt;/code&amp;gt;→MMT · &amp;lt;code&amp;gt;FT&amp;lt;/code&amp;gt;→FOT · &amp;lt;code&amp;gt;IN&amp;lt;/code&amp;gt;→INH&lt;br /&gt;
|-&lt;br /&gt;
|Surface||&amp;lt;code&amp;gt;M2&amp;lt;/code&amp;gt;→MTK · &amp;lt;code&amp;gt;DM2&amp;lt;/code&amp;gt;→DMK · &amp;lt;code&amp;gt;CM2&amp;lt;/code&amp;gt;→CMK · &amp;lt;code&amp;gt;MM2&amp;lt;/code&amp;gt;→MMK · &amp;lt;code&amp;gt;FT2&amp;lt;/code&amp;gt;→FTK · &amp;lt;code&amp;gt;IN2&amp;lt;/code&amp;gt;→INK&lt;br /&gt;
|-&lt;br /&gt;
|Volume||&amp;lt;code&amp;gt;M3&amp;lt;/code&amp;gt;→MTQ · &amp;lt;code&amp;gt;DM3&amp;lt;/code&amp;gt;→DMQ · &amp;lt;code&amp;gt;CM3&amp;lt;/code&amp;gt;→CMQ · &amp;lt;code&amp;gt;MM3&amp;lt;/code&amp;gt;→MMQ · &amp;lt;code&amp;gt;FT3&amp;lt;/code&amp;gt;→FTQ · &amp;lt;code&amp;gt;IN3&amp;lt;/code&amp;gt;→INQ · &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;→LTR · &amp;lt;code&amp;gt;GAL&amp;lt;/code&amp;gt;→GLL&lt;br /&gt;
|-&lt;br /&gt;
|Quantité||&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;→C62 (un/pièce) · &amp;lt;code&amp;gt;SET&amp;lt;/code&amp;gt;→SET&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Politique de fallback===&lt;br /&gt;
&lt;br /&gt;
*Ligne sans unité renseignée (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; vide)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt; (one/each), comportement neutre.&lt;br /&gt;
*Unité présente mais désactivée dans &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt; (colonne &amp;lt;code&amp;gt;active=0&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Code Dolibarr non couvert par la table (unité personnalisée ajoutée par l&#039;instance)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;, et un message &amp;lt;code&amp;gt;LOG_INFO&amp;lt;/code&amp;gt; est tracé dans le journal Dolibarr (&amp;lt;code&amp;gt;dol_syslog&amp;lt;/code&amp;gt;) pour permettre l&#039;extension de la table.&lt;br /&gt;
&lt;br /&gt;
Aucune configuration n&#039;est nécessaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mapping s&#039;applique à la régénération, pour les factures et les avoirs, y compris les lignes débours du plugin &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Paramétrage du plugin dans Dolibarr==&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation terminée, tout le paramétrage du plugin se fait depuis l&#039;interface Dolibarr. Vous trouverez quatre pages utiles&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: options principales du plugin. Activer ou non l&#039;envoi des factures vers le PDP, activer ou non la validation à la régénération, taille des pages d&#039;écran, et &#039;&#039;&#039;chemins des utilitaires système&#039;&#039;&#039; (Ghostscript, Mustang JAR, profil ICC sRGB) si vos outils ne sont pas aux emplacements par défaut.&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: page de contrôle de santé en lecture seule. Affiche en vert/rouge l&#039;état des prérequis (Ghostscript, Java, Mustang, profil ICC, accès à votre PDP…). En cas d&#039;anomalie sur un chemin, l&#039;ajustement se fait dans la page Paramétrage ci-dessus.&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Adresses Peppol&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion de votre annuaire d&#039;identifiants Peppol/PPF (à utiliser uniquement si vous savez ce que c&#039;est).&lt;br /&gt;
*&#039;&#039;&#039;FacturX &amp;gt; Dispatch PDP&#039;&#039;&#039; (menu principal)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: page d&#039;envoi explicite de vos factures vers la plateforme PDP, avec filtres par période, client, état, etc.&lt;br /&gt;
&lt;br /&gt;
===Mode strict (en cas d&#039;échec du pipeline Factur-X)===&lt;br /&gt;
&lt;br /&gt;
Sur la page &#039;&#039;&#039;Paramétrage&#039;&#039;&#039;, l&#039;option &#039;&#039;&#039;« Mode strict »&#039;&#039;&#039; détermine ce qu&#039;il se passe si la conversion en Factur-X plante (Ghostscript indisponible, Mustang qui échoue, profil ICC introuvable, etc.)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Décoché (recommandé, valeur par défaut)&#039;&#039;&#039;. Mode best-effort. Si le pipeline Factur-X échoue, le PDF classique généré par votre modèle de base (par exemple « crabe ») est &#039;&#039;&#039;conservé&#039;&#039;&#039; et la facture reste utilisable. Un avertissement orange est affiché à l&#039;utilisateur. La facture peut être imprimée et envoyée par email. Elle n&#039;est juste pas au format Factur-X.&lt;br /&gt;
*&#039;&#039;&#039;Coché&#039;&#039;&#039;. Mode strict. Tout échec du pipeline supprime le PDF et fait remonter une erreur côté Dolibarr. Aucune facture n&#039;est livrée tant que le problème technique n&#039;est pas corrigé. À utiliser uniquement si vous voulez la garantie absolue qu&#039;aucun PDF non-Factur-X ne circule (par ex. exigence contractuelle ou réglementaire).&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la validation SUPERPDP (si elle est activée) reste &#039;&#039;&#039;purement informative&#039;&#039;&#039;. Elle n&#039;a jamais d&#039;effet bloquant, pour ne pas paralyser la facturation en cas d&#039;indisponibilité réseau de la plateforme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Pour les développeurs et intégrateurs&#039;&#039;&#039; souhaitant comprendre l&#039;architecture interne du plugin (couches HTTP, mapping XML EN16931, structure de la base, etc.), une documentation technique séparée est fournie dans le fichier &amp;lt;code&amp;gt;ARCHITECTURE.md&amp;lt;/code&amp;gt; à la racine du plugin.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Source du plugin==&lt;br /&gt;
&lt;br /&gt;
Le plugin est distribué sur le &#039;&#039;&#039;Dolistore&#039;&#039;&#039;, la place de marché officielle des modules Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.dolistore.com/. C&#039;est la voie recommandée pour les utilisateurs finaux qui souhaitent simplement installer le plugin sur leur Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;développements sont réalisés en interne chez TBNETSYS&#039;&#039;&#039; ; le code source est hébergé sur le dépôt git privé de l&#039;auteur.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi simplement télécharger une archive du plugin (depuis le Dolistore) et l&#039;extraire. Le résultat est équivalent. Reprendre ensuite la procédure « Installation du plugin » plus haut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note documentation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ce fichier &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; est repris tel quel dans le wiki Dolibarr de la fiche du plugin. Toute mise à jour du README est donc répercutée par son auteur dans la documentation publique du plugin côté Dolibarr.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Mise à jour du plugin==&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour le plugin vers une nouvelle version&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Télécharger la mise à jour sur le Dolistore&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.dolistore.com/. Récupérer l&#039;archive de la dernière version publiée et l&#039;extraire dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de votre Dolibarr (par-dessus l&#039;installation existante). Ne pas oublier de rétablir les droits&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Désactiver puis réactiver le plugin&#039;&#039;&#039; dans &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules&#039;&#039;&#039;, onglet « Facturation/Comptabilité ». Ce cycle force Dolibarr à recharger les définitions du module (constantes, hooks, menus, droits) et garantit que les éventuelles nouveautés apportées par la mise à jour sont prises en compte. Vos données existantes ne sont pas affectées.&lt;br /&gt;
#&#039;&#039;&#039;Reparamétrer si nécessaire&#039;&#039;&#039;. Si la mise à jour introduit de nouvelles options ou si certains paramétrages ont changé de format, vérifier la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; ainsi que la page &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; (toutes les vérifications doivent rester au vert).&lt;br /&gt;
#&#039;&#039;&#039;Optionnellement&#039;&#039;&#039;, lire le fichier &amp;lt;code&amp;gt;ChangeLog.md&amp;lt;/code&amp;gt; à la racine du plugin pour prendre connaissance du détail des changements (corrections de bugs, nouvelles fonctionnalités, modifications de comportement, éventuelles actions manuelles requises).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; (credentials PDP) n&#039;est jamais embarqué dans l&#039;archive distribuée. Il reste donc inchangé lors d&#039;une mise à jour. Si vous extrayez l&#039;archive par-dessus l&#039;installation existante, prenez garde à ne pas écraser ce fichier.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Signalement de bugs==&lt;br /&gt;
&lt;br /&gt;
Le plugin est maintenu par son auteur qui assure la &#039;&#039;&#039;correction des anomalies&#039;&#039;&#039; rencontrées par ses utilisateurs. Pour signaler un bug, utilisez le &#039;&#039;&#039;formulaire de contact&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ce canal est dédié exclusivement aux corrections de bugs&#039;&#039;&#039;, c&#039;est-à-dire à des comportements du plugin qui ne sont pas conformes à ce que décrit cette documentation ou à la norme Factur-X / EN16931. Il ne s&#039;agit &#039;&#039;&#039;pas d&#039;un service d&#039;assistance utilisateur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les questions d&#039;installation Dolibarr, de paramétrage métier, de fiscalité, ou plus généralement « comment faire X dans Dolibarr » ne relèvent pas de ce canal et ne recevront pas de réponse.&lt;br /&gt;
&lt;br /&gt;
Pour qu&#039;un signalement soit exploitable, soyez &#039;&#039;&#039;précis et clair&#039;&#039;&#039; dans la description du problème. Un bon rapport de bug contient au minimum&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Versions&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: version de Dolibarr, version de PHP, version du plugin (visible sur la page Configuration &amp;gt; Modules), système d&#039;exploitation du serveur.&lt;br /&gt;
*&#039;&#039;&#039;Contexte précis&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur quelle facture (type&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: standard, acompte, avoir ; pays du client ; régime TVA), à quelle étape (régénération PDF, envoi PDP, validation Mustang…).&lt;br /&gt;
*&#039;&#039;&#039;Comportement observé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: message d&#039;erreur exact (copier-coller, pas une reformulation), capture d&#039;écran si pertinent.&lt;br /&gt;
*&#039;&#039;&#039;Comportement attendu&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ce qui aurait dû se produire à la place.&lt;br /&gt;
*&#039;&#039;&#039;Reproductibilité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bug se produit-il à chaque tentative ou de manière intermittente ? sur toutes les factures ou seulement certaines ?&lt;br /&gt;
*&#039;&#039;&#039;Journaux Dolibarr&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: extrait du journal (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;) filtré sur le préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt; au moment de l&#039;incident.&lt;br /&gt;
&lt;br /&gt;
Les rapports vagues du type « ça ne marche pas » ou « le PDF est cassé » ne permettent pas de reproduire ni de corriger le problème et ne seront pas traités.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Clause de non responsabilité==&lt;br /&gt;
&lt;br /&gt;
Le plugin est exclusivement destiné aux &#039;&#039;&#039;professionnels assujettis aux obligations de facturation électronique en France&#039;&#039;&#039; au sens des articles 289 bis et suivants du Code général des impôts. Il n&#039;est ni conçu, ni proposé, ni destiné à un usage par un consommateur au sens de l&#039;article liminaire du Code de la consommation, ni par un non-professionnel.&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé sous licence libre &#039;&#039;&#039;GPL-3.0-or-later&#039;&#039;&#039;, qui en garantit le droit de redistribution et d&#039;étude du code source conformément à ses termes. Sa licence d&#039;utilisation est concédée &#039;&#039;&#039;à titre onéreux&#039;&#039;&#039;, selon les conditions tarifaires en vigueur, dans le cadre d&#039;une relation &#039;&#039;&#039;strictement entre professionnels&#039;&#039;&#039;, à l&#039;exclusion de toute relation entrant dans le champ d&#039;application du Code de la consommation. L&#039;&#039;&#039;&#039;acquisition, l&#039;installation ou l&#039;utilisation du plugin valent reconnaissance par l&#039;utilisateur de sa qualité de professionnel&#039;&#039;&#039; ainsi qu&#039;acceptation sans réserve des présentes conditions.&lt;br /&gt;
&lt;br /&gt;
Le plugin est fourni &#039;&#039;&#039;« en l&#039;état »&#039;&#039;&#039;, sans aucune garantie, expresse ou implicite, de quelque nature que ce soit. Notamment, mais sans s&#039;y limiter, de qualité marchande, d&#039;adéquation à un usage particulier, de conformité réglementaire ou fiscale, ni de continuité de service.&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation du plugin se fait &#039;&#039;&#039;aux risques et périls de l&#039;utilisateur&#039;&#039;&#039;. Il appartient à ce dernier de vérifier, sous sa seule responsabilité, que les factures Factur-X produites sont conformes à ses obligations légales, fiscales et contractuelles, et qu&#039;elles sont effectivement acceptées par ses destinataires et par sa Plateforme de Dématérialisation Partenaire (PDP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ni l&#039;auteur, ni TBNETSYS, ni les contributeurs ne pourront en aucun cas être tenus responsables&#039;&#039;&#039; d&#039;un quelconque dommage direct ou indirect (notamment, mais sans s&#039;y limiter&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: perte de données, perte de chiffre d&#039;affaires, perte d&#039;exploitation, rejet de factures par un destinataire ou par un PDP, redressement fiscal, sanction administrative, dommage matériel, immatériel ou moral) résultant de l&#039;installation, de l&#039;utilisation, du dysfonctionnement ou de l&#039;impossibilité d&#039;utiliser le plugin, même dans l&#039;hypothèse où l&#039;auteur, TBNETSYS ou un contributeur auraient été informés de l&#039;éventualité d&#039;un tel dommage.&lt;br /&gt;
&lt;br /&gt;
Cette clause s&#039;applique dans toute la mesure permise par la loi applicable.&lt;br /&gt;
&lt;br /&gt;
Le plugin et la présente clause sont régis par le &#039;&#039;&#039;droit français&#039;&#039;&#039;. Entre professionnels, en cas de litige relatif à l&#039;installation, à l&#039;utilisation, au fonctionnement ou à l&#039;absence de fonctionnement du plugin et à défaut de résolution amiable préalable, &#039;&#039;&#039;compétence exclusive et expresse est attribuée au Tribunal judiciaire de Perpignan&#039;&#039;&#039;, y compris en cas de référé, de pluralité de défendeurs ou d&#039;appel en garantie, nonobstant toute clause contraire. Si l&#039;utilisateur devait néanmoins être qualifié de consommateur ou de non-professionnel par une juridiction, les règles impératives de protection prévues par le droit français s&#039;appliqueront, sans que cela ne remette en cause les autres stipulations de la présente clause, qui demeurent applicables dans toute la mesure permise par la loi.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Auteur et licence==&lt;br /&gt;
&lt;br /&gt;
Auteur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Thierry Bazzanella&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Contact&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/&amp;lt;br /&amp;gt;&lt;br /&gt;
(c) 2026 TBNETSYS. All rights reserved&amp;lt;br /&amp;gt;&lt;br /&gt;
Licence&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Contributeurs et béta-testeurs==&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;contributeurs&#039;&#039;&#039; (correction de bugs, développement de nouvelles fonctionnalités) et les &#039;&#039;&#039;béta-testeurs&#039;&#039;&#039; ayant téléchargé le plugin sont éventuellement les bienvenus. Nous pouvons en discuter par téléphone après un premier contact par email. Pour l&#039;instant, l&#039;auteur en assure la maintenance et les évolutions.&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;&#039;environnement dédié et privé sous GitLab&#039;&#039;&#039; est mis à disposition pour ce plugin&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il regroupe le code source, le suivi des tickets, les branches de travail et les itérations de test. L&#039;environnement est très &#039;&#039;&#039;orienté développement et cycle de vie logiciel&#039;&#039;&#039; (branches, revues, intégration continue, jalons, releases). Il s&#039;adresse donc à des intervenants à l&#039;aise avec ces pratiques.&lt;br /&gt;
&lt;br /&gt;
La documentation du code source est intégrée à celui-ci au format PhpDoc. L&#039;outil de développement recommandé est &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; avec les extensions &#039;&#039;&#039;PHP Intelephense&#039;&#039;&#039; (éditeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Intelephense) et &#039;&#039;&#039;PHP Debug&#039;&#039;&#039; (éditeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Xdebug).&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;communication entre tous les intervenants se fait principalement par ticket&#039;&#039;&#039; (issues GitLab)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: signalement, discussion technique, suivi d&#039;avancement, validation. Cela garantit la traçabilité des décisions et permet à chacun de retrouver le contexte d&#039;un changement à tout moment.&lt;br /&gt;
&lt;br /&gt;
Pour rejoindre l&#039;environnement contributeurs/béta-testeurs, prendre contact via le formulaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Prix du plugin==&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé en &#039;&#039;&#039;paiement unique&#039;&#039;&#039;. Une fois acquis, il vous appartient sans abonnement, sans coût récurrent et sans limite de durée d&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Période!!Prix&lt;br /&gt;
|-&lt;br /&gt;
|Tarif de lancement, jusqu&#039;au 31 août 2026||&#039;&#039;&#039;149 € TTC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|À compter du 1er septembre 2026||&#039;&#039;&#039;199 € TTC&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;auteur n&#039;est pas assujetti à la TVA (franchise en base, art. 293 B du CGI). Les prix indiqués sont nets de taxe&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mises à jour à vie incluses.&#039;&#039;&#039; Chaque acquéreur reçoit toutes les versions futures du plugin sans frais supplémentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: corrections de bugs, mises en conformité réglementaire, nouvelles fonctionnalités, nouveaux profils EN16931, prise en charge des futures versions de Dolibarr. Une seule acquisition couvre l&#039;usage du plugin sur la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modèle de financement.&#039;&#039;&#039; Chaque utilisateur participe ainsi au coût de développement et au temps passé sur la maintenance, le suivi des évolutions de la norme Factur-X, l&#039;adaptation aux versions successives de Dolibarr ainsi qu&#039;à la correction des anomalies signalées (cf. § Signalement de bugs). C&#039;est ce financement collectif qui permet à l&#039;auteur de continuer à faire vivre le plugin dans la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aucune obligation, d&#039;aucune sorte, de l&#039;auteur ni des contributeurs.&#039;&#039;&#039; Les mises à jour à vie comme la correction des bugs sont fournies dans la mesure des moyens et de la disponibilité de l&#039;auteur et de ses éventuels contributeurs, sans engagement d&#039;aucune sorte&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ni de fréquence, ni de délai, ni de périmètre, ni de résultat, ni de continuité de service. L&#039;acquisition du plugin n&#039;ouvre droit à aucune prestation contractuelle de maintenance, de support ou d&#039;évolution. Le plugin est fourni « en l&#039;état » conformément à la § Clause de non responsabilité, qui prévaut sur la présente section en cas de divergence d&#039;interprétation.&lt;br /&gt;
&lt;br /&gt;
===Support payant (optionnel)===&lt;br /&gt;
&lt;br /&gt;
Au-delà du plugin lui-même (paiement unique avec mises à jour à vie, sans obligation), un service d&#039;&#039;&#039;&#039;assistance technique payante&#039;&#039;&#039; peut être souscrit ponctuellement, à la demande, par les utilisateurs souhaitant un accompagnement dépassant le cadre du simple signalement de bugs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarif horaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 85 € TTC / heure.&#039;&#039;&#039; L&#039;auteur n&#039;étant pas assujetti à la TVA (franchise en base, art. 293 B du CGI), aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modalités de facturation.&#039;&#039;&#039; Facturation à la demi-heure indivisible commencée, avec un minimum facturable d&#039;une heure par intervention. Toute prestation est précédée d&#039;un &#039;&#039;&#039;devis écrit&#039;&#039;&#039; que l&#039;utilisateur doit accepter avant le démarrage de l&#039;intervention. Le devis fixe un &#039;&#039;&#039;plafond horaire ferme&#039;&#039;&#039; propre à l&#039;intervention. Aucune heure facturable au-delà de ce plafond ne peut être engagée sans &#039;&#039;&#039;acceptation écrite préalable&#039;&#039;&#039; d&#039;un avenant ou d&#039;un nouveau devis. À défaut d&#039;accord pour poursuivre, l&#039;intervention est interrompue à due concurrence du plafond initial.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Périmètre.&#039;&#039;&#039; À distance uniquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: email, formulaire de contact, partage d&#039;écran ou accès SSH ponctuel sur autorisation explicite et révocable de l&#039;utilisateur. La prestation porte exclusivement sur le plugin FacturXTbnetsys et son intégration dans Dolibarr (paramétrage, diagnostic, accompagnement à l&#039;installation, analyse de cas particuliers et lecture de journaux). Sont exclus du périmètre&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: l&#039;administration Dolibarr générale, le conseil fiscal, le conseil métier, l&#039;intervention sur d&#039;autres modules tiers et le développement spécifique non directement lié à une anomalie du plugin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heures ouvrées (heure de Paris).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jour!!Plage horaire&lt;br /&gt;
|-&lt;br /&gt;
|Lundi à vendredi||9h–12h et 14h–18h&lt;br /&gt;
|-&lt;br /&gt;
|Samedi, dimanche, jours fériés légaux français||Fermé&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Délais cibles de prise en charge.&#039;&#039;&#039; Les délais ci-dessous courent à compter de la réception de la demande pendant les heures ouvrées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: une demande arrivée hors plage est réputée reçue à l&#039;ouverture suivante. Ces délais sont des &#039;&#039;&#039;objectifs cibles à effort raisonnable, jamais des engagements contractuels chiffrés opposables&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Niveau de gravité!!Définition!!Objectif cible de prise en charge&lt;br /&gt;
|-&lt;br /&gt;
|Critique||Production de factures Factur-X totalement interrompue, aucun contournement disponible||4 heures ouvrées&lt;br /&gt;
|-&lt;br /&gt;
|Majeur||Fonctionnalité importante dégradée mais contournement possible (par exemple&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mode Mustang en échec mais mode horstoeko fonctionnel)||1 jour ouvré&lt;br /&gt;
|-&lt;br /&gt;
|Mineur||Gêne ponctuelle, question, optimisation, demande de paramétrage ou d&#039;éclaircissement||3 jours ouvrés&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obligation de moyen, à l&#039;exclusion de toute obligation de résultat.&#039;&#039;&#039; Le support payant constitue une &#039;&#039;&#039;prestation de services&#039;&#039;&#039; au sens du droit français, exécutée selon une &#039;&#039;&#039;obligation de moyen uniquement&#039;&#039;&#039;. L&#039;auteur s&#039;engage à mettre en œuvre ses compétences professionnelles et le temps nécessaire pour tenter d&#039;apporter une réponse ou une résolution, &#039;&#039;&#039;sans garantir aucun résultat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ni la résolution effective de la difficulté signalée, ni le respect des délais cibles ci-dessus, ni l&#039;absence de récidive, ni la compatibilité avec l&#039;environnement particulier de l&#039;utilisateur. Les délais cibles ne sont assortis d&#039;&#039;&#039;&#039;aucune pénalité&#039;&#039;&#039; et n&#039;ouvrent droit à &#039;&#039;&#039;aucune indemnité, remise ou avoir&#039;&#039;&#039; en cas de dépassement. Cette obligation de moyen prévaut sur toute interprétation contraire pouvant résulter de la rédaction de la présente section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Engagement d&#039;information en cours d&#039;intervention.&#039;&#039;&#039; Si l&#039;auteur estime, en cours d&#039;analyse, que la difficulté ne pourra vraisemblablement pas être résolue dans le plafond horaire du devis accepté, ou que la cause apparente est extérieure au plugin (anomalie Dolibarr, conflit avec un autre module tiers, configuration système hors périmètre, environnement non reproductible), il en informe l&#039;utilisateur &#039;&#039;&#039;avant de poursuivre la facturation au-delà du temps déjà engagé&#039;&#039;&#039;. La poursuite de l&#039;intervention requiert alors l&#039;acceptation écrite de l&#039;utilisateur. Cet engagement d&#039;information demeure une modalité d&#039;exécution de l&#039;obligation de moyen. Il n&#039;emporte aucune obligation de résultat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exclusivement et uniquement sous forme de services.&#039;&#039;&#039; La prestation ne comprend ni produit logiciel additionnel, ni licence supplémentaire, ni garantie, ni assurance, ni cession de droits, ni livrable autre que le &#039;&#039;&#039;compte-rendu d&#039;intervention&#039;&#039;&#039;. Ce compte-rendu mentionne au minimum&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la nature des vérifications effectuées, les éléments diagnostiqués, les actions menées, les points restant ouverts ainsi que les recommandations à destination de l&#039;utilisateur. Il est remis quel que soit le résultat constaté. Le règlement rémunère exclusivement le &#039;&#039;&#039;temps de travail effectivement passé&#039;&#039;&#039; en assistance, indépendamment du résultat constaté à l&#039;issue de l&#039;intervention.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procédure d&#039;accès au support payant.&#039;&#039;&#039; Le support payant n&#039;est pas accessible directement sur facture spontanée. Il suppose au préalable&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Un &#039;&#039;&#039;premier contact via le formulaire&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/, en présentant le contexte de la demande (instance Dolibarr, version du plugin, nature du besoin d&#039;accompagnement).&lt;br /&gt;
#La &#039;&#039;&#039;signature d&#039;un contrat de support&#039;&#039;&#039; entre l&#039;utilisateur (en qualité de professionnel) et TBNETSYS, qui formalise le tarif horaire, les modalités de facturation, le périmètre, les délais cibles, l&#039;obligation de moyen, l&#039;exclusion de l&#039;obligation de résultat ainsi que les autres conditions rappelées dans la présente section.&lt;br /&gt;
#L&#039;&#039;&#039;&#039;acceptation écrite d&#039;un devis&#039;&#039;&#039; propre à chaque intervention, dans le cadre du contrat ainsi signé.&lt;br /&gt;
&lt;br /&gt;
Aucune intervention payante n&#039;est démarrée tant que ces trois étapes ne sont pas complétées. Sans contrat de support signé, seul le canal gratuit de signalement de bugs (cf. § Signalement de bugs) reste accessible, dans les limites qui y sont décrites.&lt;br /&gt;
&lt;br /&gt;
La présente offre de support payant ne modifie pas la § Clause de non responsabilité, qui prévaut intégralement sur tout point non explicitement couvert ici.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66118</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66118"/>
		<updated>2026-05-10T21:56:21Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: PHP 8.4&#039;&#039;&#039;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Module ID&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 493220&lt;br /&gt;
*&#039;&#039;&#039;Famille&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Facturation (billing)&lt;br /&gt;
*&#039;&#039;&#039;Dépend de&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: modFacture, modSociete, modECM&lt;br /&gt;
*&#039;&#039;&#039;Version&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Licence&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].           &lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Table des matières==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*#[[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*#[[#3. Installation|Installation]]&lt;br /&gt;
*#[[#4. Configuration|Configuration]]&lt;br /&gt;
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*#[[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*#[[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*#[[#8. Licence|Licence]]&lt;br /&gt;
*&#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*#[[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*#[[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*#[[#4. Le débours|Le débours]]&lt;br /&gt;
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*#[[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*#[[#8. FAQ|FAQ]]&lt;br /&gt;
*#[[#9. Glossaire|Glossaire]]&lt;br /&gt;
*#[[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installateur / intégrateur / dev==&lt;br /&gt;
&lt;br /&gt;
===1. Cadre légal===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
#être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
#être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
#être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
#porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
#être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
#être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
===2. Fonctionnalités===&lt;br /&gt;
&lt;br /&gt;
*Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
*Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
*&#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
*Refacturation au choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
**&#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
*&#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
*&#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
*&#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
*&#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
*&#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
*&#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Installation===&lt;br /&gt;
&lt;br /&gt;
#Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
#Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Configuration===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Section!!Contenu!!Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||&amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||&amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. Rétention &amp;amp; désinstallation||Durée (années) et conservation des tables||&amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||&amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. Avancé||Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Profils types====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en franchise||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;||au choix&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en dépassement||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;||non&lt;br /&gt;
|-&lt;br /&gt;
|Autres régimes (BNC réel, SAS, SARL)||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||au choix||non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
====Diagnostic de conformité====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Cycle de vie utilisateur===&lt;br /&gt;
&lt;br /&gt;
====5.1 Mandats clients====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
====5.2 Débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
====5.3 Écrans principaux====&lt;br /&gt;
&lt;br /&gt;
=====Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Filtres&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
=====Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=====Saisie d&#039;une ligne (fiche débours en brouillon)=====&lt;br /&gt;
&lt;br /&gt;
*Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
*Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
*&#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
*Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Boutons d&#039;action=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu||Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Validé||Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Refacturé||Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
|Annulé||Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode A&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
*&#039;&#039;&#039;Mode B&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
=====Onglets de la fiche débours=====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche facture client=====&lt;br /&gt;
Le module ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
*Un bandeau « X débours rattachés. Total avancé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Y € » dans le bloc options.&lt;br /&gt;
*Deux boutons en barre d&#039;actions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
*Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche tiers=====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Documentation complémentaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fichier!!Contenu!!Audience&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre||Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Internationalisation===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Préfixe!!Clés!!Domaine&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt;||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt;||93||Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt;||66||Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt;||21||Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt;||19||Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt;||9||Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt;||9||Registre&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt;||8||Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt;||6||Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt;||4||Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. Licence===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Manuel de l&#039;utilisateur==&lt;br /&gt;
&lt;br /&gt;
===1. À quoi ça sert===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
*entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
*relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
#La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
#Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
#Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
#Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
#Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
#Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===2. Premiers pas===&lt;br /&gt;
&lt;br /&gt;
====2.1 Configuration====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow&lt;br /&gt;
|-&lt;br /&gt;
|Micro-franchise (débutant·e)||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Micro en dépassement seuil TVA||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Société / autre régime||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
*&#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: registre seul, aucun contrôle bloquant&lt;br /&gt;
**&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
**&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
**&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
*&#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
====2.2 Profil URSSAF====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type d&#039;activité!!Code interne&lt;br /&gt;
|-&lt;br /&gt;
|Vente de marchandises (achat-revente)||&amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Prestations de services BIC||&amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales non réglementées (BNC)||&amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales CIPAV||&amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EI/EURL régime réel||&amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|SAS / SARL gérant minoritaire / majoritaire||&amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Personnalisé||&amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Le mandat client===&lt;br /&gt;
&lt;br /&gt;
====3.1 À quoi sert un mandat====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3.2 Cycle de vie du mandat====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Brouillon&#039;&#039;&#039;||Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Actif&#039;&#039;&#039;||Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Révoqué&#039;&#039;&#039;||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====3.3 Créer un mandat (workflow)====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Date de signature&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aujourd&#039;hui par défaut&lt;br /&gt;
*&#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
*&#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
====3.4 Révoquer un mandat====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
====3.5 Supprimer un mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié||✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié||❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Le débours===&lt;br /&gt;
&lt;br /&gt;
====4.1 Cycle de vie du débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.2 Créer un débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Libellé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
*&#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.3 Saisir les lignes====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Champ!!Contenu&lt;br /&gt;
|-&lt;br /&gt;
|Description||Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
|Fournisseur||Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
|N° facture fournisseur||Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
|Date facture fournisseur||Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
|HT, TVA, TTC||Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif||Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
|☐ « Facture fournisseur au nom du client »||&#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.4 Téléverser les justificatifs====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.5 Modifier l&#039;en-tête====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.6 Valider le débours====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Contrôle!!Niveau&lt;br /&gt;
|-&lt;br /&gt;
|Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt;||workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif présent sur chaque ligne||workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Case « facture au nom du client » cochée||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle globale||tous&lt;br /&gt;
|-&lt;br /&gt;
|Mention CGI configurée non vide||tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.7 Rattacher à une facture client====&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: chaque ligne du débours est insérée comme ligne facture avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
**&amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
**Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*#Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*#Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====4.8 Détacher====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.9 Remboursement (Refacturé → Remboursé)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.10 Annuler / Supprimer====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action!!Quand!!Effet&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Annuler&#039;&#039;&#039;||Brouillon → Refacturé (sauf si facture validée)||Soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rouvrir&#039;&#039;&#039;||Annulé||Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Supprimer&#039;&#039;&#039;||Brouillon ou Annulé||Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Verrouillage légal automatique===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====5.1 Verrouillage des justificatifs débours====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut débours!!Upload!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5.2 Verrouillage des pièces de mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut mandat!!Upload scan!!Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌||❌&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué||❌||✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====5.3 Verrouillage facture validée====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#&#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*#&#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Reports et exports===&lt;br /&gt;
&lt;br /&gt;
====6.1 Registre des débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
====6.2 Journal comptable 467====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
====6.3 Rapport CA / CA réel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
*IR sur versement libératoire si applicable&lt;br /&gt;
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Particularités micro-entrepreneur===&lt;br /&gt;
&lt;br /&gt;
====7.1 Franchise en base====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
*sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
*n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
====7.2 Versement libératoire IR====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====&lt;br /&gt;
&lt;br /&gt;
*Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
*Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. FAQ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
*Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===9. Glossaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Terme!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Débours&#039;&#039;&#039;||Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mandat&#039;&#039;&#039;||Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Compte 467&#039;&#039;&#039;||Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CGI&#039;&#039;&#039;||Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;special_code 493220&#039;&#039;&#039;||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039;||Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039;||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow simple&#039;&#039;&#039;||Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow complet&#039;&#039;&#039;||Strict CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===10. Aide et contact===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: audit automatique de tous vos débours validés.&lt;br /&gt;
*&#039;&#039;&#039;Documentation technique&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&#039;&#039;&#039;Mainteneur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66117</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66117"/>
		<updated>2026-05-10T21:54:24Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: précision aide intégré&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: PHP 8.4&#039;&#039;&#039;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Module ID&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 493220&lt;br /&gt;
*&#039;&#039;&#039;Famille&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Facturation (billing)&lt;br /&gt;
*&#039;&#039;&#039;Dépend de&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: modFacture, modSociete, modECM&lt;br /&gt;
*&#039;&#039;&#039;Version&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Licence&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].&lt;br /&gt;
&lt;br /&gt;
Le plugin dispose d&#039;une aide intégrée.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Table des matières==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*#[[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*#[[#3. Installation|Installation]]&lt;br /&gt;
*#[[#4. Configuration|Configuration]]&lt;br /&gt;
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*#[[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*#[[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*#[[#8. Licence|Licence]]&lt;br /&gt;
*&#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*#[[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*#[[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*#[[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*#[[#4. Le débours|Le débours]]&lt;br /&gt;
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*#[[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*#[[#8. FAQ|FAQ]]&lt;br /&gt;
*#[[#9. Glossaire|Glossaire]]&lt;br /&gt;
*#[[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installateur / intégrateur / dev==&lt;br /&gt;
&lt;br /&gt;
===1. Cadre légal===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
#être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
#être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
#être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
#porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
#être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
#être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
===2. Fonctionnalités===&lt;br /&gt;
&lt;br /&gt;
*Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
*Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
*&#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
*Refacturation au choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
**&#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
*&#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
*&#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
*&#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
*&#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
*&#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
*&#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Installation===&lt;br /&gt;
&lt;br /&gt;
#Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
#Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Configuration===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Section!!Contenu!!Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||&amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||&amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. Rétention &amp;amp; désinstallation||Durée (années) et conservation des tables||&amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||&amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. Avancé||Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Profils types====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en franchise||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;||au choix&lt;br /&gt;
|-&lt;br /&gt;
|Micro-entrepreneur en dépassement||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;||non&lt;br /&gt;
|-&lt;br /&gt;
|Autres régimes (BNC réel, SAS, SARL)||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;||au choix||non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
====Diagnostic de conformité====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Cycle de vie utilisateur===&lt;br /&gt;
&lt;br /&gt;
====5.1 Mandats clients====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
====5.2 Débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
====5.3 Écrans principaux====&lt;br /&gt;
&lt;br /&gt;
=====Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Filtres&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
=====Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=====Saisie d&#039;une ligne (fiche débours en brouillon)=====&lt;br /&gt;
&lt;br /&gt;
*Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
*Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
*&#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
*Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Boutons d&#039;action=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu||Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Validé||Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
|Refacturé||Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
|Annulé||Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;)=====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode A&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
*&#039;&#039;&#039;Mode B&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
=====Onglets de la fiche débours=====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche facture client=====&lt;br /&gt;
Le module ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
*Un bandeau « X débours rattachés. Total avancé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Y € » dans le bloc options.&lt;br /&gt;
*Deux boutons en barre d&#039;actions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
*Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
=====Sur la fiche tiers=====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Documentation complémentaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fichier!!Contenu!!Audience&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre||Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Internationalisation===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Préfixe!!Clés!!Domaine&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt;||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt;||93||Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt;||66||Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt;||21||Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt;||19||Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt;||9||Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt;||9||Registre&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt;||8||Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt;||6||Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt;||4||Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. Licence===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Manuel de l&#039;utilisateur==&lt;br /&gt;
&lt;br /&gt;
===1. À quoi ça sert===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
*entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
*relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
#La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
#Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
#Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
#Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
#Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
#Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===2. Premiers pas===&lt;br /&gt;
&lt;br /&gt;
====2.1 Configuration====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Profil!!Régime TVA!!Workflow&lt;br /&gt;
|-&lt;br /&gt;
|Micro-franchise (débutant·e)||&amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Micro en dépassement seuil TVA||&amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Société / autre régime||&amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
*&#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: registre seul, aucun contrôle bloquant&lt;br /&gt;
**&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
**&amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
**&amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
*&#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
====2.2 Profil URSSAF====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type d&#039;activité!!Code interne&lt;br /&gt;
|-&lt;br /&gt;
|Vente de marchandises (achat-revente)||&amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Prestations de services BIC||&amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales non réglementées (BNC)||&amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Activités libérales CIPAV||&amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|EI/EURL régime réel||&amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|SAS / SARL gérant minoritaire / majoritaire||&amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Personnalisé||&amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===3. Le mandat client===&lt;br /&gt;
&lt;br /&gt;
====3.1 À quoi sert un mandat====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====3.2 Cycle de vie du mandat====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Brouillon&#039;&#039;&#039;||Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Actif&#039;&#039;&#039;||Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Révoqué&#039;&#039;&#039;||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====3.3 Créer un mandat (workflow)====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Date de signature&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aujourd&#039;hui par défaut&lt;br /&gt;
*&#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
*&#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
====3.4 Révoquer un mandat====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
====3.5 Supprimer un mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié||✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié||❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===4. Le débours===&lt;br /&gt;
&lt;br /&gt;
====4.1 Cycle de vie du débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.2 Créer un débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Société&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le client final&lt;br /&gt;
*&#039;&#039;&#039;Libellé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
*&#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
*&#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.3 Saisir les lignes====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Champ!!Contenu&lt;br /&gt;
|-&lt;br /&gt;
|Description||Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
|Fournisseur||Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
|N° facture fournisseur||Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
|Date facture fournisseur||Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
|HT, TVA, TTC||Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif||Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
|☐ « Facture fournisseur au nom du client »||&#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.4 Téléverser les justificatifs====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.5 Modifier l&#039;en-tête====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
====4.6 Valider le débours====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Contrôle!!Niveau&lt;br /&gt;
|-&lt;br /&gt;
|Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt;||workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
|Justificatif présent sur chaque ligne||workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Case « facture au nom du client » cochée||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous&lt;br /&gt;
|-&lt;br /&gt;
|Marge nulle globale||tous&lt;br /&gt;
|-&lt;br /&gt;
|Mention CGI configurée non vide||tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.7 Rattacher à une facture client====&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: chaque ligne du débours est insérée comme ligne facture avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
**&amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
**Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*#Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*#Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====4.8 Détacher====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.9 Remboursement (Refacturé → Remboursé)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4.10 Annuler / Supprimer====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Action!!Quand!!Effet&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Annuler&#039;&#039;&#039;||Brouillon → Refacturé (sauf si facture validée)||Soft-delete&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Rouvrir&#039;&#039;&#039;||Annulé||Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Supprimer&#039;&#039;&#039;||Brouillon ou Annulé||Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===5. Verrouillage légal automatique===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====5.1 Verrouillage des justificatifs débours====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut débours!!Upload!!Suppression&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====5.2 Verrouillage des pièces de mandat====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Statut mandat!!Upload scan!!Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
|Brouillon||✅||✅&lt;br /&gt;
|-&lt;br /&gt;
|Actif||❌||❌&lt;br /&gt;
|-&lt;br /&gt;
|Révoqué||❌||✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====5.3 Verrouillage facture validée====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
*#&#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*#&#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===6. Reports et exports===&lt;br /&gt;
&lt;br /&gt;
====6.1 Registre des débours====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
====6.2 Journal comptable 467====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
====6.3 Rapport CA / CA réel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
*IR sur versement libératoire si applicable&lt;br /&gt;
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===7. Particularités micro-entrepreneur===&lt;br /&gt;
&lt;br /&gt;
====7.1 Franchise en base====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
*sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
*n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
====7.2 Versement libératoire IR====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====&lt;br /&gt;
&lt;br /&gt;
*Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
*Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===8. FAQ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
*Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===9. Glossaire===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Terme!!Sens&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Débours&#039;&#039;&#039;||Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mandat&#039;&#039;&#039;||Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Compte 467&#039;&#039;&#039;||Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CGI&#039;&#039;&#039;||Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;special_code 493220&#039;&#039;&#039;||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039;||Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039;||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow simple&#039;&#039;&#039;||Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Workflow complet&#039;&#039;&#039;||Strict CGI&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===10. Aide et contact===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: audit automatique de tous vos débours validés.&lt;br /&gt;
*&#039;&#039;&#039;Documentation technique&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&#039;&#039;&#039;Mainteneur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66116</id>
		<title>Module Debours</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Debours&amp;diff=66116"/>
		<updated>2026-05-10T20:50:30Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: création de la page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Plugin Dolibarr &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Module de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; pour Dolibarr 22.0.3+ (PHP 8.2+, &#039;&#039;&#039;recommandé : PHP 8.4&#039;&#039;&#039;) : gestion des &#039;&#039;&#039;frais de débours&#039;&#039;&#039; du micro-entrepreneur, conformément à &#039;&#039;&#039;l&#039;article 267 II 2° du Code Général des Impôts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Module ID&#039;&#039;&#039; : 493220&lt;br /&gt;
* &#039;&#039;&#039;Famille&#039;&#039;&#039; : Facturation (billing)&lt;br /&gt;
* &#039;&#039;&#039;Dépend de&#039;&#039;&#039; : modFacture, modSociete, modECM&lt;br /&gt;
* &#039;&#039;&#039;Version&#039;&#039;&#039; : voir &amp;lt;code&amp;gt;lib/debourstbnetsys.version.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Licence&#039;&#039;&#039; : GPL-3.0-or-later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Table des matières ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]&#039;&#039;&#039;&lt;br /&gt;
*# [[#1. Cadre légal|Cadre légal]]&lt;br /&gt;
*# [[#2. Fonctionnalités|Fonctionnalités]]&lt;br /&gt;
*# [[#3. Installation|Installation]]&lt;br /&gt;
*# [[#4. Configuration|Configuration]]&lt;br /&gt;
*# [[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]&lt;br /&gt;
*# [[#6. Documentation complémentaire|Documentation complémentaire]]&lt;br /&gt;
*# [[#7. Internationalisation|Internationalisation]]&lt;br /&gt;
*# [[#8. Licence|Licence]]&lt;br /&gt;
* &#039;&#039;&#039;[[#Manuel de l&#039;utilisateur|Manuel de l&#039;utilisateur]]&#039;&#039;&#039;&lt;br /&gt;
*# [[#1. À quoi ça sert|À quoi ça sert]]&lt;br /&gt;
*# [[#2. Premiers pas|Premiers pas]]&lt;br /&gt;
*# [[#3. Le mandat client|Le mandat client]]&lt;br /&gt;
*# [[#4. Le débours|Le débours]]&lt;br /&gt;
*# [[#5. Verrouillage légal automatique|Verrouillage légal automatique]]&lt;br /&gt;
*# [[#6. Reports et exports|Reports et exports]]&lt;br /&gt;
*# [[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]&lt;br /&gt;
*# [[#8. FAQ|FAQ]]&lt;br /&gt;
*# [[#9. Glossaire|Glossaire]]&lt;br /&gt;
*# [[#10. Aide et contact|Aide et contact]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installateur / intégrateur / dev ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Cadre légal ===&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;débours&#039;&#039; est une somme avancée par l&#039;entrepreneur &#039;&#039;&#039;au nom et pour le compte du client&#039;&#039;&#039;, refacturée à l&#039;identique. Pour être qualifiée de débours, la dépense doit cumulativement :&lt;br /&gt;
&lt;br /&gt;
# faire l&#039;objet d&#039;un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; du client,&lt;br /&gt;
# être &#039;&#039;&#039;facturée par le fournisseur au nom du client&#039;&#039;&#039; (pas de l&#039;entrepreneur),&lt;br /&gt;
# être &#039;&#039;&#039;refacturée à l&#039;euro près&#039;&#039;&#039; (aucune marge),&lt;br /&gt;
# être détaillée et accompagnée des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; sur la facture finale,&lt;br /&gt;
# porter la &#039;&#039;&#039;mention « Débours art. 267 II 2° CGI »&#039;&#039;&#039;,&lt;br /&gt;
# être comptabilisée en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs), pas en charge,&lt;br /&gt;
# être conservée &#039;&#039;&#039;10 ans&#039;&#039;&#039; (rétention légale).&lt;br /&gt;
&lt;br /&gt;
Conséquences : ces sommes sont &#039;&#039;&#039;hors champ de la TVA&#039;&#039;&#039;, &#039;&#039;&#039;exclues du chiffre d&#039;affaires&#039;&#039;&#039; et n&#039;entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.&lt;br /&gt;
&lt;br /&gt;
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.&lt;br /&gt;
&lt;br /&gt;
=== 2. Fonctionnalités ===&lt;br /&gt;
&lt;br /&gt;
* Tenue d&#039;un &#039;&#039;&#039;registre des débours&#039;&#039;&#039; (rétention 10 ans, export CSV).&lt;br /&gt;
* Gestion des &#039;&#039;&#039;mandats clients&#039;&#039;&#039; (signature, dates de validité, scan signé, révocation).&lt;br /&gt;
* &#039;&#039;&#039;Justificatifs&#039;&#039;&#039; rattachés ligne à ligne (ECM Dolibarr).&lt;br /&gt;
* Refacturation au choix :&lt;br /&gt;
** &#039;&#039;&#039;Mode A, lignes spéciales&#039;&#039;&#039; : injection dans la facture Dolibarr avec &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, exclues du calcul du CA réel.&lt;br /&gt;
** &#039;&#039;&#039;Mode B, PDF annexe&#039;&#039;&#039; : « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.&lt;br /&gt;
* &#039;&#039;&#039;Workflow paramétrable&#039;&#039;&#039; : &#039;&#039;minimal&#039;&#039; / &#039;&#039;simple&#039;&#039; / &#039;&#039;complet&#039;&#039; (avec mandat).&lt;br /&gt;
* &#039;&#039;&#039;Suivi du remboursement client&#039;&#039;&#039; : rapprochement automatique au prorata des paiements de facture.&lt;br /&gt;
* &#039;&#039;&#039;Export du journal comptable compte 467/512&#039;&#039;&#039; (compatible module Accounting Dolibarr) avec contrôle d&#039;équilibre débit/crédit.&lt;br /&gt;
* &#039;&#039;&#039;Rapport de chiffre d&#039;affaires réel&#039;&#039;&#039; + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).&lt;br /&gt;
* &#039;&#039;&#039;Diagnostic automatique de conformité&#039;&#039;&#039; : mandat, justificatif, marge nulle, mention CGI.&lt;br /&gt;
* &#039;&#039;&#039;Verrouillage légal&#039;&#039;&#039; : un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (&amp;lt;code&amp;gt;cancel()&amp;lt;/code&amp;gt; exigé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3. Installation ===&lt;br /&gt;
&lt;br /&gt;
# Cloner ou copier le dossier dans &amp;lt;code&amp;gt;htdocs/custom/debourstbnetsys/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Activer le module dans &#039;&#039;&#039;Accueil → Configuration → Modules&#039;&#039;&#039; (rubrique « Facturation »).&lt;br /&gt;
# Configurer dans &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tables créées : &amp;lt;code&amp;gt;llx_debours&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_det&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_mandat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_facture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;llx_debours_paiement&amp;lt;/code&amp;gt;. Elles sont &#039;&#039;&#039;conservées par défaut à la désinstallation&#039;&#039;&#039; (rétention 10 ans légale, constante &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE=1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Le module crée également deux dossiers : &amp;lt;code&amp;gt;documents/debourstbnetsys/temp/&amp;lt;/code&amp;gt; (temporaire) et &amp;lt;code&amp;gt;documents/debourstbnetsys/mandats/&amp;lt;/code&amp;gt; (modèles + scans signés).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 4. Configuration ===&lt;br /&gt;
&lt;br /&gt;
La page &#039;&#039;&#039;Accueil → Configuration → Modules → Débours TBNETSYS&#039;&#039;&#039; est structurée en 7 sections numérotées avec un encart d&#039;introduction listant les &#039;&#039;&#039;profils types&#039;&#039;&#039; et un diagnostic de conformité en bas de page.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Section !! Contenu !! Constantes principales&lt;br /&gt;
|-&lt;br /&gt;
| 1. Cadre fiscal || Régime TVA (auto / franchise / dépassement) || &amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2. Workflow || Niveau (minimal / simple / complet) + justificatif obligatoire || &amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_REQUIRE_JUSTIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3. Refacturation client || Mode A vs Mode B, mention CGI personnalisable || &amp;lt;code&amp;gt;DEBOURS_REFACT_MODE_DEFAULT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_LEGAL_MENTION&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4. Comptabilité || Compte tiers débours (467) + compte banque (512) || &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_ACCOUNT_CODE_BANK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 5. Rétention &amp;amp; désinstallation || Durée (années) et conservation des tables || &amp;lt;code&amp;gt;DEBOURS_RETENTION_YEARS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_KEEP_TABLES_ON_REMOVE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6. Cotisations URSSAF || Activité, taux personnalisé, versement libératoire, CFP || &amp;lt;code&amp;gt;DEBOURS_URSSAF_ACTIVITY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_RATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_VL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_URSSAF_CFP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 7. Avancé || Pagination listes (0 = illimité), &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEBOURS_SPECIAL_CODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Profils types ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Profil !! Régime TVA !! Workflow !! Mode refact. !! Versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
| Micro-entrepreneur en franchise || &amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt; || au choix&lt;br /&gt;
|-&lt;br /&gt;
| Micro-entrepreneur en dépassement || &amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt; || non&lt;br /&gt;
|-&lt;br /&gt;
| Autres régimes (BNC réel, SAS, SARL) || &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; || au choix || non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un profil par défaut peut être appliqué via le script CLI &amp;lt;code&amp;gt;apply_default_consts.php&amp;lt;/code&amp;gt; (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).&lt;br /&gt;
&lt;br /&gt;
==== Diagnostic de conformité ====&lt;br /&gt;
&lt;br /&gt;
Le bouton « Lancer diagnostic » en bas de la page exécute &amp;lt;code&amp;gt;Debours::checkCompliance()&amp;lt;/code&amp;gt; sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 5. Cycle de vie utilisateur ===&lt;br /&gt;
&lt;br /&gt;
==== 5.1 Mandats clients ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur la fiche mandat (&amp;lt;code&amp;gt;debours/mandat.php&amp;lt;/code&amp;gt;), un encart de &#039;&#039;&#039;progression à 5 étapes&#039;&#039;&#039; guide l&#039;utilisateur : création → génération PDF → signature → upload du scan → activation. L&#039;activation est &#039;&#039;&#039;bloquée tant qu&#039;aucun scan signé n&#039;est présent&#039;&#039;&#039; (le fichier modèle &amp;lt;code&amp;gt;{REF}_mandat.pdf&amp;lt;/code&amp;gt; ne compte pas comme scan).&lt;br /&gt;
&lt;br /&gt;
Le scan peut être envoyé directement au client par email depuis l&#039;interface (fiche en brouillon, email du tiers requis).&lt;br /&gt;
&lt;br /&gt;
==== 5.2 Débours ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minimal :  Brouillon → Validé&lt;br /&gt;
simple  :  Brouillon → Validé → Refacturé → Remboursé&lt;br /&gt;
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;état &#039;&#039;&#039;Annulé&#039;&#039;&#039; est atteignable depuis n&#039;importe quel statut via le bouton « Annuler » (soft-delete : conserve l&#039;historique, détache les pivots facture). Un débours annulé peut être réouvert (&amp;lt;code&amp;gt;Brouillon&amp;lt;/code&amp;gt;) tant qu&#039;aucune facture validée n&#039;y est rattachée.&lt;br /&gt;
&lt;br /&gt;
==== 5.3 Écrans principaux ====&lt;br /&gt;
&lt;br /&gt;
===== Liste des débours (&amp;lt;code&amp;gt;debours/list.php&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
Filtres : référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d&#039;une facture refact, statut. Pagination configurable (&amp;lt;code&amp;gt;DEBOURS_LIST_LIMIT&amp;lt;/code&amp;gt;, surchargeable via &amp;lt;code&amp;gt;?limit=N&amp;lt;/code&amp;gt;). Total cumulé en pied de page.&lt;br /&gt;
&lt;br /&gt;
Actions contextuelles par statut : Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).&lt;br /&gt;
&lt;br /&gt;
===== Création d&#039;un débours (&amp;lt;code&amp;gt;debours/card.php?action=create&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
Encart d&#039;introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ : description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow &amp;lt;code&amp;gt;complet&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===== Saisie d&#039;une ligne (fiche débours en brouillon) =====&lt;br /&gt;
* Encart explicatif au-dessus du tableau, listant les &#039;&#039;&#039;5 règles légales&#039;&#039;&#039; à respecter.&lt;br /&gt;
* En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.&lt;br /&gt;
* Inputs avec labels d&#039;aide en gris, placeholders, attributs &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; sur les champs obligatoires.&lt;br /&gt;
* &#039;&#039;&#039;JavaScript embarqué&#039;&#039;&#039; : auto-calcul &amp;lt;code&amp;gt;TTC = HT + TVA&amp;lt;/code&amp;gt; tant que l&#039;utilisateur n&#039;a pas saisi le TTC manuellement et &#039;&#039;&#039;fond rouge&#039;&#039;&#039; signalant tout écart de marge &amp;gt; 0,01 €.&lt;br /&gt;
* Case déclarative obligatoire « Facture fournisseur au nom du client ».&lt;br /&gt;
* Sélecteur de justificatif déroulant (fichiers téléversés depuis l&#039;onglet &#039;&#039;Justificatifs&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===== Boutons d&#039;action =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Statut !! Boutons disponibles&lt;br /&gt;
|-&lt;br /&gt;
| Brouillon || Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer&lt;br /&gt;
|-&lt;br /&gt;
| Mandat reçu || Valider · Annuler&lt;br /&gt;
|-&lt;br /&gt;
| Validé || Rattacher à facture · Annuler&lt;br /&gt;
|-&lt;br /&gt;
| Refacturé || Détacher (si facture brouillon)&lt;br /&gt;
|-&lt;br /&gt;
| Annulé || Réouvrir · Supprimer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Rattachement à facture (&amp;lt;code&amp;gt;action=ask_attach_invoice&amp;lt;/code&amp;gt;) =====&lt;br /&gt;
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection :&lt;br /&gt;
* &#039;&#039;&#039;Mode A&#039;&#039;&#039; : injecte les lignes du débours dans la facture (TVA forcée à 0, &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt;, mention CGI préfixée à la description).&lt;br /&gt;
* &#039;&#039;&#039;Mode B&#039;&#039;&#039; : ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.&lt;br /&gt;
&lt;br /&gt;
===== Onglets de la fiche débours =====&lt;br /&gt;
&#039;&#039;Carte&#039;&#039; · &#039;&#039;Justificatifs&#039;&#039; (upload bloqué hors brouillon) · &#039;&#039;Notes&#039;&#039; (privée + publique) · &#039;&#039;Événements&#039;&#039; (timeline + historique des remboursements partiels).&lt;br /&gt;
&lt;br /&gt;
===== Sur la fiche facture client =====&lt;br /&gt;
Le module ajoute :&lt;br /&gt;
* Un onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; listant les débours rattachés.&lt;br /&gt;
* Un bandeau « X débours rattachés. Total avancé : Y € » dans le bloc options.&lt;br /&gt;
* Deux boutons en barre d&#039;actions : « Rattacher des débours existants » et « Créer un débours pour cette facture ».&lt;br /&gt;
* Une &#039;&#039;&#039;mention CGI&#039;&#039;&#039; automatiquement injectée en pied de fiche dès qu&#039;au moins une ligne porte le &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; débours.&lt;br /&gt;
* Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.&lt;br /&gt;
&lt;br /&gt;
===== Sur la fiche tiers =====&lt;br /&gt;
Onglet &#039;&#039;&#039;Débours&#039;&#039;&#039; + bandeau de comptage (&amp;lt;code&amp;gt;COUNT(*)&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;SUM(total_amount)&amp;lt;/code&amp;gt; des débours non annulés). La suppression du tiers est &#039;&#039;&#039;refusée&#039;&#039;&#039; tant qu&#039;il subsiste des débours actifs (statut ≠ remboursé / annulé).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 6. Documentation complémentaire ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Contenu !! Audience&lt;br /&gt;
|-&lt;br /&gt;
| [[docs/conformite-cgi.md]] || Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques) || Comptables / auditeurs&lt;br /&gt;
|-&lt;br /&gt;
| [[docs/workflow.md]] || Niveaux de workflow, transitions, statut Annulé || Utilisateurs / configurateurs&lt;br /&gt;
|-&lt;br /&gt;
| [[docs/exports-comptables.md]] || Format CSV registre + journal 467/512, écritures doubles, contrôle d&#039;équilibre || Comptables / DAF&lt;br /&gt;
|-&lt;br /&gt;
| [[ARCHITECTURE.md]] || Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF || Développeurs / mainteneurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 7. Internationalisation ===&lt;br /&gt;
&lt;br /&gt;
Fichiers &amp;lt;code&amp;gt;langs/fr_FR/debourstbnetsys.lang&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;langs/en_US/debourstbnetsys.lang&amp;lt;/code&amp;gt;. &#039;&#039;&#039;427 clés&#039;&#039;&#039; par locale, &#039;&#039;&#039;parité parfaite&#039;&#039;&#039; (vérifiable via &amp;lt;code&amp;gt;comm -23 / comm -13&amp;lt;/code&amp;gt; sur listes triées).&lt;br /&gt;
&lt;br /&gt;
Familles de préfixes principales :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Préfixe !! Clés !! Domaine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Debours*&amp;lt;/code&amp;gt; || 180 || En-tête, workflow, UI, validation, refacturation, aides création/saisie&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Mandat*&amp;lt;/code&amp;gt; || 93 || Mandats client, génération PDF, signature, email&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CaReport*&amp;lt;/code&amp;gt; || 66 || Rapport CA réel, cotisations URSSAF, versement libératoire&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Error*&amp;lt;/code&amp;gt; || 21 || Messages d&#039;erreur conformité / workflow&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Urssaf*&amp;lt;/code&amp;gt; || 19 || Configuration profil social&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Releve*&amp;lt;/code&amp;gt; || 9 || Relevé de débours annexe (Mode B)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Ledger*&amp;lt;/code&amp;gt; || 9 || Registre&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Attach*&amp;lt;/code&amp;gt; || 8 || Rattachement à facture&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Workflow*&amp;lt;/code&amp;gt; || 6 || Niveaux minimal / simple / complet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Compliance*&amp;lt;/code&amp;gt; || 4 || Diagnostic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
À chaque ajout de clé en FR, ajouter l&#039;équivalent EN au même endroit pour préserver la parité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 8. Licence ===&lt;br /&gt;
&lt;br /&gt;
GPL-3.0-or-later. TBNETSYS.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Manuel de l&#039;utilisateur ==&lt;br /&gt;
&lt;br /&gt;
=== 1. À quoi ça sert ===&lt;br /&gt;
&lt;br /&gt;
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de &#039;&#039;&#039;payer un fournisseur au nom et pour le compte de votre client&#039;&#039;&#039; : frais de port, billets de train pour un déplacement client, achats spécifiques, etc.&lt;br /&gt;
&lt;br /&gt;
Sans dispositif particulier, ces sommes :&lt;br /&gt;
* gonflent artificiellement votre &#039;&#039;&#039;chiffre d&#039;affaires&#039;&#039;&#039;,&lt;br /&gt;
* entrent dans le calcul des &#039;&#039;&#039;cotisations URSSAF&#039;&#039;&#039; (en micro),&lt;br /&gt;
* relèvent du &#039;&#039;&#039;champ TVA&#039;&#039;&#039; (si vous y êtes assujetti).&lt;br /&gt;
&lt;br /&gt;
Le mécanisme légal des &#039;&#039;&#039;débours&#039;&#039;&#039; (art. 267 II 2° CGI) permet d&#039;&#039;&#039;&#039;exclure ces sommes de votre CA et du champ TVA&#039;&#039;&#039; dès lors que :&lt;br /&gt;
&lt;br /&gt;
# Le client vous a donné un &#039;&#039;&#039;mandat préalable écrit&#039;&#039;&#039; ;&lt;br /&gt;
# La facture du fournisseur est établie &#039;&#039;&#039;au nom du client&#039;&#039;&#039; ;&lt;br /&gt;
# Vous refacturez &#039;&#039;&#039;à l&#039;euro près&#039;&#039;&#039; (aucune marge) ;&lt;br /&gt;
# Vous accompagnez la facture client des &#039;&#039;&#039;justificatifs&#039;&#039;&#039; ;&lt;br /&gt;
# Vous portez la mention « &#039;&#039;&#039;Débours art. 267 II 2° CGI&#039;&#039;&#039; » sur la facture finale ;&lt;br /&gt;
# Vous comptabilisez en &#039;&#039;&#039;compte 467&#039;&#039;&#039; (autres comptes débiteurs/créditeurs) et non en charge ;&lt;br /&gt;
# Vous conservez l&#039;ensemble &#039;&#039;&#039;10 ans&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. &#039;&#039;&#039;Tout en respectant les 7 critères ci-dessus&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Compatible multi-société (multi-entité Dolibarr).&#039;&#039;&#039; Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module &#039;&#039;Multicompany&#039;&#039;), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation &amp;lt;code&amp;gt;DEB-YYYY-NNNN&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;MAN-YYYY-NNNN&amp;lt;/code&amp;gt;, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés : toutes les tables du module portent une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; filtrée à chaque requête.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 2. Premiers pas ===&lt;br /&gt;
&lt;br /&gt;
==== 2.1 Configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Accueil → Configuration → Modules → Débours TBNETSYS → Configurer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La page est organisée en &#039;&#039;&#039;7 sections&#039;&#039;&#039; avec des aides détaillées. Trois profils types sont rappelés en tête de page :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Profil !! Régime TVA !! Workflow&lt;br /&gt;
|-&lt;br /&gt;
| Micro-franchise (débutant·e) || &amp;lt;code&amp;gt;franchise&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Micro en dépassement seuil TVA || &amp;lt;code&amp;gt;depassement&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Société / autre régime || &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Paramètres clés à connaître&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Régime TVA&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_VAT_REGIME&amp;lt;/code&amp;gt;) : indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).&lt;br /&gt;
* &#039;&#039;&#039;Workflow&#039;&#039;&#039; (&amp;lt;code&amp;gt;DEBOURS_WORKFLOW_LEVEL&amp;lt;/code&amp;gt;) :&lt;br /&gt;
** &amp;lt;code&amp;gt;minimal&amp;lt;/code&amp;gt; : registre seul, aucun contrôle bloquant&lt;br /&gt;
** &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; : justificatif obligatoire + marge nulle (recommandé)&lt;br /&gt;
** &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; : strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)&lt;br /&gt;
* &#039;&#039;&#039;Mode de refacturation par défaut&#039;&#039;&#039; :&lt;br /&gt;
** &amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt; : les débours apparaissent comme lignes spéciales sur la facture client (un seul document)&lt;br /&gt;
** &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt; : un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)&lt;br /&gt;
* &#039;&#039;&#039;Conservation des tables à la désinstallation&#039;&#039;&#039; : laisser coché (rétention légale 10 ans).&lt;br /&gt;
&lt;br /&gt;
==== 2.2 Profil URSSAF ====&lt;br /&gt;
&lt;br /&gt;
Section 6 du Setup : indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type d&#039;activité !! Code interne&lt;br /&gt;
|-&lt;br /&gt;
| Vente de marchandises (achat-revente) || &amp;lt;code&amp;gt;vente&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prestations de services BIC || &amp;lt;code&amp;gt;services_bic&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Activités libérales non réglementées (BNC) || &amp;lt;code&amp;gt;bnc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Activités libérales CIPAV || &amp;lt;code&amp;gt;cipav&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| EI/EURL régime réel || &amp;lt;code&amp;gt;ei_eurl_reel&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SAS / SARL gérant minoritaire / majoritaire || &amp;lt;code&amp;gt;sas&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_minoritaire&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sarl_majoritaire&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Personnalisé || &amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt; (saisie manuelle du taux)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cochez &#039;&#039;&#039;« J&#039;ai opté pour le versement libératoire de l&#039;IR »&#039;&#039;&#039; si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3. Le mandat client ===&lt;br /&gt;
&lt;br /&gt;
==== 3.1 À quoi sert un mandat ====&lt;br /&gt;
&lt;br /&gt;
Un mandat est le &#039;&#039;&#039;document écrit préalable&#039;&#039;&#039; par lequel votre client vous autorise à engager des dépenses &#039;&#039;&#039;en son nom et pour son compte&#039;&#039;&#039;. C&#039;est la &#039;&#039;&#039;condition n°1 des 7 critères CGI&#039;&#039;&#039; : sans mandat valide à la date de l&#039;avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Un mandat couvre N débours.&#039;&#039;&#039; Vous ne créez pas un mandat à chaque débours. Vous le faites &#039;&#039;&#039;une fois par client&#039;&#039;&#039; (ou par mission ponctuelle si vous bornez la période).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.2 Cycle de vie du mandat ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → Actif → Révoqué&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Statut !! Sens&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Brouillon&#039;&#039;&#039; || Mandat créé mais non encore opposable. Pas de couverture.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Actif&#039;&#039;&#039; || Signé, opérationnel, couvre les débours dans la période de validité.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Révoqué&#039;&#039;&#039; || Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 3.3 Créer un mandat (workflow) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Mandats clients → Nouveau mandat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 1. Renseigner l&#039;en-tête&#039;&#039;&#039; :&lt;br /&gt;
* &#039;&#039;&#039;Société&#039;&#039;&#039; : le client final&lt;br /&gt;
* &#039;&#039;&#039;Date de signature&#039;&#039;&#039; : aujourd&#039;hui par défaut&lt;br /&gt;
* &#039;&#039;&#039;Début / fin de validité&#039;&#039;&#039; : laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)&lt;br /&gt;
* &#039;&#039;&#039;Portée des dépenses autorisées&#039;&#039;&#039; : description précise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 2. Cliquer « Créer »&#039;&#039;&#039; : le mandat est enregistré en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 3. Générer le PDF&#039;&#039;&#039; : sur la fiche, cliquer &#039;&#039;&#039;« Générer le PDF »&#039;&#039;&#039;. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l&#039;objet du mandat, la portée, la période de validité et deux cadres de signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 4. Faire signer le client&#039;&#039;&#039; (papier ou signature électronique).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 5. Téléverser le scan signé&#039;&#039;&#039; dans l&#039;onglet &#039;&#039;&#039;« Justificatif signé »&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Étape 6. Activer le mandat&#039;&#039;&#039; : le bouton « Activer » apparaît dès qu&#039;un scan signé est présent. Cliquer dessus → le mandat passe en &#039;&#039;&#039;Actif&#039;&#039;&#039; et couvre désormais les débours.&lt;br /&gt;
&lt;br /&gt;
L&#039;encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s&#039;allument au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
==== 3.4 Révoquer un mandat ====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un mandat actif : bouton &#039;&#039;&#039;« Révoquer »&#039;&#039;&#039;. Le mandat passe en &#039;&#039;&#039;Révoqué&#039;&#039;&#039; et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.&lt;br /&gt;
&lt;br /&gt;
==== 3.5 Supprimer un mandat ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Statut !! Suppression&lt;br /&gt;
|-&lt;br /&gt;
| Brouillon || ✅ Autorisée&lt;br /&gt;
|-&lt;br /&gt;
| Actif || ❌ Bloquée. Révoquez d&#039;abord&lt;br /&gt;
|-&lt;br /&gt;
| Révoqué &#039;&#039;&#039;sans&#039;&#039;&#039; débours lié || ✅ Autorisée (cleanup)&lt;br /&gt;
|-&lt;br /&gt;
| Révoqué &#039;&#039;&#039;avec&#039;&#039;&#039; débours lié || ❌ Bloquée (audit trail à conserver 10 ans)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 4. Le débours ===&lt;br /&gt;
&lt;br /&gt;
==== 4.1 Cycle de vie du débours ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé&lt;br /&gt;
                                          ↓&lt;br /&gt;
                                       Annulé (soft-delete)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; uniquement en workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.2 Créer un débours ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Nouveau débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;En-tête&#039;&#039;&#039; :&lt;br /&gt;
* &#039;&#039;&#039;Société&#039;&#039;&#039; : le client final&lt;br /&gt;
* &#039;&#039;&#039;Libellé&#039;&#039;&#039; : description courte (ex. « Frais de port commande #1234 »)&lt;br /&gt;
* &#039;&#039;&#039;Date de l&#039;avance&#039;&#039;&#039; : date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.&lt;br /&gt;
* &#039;&#039;&#039;Mode de refacturation&#039;&#039;&#039; : &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt; (sur la facture) ou &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt; (relevé séparé joint)&lt;br /&gt;
&lt;br /&gt;
Cliquer &#039;&#039;&#039;« Créer »&#039;&#039;&#039; → débours en Brouillon.&lt;br /&gt;
&lt;br /&gt;
==== 4.3 Saisir les lignes ====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Champ !! Contenu&lt;br /&gt;
|-&lt;br /&gt;
| Description || Ex. « Frais de port Chronopost »&lt;br /&gt;
|-&lt;br /&gt;
| Fournisseur || Ex. « La Poste »&lt;br /&gt;
|-&lt;br /&gt;
| N° facture fournisseur || Référence ou ticket&lt;br /&gt;
|-&lt;br /&gt;
| Date facture fournisseur || Date sur la facture&lt;br /&gt;
|-&lt;br /&gt;
| HT, TVA, TTC || Doivent vérifier &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; (marge nulle)&lt;br /&gt;
|-&lt;br /&gt;
| Justificatif || Fichier ECM (à téléverser dans l&#039;onglet Justificatifs)&lt;br /&gt;
|-&lt;br /&gt;
| ☐ « Facture fournisseur au nom du client » || &#039;&#039;&#039;Case obligatoire à cocher&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⚠️ Le calcul &#039;&#039;&#039;HT + TVA = TTC&#039;&#039;&#039; est vérifié à la saisie : si l&#039;écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l&#039;enregistrement (refacturation à l&#039;identique imposée par la loi).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.4 Téléverser les justificatifs ====&lt;br /&gt;
&lt;br /&gt;
Onglet &#039;&#039;&#039;« Justificatifs »&#039;&#039;&#039; sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et &#039;&#039;&#039;sélectionner&#039;&#039;&#039; chaque fichier dans la liste déroulante de la ligne correspondante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Les fichiers sont stockés dans &amp;lt;code&amp;gt;documents/debourstbnetsys/{REF_DEBOURS}/&amp;lt;/code&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.5 Modifier l&#039;en-tête ====&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d&#039;un débours en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Modifier l&#039;en-tête »&#039;&#039;&#039; ouvre un formulaire d&#039;édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.&lt;br /&gt;
&lt;br /&gt;
==== 4.6 Valider le débours ====&lt;br /&gt;
&lt;br /&gt;
Bouton &#039;&#039;&#039;« Valider le débours »&#039;&#039;&#039; sur la fiche. Le système contrôle automatiquement :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Contrôle !! Niveau&lt;br /&gt;
|-&lt;br /&gt;
| Mandat actif couvrant &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; || workflow &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt; uniquement&lt;br /&gt;
|-&lt;br /&gt;
| Justificatif présent sur chaque ligne || workflow &amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;complete&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Case « facture au nom du client » cochée || tous&lt;br /&gt;
|-&lt;br /&gt;
| Marge nulle (HT+VAT=TTC) ligne par ligne || tous&lt;br /&gt;
|-&lt;br /&gt;
| Marge nulle globale || tous&lt;br /&gt;
|-&lt;br /&gt;
| Mention CGI configurée non vide || tous&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en &#039;&#039;&#039;Validé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;En workflow complet : si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d&#039;abord en statut intermédiaire &#039;&#039;&#039;Mandat reçu&#039;&#039;&#039; (1) puis en &#039;&#039;&#039;Validé&#039;&#039;&#039; (2).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.7 Rattacher à une facture client ====&lt;br /&gt;
&lt;br /&gt;
Sur un débours &#039;&#039;&#039;Validé&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Rattacher à une facture client »&#039;&#039;&#039; ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Selon le mode de refacturation :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mode &amp;lt;code&amp;gt;lignes&amp;lt;/code&amp;gt;&#039;&#039;&#039; : chaque ligne du débours est insérée comme ligne facture avec :&lt;br /&gt;
** &amp;lt;code&amp;gt;tva_tx = 0&amp;lt;/code&amp;gt; (toujours hors TVA)&lt;br /&gt;
** &amp;lt;code&amp;gt;special_code = 493220&amp;lt;/code&amp;gt; (exclut la ligne du calcul du CA réel)&lt;br /&gt;
** Description préfixée « [Débours] » + mention CGI&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mode &amp;lt;code&amp;gt;PDF annexe&amp;lt;/code&amp;gt;&#039;&#039;&#039; :&lt;br /&gt;
*# Une &#039;&#039;&#039;ligne récap&#039;&#039;&#039; est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même &amp;lt;code&amp;gt;special_code&amp;lt;/code&amp;gt; et TVA 0.&lt;br /&gt;
*# Le &#039;&#039;&#039;PDF Relevé de débours&#039;&#039;&#039; est généré (TCPDF, A4) et copié dans &amp;lt;code&amp;gt;documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt;.&lt;br /&gt;
*# Les &#039;&#039;&#039;justificatifs&#039;&#039;&#039; (factures fournisseurs scannées) sont également copiés à côté du relevé.&lt;br /&gt;
&lt;br /&gt;
Le débours passe automatiquement en &#039;&#039;&#039;Refacturé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== 4.8 Détacher ====&lt;br /&gt;
&lt;br /&gt;
Tant que la facture est en &#039;&#039;&#039;Brouillon&#039;&#039;&#039;, le bouton &#039;&#039;&#039;« Détacher de la facture »&#039;&#039;&#039; est disponible sur le débours Refacturé. Détache → débours retombe en &#039;&#039;&#039;Validé&#039;&#039;&#039;, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Si la facture est &#039;&#039;&#039;validée&#039;&#039;&#039; (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.9 Remboursement (Refacturé → Remboursé) ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode automatique recommandé&#039;&#039;&#039; : enregistrez le paiement de la facture côté Dolibarr (&amp;lt;code&amp;gt;Compta → Factures clients → Paiements&amp;lt;/code&amp;gt;). Le trigger &amp;lt;code&amp;gt;BILL_PAYED&amp;lt;/code&amp;gt; calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en &#039;&#039;&#039;Remboursé&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Il n&#039;y a &#039;&#039;&#039;pas de bouton manuel&#039;&#039;&#039; « Marquer remboursé » : un seul chemin, pas de risque de double-comptage.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4.10 Annuler / Supprimer ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Quand !! Effet&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Annuler&#039;&#039;&#039; || Brouillon → Refacturé (sauf si facture validée) || Soft-delete : statut &amp;lt;code&amp;gt;Annulé&amp;lt;/code&amp;gt;, pivots facture supprimés&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Rouvrir&#039;&#039;&#039; || Annulé || Repasse en Brouillon&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Supprimer&#039;&#039;&#039; || Brouillon ou Annulé || Suppression définitive (refusé si statut &amp;gt;= Validé)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 5. Verrouillage légal automatique ===&lt;br /&gt;
&lt;br /&gt;
À chaque jalon du cycle de vie, le système verrouille les modifications &#039;&#039;&#039;incompatibles avec la conformité légale&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== 5.1 Verrouillage des justificatifs débours ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Statut débours !! Upload !! Suppression&lt;br /&gt;
|-&lt;br /&gt;
| Brouillon || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| Mandat reçu / Validé / Refacturé / Remboursé / Annulé || ❌ || ❌&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l&#039;onglet Justificatifs et explique comment débloquer : annuler puis ré-ouvrir le débours pour repasser en brouillon.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5.2 Verrouillage des pièces de mandat ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Statut mandat !! Upload scan !! Suppression scan&lt;br /&gt;
|-&lt;br /&gt;
| Brouillon || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| Actif || ❌ || ❌&lt;br /&gt;
|-&lt;br /&gt;
| Révoqué || ❌ || ✅ (cleanup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 5.3 Verrouillage facture validée ====&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un débours est &#039;&#039;&#039;Refacturé&#039;&#039;&#039; sur une facture &#039;&#039;&#039;validée&#039;&#039;&#039; dans Dolibarr (numéro légal figé) :&lt;br /&gt;
&lt;br /&gt;
* Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)&lt;br /&gt;
* Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les &#039;&#039;&#039;deux seules sorties&#039;&#039;&#039; :&lt;br /&gt;
*# &#039;&#039;&#039;Supprimer la facture&#039;&#039;&#039; côté Dolibarr (autorisé seulement si c&#039;est la dernière émise) → trigger &amp;lt;code&amp;gt;BILL_DELETE&amp;lt;/code&amp;gt; → débours rebascule automatiquement en &#039;&#039;&#039;Validé&#039;&#039;&#039;, prêt à être ré-attaché ailleurs ou annulé.&lt;br /&gt;
*# &#039;&#039;&#039;Émettre une facture d&#039;avoir&#039;&#039;&#039; annulant celle-ci.&lt;br /&gt;
&lt;br /&gt;
Aucun raccourci. C&#039;est la garantie que les données débours &#039;&#039;&#039;figent au moment où la facture client est légalement émise&#039;&#039;&#039;, conformément au CGI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 6. Reports et exports ===&lt;br /&gt;
&lt;br /&gt;
==== 6.1 Registre des débours ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Registre des débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtre par période + statut. Liste exportable en CSV avec : référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.&lt;br /&gt;
&lt;br /&gt;
À conserver / archiver chaque année.&lt;br /&gt;
&lt;br /&gt;
==== 6.2 Journal comptable 467 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Débours → Export journal 467&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Génère les écritures comptables :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)&lt;br /&gt;
Remboursement :            Débit 512 / Crédit 467   (encaissement)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le compte 467 est &#039;&#039;&#039;soldé&#039;&#039;&#039; débours par débours quand le remboursement est complet.&lt;br /&gt;
&lt;br /&gt;
Contrôle d&#039;équilibre (somme débits = somme crédits) affiché en bas de l&#039;écran. CSV exportable pour intégration en compta.&lt;br /&gt;
&lt;br /&gt;
==== 6.3 Rapport CA / CA réel ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Menu Compta → Rapport CA débours&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare votre CA brut Dolibarr (somme totale des factures) avec votre &#039;&#039;&#039;CA réel&#039;&#039;&#039; (CA brut moins les lignes débours). Ajoute :&lt;br /&gt;
&lt;br /&gt;
* Cotisations URSSAF estimées au taux de votre activité&lt;br /&gt;
* IR sur versement libératoire si applicable&lt;br /&gt;
* Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)&lt;br /&gt;
&lt;br /&gt;
Filtres période disponibles. Rapport mis à jour à chaque accès.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 7. Particularités micro-entrepreneur ===&lt;br /&gt;
&lt;br /&gt;
==== 7.1 Franchise en base ====&lt;br /&gt;
&lt;br /&gt;
Vous êtes sous le seuil TVA. Vos factures n&#039;ont &#039;&#039;&#039;pas&#039;&#039;&#039; de TVA à reverser. Les débours :&lt;br /&gt;
&lt;br /&gt;
* restent &#039;&#039;&#039;hors champ TVA&#039;&#039;&#039; comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n&#039;est ni récupérée ni refacturée. Elle « passe » via le total TTC)&lt;br /&gt;
* sont &#039;&#039;&#039;exclus du CA&#039;&#039;&#039; déclaré à l&#039;URSSAF&lt;br /&gt;
* n&#039;entrent pas dans le calcul des cotisations sociales&lt;br /&gt;
&lt;br /&gt;
==== 7.2 Versement libératoire IR ====&lt;br /&gt;
&lt;br /&gt;
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s&#039;applique sur le CA. Avec les débours bien gérés, cette base est &#039;&#039;&#039;réduite d&#039;autant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== 7.3 Que se passe-t-il si je dépasse les seuils micro ? ====&lt;br /&gt;
&lt;br /&gt;
* Seuil de &#039;&#039;&#039;CA&#039;&#039;&#039; (pour 2026 : 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA &#039;&#039;&#039;réel&#039;&#039;&#039; (hors débours). Le rapport intègre les débours dans son calcul.&lt;br /&gt;
* Seuil &#039;&#039;&#039;TVA&#039;&#039;&#039; (39 100 € en services, 101 000 € en vente) : passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 8. FAQ ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : Je viens de créer un mandat, je peux déjà créer un débours dessus ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Pas en workflow complet. Le mandat doit d&#039;abord être &#039;&#039;&#039;activé&#039;&#039;&#039; (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n&#039;est pas bloqué mais ce n&#039;est pas conforme CGI : faites-le quand même.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : Le mandat est dans le passé, le débours est aujourd&#039;hui. C&#039;est OK ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Oui. Le mandat couvre une &#039;&#039;&#039;période&#039;&#039;&#039;. Tant que &amp;lt;code&amp;gt;date_debours&amp;lt;/code&amp;gt; est dans la période de validité (&amp;lt;code&amp;gt;date_validity_start&amp;lt;/code&amp;gt; ≤ date ≤ &amp;lt;code&amp;gt;date_validity_end&amp;lt;/code&amp;gt; ou fin vide = illimité), le débours est couvert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : J&#039;ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Non, c&#039;est l&#039;auto-réparation qui gère ça. Au prochain &amp;lt;code&amp;gt;checkCompliance()&amp;lt;/code&amp;gt; (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement &amp;lt;code&amp;gt;getActiveForCompany()&amp;lt;/code&amp;gt; et rattache le mandat actif.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : J&#039;ai fait une erreur dans la date d&#039;un débours validé. Comment corriger ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Annuler le débours → Rouvrir → Modifier l&#039;en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d&#039;abord supprimer/annuler la facture côté Dolibarr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : Je veux supprimer un mandat révoqué.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Possible &#039;&#039;&#039;si aucun débours n&#039;y est lié&#039;&#039;&#039; (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : Mon client refuse de signer le mandat. Que faire ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l&#039;art. 267 II 2°. Solutions :&lt;br /&gt;
* Refacturer la dépense en &#039;&#039;&#039;prestation classique&#039;&#039;&#039; (avec marge, soumise à TVA et cotisations). Pas un débours.&lt;br /&gt;
* Demander à votre client de payer directement le fournisseur. Vous n&#039;avancez plus rien.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : le débours passe en Remboursé tout seul ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q : Mon dossier sur disque contient encore un fichier &amp;lt;code&amp;gt;*_(PROV339).pdf&amp;lt;/code&amp;gt;, c&#039;est un bug ?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
R : Non. C&#039;est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent &amp;lt;code&amp;gt;{REF_DEBOURS}.pdf&amp;lt;/code&amp;gt; sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 9. Glossaire ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Terme !! Sens&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Débours&#039;&#039;&#039; || Somme avancée par l&#039;entrepreneur au nom et pour le compte du client, refacturée à l&#039;identique.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mandat&#039;&#039;&#039; || Document écrit préalable autorisant l&#039;entrepreneur à engager des dépenses au nom du client.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Compte 467&#039;&#039;&#039; || Compte tiers comptable pour les avances pour le compte de tiers (PCG).&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CGI&#039;&#039;&#039; || Code Général des Impôts (article 267 II 2° pour les débours).&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;special_code 493220&#039;&#039;&#039; || Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mode A / lignes&#039;&#039;&#039; || Refacturation par lignes spéciales sur la facture client.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mode B / PDF annexe&#039;&#039;&#039; || Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Workflow simple&#039;&#039;&#039; || Justificatifs + marge nulle obligatoires, pas de mandat strict.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Workflow complet&#039;&#039;&#039; || Strict CGI : mandat actif requis.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 10. Aide et contact ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Setup → Diagnostic conformité&#039;&#039;&#039; : audit automatique de tous vos débours validés.&lt;br /&gt;
* &#039;&#039;&#039;Documentation technique&#039;&#039;&#039; : voir &amp;lt;code&amp;gt;docs/&amp;lt;/code&amp;gt; du module (&amp;lt;code&amp;gt;conformite-cgi.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workflow.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;exports-comptables.md&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;Mainteneur&#039;&#039;&#039; : TBNETSYS (Voir www.tbnetsys.fr, page contact)&lt;br /&gt;
&lt;br /&gt;
Module sous licence GPL-3.0-or-later.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=66115</id>
		<title>List of modules id</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=66115"/>
		<updated>2026-05-10T19:57:17Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: /* ID 100000 - 499999 : *ID 493220 - 493239: TBNETSYS (www.tbnetsys.fr)  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateDocDevEn}}&lt;br /&gt;
{{TemplateDocDevEs}}&lt;br /&gt;
{{TemplateDocDevFr}}&lt;br /&gt;
{{TemplateDocDevZh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page list all reserved modules numbers / ID.&lt;br /&gt;
&lt;br /&gt;
If you build or want to build your own modules, you should take an ID range here. Please pick range into existing holes first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=ID 0 - 94999=&lt;br /&gt;
This range is reserved for Dolibarr&#039;s internal core modules, so all modules available into the standard distribution at https://github.com/Dolibarr/dolibarr&lt;br /&gt;
&lt;br /&gt;
=ID 95000 - 99999=&lt;br /&gt;
This range is reserved for Dolibarr&#039;s community modules with sources hosted into the github repository: https://github.com/Dolibarr/dolibarr-community-modules&lt;br /&gt;
&lt;br /&gt;
=ID 100000 - 499999=&lt;br /&gt;
&lt;br /&gt;
Reserved area for editors in need for an ID range. You can edit this page to add your own range (take a range of 20 numbers only the first time, ask us for more)&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png]] If you reserve more than 20 at once, we may automatically change your reservation range without information and you may experience conflicts with other modules in a future, so please follow the rules! &lt;br /&gt;
&lt;br /&gt;
*ID 100000 - 100999: OpenThink (http://www.openthink.be) - Belgium&lt;br /&gt;
*ID 101000 - 101999: DoliCloud (https://www.dolicloud.com) - France&lt;br /&gt;
*ID 102000 - 102999: Tiaris (http://www.tiaris.fr) - France&lt;br /&gt;
*ID 103000 - 103999: Open-concept.pro (http://www.open-concept.pro) - France&lt;br /&gt;
*ID 104000 - 104999: ATM Consulting (http://www.atm-consulting.fr) - France&lt;br /&gt;
*ID 105000 - 105999: GPC.solutions - France&lt;br /&gt;
*ID 106000 - 106999: PHPASSO&lt;br /&gt;
*ID 107000 - 107999: TecLib (http://www.teclib.com) / Auguria (http://www.auguria.net) - France&lt;br /&gt;
*ID 108000 - 108999: ETHICWEB&lt;br /&gt;
*ID 109000 - 109999: Aplose ([http://www.aplose.fr https://www.aplose.fr]) - France&lt;br /&gt;
*ID 110000 - 110999: Association Dolibarr (https://www.dolibarr.org)&lt;br /&gt;
*ID 111000 - 111999: Asset IT (www.assetit.ch) - Suisse&lt;br /&gt;
*ID 112000 - 112999: Aarboard AG (www.aarboard.ch) - Suisse&lt;br /&gt;
*ID 113000 - 113999: Asilib - Alexandre Spangaro&lt;br /&gt;
*ID 114000 - 114999: Iceleaf OÜ&lt;br /&gt;
*ID 115000 - 115999: 2A2C Conseil - Cyril ZEKSER&lt;br /&gt;
*ID 116000 - 116999: Wolftec GmbH&lt;br /&gt;
*ID 117000 - 117999: Oscim (http://www.oscim.fr)&lt;br /&gt;
*ID 118000 - 118999: Oarces Web (dev.oarces.com)&lt;br /&gt;
*ID 119000 - 119999: Manuel Berrocal - Absolacom&lt;br /&gt;
*ID 120000 - 120999: Régis Houssin (http://www.inodbox.com) - France&lt;br /&gt;
*ID 121000 - 121999: Oscss - Shop - France&lt;br /&gt;
*ID 122000 - 122999: MrSof - la Nation du Web&lt;br /&gt;
*ID 123000 - 123999: Bruno Généré (webiseasy.org)&lt;br /&gt;
*ID 124000 - 124999: 7reasons s.r.l. (www.7reasons.eu) - Austria&lt;br /&gt;
*ID 125000 - 125999: ProgSI (www.progsi.ma)&lt;br /&gt;
*ID 126000 - 126999: Catalanet&lt;br /&gt;
*ID 127000 - 127999: Virgilio Filho pt-BR Brasil (@dolibarr.br) - Brazil&lt;br /&gt;
*ID 128000 - 128999: Nicolas Frappé France (www.sospc.info)&lt;br /&gt;
*ID 129000 - 129999: Adeo-Informatique&lt;br /&gt;
*ID 130000 - 130999: Technicks ICT (http://www.technicks.eu) - Italy&lt;br /&gt;
*ID 131000 - 131999: Joan Louis (itaca.fr) - France&lt;br /&gt;
*ID 132000 - 132999: Jean-Marie Arsac (https://azimut.fr) - France&lt;br /&gt;
*ID 133000 - 133999: Oriel Systems Ltd, UK. (www.orielsystems.com)&lt;br /&gt;
*ID 134000 - 134999: ALSOFT PVT. LTD. (https://www.alsoft.org)&lt;br /&gt;
*ID 135000 - 135999: Net-Logic (https://netlogic.fr)&lt;br /&gt;
*ID 136000 - 136050: MONA.RE - France&lt;br /&gt;
*ID 136051 - 136099: La Vida Marketing&lt;br /&gt;
*ID 136100 - 136149: Synergies-Tech France. (https://www.synergies-france.fr/)&lt;br /&gt;
*ID 136150 - 136199: Lyta&lt;br /&gt;
*ID 136200 - 136219: Maison Théophile Leclerc&lt;br /&gt;
*ID 136220 - 136270: SegoFount - Spain&lt;br /&gt;
*ID 136271 - 136320: Labor Dispatch (Simon Sheng , China)&lt;br /&gt;
*ID 136321 - 136370: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 136371 - 136420: Daxit Solutions (https://www.daxit.be) [https://wiki.dolibarr.org/index.php/DAXIT-SOLUTIONS_List_of_modules_id Liste complète des modules Daxit]&lt;br /&gt;
*ID 136421 - 136470: HUSCH GmbH (https://husch-gmbh.de)&lt;br /&gt;
*ID 136471 - 138999: NSINFO (https://www.ns-info.fr)&lt;br /&gt;
*ID 139000 - 139999: Synergies-Tech France. (https://www.synergies-france.fr/)&lt;br /&gt;
*ID 140000 - 140999: Altairis (http://altairis.fr)&lt;br /&gt;
*ID 141000 - 141050: Projet2Team (https://www.projet2team.fr)&lt;br /&gt;
*ID 141051 - 141099: Elistair (http://elistair.com)&lt;br /&gt;
*ID 141100 - 141149: Blue Networks Technologies (https://www.blnt.fr)&lt;br /&gt;
*ID 141150 - 141199: Mainlab S.r.l. (https://www.mainlabonline.it) - Italy&lt;br /&gt;
*ID 141200 - 141249: Florian DUFOURG - France&lt;br /&gt;
*ID 141250 - 141299: SoftAddicts - Canada&lt;br /&gt;
*ID 141300 - 141349: Finanboo - (https://www.finanboo.com)&lt;br /&gt;
*ID 141350 - 141399: ConstruxZion Soft - Colombia (https://www.construxzionsoft.com.co)&lt;br /&gt;
*ID 141400 - 141450: COEXDIS - République Démocratique du Congo (https://www.coexdis.com)&lt;br /&gt;
*ID 141451 - 141501: HALFWARE - Algeria (https://www.half-ware.com)&lt;br /&gt;
*ID 141502 - 141552: Quantraum (https://quantraum.com)&lt;br /&gt;
*ID 141553 - 141603: Nateo Group&lt;br /&gt;
*ID 141604 - 141653: digital centric GmbH (https://www.digitalcentric.de/dolibarr)&lt;br /&gt;
*ID 141654 - 141699: Decrypting (https://www.decrypting.fr)&lt;br /&gt;
*ID 141700 - 141749: Zeise IT Consulting - Germany (https://www.zeise-it.de)&lt;br /&gt;
*ID 141750 - 141799: Data Rooster - France (https://datarooster.io)&lt;br /&gt;
*ID 141800 - 141849: IP Développement (https://www.ipdeveloppement.fr)&lt;br /&gt;
*ID 141850 - 141899: MSICCA | MRVL Soluciones de Ingeniería y Construcción, c.a (https://msicca.com)&lt;br /&gt;
*ID 141900 - 141949: THERSANE (https://www.thersane.fr)&lt;br /&gt;
*ID 141950 - 141999: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 142000 - 142049: ITANéA (https://www.itanea.fr)&lt;br /&gt;
*ID 142050 - 142099: ERP Consulting NZ ([https://www.erpconsulting.co.nz www.erpconsulting.co.nz])&lt;br /&gt;
*ID 142100 - 142149: Bloxera GmbH (https://www.bloxera.com)&lt;br /&gt;
*ID 142150 - 142199: Evangelos Souglakos - Greece&lt;br /&gt;
*ID 142200 - 142249: Luc CALARESU - France&lt;br /&gt;
*ID 142250 - 142299: OmnIT Services - Belgique (https://www.omnitservices.biz)&lt;br /&gt;
*ID 142300 - 142349: Gwadeyes - Guadeloupe (https://www.gwadeyes-informatique.com/)&lt;br /&gt;
*ID 142350 - 142399: Solution Libre (https://www.solution-libre.fr/)&lt;br /&gt;
*ID 142400 - 142449: Res Digital (https://res.digital)&lt;br /&gt;
*ID 142450 - 142499: itopie informatique (https://www.itopie.ch)&lt;br /&gt;
*ID 142500 - 142549: Weblinx.IT GbR (https://weblinx.it/) - Germany&lt;br /&gt;
*ID 142550 - 142599: ASCI-Automation - Mexico (https://asci-automation.com.mx/)&lt;br /&gt;
*ID 142600 - 142649: ZENKO Design - Japan / France / Spain&lt;br /&gt;
*ID 142650 - 142699: AWeerWolf&lt;br /&gt;
*ID 142700 - 148749: Lysis (https://lysis.net/)&lt;br /&gt;
*ID 142750 - 142769: Doliplug (https://www.doliplug.com)&lt;br /&gt;
*ID 142770 - 142799: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 142800 - 142849: Bloxera GmbH (https://www.bloxera.com)&lt;br /&gt;
*ID 142850 - 148999: Everlats S.L. - España (https://www.everlats.com)&lt;br /&gt;
*ID 149000 - 149999: SydTech - America Central (https://www.sydtech.io/)&lt;br /&gt;
*ID 150000 - 150999: Jeffinfo&lt;br /&gt;
*ID 151000 - 151999: Konverseo (https://konverseo.com)&lt;br /&gt;
*ID 152000 - 152049: Tanguy Pénet (http://tanguype.net)&lt;br /&gt;
*ID 152050 - 152099: Web Solutions&lt;br /&gt;
*ID 152100 - 152149: MagicNet (https://www.magicnet.it)&lt;br /&gt;
*ID 152150 - 152199: Benjamin Falière (https://www.faliere.com)&lt;br /&gt;
*ID 152200 - 152249: Solauv&lt;br /&gt;
*ID 152250 - 156499: TecnoGestión Principado S.L. (https://www.tecnogestion.com) - Asturias - España&lt;br /&gt;
*ID 156500 - 156549: ACE Recycling  (https://www.acerecycling.net.au/)&lt;br /&gt;
*ID 156550 - 156599: Kreativität Works ([http://www.kreativitat.com http://kreativitat.com])&lt;br /&gt;
*ID 156600 - 156649: [https://pierre-couy.dev Pierre Couy]&lt;br /&gt;
*ID 156650 - 156699: CXI (https://cyrix.co.za)&lt;br /&gt;
*ID 156700 - 156749: Mustafa Kemerci - Turkiye&lt;br /&gt;
*ID 156750 - 156799: [https://de-grandpre.quebec de Grandpré Technologies] - Québec (Canada)&lt;br /&gt;
*ID 156800 - 156849: Draceo&lt;br /&gt;
*ID 156850 - 156899: Valleiweb&lt;br /&gt;
*ID 156900 - 159949: NEOVIAQ Advisory LU(https://www.neoviaq.com)&lt;br /&gt;
*ID 159950 - 159999: Arve et Giffre INFOGESTION (https://www.ag-infogestion.fr)&lt;br /&gt;
*ID 160000 - 160999: Charles-François BENKE (http://www.patas-monkey.com)&lt;br /&gt;
*ID 161000 - 161999: Abbes Bahfir (https://01consulting.eu)&lt;br /&gt;
*ID 162000 - 162999: Jacques Rébiscoul&lt;br /&gt;
*ID 163000 - 163999: Open-DSI (https://www.open-dsi.fr)&lt;br /&gt;
*ID 164000 - 164999: Pixelada S. Coop. And. (https://pixelada.org)&lt;br /&gt;
*ID 165000 - 165049: DovConnect&lt;br /&gt;
*ID 165050 - 165099: Mind Operated Systems (https://www.mosystems.biz)&lt;br /&gt;
*ID 165100 - 165150: SD-Formation (https://sdformation.fr)&lt;br /&gt;
*ID 165151 - 165199: NUM&#039;X (https://www.numx-sets.eu)&lt;br /&gt;
*ID 165200 - 165249: Benjam Préjent (https://www.benjam-prejent.fr)&lt;br /&gt;
*ID 165250 - 165299: Dhi Loka Private Limited, India (https://www.dhiloka.com)&lt;br /&gt;
*ID 165300 - 169999: Accellier Limited (https://www.accellier.com/)&lt;br /&gt;
*ID 170000 - 170999: TRIDENT CONSULTING LTD (www.tridentdxb.com)&lt;br /&gt;
*ID 171000 - 171999: LVSInformatique (www.lvsinformatique.com)&lt;br /&gt;
*ID 172000 - 172299: Ray Soft-Systems (https://www.ray-soft-systems.com)&lt;br /&gt;
*ID 172300 - 172349: Günter Lukas Consulting (https://gl.co.at)&lt;br /&gt;
*ID 172350 - 172399: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 172400 - 172449: Professional Structures Limited (https://pstructures.com)&lt;br /&gt;
*ID 172450 - 172699: IT-BS (https://www.it-bs.fr)&lt;br /&gt;
*ID 172700 - 172749: Indelog (https://www.indelog.fr)&lt;br /&gt;
*ID 172750 - 172799: NSINFO (https://www.ns-info.fr)&lt;br /&gt;
*ID 172800 - 172849: E-Concept Applications (https://e-concept-applications.fr)&lt;br /&gt;
*ID 172850 - 172899: B&amp;amp;R Stamm UG (https://stamm-ug.de)&lt;br /&gt;
*ID 172900 - 172949: Dolipive, support@dolipive.fr, www.dolipive.fr&lt;br /&gt;
*ID 172950 - 172999: CKD-Industrie (https://ckd-industrie.com/) - France&lt;br /&gt;
*ID 173000 - 173049: Aneosys (https://aneosys.fr) - France&lt;br /&gt;
*ID 173050 - 173099: Sebastian Schloßer - Germany&lt;br /&gt;
*ID 173100 - 173149: TecnoSoluciones (https://tecnosoluciones.com)&lt;br /&gt;
*ID 173150 - 173199: Digitalworks (https://www.digitalworks.fr) - France&lt;br /&gt;
*ID 173200 - 173249: UNi.D Consulting (https://www.unid-consulting.fr) - France&lt;br /&gt;
*ID 173250 - 173299: NetworkDigital(https://www.networkdigital.fr) - France&lt;br /&gt;
*ID 173300 - 173300: Módulo VeriFactu Dolibarr (https://verifactudolibarr.es/) - España&lt;br /&gt;
*ID 173301 - 173320: Sibanet (https://sibanet.net) - España&lt;br /&gt;
*ID 173321 - 173340: disQutons (https://wiki.dolibarr.org/index.php/Category:DisQutons)&lt;br /&gt;
*ID 173341 - 173360: Surática Software (https://suratica.es) - Spain&lt;br /&gt;
*ID 173361 - 173380: UpInvoice (https://upinvoice.eu) - Spain&lt;br /&gt;
*ID 173381 - 179999: Toutatis (https://toutatis.eu)&lt;br /&gt;
*ID 180000 - 180999: BM eXpert Labs&lt;br /&gt;
*ID 181000 - 181999: TI Sin Problemas (https://www.tisinproblemas.com)&lt;br /&gt;
*ID 182000 - 182049: Chipserv Pawel Wlizlo (https://www.testware.it)&lt;br /&gt;
*ID 182050 - 182070: Herolapse (https://herolapse.com/)&lt;br /&gt;
*ID 182061 - 182999: TMC&lt;br /&gt;
*ID 183000 - 183999: BB2A Anthony Berton (https://www.bb2a.fr)&lt;br /&gt;
*ID 184000 - 184999: DPS PRINTING &amp;amp; DOCUMENTS SOCIEDAD ANONIMA (https://www.dps-lat.com)&lt;br /&gt;
*ID 185000 - 185049: Telioskour (https://github.com/telioskour)&lt;br /&gt;
*ID 185050 - 185099: Moko Consulting ([[Moko Consulting]] || https://mokoconsulting.tech)&lt;br /&gt;
*ID 185100 - 185149: Sinabe (https://sinabe.ch) - Suisse&lt;br /&gt;
*ID 185150 - 185169: Anatole Conseil (https://anatoleconseil.com/)&lt;br /&gt;
*ID 185170 - 185189: cferoiu&lt;br /&gt;
*ID 185190 - 185209: Guillemonde (https://guillemonde.family)&lt;br /&gt;
*ID 185210 - 185229: ITized - Finta Ionut (https://itized.com)&lt;br /&gt;
*ID 185230 - 185249: svewa (https://github.com/svewa/)&lt;br /&gt;
*ID 185250 - 185269: Clément Jaunay (https://clement-jny.fr/ || contact@clement-jny.fr)&lt;br /&gt;
*ID 185270 - 185289: AMB Technologies (https://www.ambts.fr)&lt;br /&gt;
*ID 185290 - 185299: VIOLET IT UG (https://violet-it.de)&lt;br /&gt;
*ID 185300 - 185319: lorem.site &#039;&#039;&#039;(&#039;&#039;&#039;https://lorem.site/&#039;&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
*ID 185320 - 185340: Rentageek  (https://rentageek.hu) Hungary&lt;br /&gt;
*ID 185341 - 185360: Hamzavi Infotech (&amp;lt;nowiki&amp;gt;https://www.hamzaviinfotech.com&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 185361 - 185380: La souris de Gutenberg (&amp;lt;nowiki&amp;gt;https://www.lasourisdegutenberg.fr&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 185381 - 185400: LodinPay (https://www.lodinpay.io)&lt;br /&gt;
*ID 185401 - 185420: Avertissance (https://avertissance.fr). France&lt;br /&gt;
*ID 185421 - 185849: TH Investissements / Matelas No Stress - France (internal ERP / production / logistics modules)&lt;br /&gt;
*ID 185850 - 185899: B&amp;amp;R Stamm UG (&amp;lt;nowiki&amp;gt;https://stamm-ug.de&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 185900 - 185919: OpenLine Solutions - Olaf John (https://openlinesolutions.de) - Germany&lt;br /&gt;
*ID 185920 - 189999: Abadia Tecnologica - (https://abadiatecnologica.com) - Spain&lt;br /&gt;
*ID 190000 - 190999: Diciannove (http://19.coop)&lt;br /&gt;
*ID 191000 - 191999: Elonet (https://elonet.fr)&lt;br /&gt;
*ID 192000 - 192049: IDFOR Consulting (https://www.idfor-consulting.fr/)&lt;br /&gt;
*ID 192050 - 192069: Stogger (&amp;lt;nowiki&amp;gt;https://stogger.com&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 192070 - 192090: Protectora&lt;br /&gt;
*ID 192091 - 192110: CoopCircuits - OpenFoodNetwork (https://coopcircuits.fr/)&lt;br /&gt;
*ID 192111 - 192130: Saidigit - Belgique&lt;br /&gt;
*ID 192131 - 192150: Lia Concept (https://lia-concept.fr)&lt;br /&gt;
*ID 192151 - 192999: GHM LABS (https://ghm-labs.ma/)&lt;br /&gt;
*ID 193000 - 193020: Forlead (https://forlead.fr/)&lt;br /&gt;
*ID 193021 - 193041: Doliway (https://doliway.fr)&lt;br /&gt;
*ID 193042 - 193062: ERPkit ( https://erpkit.app )&lt;br /&gt;
*ID 193063 - 193083: Eric FALCON&lt;br /&gt;
*ID 193084 - 193103: Ienx2&lt;br /&gt;
*ID 193104 - 193123: OpenLine Solutions - Olaf John (https://openlinesolutions.de) - Germany&lt;br /&gt;
*ID 193124 - 193899 &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 199000 - 199999: RFMS&lt;br /&gt;
*ID 200000 - 200999: Noxiome&lt;br /&gt;
*ID 201000 - 201999: Sasa Ostrouska (saxa)&lt;br /&gt;
*ID 202000 - 202999: Z-Application&lt;br /&gt;
*ID 203000 - 203099: Elidee - elidee.com&lt;br /&gt;
*ID 203100 - 203999: Garcia MICHEL (soamichel.fr)&lt;br /&gt;
*ID 204000 - 204999: Ari Elbaz elarifr - accedinfo.com&lt;br /&gt;
*ID 205000 - 205999: Kreiz IT&lt;br /&gt;
*ID 206000 - 206999: GBINFO (www.gbinfo.fr)&lt;br /&gt;
*ID 207000 - 207099: MacroProg (https://www.macroprog.com)&lt;br /&gt;
*ID 207100 - 207149: Reactiva Software&lt;br /&gt;
*ID 207150 - 207199: Ndejje University Water Research and Development Centre ([https://github.com/NDUWRDC/LIMS/])&lt;br /&gt;
*ID 207200 - 207299: Massaoud Bouzenad ([https://www.dzprod.net dzprod.net])&lt;br /&gt;
*ID 207300 - 207349: Ksar&lt;br /&gt;
*ID 207350 - 207399: Easylinux (www.easylinux.fr)&lt;br /&gt;
*ID 207400 - 207449: Arthur LENOBLE&lt;br /&gt;
*ID 207450 - 207499: Vaicop SAS de CV (México)&lt;br /&gt;
*ID 207500 - 207520: Frankie Wong - UK&lt;br /&gt;
*ID 207521 - 207540: Fyssec ([https://fyssec.fr/ fyssec.fr/])&lt;br /&gt;
*ID 207541 - 207560: My easy Office SAS ([https://www.myeasyoffice.fr www.myeasyoffice.fr])&lt;br /&gt;
*ID 207561 - 207580: All-Lock Védelem Kft.&lt;br /&gt;
*ID 207581 - 209199: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 210000 - 210100: Lemon (https://hellolemon.fr)&lt;br /&gt;
*ID 210101 - 212099: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 212100 - 212149: Audio Vidéo Technologies (https://www.avtek.fr)&lt;br /&gt;
*ID 212150 - 212169: AI MYA GROUP ([https://Www.AI-MYA-GROUP.com www.AI-MYA-GROUP.com])&lt;br /&gt;
*ID 212170 - 213999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 214000 - 214049: X-Boss&lt;br /&gt;
*ID 214050 - 221999: PixelJM&lt;br /&gt;
*ID 220000 - 220050: Apex Tech (https://apextechmods.com)&lt;br /&gt;
*ID 220051 - 220100: Technology Xchange Solutions (https://www.txscorp.com)&lt;br /&gt;
*ID 222000 - 222999:  dolibit  (https://www.dolibit.de)&lt;br /&gt;
*ID 223000 - 223049: Tráfico Canada&lt;br /&gt;
*ID 223050 - 223099: VLTN (https://vltn.sh)&lt;br /&gt;
*ID 223100 - 229949: Dazax.io (https://www.dazax.io)&lt;br /&gt;
*ID 229950 - 229999: Solucions Informàtiques, Serveis i Innovació SLU (https://6innova.es)&lt;br /&gt;
*ID 230000 - 230049: Unareil (https://www.unareil.eu)&lt;br /&gt;
*ID 230050 - 230099: Lyra Network (https://www.lyra.com/)&lt;br /&gt;
*ID 230100 - 230149: Gheorghe Iftimi - CTW - RO&lt;br /&gt;
*ID 230150 - 230199: MEMA Machinery &amp;amp; Tools (https://www.mema.be)&lt;br /&gt;
*ID 230200 - 230249: Teleassist&lt;br /&gt;
*ID 230250 - 230299: Nh Developer&lt;br /&gt;
*ID 230300 - 230499: Chickenforce/code-chicken, IT Services Hahn (https://github.com/code-chicken [http://itservices-hahn.de/ https://itservices-hahn.de])&lt;br /&gt;
*ID 230500 - 230549: Hidup Consulting (https://consulting.hidup.io)&lt;br /&gt;
*ID 230550 - 230599: CMR Conseil (https://www.weblockup.fr)&lt;br /&gt;
*ID 230600 - 230649: aFreeMind Studio&lt;br /&gt;
*ID 230650 - 230699: Unideal (https://www.uni-deal.com)&lt;br /&gt;
*ID 230700 - 230749: DevLansdes (https://devlandes.com/)&lt;br /&gt;
*ID 230750 - 230769  Kristof56 / Serpette &amp;amp; Cie /&lt;br /&gt;
*ID 230770 - 262699: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 231200 - 231219 || Mugisha || Modules ERP personnalisés (facturation, RH, intégration)&lt;br /&gt;
*ID 262700 - 262799: Scopen (https://www.scopen.fr)&lt;br /&gt;
*ID 262800 - 262849: Christophe BATTAREL EI&lt;br /&gt;
*ID 262850 - 262870: Nicolaus Hofer - Autriche&lt;br /&gt;
*ID 262871 - 271799: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 271800 - 271849: bee solutions sàrl (Switzerland)&lt;br /&gt;
*ID 271850 - 272999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 273000 - 273019: Taler (https://taler.net)&lt;br /&gt;
*ID 273020 - 274199: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 274200 - 274249: Mathilde MAROCCO (https://mminformatique.fr)&lt;br /&gt;
*ID 274250 - 274299: Nerv Project (www.nerv-project.eu)&lt;br /&gt;
*ID 274300 - 274349: Knowhere Consulting S.L. (https://www.knowhere-consulting.eu)&lt;br /&gt;
*ID 274350 - 274399: Milen karaganski (https://blacktiehost.com)&lt;br /&gt;
*ID 274400 - 274449: Vincent MAURY ([https://www.timgroup.fr www.timgroup.fr])&lt;br /&gt;
*ID 274450 - 274499: Daraelmin&lt;br /&gt;
*ID 274500 - 274549: Emilie LAFORET (http://www.ermvallon.com)&lt;br /&gt;
*ID 274550 - 278999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 279000 - 279049: VSDigital Electronics (https://vsdigital.ar) - Argentina&lt;br /&gt;
*ID 279050 - 279999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 280000 - 280049: Bingroup (https://www.beinng.com)&lt;br /&gt;
*ID 280050 - 280099: Medialta (https://medialta.com)&lt;br /&gt;
*ID 280100 - 280149: Cédric Ancelin - Ancode (https://www.dolistore.com/fr/recherche?search_query=ancode)&lt;br /&gt;
*ID 280150 - 280169: Rafael CF (https://virtualmachine.digital) - México&lt;br /&gt;
*ID 280170 - 289999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 290000 - 290099: BNS - Project doliBRA ([https://www.beinng.com https://www.bns.net.br]) - Brasil&lt;br /&gt;
*ID 290100 - 299999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 300000 - 300049: RapidProgress (https://www.rapidprogress.eu) - Bulgaria&lt;br /&gt;
*ID 300050 - 300099: M@ Solution (https://www.ma-solution.fr/)&lt;br /&gt;
*ID 300100 - 300149: LAVA RUN (https://www.lavarun.re)&lt;br /&gt;
*ID 300150 - 300199: PsyCrow Code&lt;br /&gt;
*ID 300200 - 300249: Computences (https://www.computences.com/)&lt;br /&gt;
*ID 300250 - 300299: LEVEL IT (https://levelit.com.ar)&lt;br /&gt;
*ID 300300 - 300349: Progiseize (https://progiseize.fr)&lt;br /&gt;
*ID 300350 - 300399: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 300400 - 300449: Anouar Touati&lt;br /&gt;
*ID 300450 - 300499: Martin Danger&lt;br /&gt;
*ID 300500 - 301499: Whale Blows&lt;br /&gt;
*ID 301500 - 301549: Tom Trust - International&lt;br /&gt;
*ID 301550 - 301599: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 301600 - 302479: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 302480 - 302499: akyras (https://akyras.fr)&lt;br /&gt;
*ID 302500 - 302549: Diamubi (https://diamubi.com)&lt;br /&gt;
*ID 302550 - 302599: Datolab (https://www.datolab.com)&lt;br /&gt;
*ID 302600 - 302649: DuMaCo (https://www.dumaco.de)&lt;br /&gt;
*ID 302650 - 302699: Resilio SA&lt;br /&gt;
*ID 302700 - 302749: Aroga&lt;br /&gt;
*ID 302750 - 302799: Productivix (https://www.productivix.com)&lt;br /&gt;
*ID 302800 - 302849: Slibzz&lt;br /&gt;
*ID 302850 - 302899: idea design (https://ideadesign.dz)&lt;br /&gt;
*ID 302900 - 302949: AL MISBAH INFORMATIQUE (https://www.almisbah.ma)&lt;br /&gt;
*ID 302950 - 302999: Atis Solutions - France&lt;br /&gt;
*ID 303000 - 303499: Obixav - Nigeria&lt;br /&gt;
*ID 303500 - 303549: buschler plus GmbH, Germany (https://buschler.plus)&lt;br /&gt;
*ID 303550 - 303599: Prestalidaire - France (https://prestalidaire.com)&lt;br /&gt;
*ID 303600 - 303619: Apertice - France (https://apertice.fr)&lt;br /&gt;
*ID 303620 - 309999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 310000 - 310049: Neilson Dufour (&amp;lt;nowiki&amp;gt;https://hypercode.ca&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 310050 - 313999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 314000 - 314049: Ruemmler IT Solutions (https://www.ruemmler.net)&lt;br /&gt;
*ID 314050 - 314149: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 314150 - 314199: Benoît PASCAL&lt;br /&gt;
*ID 314200 - 319999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 320000 - 320999: Novus Studios (www.novusstudios.it)&lt;br /&gt;
*ID 321000 - 321999: AtooNet (http://www.atoo-net.com)&lt;br /&gt;
*ID 322000 - 322049: Doymer Consultores&lt;br /&gt;
*ID 322050 - 329999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 330000 - 330049: XTEC Industries (www.xtec-ind.com)&lt;br /&gt;
*ID 330050 - 330099: 10100 S.R.L. - (www.10100.to)&lt;br /&gt;
*ID 330100 - 330149: AES Dana SRL (https://aes-dana.be)&lt;br /&gt;
*ID 330150 - 330199: Freshcore (https://www.freshcore.fr)&lt;br /&gt;
*ID 330200 - 331999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 332000 - 332099: Gecka (https://gecka.nc)&lt;br /&gt;
*ID 332100 - 332149: Agence Milkshake (http://agencemilkshake.com)&lt;br /&gt;
*ID 332150 - 332199: Daniel Prowald IT – Service (https://prowald-it.de)&lt;br /&gt;
*ID 332200 - 332249: UNITICE (https://unitice.com)&lt;br /&gt;
*ID 332250 - 332299: Sidonie Moulart&lt;br /&gt;
*ID 332300 - 332349: LTDJ (Antonin MARCHAL - Le Temple du Jeu)&lt;br /&gt;
*ID 332350 - 333299: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*ID 333300 - 333349: Sense Africa (http://sense.africa)&lt;br /&gt;
&lt;br /&gt;
*ID 333350 - 333369: Orion module&lt;br /&gt;
*ID 333370 - 339999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*ID 340000 - 340049: M34D (https://m34d.com)&lt;br /&gt;
*ID 340050 - 340069: WiwIT&lt;br /&gt;
*ID 340070 - 349999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 350000 - 350049: SOUNDOU &amp;amp; MIDAS (https://www.soundou.org/)&lt;br /&gt;
*ID 350050 - 350099: Ildefonso González (https://igontek.es)&lt;br /&gt;
*ID 350100 - 350149: 7Kas Servicios de Internet, S.L. (https://7kas.com)&lt;br /&gt;
*ID 350150 - 350169: Silias (https://silias.ch)&lt;br /&gt;
*ID 350170 - 350999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 351000 - 351049: P&#039;tite Tête (https://ptitetete.com) - France&lt;br /&gt;
*ID 351050 - 398999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 359000 - 359049: Milen Karaganski0&lt;br /&gt;
*ID 400000 - 400999: 2byte.es (http://www.2byte.es)&lt;br /&gt;
*ID 401000 - 401999: B&amp;amp;D Informática&lt;br /&gt;
*ID 402000 - 402999: Marcos García de La Fuente (marcosgdf)&lt;br /&gt;
*ID 403000 - 403999: Sergibyte&lt;br /&gt;
*ID 404000 - 404999: Aikhan&lt;br /&gt;
*ID 405000 - 405999: AIME (http://www.aime.mx)&lt;br /&gt;
*ID 406000 - 406999: Som Núvol (https://somnuvol.coop)&lt;br /&gt;
*ID 407000 - 407019: I-Motion SARL&lt;br /&gt;
*ID 407020 - 408999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 409000 - 409999: LliureTIC (https://www.lliuretic.cat)&lt;br /&gt;
*ID 410000 - 410999: DoliGov&lt;br /&gt;
*ID 411000 - 411049: GATTEK SARL (https://www.ga-ttek.com)&lt;br /&gt;
*ID 411050 - 419999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 420000 - 420099: BBS Concept&lt;br /&gt;
*ID 420100 - 420199: LeMousticProduction (www.lemousticproduction.info) -&amp;lt; module DoliRH&lt;br /&gt;
*ID 420200 - 421199: VatCheck (www.abnc.be)&lt;br /&gt;
*ID 421200 - 422199: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 422200 - 422999: Artaban (http://artaban.fr)&lt;br /&gt;
*ID 423000 - 423049: cyberesprit&lt;br /&gt;
*ID 423050 - 423099: R.Bossard&lt;br /&gt;
*ID 423100 - 423199: Joliciel (www.joliciel.fr)&lt;br /&gt;
*ID 423200 - 423299: Pragma-tech (www.pragma-tech.fr)&lt;br /&gt;
*ID 423299 - 423999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 424000 - 424049: Philazerty ([https://www.philazerty.fr www.philazerty.fr])&lt;br /&gt;
*ID 424050 - 424099: Pragma-tech (www.pragma-tech.fr)&lt;br /&gt;
*ID 424100 - 424149: Ohoo Solutions (http://www.ohoosolutions.com)&lt;br /&gt;
*ID 424150 - 424199: DAGARCAM Informática (https://www.dagarcam.com/)&lt;br /&gt;
*ID 424200 - 424999: Lab51 (https://github.com/lab51org)&lt;br /&gt;
*ID 425000 - 425999: Sébastien SERRE Thivinfo (www.thivinfo.com)&lt;br /&gt;
*ID 426000 - 426099: Arkesis-Solution&lt;br /&gt;
*ID 426100 - 426149: GetLandy (www.getlandy.com)&lt;br /&gt;
*ID 426150 - 426649: OOB Software&lt;br /&gt;
*ID 426650 - 426849: Soft-Task Serviços e Sistemas (www.soft-task.com.br)&lt;br /&gt;
*ID 426850 - 426999: Bruno Caldas (https://github.com/BCaldas)&lt;br /&gt;
*ID 427000 - 427999: Kevin GUERRIER (alias xcl.saian)&lt;br /&gt;
*ID 428000 - 428099: af83&lt;br /&gt;
*ID 428100 - 428199: Arnaud Serrut - Adalon&lt;br /&gt;
*ID 428200 - 428249: imschweiler consulting (http://www.imschweiler-consulting.de&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
*ID 428250 - 428299: AL1FO&lt;br /&gt;
*ID 428300 - 428349: Federico García-Patiño Barbolani (&amp;lt;federico.garcia.patino@gmail.com&amp;gt;)&lt;br /&gt;
*ID 428350 - 428399: INTM Groupe - France (www.intm.com)&lt;br /&gt;
*ID 428400 - 428449: Nick Fragoulis - Greece&lt;br /&gt;
*ID 428450 - 428499: Kontava - France ([https://kontava.fr kontava.fr)]&lt;br /&gt;
*ID 428500 - 428549: hkwhitten - USA&lt;br /&gt;
*ID 428550 - 428999: SmartOne&lt;br /&gt;
*ID 429000 - 429999: induslab&lt;br /&gt;
*ID 430000 - 430099: Mixity sprl (www.mixity.be)&lt;br /&gt;
*ID 430100 - 430199: sgiraud&lt;br /&gt;
*ID 430200 - 430299: Merlion TI (www.merlion-si.com.br)&lt;br /&gt;
*ID 430300 - 431299: Libre Expert (www.libre-expert.com)&lt;br /&gt;
*ID 431300 - 431399: ptibogxiv (www.ptibogxiv.net)&lt;br /&gt;
*ID 431400 - 431499: Befox (www.befox.fr)&lt;br /&gt;
*ID 431500 - 431599: rue Béjo (www.ruebejo.fr)&lt;br /&gt;
*ID 431600 - 431699: Avizzeo (www.avizzeo.com)&lt;br /&gt;
*ID 431700 - 432199: Multisistemas (www.multisistemas.com.sv)&lt;br /&gt;
*ID 432200 - 432399: Burbuja - Chile (www.burbuja.cl)&lt;br /&gt;
*ID 432400 - 433399: INOVEA CONSEIL (https://www.inovea-conseil.com)&lt;br /&gt;
*ID 433400 - 434399: Rachid HRICH - Maroc (HricH ServiceS.)&lt;br /&gt;
*ID 434400 - 435399: Lance Bleakley - LanceIT (www.lanceit.net)&lt;br /&gt;
*ID 435400 - 435419: Victorien LOS - France&lt;br /&gt;
*ID 435420 - 435439: Clément ESTREM - France&lt;br /&gt;
*ID 435440 - 435999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 436000 - 436099: SOWEBIO (www.soweb.io)&lt;br /&gt;
*ID 436100 - 436199: CAP-REL (www.cap-rel.fr)&lt;br /&gt;
*ID 436200 - 436300: TDE-INFORMATIQUE (www.tde-informatique.fr)&lt;br /&gt;
*ID 436301 - 436349: Evarisk ([https://www.evarisk.com/id-module-dolibarr/ www.evarisk.com])&lt;br /&gt;
*ID 436350 - 436399: Eoxia ([https://www.eoxia.com/dolibarr/modules/ www.eoxia.com])&lt;br /&gt;
*ID 436400 - 437399: Mohamed AHERDANE - Morocco - IT Consultant ( www.wave.ma )&lt;br /&gt;
*ID 437400 - 437449: Martin Neubauer - Germany&lt;br /&gt;
*ID 437450 - 437599: Club1click (www.club1click.es)&lt;br /&gt;
*ID 437600 - 437629: Coulon Vincent (https://github.com/HoverEpic)&lt;br /&gt;
*ID 437630 - 437649: Aytechnet (https://www.aytechnet.fr/) - François Pons&lt;br /&gt;
*ID 437650 - 437699: LibreMaster (https://libremaster.com) - Christophe T.&lt;br /&gt;
*ID 437700 - 437749: STELLAR Broadband (https://www.stellarbb.com) - U.S.A. - Philip Laycock&lt;br /&gt;
*ID 437750 - 437799: DIGITA.LU Ajous Solutions&lt;br /&gt;
*ID 437800 - 437850: iProspective (https://iprospective.fr) - Mathieu Moulin&lt;br /&gt;
*ID 437851 - 437900: Theobald Groupe.&lt;br /&gt;
*ID 437901 - 437950: Neuronnexion (http://neuronnexion.coop)&lt;br /&gt;
*ID 437951 - 437952: jmbc - APIA-ASSO (https://www.apia-asso.fr)&lt;br /&gt;
*ID 437953 - 438002: IPCZEN SARL (https://www.ipczeninformatique.fr/)&lt;br /&gt;
*ID 438003 - 438052: FESF IT Department (https://fesf.org.pk)&lt;br /&gt;
*ID 438053 - 438103: Pilot Engineering team&lt;br /&gt;
*ID 438104 - 438153: u2042 (https://u2042.com)&lt;br /&gt;
*ID 438154 - 438204: Djair E Pereira (ocultooooo@gmail.com) - Brasil&lt;br /&gt;
*ID 438205 - 438255: yoandm (https://yoandm.com)&lt;br /&gt;
*ID 438256 - 438299: PTMSoft (&amp;lt;nowiki&amp;gt;https://www.ptmsoft.fr&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 438300 - 438399: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 438400 - 439399: Tetras Libre - France - Développement logiciels libres (www.tetras-libre.fr)&lt;br /&gt;
*ID 439400 - 440399: Dolibarr-pro - France - Développement Dolibarr (www.dolibarr-pro.com)&lt;br /&gt;
*ID 440400 - 441399: Quidlab Co., Ltd - Thailand - ( www.quidlab.com )&lt;br /&gt;
*ID 441400 - 442399: Ide@log - France - (https://www.idealog-info.net) - Laurent Leblanc&lt;br /&gt;
*ID 442400 - 443399: Valerio Bianchi (www.valeriobianchi.com)&lt;br /&gt;
*ID 443400 - 444399: delassalle - France - (www.delassalle.fr) - Joseph Delassalle&lt;br /&gt;
*ID 444400 - 445399: Webartis - Maroc - (www.webartis.net) - François Dry&lt;br /&gt;
*ID 445400 - 445499: SCOP Au-delà des nuages - France&lt;br /&gt;
*ID 445500 - 445549: X Net Systems - Egypt - (https://www.xneteg.com)&lt;br /&gt;
*ID 445550 - 445569: Schiefer.IT - Austria ([https://schiefer.it schiefer.it])&lt;br /&gt;
*ID 445570 - 445999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 446000 - 446999: iouston (http://www.iouston.com) - France - Julien Marchand&lt;br /&gt;
*ID 447000 - 447999: rSanjoSEO - Rafael San José Tovar (www.rsanjoseo.com) - Spain&lt;br /&gt;
*ID 448000 - 448999: Code 42 (www.code42.fr)&lt;br /&gt;
*ID 449000 - 449999: TakePOS (www.takepos.com)&lt;br /&gt;
*ID 450000 - 450999: Pierre ARDOIN&lt;br /&gt;
*ID 451000 - 451999: Éditeur depordi.fr&lt;br /&gt;
*ID 452000 - 452999: Dylan NAKONG&lt;br /&gt;
*ID 453000 - 453999: Menahd Ouchenir - France - menahd-ouchenir.com&lt;br /&gt;
*ID 454000 - 454999: Withheld - Canada&lt;br /&gt;
*ID 455000 - 455999: Gaëtan MAISON - Info Libre @ Dom - France (https://www.infolibreadom.com)&lt;br /&gt;
*ID 456000 - 456999: Laurent LEBLEU - B.L.C. - Blue Line Company - Lille - France (www.bluelinecompany.fr/dolibarr)&lt;br /&gt;
*ID 457000 - 457999: Sébastien BOUCHER&lt;br /&gt;
*ID 458000 - 458999: Lester HERNÁNDEZ - Argentina - (freelancerlrhd@gmail.com)&lt;br /&gt;
*ID 459000 - 459999: Infopen - France&lt;br /&gt;
*ID 460000 - 460049: torvista - Spain&lt;br /&gt;
*ID 460050 - 460099: ADVAISION.com (Belgique www.advaision.com)&lt;br /&gt;
*ID 460100 - 460999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 461000 - 461999: MEGALOGI - Maroc (www.erpcloud.ma)&lt;br /&gt;
*ID 462000 - 462999: Making Digital (www.making-digital.fr) - France&lt;br /&gt;
*ID 463000 - 463999: linx s.r.l.s.&lt;br /&gt;
*ID 464000 - 464999: NimbleCubed Inc. (www.nimblecubed.com)&lt;br /&gt;
*ID 465000 - 465999: Artefacts (www.artefacts.coop) - Pascal Daugeron&lt;br /&gt;
*ID 466000 - 466999: CDM Consultores - (www.cdm.guru)&lt;br /&gt;
*ID 467000 - 467999: M71 Service GmbH - (www.m71-service.de)&lt;br /&gt;
*ID 468000 - 468049: Clément Segonzac - France (clement.segonzac@gmail.com)&lt;br /&gt;
*ID 468050 - 468099: Flavien Belli - France (https://github.com/Marshlyin || belliflaviencontactpro@gmail.com)&lt;br /&gt;
*ID 468100 - 468119: Chl (https://code.bugness.org/Dolibarr)&lt;br /&gt;
*ID 468120 - 468169: Commotron GmbH (https://www.commotron.com/)&lt;br /&gt;
*ID 468170 - 468219: Infans Group (franck.lauby@infans.fr)&lt;br /&gt;
*ID 468175 - 468199: Gaëlle Rauffet - France (kiwiscan.net)&lt;br /&gt;
*ID 468200 - 468249: Paulo Oliveira - Brasil (paulorcdo@gmail.com)&lt;br /&gt;
*ID 468250 - 468269: CD-Systems - France (https://www.cd-systems.fr)&lt;br /&gt;
*ID 468270 - 468299: Nicolas Testori&lt;br /&gt;
*ID 468300 - 468349: Uvensys - Germany (https://uvensys.de)&lt;br /&gt;
*ID 468350 - 468399: Laudeco - Belgium (http://github.com/laudeco)&lt;br /&gt;
*ID 468400 - 468449: Alexis LAURIER - France (https://www.alexislaurier.fr)&lt;br /&gt;
*ID 468450 - 468499: Mehdi Belkhayat - Maroc (https://opensi.ma)&lt;br /&gt;
*ID 468500 - 468599: InvIT GmbH - Germany (https://invit.sh)&lt;br /&gt;
*ID 468600 - 468649: Ricardo Sequeira - Portugal (https://ricardo-sequeira.com)&lt;br /&gt;
*ID 468650 - 468699: J-IT - Belgique (https://www.j-it.be)&lt;br /&gt;
*ID 468700 - 468749: Fidesio - France (https://www.fidesio.com/)&lt;br /&gt;
*ID 468750 - 468799: Sgestion - Spain (http://www.sgestion.net/)&lt;br /&gt;
*ID 468800 - 468849: Denis JULIEN - Brasil (matrinxa@free.fr)&lt;br /&gt;
*ID 468850 - 468899: Mmariko - Module GED - Effios&lt;br /&gt;
*ID 468900 - 468949: Maazou Amadou Abdoul aziz - Maroc (yaronfada@gmail.com)&lt;br /&gt;
*ID 468950 - 468999: Alexis LAURIER - France (https://www.alexislaurier.fr)&lt;br /&gt;
*ID 469000 - 469049: John Livingston (https://github.com/JohnXLivingston/)&lt;br /&gt;
*ID 469050 - 469099: Macrorom ICT-services (https://macrorom.nl/)&lt;br /&gt;
*ID 469100 - 469149: HABOT IT - France (https://habot.it)&lt;br /&gt;
*ID 469150 - 469159: CaribbeanConsult.Com CCC - France Guadeloupe (https://dolibarr.ccc.gp)&lt;br /&gt;
*ID 469160 - 469171: GMBG - Portugal&lt;br /&gt;
*ID 469172 - 469199: BGi Lda - Portugal&lt;br /&gt;
*ID 469200 - 469219: elsotec GmbH&lt;br /&gt;
*ID 469220 - 469949: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 469950 - 469999: Goldoweb (http://goldoweb.com)&lt;br /&gt;
*ID 470000 - 470999: Reindeer Digital (https://rdeer.cz)&lt;br /&gt;
*ID 471000 - 471099: CAP-REL (www.cap-rel.fr)&lt;br /&gt;
*ID 471100 - 471199: M. Morillon&lt;br /&gt;
*ID 471200 - 471209: Pablo Nuñez&lt;br /&gt;
*ID 471210 - 471249: FANEL A.Ş  (https://www.fanel.com.tr)&lt;br /&gt;
*ID 471250 - 480999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 481000 - 481999: Alhaidab-ITIS (https://alhaidab.dolibarr.sd)&lt;br /&gt;
*ID 482000 - 482999: Basix IT (https://www.basix.de)&lt;br /&gt;
*ID 483000 - 483049: SASCO SpA (https://www.sasco.cl)&lt;br /&gt;
*ID 483050 - 483099: WIP Engineering (https://www.wip-gmbh.com)&lt;br /&gt;
*ID 483100 - 483149: J.Kaiser&lt;br /&gt;
*ID 483150 - 483199: CodLines (https://www.codlines.com)&lt;br /&gt;
*ID 483200 - 483249: BleepalSoftware (https://bleepal.com)&lt;br /&gt;
*ID 485000 - 485049: Gest Info Service Plus (contact@gest-plus.fr)&lt;br /&gt;
*ID 485050 - 485069: DJOB&#039; Services&lt;br /&gt;
*ID 485070 - 489999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 490000 - 490049: VOLD (https://www.voldgroup.com)&lt;br /&gt;
*ID 490050 - 490249: QUANTIVO (http://quantivo.eu/)&lt;br /&gt;
*ID 490250 - 490299: VOLD (https://www.voldgroup.com)&lt;br /&gt;
*ID 490300 - 490999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 491000 - 491049: NORD ERP CRM (https://www.nord-erp-crm.fr/)&lt;br /&gt;
*ID 491050 - 491099: KJR-online (https://kjr-online.fr/)&lt;br /&gt;
*ID 491100 - 491149: eNova&lt;br /&gt;
*ID 491150 - 491199: App 4 Business&lt;br /&gt;
*ID 491200 - 491249: Mil24 (http://www.mil24.com.py)&lt;br /&gt;
*ID 491250 - 491299: M2AM&lt;br /&gt;
*ID 491300 - 491349: luigifab (https://github.com/luigifab), also reuse id:105009 for Sentry fork&lt;br /&gt;
*ID 491350 - 491399: Frédéric France (https://github.com/frederic34)&lt;br /&gt;
*ID 491400 - 491449: E-dem (https://www.e-dem.com/)&lt;br /&gt;
*ID 491450 - 491499: Burofree (https://burofreeai.es)&lt;br /&gt;
*ID 491500 - 491549: EMDELEN (https://emdelen.fr/)&lt;br /&gt;
*ID 491550 - 491599: eSoUrCeS Technologie (https://techno.esources.ca/) - Canada&lt;br /&gt;
*ID 491600 - 491649: GoSouce Peru - Peru&lt;br /&gt;
*ID 491650 - 491669: Kaféin Studio (https://kafein.studio) - France&lt;br /&gt;
*ID 491670 - 491699: Neykinfo  - France&lt;br /&gt;
*ID 491700 - 491999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 492000 - 492020: Anura (https://www.anura.fr/)&lt;br /&gt;
*ID 492021 - 492999: &#039;&#039;&#039;Free (take ranges of 20 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 493000 - 493020: Bourez Bastien EI (https://bastien-b.fr/)&lt;br /&gt;
*ID 493051 - 493071: benhmida ilyess (bhilyess98@gmail.com)&lt;br /&gt;
*ID 493101 - 493120: George TS, George SP (gspanos@makeasite.gr)&lt;br /&gt;
*ID 493200 - 493219: Stéphane Mallet (https://framagit.org/Steph501/dolibarr-mod-autoreminder)&lt;br /&gt;
*ID 493220 - 493239: TBNETSYS (www.tbnetsys.fr)&lt;br /&gt;
*ID 499001 - 499020: IT GENIUSES (https://www.itgeniuses.com)&lt;br /&gt;
*ID 499051 - 499071: KREATIV PROJECT MANAGEMENT&lt;br /&gt;
&lt;br /&gt;
DO NOT ADD RECORD HERE, PLEASE FILL HOLES FIRST !!!!&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=ID &amp;gt; 500000=&lt;br /&gt;
&lt;br /&gt;
This range can&#039;t be reserved. It is a common range. If you don&#039;t plan to distribute your module, you can use an ID in this range with no need to reserve it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t already have reserved ids and need some, please don&#039;t use hazardous number and use a number higher than 500000, but it is better to ask a wiki account, and reserve your own range by editing the  100000 - 499999 range (20 ids at once).&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66113</id>
		<title>Module Factur-X TBNETSYS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66113"/>
		<updated>2026-05-10T15:59:41Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: /* facturxtbnetsys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dispatch pdp.png|alt=Dispatch PDP|thumb|Dispatch PDP]]&lt;br /&gt;
&lt;br /&gt;
=facturxtbnetsys=&lt;br /&gt;
&lt;br /&gt;
Plugin Dolibarr de &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; qui régénère chaque facture client au format &#039;&#039;&#039;Factur-X&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF/A-3 avec un XML EN16931 (CII) embarqué, selon les spécifications françaises FNFE (profil EN16931 / Comfort).&lt;br /&gt;
&lt;br /&gt;
Deux backends de génération PDF interchangeables, sélectionnables dans l&#039;onglet Paramétrage section « Pipeline PDF »&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;horstoeko/PDF/A-3B portable&#039;&#039;&#039; &#039;&#039;(défaut)&#039;&#039;. Sous-processus PHP CLI utilisant la librairie &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; embarquée dans &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;. &#039;&#039;&#039;Aucune dépendance système&#039;&#039;&#039; hors php-cli. Validation FNFE/PDP strictement identique au mode 3U. Fonctionne tel quel sur tout hébergement Dolibarr, y compris mutualisé.&lt;br /&gt;
*&#039;&#039;&#039;Mustang/PDF/A-3U strict&#039;&#039;&#039;. Pipeline historique Ghostscript + Mustang CLI. Recommandé pour archivage légal long terme (extractibilité Unicode garantie). Nécessite Ghostscript, Java JRE, Mustang JAR et le profil ICC sRGB sur le serveur (cf. § Installation des prérequis système). À choisir explicitement dans l&#039;onglet Paramétrage.&lt;br /&gt;
&lt;br /&gt;
Le mode par défaut horstoeko ne nécessite que l&#039;extension PHP &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; côté CLI (généralement présente). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne l&#039;a pas, pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; vers une version qui l&#039;inclut (par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Côté pilotage de la transmission, le plugin fournit une page &#039;&#039;&#039;Dispatch PDP&#039;&#039;&#039; qui liste les factures candidates avec leur statut local (SIREN vendeur/acheteur, PDF Factur-X présent) et leur statut côté plateforme (conformité, transmission). Deux actions en série sont proposées avec &#039;&#039;&#039;popup de progression en temps réel&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;« Vérifier la sélection »&#039;&#039;&#039;. Interroge SUPERPDP pour chaque facture cochée (validation Factur-X + statut transmission). Compteurs colorés (conformes / non conformes / transmises / en cours / en échec / jamais transmises) et journal détaillé par facture.&lt;br /&gt;
*&#039;&#039;&#039;« Envoyer au PDP la sélection »&#039;&#039;&#039;. Envoie effectivement chaque facture éligible vers SUPERPDP (avec confirmation préalable). Compteurs envoyées / ignorées / en erreur ; les factures déjà transmises ou non éligibles sont automatiquement ignorées.&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la popup affiche une barre d&#039;avancement, le numéro de la facture en cours, et un bouton d&#039;annulation. Les résultats sont persistés au fur et à mesure&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vous pouvez fermer la popup à mi-parcours et reprendre plus tard sans perdre ce qui a déjà été traité, ce qui rend le contrôle et l&#039;envoi de gros stocks (centaines voire milliers de factures) confortables et résistants aux timeouts.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compatibilité==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Composant!!Version requise&lt;br /&gt;
|-&lt;br /&gt;
|Dolibarr||22.0.3 ou supérieur&lt;br /&gt;
|-&lt;br /&gt;
|PHP||8.2 minimum (8.4 recommandé)&lt;br /&gt;
|-&lt;br /&gt;
|Système d&#039;exploitation cible||Debian 13 (les commandes ci-dessous sont prévues pour Debian/Ubuntu)&lt;br /&gt;
|-&lt;br /&gt;
|Multi-entité (Multicompany)||Pris en charge. Toutes les requêtes filtrent par &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;getEntity(&#039;invoice&#039;)&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;getEntity(&#039;bank_account&#039;)&amp;lt;/code&amp;gt;) et la table de cache PDP &amp;lt;code&amp;gt;llx_facturxtbnetsys_pdp_check&amp;lt;/code&amp;gt; porte une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; avec index unique &amp;lt;code&amp;gt;(fk_facture, entity)&amp;lt;/code&amp;gt;, ce qui isole les données par société sans collision.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sur d&#039;autres distributions (RedHat, Alpine, etc.) le principe reste identique mais les noms de paquets et le gestionnaire (&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;…) changent ; adapter en conséquence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Choix du moteur PDF. Mustang ou horstoeko ?==&lt;br /&gt;
&lt;br /&gt;
Le plugin propose &#039;&#039;&#039;deux moteurs PDF interchangeables&#039;&#039;&#039; au choix de l&#039;utilisateur, sélectionnables dans l&#039;onglet &#039;&#039;Paramétrage&#039;&#039; après installation. Le mode &#039;&#039;&#039;horstoeko (PDF/A-3B portable)&#039;&#039;&#039; est le &#039;&#039;&#039;défaut depuis la version 1.1.0&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il fonctionne sans aucune dépendance système et couvre la quasi-totalité des cas d&#039;usage. Le mode Mustang reste disponible pour les utilisateurs qui ont besoin d&#039;un archivage légal PDF/A-3U strict avec extractibilité Unicode garantie ; il s&#039;active explicitement dans l&#039;onglet Paramétrage. Avant de poursuivre, choisissez celui qui correspond à votre environnement et à vos contraintes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la suite du README s&#039;organise autour de ce choix.&lt;br /&gt;
&lt;br /&gt;
===Arbre de décision===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Question!!Réponse → Mode à choisir&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Votre archivage légal exige-t-il l&#039;extractibilité Unicode du texte (PDF/A-3U strict) ?&#039;&#039;&#039;||Non → &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (défaut, rien à configurer)&lt;br /&gt;
|-&lt;br /&gt;
|Si oui&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: avez-vous un accès terminal au serveur avec privilèges sudo ou root ?||Oui → &#039;&#039;&#039;Mustang&#039;&#039;&#039; recommandé (extractibilité Unicode garantie)&lt;br /&gt;
|-&lt;br /&gt;
|Sinon (pas d&#039;accès root)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:||&#039;&#039;&#039;horstoeko&#039;&#039;&#039; reste le seul choix possible. Mustang nécessite root pour installer Ghostscript / Java / Mustang JAR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Comparatif détaillé===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Critère!!Mode &#039;&#039;&#039;Mustang&#039;&#039;&#039; (PDF/A-3U strict)!!Mode &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (PDF/A-3B portable)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Niveau PDF/A&#039;&#039;&#039;||3U. Extractibilité Unicode garantie (archivage légal long terme, accessibilité, indexation, recherche plein texte)||3B. Apparence fidèle, validité format Factur-X, archivage acceptable mais sans garantie d&#039;extractibilité Unicode&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Validation FNFE / PDP&#039;&#039;&#039;||✓ 0 erreur sur les 189 contrôles XSD CII + EN16931 + BR-FR-CTC-Flux2||✓ 0 erreur sur les &#039;&#039;&#039;mêmes&#039;&#039;&#039; 189 contrôles (validation strictement identique côté SUPERPDP)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;XML CII embarqué&#039;&#039;&#039;||Identique (généré par le builder du module)||Identique (généré par le builder du module)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Accès terminal serveur requis&#039;&#039;&#039;||&#039;&#039;&#039;Oui. Sudo ou root indispensable&#039;&#039;&#039; pour installer Ghostscript, Java JRE, Mustang JAR, profil ICC sRGB||&#039;&#039;&#039;Non. Aucune installation système&#039;&#039;&#039;. Le module fonctionne tel quel via PHP CLI&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Hébergement mutualisé / instance managée sans SSH&#039;&#039;&#039;||❌ Inadapté||✓ Pleinement supporté&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Empreinte serveur&#039;&#039;&#039;||~50 Mo (Java + Mustang) en plus des paquets système habituels||~27 Mo de &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer embarqués dans le module&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Robustesse face à un PDF source quelconque&#039;&#039;&#039;||Ghostscript ré-encode entièrement le PDF en PDF/A-3 valide, quel que soit le PDF source. Aucune contrainte sur les polices ou les modèles utilisés par Dolibarr ou par d&#039;autres modules||Repose sur le PDF source produit par Dolibarr (modèle « crabe » par défaut). Couvre les cas standards, mais un PDF source produit par un modèle tiers exotique peut donner un PDF/A-3B moins propre&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Validation Schematron au niveau pipeline local&#039;&#039;&#039;||Oui (Mustang valide XSD + règles métier FNFE en local)||Validation locale par horstoeko/zugferd côté XML uniquement ; la validation Schematron complète est faite côté SUPERPDP via &amp;lt;code&amp;gt;validation_reports&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Les deux modes peuvent coexister===&lt;br /&gt;
&lt;br /&gt;
Le choix est fait par une simple constante dans Dolibarr (&amp;lt;code&amp;gt;FACTURXTBNETSYS_PDF_ENGINE&amp;lt;/code&amp;gt;). Vous pouvez&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Démarrer en horstoeko&#039;&#039;&#039; (défaut, sans rien configurer) pour valider le plugin sans toucher au système (test, validation fonctionnelle)&lt;br /&gt;
*&#039;&#039;&#039;Basculer vers Mustang&#039;&#039;&#039; plus tard si vos exigences d&#039;archivage évoluent. La bascule est instantanée, sans régénérer les anciennes factures&lt;br /&gt;
*&#039;&#039;&#039;Inversement, dégrader vers horstoeko&#039;&#039;&#039; si une migration vers un hébergement mutualisé devient nécessaire&lt;br /&gt;
&lt;br /&gt;
Aucun re-traitement des factures déjà générées n&#039;est requis lors d&#039;un changement de mode&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les anciennes factures restent valides, seules les nouvelles seront générées avec le moteur courant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation des prérequis système. &#039;&#039;Mode Mustang uniquement&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode horstoeko ?&#039;&#039;&#039; Sautez cette section et passez directement à [[#Mode horstoeko. Aucun prérequis système]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette section est conçue pour un utilisateur &#039;&#039;&#039;non administrateur système&#039;&#039;&#039; mais disposant tout de même d&#039;un &#039;&#039;&#039;accès terminal avec privilèges sudo ou root&#039;&#039;&#039;. Sans cet accès, le mode Mustang n&#039;est pas installable. Basculer sur le mode horstoeko. Chaque étape est expliquée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: à quoi sert l&#039;outil, comment l&#039;installer, comment vérifier qu&#039;il est correctement en place. Suivre les blocs dans l&#039;ordre.&lt;br /&gt;
&lt;br /&gt;
===Conventions===&lt;br /&gt;
&lt;br /&gt;
*Toutes les commandes doivent être exécutées &#039;&#039;&#039;avec les droits root&#039;&#039;&#039; sur le serveur Dolibarr. Si vous n&#039;êtes pas connecté en root, préfixer chaque commande par &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; (par exemple &amp;lt;code&amp;gt;sudo apt install …&amp;lt;/code&amp;gt;).&lt;br /&gt;
*&amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; est l&#039;utilisateur Linux sous lequel le serveur web (Apache/Nginx) exécute Dolibarr. Lorsqu&#039;une commande doit être lancée en tant que &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;, c&#039;est explicitement indiqué.&lt;br /&gt;
*&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; au début d&#039;une ligne signifie « commentaire, ne pas taper ».&lt;br /&gt;
*Toujours &#039;&#039;&#039;copier-coller&#039;&#039;&#039; les commandes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un caractère manquant ou un tiret recopié à la main peut casser l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
===Étape 1. Mettre à jour la liste des paquets===&lt;br /&gt;
&lt;br /&gt;
Avant d&#039;installer quoi que ce soit, on rafraîchit l&#039;index du gestionnaire de paquets pour récupérer les versions les plus récentes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande ne modifie rien sur le système&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: elle se contente de télécharger la liste des paquets disponibles. Elle peut afficher quelques avertissements (&amp;lt;code&amp;gt;Different settings for HTTP/HTTPS&amp;lt;/code&amp;gt;), c&#039;est normal.&lt;br /&gt;
&lt;br /&gt;
===Étape 2. Installer Ghostscript===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Ghostscript (commande &amp;lt;code&amp;gt;gs&amp;lt;/code&amp;gt;) est l&#039;outil qui convertit le PDF généré par Dolibarr en &#039;&#039;&#039;PDF/A-3&#039;&#039;&#039;, le format obligatoire pour qu&#039;un Factur-X soit valide. Sans lui, le PDF n&#039;est pas conforme et le destinataire le rejettera.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y ghostscript&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;option &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; accepte automatiquement les questions « voulez-vous continuer ? » que pose &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher un numéro de version (par ex. &amp;lt;code&amp;gt;10.03.1&amp;lt;/code&amp;gt;). Si la commande renvoie &amp;lt;code&amp;gt;command not found&amp;lt;/code&amp;gt;, l&#039;installation a échoué. Relire les messages d&#039;erreur d&#039;&amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Étape 3. Installer Java (JRE)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mustang (étape suivante) est un programme écrit en Java. Pour pouvoir l&#039;exécuter, il faut une JVM (machine virtuelle Java) installée sur le serveur. On installe le &#039;&#039;&#039;JDK headless&#039;&#039;&#039; (sans interface graphique, suffisant pour un serveur).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y default-jre default-jdk-headless&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;default-jre&amp;lt;/code&amp;gt; (Java Runtime Environment) suffirait pour exécuter un programme, mais &amp;lt;code&amp;gt;default-jdk-headless&amp;lt;/code&amp;gt; garantit que tous les outils annexes (notamment ceux utilisés par Mustang à l&#039;initialisation) soient disponibles. Les deux paquets ne se contredisent pas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher quelque chose comme &amp;lt;code&amp;gt;openjdk version &amp;quot;17.0.x&amp;quot;&amp;lt;/code&amp;gt;. La sortie part &#039;&#039;&#039;par défaut sur la sortie d&#039;erreur&#039;&#039;&#039;, c&#039;est normal. Le résultat reste lisible à l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
===Étape 4. Télécharger Mustang CLI===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Mustang est l&#039;outil qui prend le PDF/A-3 fabriqué à l&#039;étape 2 et le XML EN16931 généré par le plugin, puis les fusionne en un véritable PDF Factur-X (avec les bonnes métadonnées XMP, le nom canonique &amp;lt;code&amp;gt;factur-x.xml&amp;lt;/code&amp;gt; du fichier embarqué, etc.). Le plugin appelle Mustang en arrière-plan à chaque régénération de facture.&lt;br /&gt;
&lt;br /&gt;
Mustang n&#039;est pas distribué via &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;. Il faut télécharger le &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; (un programme Java empaqueté) depuis sa page officielle GitHub et le placer à un endroit fixe. Le plugin cherche par défaut le fichier dans &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Se positionner dans /opt (répertoire conventionnel pour les logiciels tiers)&lt;br /&gt;
cd /opt&lt;br /&gt;
&lt;br /&gt;
# Télécharger la version 2.22.0 (testée et validée avec ce plugin)&lt;br /&gt;
wget github.com/ZUGFeRD/mustangproject/releases/download/core-2.22.0/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; est un téléchargeur en ligne de commande. S&#039;il n&#039;est pas installé, l&#039;ajouter avec &amp;lt;code&amp;gt;apt install -y wget&amp;lt;/code&amp;gt;. La commande crée le fichier &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; (~30 Mo).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /opt/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher une ligne avec une taille d&#039;environ 30 Mo. Si le fichier est plus petit (quelques Ko), le téléchargement a échoué. Supprimer le fichier (&amp;lt;code&amp;gt;rm /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;) et recommencer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si vous voulez utiliser une autre version de Mustang&#039;&#039;&#039; (par ex. une plus récente), saisissez le nouveau chemin dans la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; de Dolibarr, section « Chemins des utilitaires système » (champ « Mustang CLI (.jar) »).&lt;br /&gt;
&lt;br /&gt;
===Étape 5. Vérifier la présence du profil ICC sRGB===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un PDF/A-3 doit déclarer un &#039;&#039;&#039;profil colorimétrique de référence&#039;&#039;&#039; (le profil ICC). Le plugin utilise sRGB par défaut, le plus standard. Ce profil est généralement présent par défaut sur Debian via le paquet &amp;lt;code&amp;gt;icc-profiles-free&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /usr/share/color/icc/sRGB.icc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Si le fichier existe&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: rien à faire.&lt;br /&gt;
*Si le fichier est absent (&amp;lt;code&amp;gt;No such file or directory&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y icc-profiles-free&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur certaines distributions, le paquet peut s&#039;appeler différemment (&amp;lt;code&amp;gt;icc-profiles&amp;lt;/code&amp;gt;). Si vraiment introuvable, le plugin accepte un chemin alternatif modifiable dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, section « Chemins des utilitaires système » (champ « Profil ICC sRGB »).&lt;br /&gt;
&lt;br /&gt;
===Étape 6. Installer les paquets PHP utilisés par Dolibarr===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Dolibarr et le plugin s&#039;appuient sur quelques bibliothèques PHP pour manipuler les PDF (TCPDF, FPDI), pour parser des PDF lus (Poppler), et pour quelques utilitaires bas niveau (binutils).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y binutils php-tcpdf php-fpdi poppler-utils&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détail rapide&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Paquet!!Utilité&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;||Outils binaires bas niveau utilisés par certaines libs&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;php-tcpdf&amp;lt;/code&amp;gt;||Génération PDF côté Dolibarr&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;php-fpdi&amp;lt;/code&amp;gt;||Lecture/import de PDF existants&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;poppler-utils&amp;lt;/code&amp;gt;||Outils annexes (&amp;lt;code&amp;gt;pdfinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdftotext&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version &amp;amp;&amp;amp; java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si les deux commandes répondent, les briques principales sont en place.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Mode horstoeko. Aucun prérequis système==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode Mustang ?&#039;&#039;&#039; Cette section ne vous concerne pas, passer à [[#Installation du plugin]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le mode horstoeko/PDF/A-3B fonctionne avec un &#039;&#039;&#039;PHP CLI&#039;&#039;&#039; disposant de l&#039;extension &#039;&#039;&#039;SimpleXML&#039;&#039;&#039;. Sur l&#039;écrasante majorité des hébergements Dolibarr, c&#039;est déjà le cas. Vous n&#039;avez donc &#039;&#039;&#039;aucune installation à effectuer côté système&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Vérification rapide depuis votre Dolibarr===&lt;br /&gt;
&lt;br /&gt;
Si vous avez accès au serveur en SSH (même sans sudo), vérifier que PHP CLI a SimpleXML&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK\n&amp;quot; : &amp;quot;ABSENT\n&amp;quot;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous obtenez &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt;, vous êtes prêt. Le plugin fonctionnera tel quel. Il suffit de [[#Installation du plugin|l&#039;installer]] puis de sélectionner le mode horstoeko dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
===Si vous n&#039;avez pas du tout accès au shell===&lt;br /&gt;
&lt;br /&gt;
Sur certains hébergements mutualisés, vous n&#039;avez accès qu&#039;au panel d&#039;administration et à un éditeur de fichiers via FTP/SFTP. Dans ce cas&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#[[#Installation du plugin|Installez le plugin]] en uploadant son répertoire dans &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt;&lt;br /&gt;
#Activez-le dans Dolibarr&lt;br /&gt;
#Allez dans &#039;&#039;&#039;Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la page vérifiera &#039;&#039;&#039;automatiquement&#039;&#039;&#039; que le PHP CLI cible (via la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt;) a bien SimpleXML&lt;br /&gt;
#Si SimpleXML manque côté CLI, le diagnostic vous l&#039;indiquera&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il faudra alors demander à votre hébergeur d&#039;activer l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; ou de pointer le plugin sur une autre version de PHP CLI qui l&#039;inclut&lt;br /&gt;
&lt;br /&gt;
===Vendor Composer fourni dans le plugin===&lt;br /&gt;
&lt;br /&gt;
La bibliothèque &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; et ses dépendances sont &#039;&#039;&#039;embarquées dans le plugin&#039;&#039;&#039; au moment de la distribution (répertoire &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;). Aucune installation Composer n&#039;est nécessaire côté serveur cible. Si vous compilez le plugin depuis les sources, exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module avant déploiement.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation du plugin==&lt;br /&gt;
&lt;br /&gt;
Cette étape est commune aux deux modes. Une fois les prérequis correspondant à votre choix de mode validés&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Copier le répertoire &amp;lt;code&amp;gt;facturxtbnetsys/&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -r facturxtbnetsys /var/www/dolibarr/htdocs/custom/&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Activer le module dans Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules &amp;gt; Onglet &amp;quot;Facturation/Comptabilité&amp;quot;&#039;&#039;&#039; → activer &#039;&#039;&#039;FacturXTbnetsys&#039;&#039;&#039;.&lt;br /&gt;
#Créer le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; (à côté de &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, ou dans un répertoire dédié aux secrets) et y renseigner les identifiants de connexion à votre PDP, puis indiquer son chemin absolu à Dolibarr dans l&#039;onglet Paramétrage (voir la sous-section [[#Configuration du fichier .secret (credentials PDP)|Configuration du fichier .secret]] ci-dessous).&lt;br /&gt;
#Vérifier la santé de l&#039;installation&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Diagnostic&#039;&#039;&#039;. La page liste les vérifications avec un code couleur (le contenu varie selon le backend PDF sélectionné) ; toutes doivent être au vert (à l&#039;exception éventuelle de &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; qui peut être marqué « optionnel » tant que vous n&#039;avez pas finalisé la configuration PDP).&lt;br /&gt;
&lt;br /&gt;
===Configuration du fichier .secret (credentials PDP)===&lt;br /&gt;
&lt;br /&gt;
Le plugin se connecte à votre Plateforme de Dématérialisation Partenaire (PDP) (par défaut &#039;&#039;&#039;SUPERPDP&#039;&#039;&#039;) via OAuth2 (flux &amp;lt;code&amp;gt;client_credentials&amp;lt;/code&amp;gt;). Vos identifiants OAuth2 sont stockés dans un fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, lu uniquement côté serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Sans &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, le plugin reste fonctionnel&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la régénération Factur-X (PDF/A-3 + XML EN16931) continue de fonctionner. Seul l&#039;envoi automatique vers la PDP est désactivé. Le diagnostic affiche alors &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; en orange « optionnel ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emplacement recommandé. Hors de la racine web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; doit être placé &#039;&#039;&#039;en dehors du dossier &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;&#039;&#039;&#039; (la racine web servie par Apache / Nginx) afin qu&#039;il ne puisse jamais être servi par le serveur HTTP en cas de mauvaise configuration ou de bug. Sur une installation type &amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/&amp;lt;/code&amp;gt;, placez-le par exemple&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Emplacement!!Recommandation&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Au même niveau d&#039;arborescence que &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, donc inaccessible via HTTP par construction&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc/dolibarr-secrets/pdp.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Répertoire système dédié aux secrets, idéal pour gérer plusieurs environnements (&amp;lt;code&amp;gt;pdp-prod.secret&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdp-sandbox.secret&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;À éviter&#039;&#039;&#039;. Fonctionne (chemin par défaut codé), mais place le fichier sous la racine web&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: tout problème de configuration serveur peut l&#039;exposer en clair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier créé, son chemin absolu doit être renseigné dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;, section &#039;&#039;&#039;API PDP&#039;&#039;&#039;, champ &#039;&#039;&#039;Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Tant que cette constante n&#039;est pas renseignée, le plugin retombe sur le défaut codé (chemin sous la racine web), ce qui n&#039;est pas l&#039;emplacement souhaitable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obtention des identifiants&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: récupérer &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; depuis l&#039;espace administrateur de votre PDP. Pour SUPERPDP, l&#039;endpoint d&#039;authentification utilisé par le plugin est &amp;lt;code&amp;gt;api.superpdp.tech/oauth2/token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format attendu&#039;&#039;&#039;. Fichier texte, une clé par ligne, valeur entre guillemets droits (les guillemets sont optionnels). Les lignes vides et celles commençant par &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; sont ignorées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Credentials OAuth2 SUPERPDP. NE PAS COMMITER&lt;br /&gt;
client_id=&amp;quot;votre-client-id-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
client_secret=&amp;quot;votre-client-secret-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Création et droits Unix&#039;&#039;&#039;. Le plugin fournit un modèle &amp;lt;code&amp;gt;.secret.example&amp;lt;/code&amp;gt; à la racine du plugin. Copiez-le &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; puis complétez-le&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Copier le modele HORS de la racine web (exemple : au meme niveau que htdocs/)&lt;br /&gt;
cp /var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret.example /var/www/dolibarr/.secret&lt;br /&gt;
# Renseigner client_id et client_secret avec votre editeur favori&lt;br /&gt;
nano /var/www/dolibarr/.secret&lt;br /&gt;
# Restreindre les droits (lecture/ecriture par www-data uniquement)&lt;br /&gt;
chmod 600 /var/www/dolibarr/.secret&lt;br /&gt;
chown www-data:www-data /var/www/dolibarr/.secret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis, dans Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage &amp;gt; API PDP &amp;gt; Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; → saisir &amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt; (adapter à votre installation) et enregistrer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Précautions de sécurité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Placer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; hors de la racine web&#039;&#039;&#039; (cf. tableau ci-dessus)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: c&#039;est la garantie la plus solide qu&#039;il ne sera jamais servi en HTTP.&lt;br /&gt;
*&#039;&#039;&#039;Ne jamais committer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; dans un dépôt git (ajouter &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; au &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; du plugin si vous forkez le code).&lt;br /&gt;
*&#039;&#039;&#039;Ne jamais transmettre le fichier par email/messagerie&#039;&#039;&#039; en clair.&lt;br /&gt;
*En cas de fuite suspectée, &#039;&#039;&#039;révoquer immédiatement le &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; depuis l&#039;admin de la PDP et en générer un nouveau.&lt;br /&gt;
*Le fichier doit appartenir à &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; et être en &amp;lt;code&amp;gt;0600&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aucun autre utilisateur Unix de la machine ne doit pouvoir le lire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;. Après création, ouvrir &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Ligne diagnostic!!État attendu&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;||&#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Fichier présent et &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; non vides&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt;||&#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Un Bearer token a été obtenu avec succès&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; ressort « KO » (rouge), le fichier existe mais une des deux clés est absente ou mal formée. Relire le format ci-dessus. Si &amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt; ressort en erreur, les identifiants sont rejetés par la PDP&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vérifier qu&#039;ils sont corrects et actifs côté admin de la plateforme. Les détails de l&#039;erreur sont tracés dans le journal Dolibarr (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;, préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Sélection du moteur PDF dans Dolibarr===&lt;br /&gt;
&lt;br /&gt;
Une fois le module activé, aller dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;. La section &#039;&#039;&#039;« Pipeline PDF »&#039;&#039;&#039; propose un radio à deux choix&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;horstoeko/zugferd / PDF/A-3B portable&#039;&#039;&#039;. Choix par défaut depuis la version 1.1.0. Aucun prérequis système. Sous le radio, un champ &#039;&#039;&#039;« Binaire php-cli »&#039;&#039;&#039; permet de pointer vers la version de PHP utilisée par le sous-processus (par défaut &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt;). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne dispose pas de l&#039;extension SimpleXML, indiquer ici une version qui l&#039;inclut, par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;Mustang / PDF/A-3U strict&#039;&#039;&#039;. Choix optionnel pour archivage légal long terme. Nécessite que la procédure [[#Installation des prérequis système. Mode Mustang uniquement|Installation des prérequis système]] ait été suivie au préalable.&lt;br /&gt;
&lt;br /&gt;
Sélectionner le mode souhaité, sauvegarder, puis ouvrir l&#039;onglet &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; pour vérifier que toutes les briques nécessaires au mode choisi sont au vert. Le contenu de cette page s&#039;adapte automatiquement au mode sélectionné. Vous ne verrez les checks Ghostscript/Java/Mustang qu&#039;en mode Mustang, et les checks PHP CLI/SimpleXML/Composer vendor qu&#039;en mode horstoeko.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vérification finale en une commande==&lt;br /&gt;
&lt;br /&gt;
===Mode Mustang===&lt;br /&gt;
&lt;br /&gt;
Pour vérifier en bloc tous les prérequis Mustang depuis la ligne de commande&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== Ghostscript ===&amp;quot; &amp;amp;&amp;amp; gs --version &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Java ===&amp;quot; &amp;amp;&amp;amp; java -version 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Mustang JAR ===&amp;quot; &amp;amp;&amp;amp; ls -l /opt/Mustang-CLI-2.22.0.jar &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== ICC sRGB ===&amp;quot; &amp;amp;&amp;amp; ls -l /usr/share/color/icc/sRGB.icc &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si la dernière ligne &amp;lt;code&amp;gt;=== Tout est OK ===&amp;lt;/code&amp;gt; s&#039;affiche, l&#039;installation système est complète. Sinon, l&#039;erreur juste avant indique précisément ce qui manque.&lt;br /&gt;
&lt;br /&gt;
===Mode horstoeko===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== PHP CLI ===&amp;quot; &amp;amp;&amp;amp; php -v | head -1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== SimpleXML ===&amp;quot; &amp;amp;&amp;amp; php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK&amp;quot; : &amp;quot;ABSENT&amp;quot;, PHP_EOL;&#039; &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== vendor ===&amp;quot; &amp;amp;&amp;amp; ls -d /var/www/dolibarr/htdocs/custom/facturxtbnetsys/vendor/horstoeko/zugferd &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez configuré une version PHP CLI spécifique (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;), remplacer &amp;lt;code&amp;gt;php&amp;lt;/code&amp;gt; par ce binaire dans les deux premières lignes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Pièges fréquents==&lt;br /&gt;
&lt;br /&gt;
===Mode Mustang===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gs: command not found&amp;lt;/code&amp;gt; lors de la régénération||Ghostscript pas installé ou pas dans le &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; du serveur web||Re-vérifier l&#039;étape 2. Au besoin, renseigner le chemin absolu dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Binaire Ghostscript »&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Mustang JAR introuvable/illisible&amp;lt;/code&amp;gt;||Le fichier n&#039;est pas à &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;, ou pas lisible par &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;chmod +r /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; ou ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Mustang CLI (.jar) »&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;java: command not found&amp;lt;/code&amp;gt;||JRE non installé||Re-vérifier l&#039;étape 3&lt;br /&gt;
|-&lt;br /&gt;
|Erreur PDF/A-3 « no ICC profile »||Le profil sRGB n&#039;est pas trouvé||Re-vérifier l&#039;étape 5, ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Profil ICC sRGB » si nécessaire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mode horstoeko===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vendor/autoload.php introuvable&amp;lt;/code&amp;gt; dans le journal||Le &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer n&#039;a pas été déployé avec le plugin||Réinstaller le plugin depuis l&#039;archive officielle (qui inclut &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;) ou exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Binaire php-cli introuvable ou non exécutable&amp;lt;/code&amp;gt;||La constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; pointe sur un chemin invalide||Ajuster dans &#039;&#039;&#039;Paramétrage &amp;gt; Pipeline PDF &amp;gt; Binaire php-cli&#039;&#039;&#039; (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;extension SimpleXML absente&amp;lt;/code&amp;gt; (badge KO dans Diagnostic)||La version de PHP CLI désignée n&#039;a pas l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt;||Pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; sur une autre version de PHP CLI qui inclut SimpleXML, ou demander à l&#039;hébergeur d&#039;activer l&#039;extension côté CLI&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Sous-processus horstoeko a échoué (rc=…)&amp;lt;/code&amp;gt;||Erreur dans la lib horstoeko/zugferd ; le PDF source produit par Dolibarr peut être atypique||Consulter le journal Dolibarr (préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;) ; en dernier recours, basculer temporairement sur le mode Mustang pour identifier si le PDF source est en cause&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Communs aux deux modes===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Symptôme!!Cause probable!!Solution&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;proc_open() has been disabled&amp;lt;/code&amp;gt; dans le syslog||Le serveur (souvent un VPS mutualisé) interdit l&#039;exécution de processus externes||Demander à l&#039;hébergeur d&#039;autoriser &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;disable_functions&amp;lt;/code&amp;gt;). &#039;&#039;&#039;Les deux modes&#039;&#039;&#039; utilisent &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; (Mustang pour Ghostscript+Java, horstoeko pour le sous-processus PHP). Le plugin &#039;&#039;&#039;ne peut pas fonctionner sans&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Page Diagnostic affiche tout en vert mais erreur à l&#039;usage||Cache OPcache PHP||Redémarrer Apache/Nginx (&amp;lt;code&amp;gt;systemctl reload apache2&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Catégories TVA. Comment le plugin classe vos factures==&lt;br /&gt;
&lt;br /&gt;
À chaque régénération de facture, le plugin détermine &#039;&#039;&#039;automatiquement&#039;&#039;&#039; le régime TVA applicable à chaque ligne et le code d&#039;exonération correspondant exigé par la norme européenne EN16931. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: tout est déduit de la configuration de votre société, du pays du client et des taux de TVA de la facture.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin et dans quels cas, pour que vous puissiez vérifier que cela correspond bien à votre situation fiscale.&lt;br /&gt;
&lt;br /&gt;
===Les 6 cas reconnus (du plus prioritaire au moins prioritaire)===&lt;br /&gt;
&lt;br /&gt;
Pour chaque ligne, le plugin parcourt la liste suivante de haut en bas et s&#039;arrête à la première règle qui s&#039;applique.&lt;br /&gt;
&lt;br /&gt;
====1. Vous êtes en franchise en base de TVA (micro-entreprise)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: dans Dolibarr, &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA » = Non&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
→ Toutes les lignes de toutes vos factures sont marquées « hors champ TVA » avec la mention légale &#039;&#039;&#039;« TVA non applicable, art. 293 B du CGI »&#039;&#039;&#039; ajoutée automatiquement dans le document (factures &#039;&#039;&#039;et&#039;&#039;&#039; avoirs).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Cette règle est prioritaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: si vous êtes en franchise, le plugin ne tient compte ni des taux, ni du pays du client, ni des lignes de débours. Tout sort en franchise.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. La ligne est un débours (refacturation à l&#039;identique d&#039;un frais)====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la ligne a été saisie via le plugin &#039;&#039;&#039;debourstbnetsys&#039;&#039;&#039; (refacturation à l&#039;identique au client d&#039;un frais que vous avez avancé pour son compte).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification &#039;&#039;&#039;art. 267 II 2° CGI&#039;&#039;&#039; (les débours sont par nature hors champ de la TVA, indépendamment du pays du client).&lt;br /&gt;
&lt;br /&gt;
====3. La ligne porte un taux de TVA standard====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la ligne a un taux de TVA strictement supérieur à 0 % (5,5 %, 10 %, 20 %, etc.).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « TVA au taux standard », sans code d&#039;exonération. C&#039;est le cas le plus courant.&lt;br /&gt;
&lt;br /&gt;
====4. Vous facturez un client professionnel établi dans l&#039;Union européenne====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le taux est à 0 %, le client est dans un pays UE différent de la France, et &#039;&#039;&#039;son numéro de TVA intracommunautaire est renseigné&#039;&#039;&#039; dans sa fiche tiers.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « livraison intracommunautaire » avec autoliquidation par l&#039;acheteur (art. 196 de la directive 2006/112/CE). Vous devrez également mentionner manuellement « Autoliquidation » sur la facture (voir « À savoir » ci-dessous).&lt;br /&gt;
&lt;br /&gt;
====5. Vous facturez un client hors Union européenne====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le taux est à 0 % et le client est dans un pays hors UE.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « export », exonérée au titre de l&#039;&#039;&#039;&#039;&#039;art. 262 I du CGI&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====6. Tous les autres cas avec un taux à 0 %====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: taux à 0 %, client en France ou client UE sans numéro de TVA intracommunautaire (cas typique&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: particulier européen).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification française par défaut.&lt;br /&gt;
&lt;br /&gt;
===À savoir avant de mettre en service===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Numéro de TVA intracommunautaire indispensable pour vos clients UE professionnels.&#039;&#039;&#039; Si vous facturez un client allemand, italien, espagnol, etc. sans avoir renseigné son n° TVA intra dans Dolibarr, le plugin considérera qu&#039;il s&#039;agit d&#039;un particulier (cas n° 6) au lieu d&#039;une livraison intracommunautaire (cas n° 4). Pensez à compléter la fiche tiers avant la première facture.&lt;br /&gt;
*&#039;&#039;&#039;Mention « Autoliquidation » à ajouter manuellement.&#039;&#039;&#039; Pour les factures intracommunautaires (cas n° 4), la réglementation impose que la facture mentionne explicitement « Autoliquidation ». Le plugin ne l&#039;ajoute pas automatiquement pour l&#039;instant&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: pensez à le faire dans le libellé de votre facture.&lt;br /&gt;
*&#039;&#039;&#039;Vérifiez votre statut TVA si vous êtes micro-entreprise.&#039;&#039;&#039; Le plugin détecte la franchise via le paramètre Dolibarr &#039;&#039;&#039;Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA »&#039;&#039;&#039;. Vérifiez qu&#039;il est bien sur &#039;&#039;&#039;Non&#039;&#039;&#039; si vous êtes effectivement en franchise. Sinon vos factures sortiront avec un régime TVA classique au lieu de la mention 293 B.&lt;br /&gt;
*&#039;&#039;&#039;Si vous mettez à jour le plugin depuis une version antérieure&#039;&#039;&#039; et que vous émettez régulièrement des factures intracommunautaires ou à l&#039;export&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: vos prochaines régénérations utiliseront un code TVA plus précis qu&#039;avant (correction de conformité). Les factures déjà émises ne sont pas modifiées. Faites un essai sur une facture représentative pour vérifier qu&#039;elle est bien acceptée par votre PDP avant de regénérer en masse.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Acomptes. Comment le plugin gère les factures d&#039;acompte et leur imputation==&lt;br /&gt;
&lt;br /&gt;
Le plugin reconnaît automatiquement les &#039;&#039;&#039;factures d&#039;acompte&#039;&#039;&#039; que vous émettez dans Dolibarr (type « Acompte ») ainsi que les &#039;&#039;&#039;factures finales&#039;&#039;&#039; sur lesquelles ces acomptes sont imputés. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la détection se fait au moment de la régénération.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin pour que vous sachiez à quoi vous attendre dans le XML envoyé à votre PDP ou à votre client.&lt;br /&gt;
&lt;br /&gt;
===Si vous émettez une facture d&#039;acompte===&lt;br /&gt;
&lt;br /&gt;
Quand le type de la facture Dolibarr est &#039;&#039;&#039;« Acompte »&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
→ Le XML est marqué comme « facture d&#039;acompte » (code document &amp;lt;code&amp;gt;386&amp;lt;/code&amp;gt; au sens du standard EN16931, distinct du code &amp;lt;code&amp;gt;380&amp;lt;/code&amp;gt; des factures classiques et du &amp;lt;code&amp;gt;381&amp;lt;/code&amp;gt; des avoirs).&lt;br /&gt;
&lt;br /&gt;
→ Les mentions légales obligatoires en France (indemnité de recouvrement 40 €, pénalités de retard, escompte) sont conservées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: un acompte est une &#039;&#039;&#039;facture exigible&#039;&#039;&#039; au sens fiscal, la TVA y est exigible.&lt;br /&gt;
&lt;br /&gt;
→ Aucune mention d&#039;acompte antérieur n&#039;est ajoutée (par construction, l&#039;acompte est lui-même la première facture du cycle).&lt;br /&gt;
&lt;br /&gt;
===Si vous émettez la facture finale après un ou plusieurs acomptes===&lt;br /&gt;
&lt;br /&gt;
Quand vous facturez le solde d&#039;une commande déjà partiellement payée par acompte(s)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
→ Le plugin lit dans Dolibarr la liste des &#039;&#039;&#039;factures d&#039;acompte rattachées&#039;&#039;&#039; à cette facture finale et insère pour chacune une référence dans le XML (numéro de la facture d&#039;acompte). Le destinataire et le PDP peuvent ainsi tracer l&#039;historique complet du cycle.&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant total des acomptes imputés&#039;&#039;&#039; est inscrit dans le XML sous une balise dédiée (BT-113 « Total prepaid amount » au sens EN16931).&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant restant à payer&#039;&#039;&#039; est recalculé automatiquement comme &amp;lt;code&amp;gt;total TTC – acomptes déjà versés&amp;lt;/code&amp;gt;. C&#039;est ce montant net qui apparaît comme « somme due » (BT-115 « Due payable amount »), pas le total brut.&lt;br /&gt;
&lt;br /&gt;
→ Si un écart d&#039;arrondi minime existe entre le total TTC Dolibarr et le total recalculé par taux de TVA (cas rare, dépend de la composition des taux sur la facture), il est inscrit séparément (BT-114 « Rounding amount ») pour que la cohérence comptable reste vérifiable par le PDP.&lt;br /&gt;
&lt;br /&gt;
===À savoir avant de mettre en service (acomptes)===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Bien lier l&#039;acompte à la facture finale dans Dolibarr.&#039;&#039;&#039; L&#039;imputation est lue depuis la table standard Dolibarr des « remises et avoirs déjà appliqués ». Si vous saisissez la facture finale sans déclarer explicitement l&#039;acompte précédent (par exemple en passant par les écritures de paiement uniquement, sans utiliser le mécanisme « consommer cet acompte »), le plugin ne pourra pas en tenir compte automatiquement.&lt;br /&gt;
*&#039;&#039;&#039;Avoirs imputés non comptabilisés en BT-113.&#039;&#039;&#039; Si vous imputez un avoir sur une facture finale, le plugin ne l&#039;inclut &#039;&#039;&#039;pas&#039;&#039;&#039; dans le « total déjà payé » (BT-113). C&#039;est conforme à la norme EN16931 qui réserve cette balise aux &#039;&#039;&#039;avances reçues&#039;&#039;&#039; (acomptes), pas aux compensations (avoirs). Le solde net reste correct car l&#039;avoir est traité comme un mode de règlement classique côté Dolibarr.&lt;br /&gt;
*&#039;&#039;&#039;Avoir d&#039;acompte (cas marginal).&#039;&#039;&#039; Émettre un avoir qui annule une facture d&#039;acompte fonctionne mais le XML produit ne référence pas explicitement la facture d&#039;acompte annulée. À éviter en l&#039;état si vous avez besoin d&#039;une traçabilité formelle ; sinon le résultat reste valide EN16931.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Unités de mesure (UN/ECE Rec 20)==&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de facture est exportée dans le XML EN16931 avec un code unité standardisé UN/ECE Rec 20 dans l&#039;attribut &amp;lt;code&amp;gt;BilledQuantity@unitCode&amp;lt;/code&amp;gt; (BT-130). Le plugin lit l&#039;unité saisie sur la ligne Dolibarr (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; → table &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) et la convertit automatiquement.&lt;br /&gt;
&lt;br /&gt;
Le code Dolibarr (colonne &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; de &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) est utilisé comme clé de conversion plutôt que le libellé court (&amp;lt;code&amp;gt;short_label&amp;lt;/code&amp;gt;) car celui-ci comporte des collisions (par exemple &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; désigne à la fois le mètre et le mois dans Dolibarr).&lt;br /&gt;
&lt;br /&gt;
===Table de conversion appliquée===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Famille!!Dolibarr (&amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;) → UN/ECE Rec 20&lt;br /&gt;
|-&lt;br /&gt;
|Temps||&amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt;→SEC · &amp;lt;code&amp;gt;MI&amp;lt;/code&amp;gt;→MIN · &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;→HUR · &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;→DAY · &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;→WEE · &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;→MON · &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;→ANN&lt;br /&gt;
|-&lt;br /&gt;
|Poids||&amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;→TNE · &amp;lt;code&amp;gt;KG&amp;lt;/code&amp;gt;→KGM · &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;→GRM · &amp;lt;code&amp;gt;MG&amp;lt;/code&amp;gt;→MGM · &amp;lt;code&amp;gt;OZ&amp;lt;/code&amp;gt;→ONZ · &amp;lt;code&amp;gt;LB&amp;lt;/code&amp;gt;→LBR&lt;br /&gt;
|-&lt;br /&gt;
|Longueur||&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;→MTR · &amp;lt;code&amp;gt;DM&amp;lt;/code&amp;gt;→DMT · &amp;lt;code&amp;gt;CM&amp;lt;/code&amp;gt;→CMT · &amp;lt;code&amp;gt;MM&amp;lt;/code&amp;gt;→MMT · &amp;lt;code&amp;gt;FT&amp;lt;/code&amp;gt;→FOT · &amp;lt;code&amp;gt;IN&amp;lt;/code&amp;gt;→INH&lt;br /&gt;
|-&lt;br /&gt;
|Surface||&amp;lt;code&amp;gt;M2&amp;lt;/code&amp;gt;→MTK · &amp;lt;code&amp;gt;DM2&amp;lt;/code&amp;gt;→DMK · &amp;lt;code&amp;gt;CM2&amp;lt;/code&amp;gt;→CMK · &amp;lt;code&amp;gt;MM2&amp;lt;/code&amp;gt;→MMK · &amp;lt;code&amp;gt;FT2&amp;lt;/code&amp;gt;→FTK · &amp;lt;code&amp;gt;IN2&amp;lt;/code&amp;gt;→INK&lt;br /&gt;
|-&lt;br /&gt;
|Volume||&amp;lt;code&amp;gt;M3&amp;lt;/code&amp;gt;→MTQ · &amp;lt;code&amp;gt;DM3&amp;lt;/code&amp;gt;→DMQ · &amp;lt;code&amp;gt;CM3&amp;lt;/code&amp;gt;→CMQ · &amp;lt;code&amp;gt;MM3&amp;lt;/code&amp;gt;→MMQ · &amp;lt;code&amp;gt;FT3&amp;lt;/code&amp;gt;→FTQ · &amp;lt;code&amp;gt;IN3&amp;lt;/code&amp;gt;→INQ · &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;→LTR · &amp;lt;code&amp;gt;GAL&amp;lt;/code&amp;gt;→GLL&lt;br /&gt;
|-&lt;br /&gt;
|Quantité||&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;→C62 (un/pièce) · &amp;lt;code&amp;gt;SET&amp;lt;/code&amp;gt;→SET&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Politique de fallback===&lt;br /&gt;
&lt;br /&gt;
*Ligne sans unité renseignée (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; vide)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt; (one/each), comportement neutre.&lt;br /&gt;
*Unité présente mais désactivée dans &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt; (colonne &amp;lt;code&amp;gt;active=0&amp;lt;/code&amp;gt;)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Code Dolibarr non couvert par la table (unité personnalisée ajoutée par l&#039;instance)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;, et un message &amp;lt;code&amp;gt;LOG_INFO&amp;lt;/code&amp;gt; est tracé dans le journal Dolibarr (&amp;lt;code&amp;gt;dol_syslog&amp;lt;/code&amp;gt;) pour permettre l&#039;extension de la table.&lt;br /&gt;
&lt;br /&gt;
Aucune configuration n&#039;est nécessaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le mapping s&#039;applique à la régénération, pour les factures et les avoirs, y compris les lignes débours du plugin &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Paramétrage du plugin dans Dolibarr==&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation terminée, tout le paramétrage du plugin se fait depuis l&#039;interface Dolibarr. Vous trouverez quatre pages utiles&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: options principales du plugin. Activer ou non l&#039;envoi des factures vers le PDP, activer ou non la validation à la régénération, taille des pages d&#039;écran, et &#039;&#039;&#039;chemins des utilitaires système&#039;&#039;&#039; (Ghostscript, Mustang JAR, profil ICC sRGB) si vos outils ne sont pas aux emplacements par défaut.&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: page de contrôle de santé en lecture seule. Affiche en vert/rouge l&#039;état des prérequis (Ghostscript, Java, Mustang, profil ICC, accès à votre PDP…). En cas d&#039;anomalie sur un chemin, l&#039;ajustement se fait dans la page Paramétrage ci-dessus.&lt;br /&gt;
*&#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Adresses Peppol&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: gestion de votre annuaire d&#039;identifiants Peppol/PPF (à utiliser uniquement si vous savez ce que c&#039;est).&lt;br /&gt;
*&#039;&#039;&#039;FacturX &amp;gt; Dispatch PDP&#039;&#039;&#039; (menu principal)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: page d&#039;envoi explicite de vos factures vers la plateforme PDP, avec filtres par période, client, état, etc.&lt;br /&gt;
&lt;br /&gt;
===Mode strict (en cas d&#039;échec du pipeline Factur-X)===&lt;br /&gt;
&lt;br /&gt;
Sur la page &#039;&#039;&#039;Paramétrage&#039;&#039;&#039;, l&#039;option &#039;&#039;&#039;« Mode strict »&#039;&#039;&#039; détermine ce qu&#039;il se passe si la conversion en Factur-X plante (Ghostscript indisponible, Mustang qui échoue, profil ICC introuvable, etc.)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Décoché (recommandé, valeur par défaut)&#039;&#039;&#039;. Mode best-effort. Si le pipeline Factur-X échoue, le PDF classique généré par votre modèle de base (par exemple « crabe ») est &#039;&#039;&#039;conservé&#039;&#039;&#039; et la facture reste utilisable. Un avertissement orange est affiché à l&#039;utilisateur. La facture peut être imprimée et envoyée par email. Elle n&#039;est juste pas au format Factur-X.&lt;br /&gt;
*&#039;&#039;&#039;Coché&#039;&#039;&#039;. Mode strict. Tout échec du pipeline supprime le PDF et fait remonter une erreur côté Dolibarr. Aucune facture n&#039;est livrée tant que le problème technique n&#039;est pas corrigé. À utiliser uniquement si vous voulez la garantie absolue qu&#039;aucun PDF non-Factur-X ne circule (par ex. exigence contractuelle ou réglementaire).&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la validation SUPERPDP (si elle est activée) reste &#039;&#039;&#039;purement informative&#039;&#039;&#039;. Elle n&#039;a jamais d&#039;effet bloquant, pour ne pas paralyser la facturation en cas d&#039;indisponibilité réseau de la plateforme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Pour les développeurs et intégrateurs&#039;&#039;&#039; souhaitant comprendre l&#039;architecture interne du plugin (couches HTTP, mapping XML EN16931, structure de la base, etc.), une documentation technique séparée est fournie dans le fichier &amp;lt;code&amp;gt;ARCHITECTURE.md&amp;lt;/code&amp;gt; à la racine du plugin.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Source du plugin==&lt;br /&gt;
&lt;br /&gt;
Le plugin est distribué sur le &#039;&#039;&#039;Dolistore&#039;&#039;&#039;, la place de marché officielle des modules Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.dolistore.com/. C&#039;est la voie recommandée pour les utilisateurs finaux qui souhaitent simplement installer le plugin sur leur Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;développements sont réalisés en interne chez TBNETSYS&#039;&#039;&#039; ; le code source est hébergé sur le dépôt git privé de l&#039;auteur.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi simplement télécharger une archive du plugin (depuis le Dolistore) et l&#039;extraire. Le résultat est équivalent. Reprendre ensuite la procédure « Installation du plugin » plus haut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note documentation&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ce fichier &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; est repris tel quel dans le wiki Dolibarr de la fiche du plugin. Toute mise à jour du README est donc répercutée par son auteur dans la documentation publique du plugin côté Dolibarr.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Mise à jour du plugin==&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour le plugin vers une nouvelle version&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Télécharger la mise à jour sur le Dolistore&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.dolistore.com/. Récupérer l&#039;archive de la dernière version publiée et l&#039;extraire dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de votre Dolibarr (par-dessus l&#039;installation existante). Ne pas oublier de rétablir les droits&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Désactiver puis réactiver le plugin&#039;&#039;&#039; dans &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules&#039;&#039;&#039;, onglet « Facturation/Comptabilité ». Ce cycle force Dolibarr à recharger les définitions du module (constantes, hooks, menus, droits) et garantit que les éventuelles nouveautés apportées par la mise à jour sont prises en compte. Vos données existantes ne sont pas affectées.&lt;br /&gt;
#&#039;&#039;&#039;Reparamétrer si nécessaire&#039;&#039;&#039;. Si la mise à jour introduit de nouvelles options ou si certains paramétrages ont changé de format, vérifier la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; ainsi que la page &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; (toutes les vérifications doivent rester au vert).&lt;br /&gt;
#&#039;&#039;&#039;Optionnellement&#039;&#039;&#039;, lire le fichier &amp;lt;code&amp;gt;ChangeLog.md&amp;lt;/code&amp;gt; à la racine du plugin pour prendre connaissance du détail des changements (corrections de bugs, nouvelles fonctionnalités, modifications de comportement, éventuelles actions manuelles requises).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; (credentials PDP) n&#039;est jamais embarqué dans l&#039;archive distribuée. Il reste donc inchangé lors d&#039;une mise à jour. Si vous extrayez l&#039;archive par-dessus l&#039;installation existante, prenez garde à ne pas écraser ce fichier.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Signalement de bugs==&lt;br /&gt;
&lt;br /&gt;
Le plugin est maintenu par son auteur qui assure la &#039;&#039;&#039;correction des anomalies&#039;&#039;&#039; rencontrées par ses utilisateurs. Pour signaler un bug, utilisez le &#039;&#039;&#039;formulaire de contact&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ce canal est dédié exclusivement aux corrections de bugs&#039;&#039;&#039;, c&#039;est-à-dire à des comportements du plugin qui ne sont pas conformes à ce que décrit cette documentation ou à la norme Factur-X / EN16931. Il ne s&#039;agit &#039;&#039;&#039;pas d&#039;un service d&#039;assistance utilisateur&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les questions d&#039;installation Dolibarr, de paramétrage métier, de fiscalité, ou plus généralement « comment faire X dans Dolibarr » ne relèvent pas de ce canal et ne recevront pas de réponse.&lt;br /&gt;
&lt;br /&gt;
Pour qu&#039;un signalement soit exploitable, soyez &#039;&#039;&#039;précis et clair&#039;&#039;&#039; dans la description du problème. Un bon rapport de bug contient au minimum&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Versions&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: version de Dolibarr, version de PHP, version du plugin (visible sur la page Configuration &amp;gt; Modules), système d&#039;exploitation du serveur.&lt;br /&gt;
*&#039;&#039;&#039;Contexte précis&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: sur quelle facture (type&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: standard, acompte, avoir ; pays du client ; régime TVA), à quelle étape (régénération PDF, envoi PDP, validation Mustang…).&lt;br /&gt;
*&#039;&#039;&#039;Comportement observé&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: message d&#039;erreur exact (copier-coller, pas une reformulation), capture d&#039;écran si pertinent.&lt;br /&gt;
*&#039;&#039;&#039;Comportement attendu&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ce qui aurait dû se produire à la place.&lt;br /&gt;
*&#039;&#039;&#039;Reproductibilité&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le bug se produit-il à chaque tentative ou de manière intermittente ? sur toutes les factures ou seulement certaines ?&lt;br /&gt;
*&#039;&#039;&#039;Journaux Dolibarr&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: extrait du journal (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;) filtré sur le préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt; au moment de l&#039;incident.&lt;br /&gt;
&lt;br /&gt;
Les rapports vagues du type « ça ne marche pas » ou « le PDF est cassé » ne permettent pas de reproduire ni de corriger le problème et ne seront pas traités.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Clause de non responsabilité==&lt;br /&gt;
&lt;br /&gt;
Le plugin est exclusivement destiné aux &#039;&#039;&#039;professionnels assujettis aux obligations de facturation électronique en France&#039;&#039;&#039; au sens des articles 289 bis et suivants du Code général des impôts. Il n&#039;est ni conçu, ni proposé, ni destiné à un usage par un consommateur au sens de l&#039;article liminaire du Code de la consommation, ni par un non-professionnel.&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé sous licence libre &#039;&#039;&#039;GPL-3.0-or-later&#039;&#039;&#039;, qui en garantit le droit de redistribution et d&#039;étude du code source conformément à ses termes. Sa licence d&#039;utilisation est concédée &#039;&#039;&#039;à titre onéreux&#039;&#039;&#039;, selon les conditions tarifaires en vigueur, dans le cadre d&#039;une relation &#039;&#039;&#039;strictement entre professionnels&#039;&#039;&#039;, à l&#039;exclusion de toute relation entrant dans le champ d&#039;application du Code de la consommation. L&#039;&#039;&#039;&#039;acquisition, l&#039;installation ou l&#039;utilisation du plugin valent reconnaissance par l&#039;utilisateur de sa qualité de professionnel&#039;&#039;&#039; ainsi qu&#039;acceptation sans réserve des présentes conditions.&lt;br /&gt;
&lt;br /&gt;
Le plugin est fourni &#039;&#039;&#039;« en l&#039;état »&#039;&#039;&#039;, sans aucune garantie, expresse ou implicite, de quelque nature que ce soit. Notamment, mais sans s&#039;y limiter, de qualité marchande, d&#039;adéquation à un usage particulier, de conformité réglementaire ou fiscale, ni de continuité de service.&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation du plugin se fait &#039;&#039;&#039;aux risques et périls de l&#039;utilisateur&#039;&#039;&#039;. Il appartient à ce dernier de vérifier, sous sa seule responsabilité, que les factures Factur-X produites sont conformes à ses obligations légales, fiscales et contractuelles, et qu&#039;elles sont effectivement acceptées par ses destinataires et par sa Plateforme de Dématérialisation Partenaire (PDP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ni l&#039;auteur, ni TBNETSYS, ni les contributeurs ne pourront en aucun cas être tenus responsables&#039;&#039;&#039; d&#039;un quelconque dommage direct ou indirect (notamment, mais sans s&#039;y limiter&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: perte de données, perte de chiffre d&#039;affaires, perte d&#039;exploitation, rejet de factures par un destinataire ou par un PDP, redressement fiscal, sanction administrative, dommage matériel, immatériel ou moral) résultant de l&#039;installation, de l&#039;utilisation, du dysfonctionnement ou de l&#039;impossibilité d&#039;utiliser le plugin, même dans l&#039;hypothèse où l&#039;auteur, TBNETSYS ou un contributeur auraient été informés de l&#039;éventualité d&#039;un tel dommage.&lt;br /&gt;
&lt;br /&gt;
Cette clause s&#039;applique dans toute la mesure permise par la loi applicable.&lt;br /&gt;
&lt;br /&gt;
Le plugin et la présente clause sont régis par le &#039;&#039;&#039;droit français&#039;&#039;&#039;. Entre professionnels, en cas de litige relatif à l&#039;installation, à l&#039;utilisation, au fonctionnement ou à l&#039;absence de fonctionnement du plugin et à défaut de résolution amiable préalable, &#039;&#039;&#039;compétence exclusive et expresse est attribuée au Tribunal judiciaire de Perpignan&#039;&#039;&#039;, y compris en cas de référé, de pluralité de défendeurs ou d&#039;appel en garantie, nonobstant toute clause contraire. Si l&#039;utilisateur devait néanmoins être qualifié de consommateur ou de non-professionnel par une juridiction, les règles impératives de protection prévues par le droit français s&#039;appliqueront, sans que cela ne remette en cause les autres stipulations de la présente clause, qui demeurent applicables dans toute la mesure permise par la loi.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Auteur et licence==&lt;br /&gt;
&lt;br /&gt;
Auteur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: &#039;&#039;&#039;Thierry Bazzanella&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Contact&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/&amp;lt;br /&amp;gt;&lt;br /&gt;
(c) 2026 TBNETSYS. All rights reserved&amp;lt;br /&amp;gt;&lt;br /&gt;
Licence&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: GPL-3.0-or-later&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Contributeurs et béta-testeurs==&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;contributeurs&#039;&#039;&#039; (correction de bugs, développement de nouvelles fonctionnalités) et les &#039;&#039;&#039;béta-testeurs&#039;&#039;&#039; ayant téléchargé le plugin sont éventuellement les bienvenus. Nous pouvons en discuter par téléphone après un premier contact par email. Pour l&#039;instant, l&#039;auteur en assure la maintenance et les évolutions.&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;&#039;environnement dédié et privé sous GitLab&#039;&#039;&#039; est mis à disposition pour ce plugin&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il regroupe le code source, le suivi des tickets, les branches de travail et les itérations de test. L&#039;environnement est très &#039;&#039;&#039;orienté développement et cycle de vie logiciel&#039;&#039;&#039; (branches, revues, intégration continue, jalons, releases). Il s&#039;adresse donc à des intervenants à l&#039;aise avec ces pratiques.&lt;br /&gt;
&lt;br /&gt;
La documentation du code source est intégrée à celui-ci au format PhpDoc. L&#039;outil de développement recommandé est &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; avec les extensions &#039;&#039;&#039;PHP Intelephense&#039;&#039;&#039; (éditeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Intelephense) et &#039;&#039;&#039;PHP Debug&#039;&#039;&#039; (éditeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: Xdebug).&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;communication entre tous les intervenants se fait principalement par ticket&#039;&#039;&#039; (issues GitLab)&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: signalement, discussion technique, suivi d&#039;avancement, validation. Cela garantit la traçabilité des décisions et permet à chacun de retrouver le contexte d&#039;un changement à tout moment.&lt;br /&gt;
&lt;br /&gt;
Pour rejoindre l&#039;environnement contributeurs/béta-testeurs, prendre contact via le formulaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Prix du plugin==&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé en &#039;&#039;&#039;paiement unique&#039;&#039;&#039;. Une fois acquis, il vous appartient sans abonnement, sans coût récurrent et sans limite de durée d&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Période!!Prix&lt;br /&gt;
|-&lt;br /&gt;
|Tarif de lancement, jusqu&#039;au 31 août 2026||&#039;&#039;&#039;149 € TTC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|À compter du 1er septembre 2026||&#039;&#039;&#039;199 € TTC&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;auteur n&#039;est pas assujetti à la TVA (franchise en base, art. 293 B du CGI). Les prix indiqués sont nets de taxe&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mises à jour à vie incluses.&#039;&#039;&#039; Chaque acquéreur reçoit toutes les versions futures du plugin sans frais supplémentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: corrections de bugs, mises en conformité réglementaire, nouvelles fonctionnalités, nouveaux profils EN16931, prise en charge des futures versions de Dolibarr. Une seule acquisition couvre l&#039;usage du plugin sur la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modèle de financement.&#039;&#039;&#039; Chaque utilisateur participe ainsi au coût de développement et au temps passé sur la maintenance, le suivi des évolutions de la norme Factur-X, l&#039;adaptation aux versions successives de Dolibarr ainsi qu&#039;à la correction des anomalies signalées (cf. § Signalement de bugs). C&#039;est ce financement collectif qui permet à l&#039;auteur de continuer à faire vivre le plugin dans la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aucune obligation, d&#039;aucune sorte, de l&#039;auteur ni des contributeurs.&#039;&#039;&#039; Les mises à jour à vie comme la correction des bugs sont fournies dans la mesure des moyens et de la disponibilité de l&#039;auteur et de ses éventuels contributeurs, sans engagement d&#039;aucune sorte&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ni de fréquence, ni de délai, ni de périmètre, ni de résultat, ni de continuité de service. L&#039;acquisition du plugin n&#039;ouvre droit à aucune prestation contractuelle de maintenance, de support ou d&#039;évolution. Le plugin est fourni « en l&#039;état » conformément à la § Clause de non responsabilité, qui prévaut sur la présente section en cas de divergence d&#039;interprétation.&lt;br /&gt;
&lt;br /&gt;
===Support payant (optionnel)===&lt;br /&gt;
&lt;br /&gt;
Au-delà du plugin lui-même (paiement unique avec mises à jour à vie, sans obligation), un service d&#039;&#039;&#039;&#039;assistance technique payante&#039;&#039;&#039; peut être souscrit ponctuellement, à la demande, par les utilisateurs souhaitant un accompagnement dépassant le cadre du simple signalement de bugs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarif horaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 85 € TTC / heure.&#039;&#039;&#039; L&#039;auteur n&#039;étant pas assujetti à la TVA (franchise en base, art. 293 B du CGI), aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modalités de facturation.&#039;&#039;&#039; Facturation à la demi-heure indivisible commencée, avec un minimum facturable d&#039;une heure par intervention. Toute prestation est précédée d&#039;un &#039;&#039;&#039;devis écrit&#039;&#039;&#039; que l&#039;utilisateur doit accepter avant le démarrage de l&#039;intervention. Le devis fixe un &#039;&#039;&#039;plafond horaire ferme&#039;&#039;&#039; propre à l&#039;intervention. Aucune heure facturable au-delà de ce plafond ne peut être engagée sans &#039;&#039;&#039;acceptation écrite préalable&#039;&#039;&#039; d&#039;un avenant ou d&#039;un nouveau devis. À défaut d&#039;accord pour poursuivre, l&#039;intervention est interrompue à due concurrence du plafond initial.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Périmètre.&#039;&#039;&#039; À distance uniquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: email, formulaire de contact, partage d&#039;écran ou accès SSH ponctuel sur autorisation explicite et révocable de l&#039;utilisateur. La prestation porte exclusivement sur le plugin FacturXTbnetsys et son intégration dans Dolibarr (paramétrage, diagnostic, accompagnement à l&#039;installation, analyse de cas particuliers et lecture de journaux). Sont exclus du périmètre&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: l&#039;administration Dolibarr générale, le conseil fiscal, le conseil métier, l&#039;intervention sur d&#039;autres modules tiers et le développement spécifique non directement lié à une anomalie du plugin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heures ouvrées (heure de Paris).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jour!!Plage horaire&lt;br /&gt;
|-&lt;br /&gt;
|Lundi à vendredi||9h–12h et 14h–18h&lt;br /&gt;
|-&lt;br /&gt;
|Samedi, dimanche, jours fériés légaux français||Fermé&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Délais cibles de prise en charge.&#039;&#039;&#039; Les délais ci-dessous courent à compter de la réception de la demande pendant les heures ouvrées&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: une demande arrivée hors plage est réputée reçue à l&#039;ouverture suivante. Ces délais sont des &#039;&#039;&#039;objectifs cibles à effort raisonnable, jamais des engagements contractuels chiffrés opposables&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Niveau de gravité!!Définition!!Objectif cible de prise en charge&lt;br /&gt;
|-&lt;br /&gt;
|Critique||Production de factures Factur-X totalement interrompue, aucun contournement disponible||4 heures ouvrées&lt;br /&gt;
|-&lt;br /&gt;
|Majeur||Fonctionnalité importante dégradée mais contournement possible (par exemple&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: mode Mustang en échec mais mode horstoeko fonctionnel)||1 jour ouvré&lt;br /&gt;
|-&lt;br /&gt;
|Mineur||Gêne ponctuelle, question, optimisation, demande de paramétrage ou d&#039;éclaircissement||3 jours ouvrés&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obligation de moyen, à l&#039;exclusion de toute obligation de résultat.&#039;&#039;&#039; Le support payant constitue une &#039;&#039;&#039;prestation de services&#039;&#039;&#039; au sens du droit français, exécutée selon une &#039;&#039;&#039;obligation de moyen uniquement&#039;&#039;&#039;. L&#039;auteur s&#039;engage à mettre en œuvre ses compétences professionnelles et le temps nécessaire pour tenter d&#039;apporter une réponse ou une résolution, &#039;&#039;&#039;sans garantir aucun résultat&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: ni la résolution effective de la difficulté signalée, ni le respect des délais cibles ci-dessus, ni l&#039;absence de récidive, ni la compatibilité avec l&#039;environnement particulier de l&#039;utilisateur. Les délais cibles ne sont assortis d&#039;&#039;&#039;&#039;aucune pénalité&#039;&#039;&#039; et n&#039;ouvrent droit à &#039;&#039;&#039;aucune indemnité, remise ou avoir&#039;&#039;&#039; en cas de dépassement. Cette obligation de moyen prévaut sur toute interprétation contraire pouvant résulter de la rédaction de la présente section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Engagement d&#039;information en cours d&#039;intervention.&#039;&#039;&#039; Si l&#039;auteur estime, en cours d&#039;analyse, que la difficulté ne pourra vraisemblablement pas être résolue dans le plafond horaire du devis accepté, ou que la cause apparente est extérieure au plugin (anomalie Dolibarr, conflit avec un autre module tiers, configuration système hors périmètre, environnement non reproductible), il en informe l&#039;utilisateur &#039;&#039;&#039;avant de poursuivre la facturation au-delà du temps déjà engagé&#039;&#039;&#039;. La poursuite de l&#039;intervention requiert alors l&#039;acceptation écrite de l&#039;utilisateur. Cet engagement d&#039;information demeure une modalité d&#039;exécution de l&#039;obligation de moyen. Il n&#039;emporte aucune obligation de résultat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exclusivement et uniquement sous forme de services.&#039;&#039;&#039; La prestation ne comprend ni produit logiciel additionnel, ni licence supplémentaire, ni garantie, ni assurance, ni cession de droits, ni livrable autre que le &#039;&#039;&#039;compte-rendu d&#039;intervention&#039;&#039;&#039;. Ce compte-rendu mentionne au minimum&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: la nature des vérifications effectuées, les éléments diagnostiqués, les actions menées, les points restant ouverts ainsi que les recommandations à destination de l&#039;utilisateur. Il est remis quel que soit le résultat constaté. Le règlement rémunère exclusivement le &#039;&#039;&#039;temps de travail effectivement passé&#039;&#039;&#039; en assistance, indépendamment du résultat constaté à l&#039;issue de l&#039;intervention.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procédure d&#039;accès au support payant.&#039;&#039;&#039; Le support payant n&#039;est pas accessible directement sur facture spontanée. Il suppose au préalable&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
#Un &#039;&#039;&#039;premier contact via le formulaire&#039;&#039;&#039;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: www.tbnetsys.fr/contact/, en présentant le contexte de la demande (instance Dolibarr, version du plugin, nature du besoin d&#039;accompagnement).&lt;br /&gt;
#La &#039;&#039;&#039;signature d&#039;un contrat de support&#039;&#039;&#039; entre l&#039;utilisateur (en qualité de professionnel) et TBNETSYS, qui formalise le tarif horaire, les modalités de facturation, le périmètre, les délais cibles, l&#039;obligation de moyen, l&#039;exclusion de l&#039;obligation de résultat ainsi que les autres conditions rappelées dans la présente section.&lt;br /&gt;
#L&#039;&#039;&#039;&#039;acceptation écrite d&#039;un devis&#039;&#039;&#039; propre à chaque intervention, dans le cadre du contrat ainsi signé.&lt;br /&gt;
&lt;br /&gt;
Aucune intervention payante n&#039;est démarrée tant que ces trois étapes ne sont pas complétées. Sans contrat de support signé, seul le canal gratuit de signalement de bugs (cf. § Signalement de bugs) reste accessible, dans les limites qui y sont décrites.&lt;br /&gt;
&lt;br /&gt;
La présente offre de support payant ne modifie pas la § Clause de non responsabilité, qui prévaut intégralement sur tout point non explicitement couvert ici.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66112</id>
		<title>Module Factur-X TBNETSYS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66112"/>
		<updated>2026-05-10T15:55:14Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: README au format mediawiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dispatch pdp.png|alt=Dispatch PDP|thumb|Dispatch PDP]]&lt;br /&gt;
&lt;br /&gt;
= facturxtbnetsys =&lt;br /&gt;
&lt;br /&gt;
Plugin Dolibarr &#039;&#039;&#039;TBNETSYS&#039;&#039;&#039; qui régénère chaque facture client au format &#039;&#039;&#039;Factur-X&#039;&#039;&#039; : un PDF/A-3 avec un XML EN16931 (CII) embarqué, selon les spécifications françaises FNFE (profil EN16931 / Comfort).&lt;br /&gt;
&lt;br /&gt;
Deux backends de génération PDF interchangeables, sélectionnables dans l&#039;onglet Paramétrage section « Pipeline PDF » :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;horstoeko/PDF/A-3B portable&#039;&#039;&#039; &#039;&#039;(défaut)&#039;&#039;. Sous-processus PHP CLI utilisant la librairie &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; embarquée dans &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;. &#039;&#039;&#039;Aucune dépendance système&#039;&#039;&#039; hors php-cli. Validation FNFE/PDP strictement identique au mode 3U. Fonctionne tel quel sur tout hébergement Dolibarr, y compris mutualisé.&lt;br /&gt;
* &#039;&#039;&#039;Mustang/PDF/A-3U strict&#039;&#039;&#039;. Pipeline historique Ghostscript + Mustang CLI. Recommandé pour archivage légal long terme (extractibilité Unicode garantie). Nécessite Ghostscript, Java JRE, Mustang JAR et le profil ICC sRGB sur le serveur (cf. § Installation des prérequis système). À choisir explicitement dans l&#039;onglet Paramétrage.&lt;br /&gt;
&lt;br /&gt;
Le mode par défaut horstoeko ne nécessite que l&#039;extension PHP &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; côté CLI (généralement présente). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne l&#039;a pas, pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; vers une version qui l&#039;inclut (par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Côté pilotage de la transmission, le plugin fournit une page &#039;&#039;&#039;Dispatch PDP&#039;&#039;&#039; qui liste les factures candidates avec leur statut local (SIREN vendeur/acheteur, PDF Factur-X présent) et leur statut côté plateforme (conformité, transmission). Deux actions en série sont proposées avec &#039;&#039;&#039;popup de progression en temps réel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;« Vérifier la sélection »&#039;&#039;&#039;. Interroge SUPERPDP pour chaque facture cochée (validation Factur-X + statut transmission). Compteurs colorés (conformes / non conformes / transmises / en cours / en échec / jamais transmises) et journal détaillé par facture.&lt;br /&gt;
* &#039;&#039;&#039;« Envoyer au PDP la sélection »&#039;&#039;&#039;. Envoie effectivement chaque facture éligible vers SUPERPDP (avec confirmation préalable). Compteurs envoyées / ignorées / en erreur ; les factures déjà transmises ou non éligibles sont automatiquement ignorées.&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la popup affiche une barre d&#039;avancement, le numéro de la facture en cours, et un bouton d&#039;annulation. Les résultats sont persistés au fur et à mesure : vous pouvez fermer la popup à mi-parcours et reprendre plus tard sans perdre ce qui a déjà été traité, ce qui rend le contrôle et l&#039;envoi de gros stocks (centaines voire milliers de factures) confortables et résistants aux timeouts.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Composant !! Version requise&lt;br /&gt;
|-&lt;br /&gt;
| Dolibarr || 22.0.3 ou supérieur&lt;br /&gt;
|-&lt;br /&gt;
| PHP || 8.2 minimum (8.4 recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Système d&#039;exploitation cible || Debian 13 (les commandes ci-dessous sont prévues pour Debian/Ubuntu)&lt;br /&gt;
|-&lt;br /&gt;
| Multi-entité (Multicompany) || Pris en charge. Toutes les requêtes filtrent par &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;getEntity(&#039;invoice&#039;)&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;getEntity(&#039;bank_account&#039;)&amp;lt;/code&amp;gt;) et la table de cache PDP &amp;lt;code&amp;gt;llx_facturxtbnetsys_pdp_check&amp;lt;/code&amp;gt; porte une colonne &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; avec index unique &amp;lt;code&amp;gt;(fk_facture, entity)&amp;lt;/code&amp;gt;, ce qui isole les données par société sans collision.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sur d&#039;autres distributions (RedHat, Alpine, etc.) le principe reste identique mais les noms de paquets et le gestionnaire (&amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;…) changent ; adapter en conséquence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Choix du moteur PDF. Mustang ou horstoeko ? ==&lt;br /&gt;
&lt;br /&gt;
Le plugin propose &#039;&#039;&#039;deux moteurs PDF interchangeables&#039;&#039;&#039; au choix de l&#039;utilisateur, sélectionnables dans l&#039;onglet &#039;&#039;Paramétrage&#039;&#039; après installation. Le mode &#039;&#039;&#039;horstoeko (PDF/A-3B portable)&#039;&#039;&#039; est le &#039;&#039;&#039;défaut depuis la version 1.1.0&#039;&#039;&#039; : il fonctionne sans aucune dépendance système et couvre la quasi-totalité des cas d&#039;usage. Le mode Mustang reste disponible pour les utilisateurs qui ont besoin d&#039;un archivage légal PDF/A-3U strict avec extractibilité Unicode garantie ; il s&#039;active explicitement dans l&#039;onglet Paramétrage. Avant de poursuivre, choisissez celui qui correspond à votre environnement et à vos contraintes : la suite du README s&#039;organise autour de ce choix.&lt;br /&gt;
&lt;br /&gt;
=== Arbre de décision ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Question !! Réponse → Mode à choisir&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Votre archivage légal exige-t-il l&#039;extractibilité Unicode du texte (PDF/A-3U strict) ?&#039;&#039;&#039; || Non → &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (défaut, rien à configurer)&lt;br /&gt;
|-&lt;br /&gt;
| Si oui : avez-vous un accès terminal au serveur avec privilèges sudo ou root ? || Oui → &#039;&#039;&#039;Mustang&#039;&#039;&#039; recommandé (extractibilité Unicode garantie)&lt;br /&gt;
|-&lt;br /&gt;
| Sinon (pas d&#039;accès root) : || &#039;&#039;&#039;horstoeko&#039;&#039;&#039; reste le seul choix possible. Mustang nécessite root pour installer Ghostscript / Java / Mustang JAR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Comparatif détaillé ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Critère !! Mode &#039;&#039;&#039;Mustang&#039;&#039;&#039; (PDF/A-3U strict) !! Mode &#039;&#039;&#039;horstoeko&#039;&#039;&#039; (PDF/A-3B portable)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Niveau PDF/A&#039;&#039;&#039; || 3U. Extractibilité Unicode garantie (archivage légal long terme, accessibilité, indexation, recherche plein texte) || 3B. Apparence fidèle, validité format Factur-X, archivage acceptable mais sans garantie d&#039;extractibilité Unicode&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Validation FNFE / PDP&#039;&#039;&#039; || ✓ 0 erreur sur les 189 contrôles XSD CII + EN16931 + BR-FR-CTC-Flux2 || ✓ 0 erreur sur les &#039;&#039;&#039;mêmes&#039;&#039;&#039; 189 contrôles (validation strictement identique côté SUPERPDP)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;XML CII embarqué&#039;&#039;&#039; || Identique (généré par le builder du module) || Identique (généré par le builder du module)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Accès terminal serveur requis&#039;&#039;&#039; || &#039;&#039;&#039;Oui. Sudo ou root indispensable&#039;&#039;&#039; pour installer Ghostscript, Java JRE, Mustang JAR, profil ICC sRGB || &#039;&#039;&#039;Non. Aucune installation système&#039;&#039;&#039;. Le module fonctionne tel quel via PHP CLI&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Hébergement mutualisé / instance managée sans SSH&#039;&#039;&#039; || ❌ Inadapté || ✓ Pleinement supporté&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Empreinte serveur&#039;&#039;&#039; || ~50 Mo (Java + Mustang) en plus des paquets système habituels || ~27 Mo de &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer embarqués dans le module&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Robustesse face à un PDF source quelconque&#039;&#039;&#039; || Ghostscript ré-encode entièrement le PDF en PDF/A-3 valide, quel que soit le PDF source. Aucune contrainte sur les polices ou les modèles utilisés par Dolibarr ou par d&#039;autres modules || Repose sur le PDF source produit par Dolibarr (modèle « crabe » par défaut). Couvre les cas standards, mais un PDF source produit par un modèle tiers exotique peut donner un PDF/A-3B moins propre&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Validation Schematron au niveau pipeline local&#039;&#039;&#039; || Oui (Mustang valide XSD + règles métier FNFE en local) || Validation locale par horstoeko/zugferd côté XML uniquement ; la validation Schematron complète est faite côté SUPERPDP via &amp;lt;code&amp;gt;validation_reports&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Les deux modes peuvent coexister ===&lt;br /&gt;
&lt;br /&gt;
Le choix est fait par une simple constante dans Dolibarr (&amp;lt;code&amp;gt;FACTURXTBNETSYS_PDF_ENGINE&amp;lt;/code&amp;gt;). Vous pouvez :&lt;br /&gt;
* &#039;&#039;&#039;Démarrer en horstoeko&#039;&#039;&#039; (défaut, sans rien configurer) pour valider le plugin sans toucher au système (test, validation fonctionnelle)&lt;br /&gt;
* &#039;&#039;&#039;Basculer vers Mustang&#039;&#039;&#039; plus tard si vos exigences d&#039;archivage évoluent. La bascule est instantanée, sans régénérer les anciennes factures&lt;br /&gt;
* &#039;&#039;&#039;Inversement, dégrader vers horstoeko&#039;&#039;&#039; si une migration vers un hébergement mutualisé devient nécessaire&lt;br /&gt;
&lt;br /&gt;
Aucun re-traitement des factures déjà générées n&#039;est requis lors d&#039;un changement de mode : les anciennes factures restent valides, seules les nouvelles seront générées avec le moteur courant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installation des prérequis système. &#039;&#039;Mode Mustang uniquement&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode horstoeko ?&#039;&#039;&#039; Sautez cette section et passez directement à [[#Mode horstoeko. Aucun prérequis système]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette section est conçue pour un utilisateur &#039;&#039;&#039;non administrateur système&#039;&#039;&#039; mais disposant tout de même d&#039;un &#039;&#039;&#039;accès terminal avec privilèges sudo ou root&#039;&#039;&#039;. Sans cet accès, le mode Mustang n&#039;est pas installable. Basculer sur le mode horstoeko. Chaque étape est expliquée : à quoi sert l&#039;outil, comment l&#039;installer, comment vérifier qu&#039;il est correctement en place. Suivre les blocs dans l&#039;ordre.&lt;br /&gt;
&lt;br /&gt;
=== Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Toutes les commandes doivent être exécutées &#039;&#039;&#039;avec les droits root&#039;&#039;&#039; sur le serveur Dolibarr. Si vous n&#039;êtes pas connecté en root, préfixer chaque commande par &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; (par exemple &amp;lt;code&amp;gt;sudo apt install …&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; est l&#039;utilisateur Linux sous lequel le serveur web (Apache/Nginx) exécute Dolibarr. Lorsqu&#039;une commande doit être lancée en tant que &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;, c&#039;est explicitement indiqué.&lt;br /&gt;
* &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; au début d&#039;une ligne signifie « commentaire, ne pas taper ».&lt;br /&gt;
* Toujours &#039;&#039;&#039;copier-coller&#039;&#039;&#039; les commandes : un caractère manquant ou un tiret recopié à la main peut casser l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Étape 1. Mettre à jour la liste des paquets ===&lt;br /&gt;
&lt;br /&gt;
Avant d&#039;installer quoi que ce soit, on rafraîchit l&#039;index du gestionnaire de paquets pour récupérer les versions les plus récentes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande ne modifie rien sur le système : elle se contente de télécharger la liste des paquets disponibles. Elle peut afficher quelques avertissements (&amp;lt;code&amp;gt;Different settings for HTTP/HTTPS&amp;lt;/code&amp;gt;), c&#039;est normal.&lt;br /&gt;
&lt;br /&gt;
=== Étape 2. Installer Ghostscript ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039; : Ghostscript (commande &amp;lt;code&amp;gt;gs&amp;lt;/code&amp;gt;) est l&#039;outil qui convertit le PDF généré par Dolibarr en &#039;&#039;&#039;PDF/A-3&#039;&#039;&#039;, le format obligatoire pour qu&#039;un Factur-X soit valide. Sans lui, le PDF n&#039;est pas conforme et le destinataire le rejettera.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y ghostscript&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;option &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; accepte automatiquement les questions « voulez-vous continuer ? » que pose &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher un numéro de version (par ex. &amp;lt;code&amp;gt;10.03.1&amp;lt;/code&amp;gt;). Si la commande renvoie &amp;lt;code&amp;gt;command not found&amp;lt;/code&amp;gt;, l&#039;installation a échoué. Relire les messages d&#039;erreur d&#039;&amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Étape 3. Installer Java (JRE) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039; : Mustang (étape suivante) est un programme écrit en Java. Pour pouvoir l&#039;exécuter, il faut une JVM (machine virtuelle Java) installée sur le serveur. On installe le &#039;&#039;&#039;JDK headless&#039;&#039;&#039; (sans interface graphique, suffisant pour un serveur).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y default-jre default-jdk-headless&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;default-jre&amp;lt;/code&amp;gt; (Java Runtime Environment) suffirait pour exécuter un programme, mais &amp;lt;code&amp;gt;default-jdk-headless&amp;lt;/code&amp;gt; garantit que tous les outils annexes (notamment ceux utilisés par Mustang à l&#039;initialisation) soient disponibles. Les deux paquets ne se contredisent pas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher quelque chose comme &amp;lt;code&amp;gt;openjdk version &amp;quot;17.0.x&amp;quot;&amp;lt;/code&amp;gt;. La sortie part &#039;&#039;&#039;par défaut sur la sortie d&#039;erreur&#039;&#039;&#039;, c&#039;est normal. Le résultat reste lisible à l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
=== Étape 4. Télécharger Mustang CLI ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039; : Mustang est l&#039;outil qui prend le PDF/A-3 fabriqué à l&#039;étape 2 et le XML EN16931 généré par le plugin, puis les fusionne en un véritable PDF Factur-X (avec les bonnes métadonnées XMP, le nom canonique &amp;lt;code&amp;gt;factur-x.xml&amp;lt;/code&amp;gt; du fichier embarqué, etc.). Le plugin appelle Mustang en arrière-plan à chaque régénération de facture.&lt;br /&gt;
&lt;br /&gt;
Mustang n&#039;est pas distribué via &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt;. Il faut télécharger le &amp;lt;code&amp;gt;.jar&amp;lt;/code&amp;gt; (un programme Java empaqueté) depuis sa page officielle GitHub et le placer à un endroit fixe. Le plugin cherche par défaut le fichier dans &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Se positionner dans /opt (répertoire conventionnel pour les logiciels tiers)&lt;br /&gt;
cd /opt&lt;br /&gt;
&lt;br /&gt;
# Télécharger la version 2.22.0 (testée et validée avec ce plugin)&lt;br /&gt;
wget github.com/ZUGFeRD/mustangproject/releases/download/core-2.22.0/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt; est un téléchargeur en ligne de commande. S&#039;il n&#039;est pas installé, l&#039;ajouter avec &amp;lt;code&amp;gt;apt install -y wget&amp;lt;/code&amp;gt;. La commande crée le fichier &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; (~30 Mo).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /opt/Mustang-CLI-2.22.0.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doit afficher une ligne avec une taille d&#039;environ 30 Mo. Si le fichier est plus petit (quelques Ko), le téléchargement a échoué. Supprimer le fichier (&amp;lt;code&amp;gt;rm /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;) et recommencer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si vous voulez utiliser une autre version de Mustang&#039;&#039;&#039; (par ex. une plus récente), saisissez le nouveau chemin dans la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; de Dolibarr, section « Chemins des utilitaires système » (champ « Mustang CLI (.jar) »).&lt;br /&gt;
&lt;br /&gt;
=== Étape 5. Vérifier la présence du profil ICC sRGB ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039; : un PDF/A-3 doit déclarer un &#039;&#039;&#039;profil colorimétrique de référence&#039;&#039;&#039; (le profil ICC). Le plugin utilise sRGB par défaut, le plus standard. Ce profil est généralement présent par défaut sur Debian via le paquet &amp;lt;code&amp;gt;icc-profiles-free&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -l /usr/share/color/icc/sRGB.icc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Si le fichier existe : rien à faire.&lt;br /&gt;
* Si le fichier est absent (&amp;lt;code&amp;gt;No such file or directory&amp;lt;/code&amp;gt;) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y icc-profiles-free&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur certaines distributions, le paquet peut s&#039;appeler différemment (&amp;lt;code&amp;gt;icc-profiles&amp;lt;/code&amp;gt;). Si vraiment introuvable, le plugin accepte un chemin alternatif modifiable dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, section « Chemins des utilitaires système » (champ « Profil ICC sRGB »).&lt;br /&gt;
&lt;br /&gt;
=== Étape 6. Installer les paquets PHP utilisés par Dolibarr ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;À quoi ça sert&#039;&#039;&#039; : Dolibarr et le plugin s&#039;appuient sur quelques bibliothèques PHP pour manipuler les PDF (TCPDF, FPDI), pour parser des PDF lus (Poppler), et pour quelques utilitaires bas niveau (binutils).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y binutils php-tcpdf php-fpdi poppler-utils&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détail rapide :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paquet !! Utilité&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt; || Outils binaires bas niveau utilisés par certaines libs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;php-tcpdf&amp;lt;/code&amp;gt; || Génération PDF côté Dolibarr&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;php-fpdi&amp;lt;/code&amp;gt; || Lecture/import de PDF existants&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;poppler-utils&amp;lt;/code&amp;gt; || Outils annexes (&amp;lt;code&amp;gt;pdfinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdftotext&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
gs --version &amp;amp;&amp;amp; java -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si les deux commandes répondent, les briques principales sont en place.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mode horstoeko. Aucun prérequis système ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Vous avez choisi le mode Mustang ?&#039;&#039;&#039; Cette section ne vous concerne pas, passer à [[#Installation du plugin]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le mode horstoeko/PDF/A-3B fonctionne avec un &#039;&#039;&#039;PHP CLI&#039;&#039;&#039; disposant de l&#039;extension &#039;&#039;&#039;SimpleXML&#039;&#039;&#039;. Sur l&#039;écrasante majorité des hébergements Dolibarr, c&#039;est déjà le cas. Vous n&#039;avez donc &#039;&#039;&#039;aucune installation à effectuer côté système&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Vérification rapide depuis votre Dolibarr ===&lt;br /&gt;
&lt;br /&gt;
Si vous avez accès au serveur en SSH (même sans sudo), vérifier que PHP CLI a SimpleXML :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK\n&amp;quot; : &amp;quot;ABSENT\n&amp;quot;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous obtenez &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt;, vous êtes prêt. Le plugin fonctionnera tel quel. Il suffit de [[#Installation du plugin|l&#039;installer]] puis de sélectionner le mode horstoeko dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
=== Si vous n&#039;avez pas du tout accès au shell ===&lt;br /&gt;
&lt;br /&gt;
Sur certains hébergements mutualisés, vous n&#039;avez accès qu&#039;au panel d&#039;administration et à un éditeur de fichiers via FTP/SFTP. Dans ce cas :&lt;br /&gt;
&lt;br /&gt;
# [[#Installation du plugin|Installez le plugin]] en uploadant son répertoire dans &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Activez-le dans Dolibarr&lt;br /&gt;
# Allez dans &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; : la page vérifiera &#039;&#039;&#039;automatiquement&#039;&#039;&#039; que le PHP CLI cible (via la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt;) a bien SimpleXML&lt;br /&gt;
# Si SimpleXML manque côté CLI, le diagnostic vous l&#039;indiquera : il faudra alors demander à votre hébergeur d&#039;activer l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; ou de pointer le plugin sur une autre version de PHP CLI qui l&#039;inclut&lt;br /&gt;
&lt;br /&gt;
=== Vendor Composer fourni dans le plugin ===&lt;br /&gt;
&lt;br /&gt;
La bibliothèque &amp;lt;code&amp;gt;horstoeko/zugferd&amp;lt;/code&amp;gt; et ses dépendances sont &#039;&#039;&#039;embarquées dans le plugin&#039;&#039;&#039; au moment de la distribution (répertoire &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;). Aucune installation Composer n&#039;est nécessaire côté serveur cible. Si vous compilez le plugin depuis les sources, exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module avant déploiement.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installation du plugin ==&lt;br /&gt;
&lt;br /&gt;
Cette étape est commune aux deux modes. Une fois les prérequis correspondant à votre choix de mode validés :&lt;br /&gt;
&lt;br /&gt;
# Copier le répertoire &amp;lt;code&amp;gt;facturxtbnetsys/&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de Dolibarr :&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -r facturxtbnetsys /var/www/dolibarr/htdocs/custom/&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Activer le module dans Dolibarr : &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules &amp;gt; Onglet &amp;quot;Facturation/Comptabilité&amp;quot;&#039;&#039;&#039; → activer &#039;&#039;&#039;FacturXTbnetsys&#039;&#039;&#039;.&lt;br /&gt;
# Créer le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; (à côté de &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, ou dans un répertoire dédié aux secrets) et y renseigner les identifiants de connexion à votre PDP, puis indiquer son chemin absolu à Dolibarr dans l&#039;onglet Paramétrage (voir la sous-section [[#Configuration du fichier .secret (credentials PDP)|Configuration du fichier .secret]] ci-dessous).&lt;br /&gt;
# Vérifier la santé de l&#039;installation : &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Diagnostic&#039;&#039;&#039;. La page liste les vérifications avec un code couleur (le contenu varie selon le backend PDF sélectionné) ; toutes doivent être au vert (à l&#039;exception éventuelle de &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; qui peut être marqué « optionnel » tant que vous n&#039;avez pas finalisé la configuration PDP).&lt;br /&gt;
&lt;br /&gt;
=== Configuration du fichier .secret (credentials PDP) ===&lt;br /&gt;
&lt;br /&gt;
Le plugin se connecte à votre Plateforme de Dématérialisation Partenaire (PDP) (par défaut &#039;&#039;&#039;SUPERPDP&#039;&#039;&#039;) via OAuth2 (flux &amp;lt;code&amp;gt;client_credentials&amp;lt;/code&amp;gt;). Vos identifiants OAuth2 sont stockés dans un fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, lu uniquement côté serveur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Sans &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;, le plugin reste fonctionnel&#039;&#039;&#039; : la régénération Factur-X (PDF/A-3 + XML EN16931) continue de fonctionner. Seul l&#039;envoi automatique vers la PDP est désactivé. Le diagnostic affiche alors &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; en orange « optionnel ».&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emplacement recommandé. Hors de la racine web&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; doit être placé &#039;&#039;&#039;en dehors du dossier &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;&#039;&#039;&#039; (la racine web servie par Apache / Nginx) afin qu&#039;il ne puisse jamais être servi par le serveur HTTP en cas de mauvaise configuration ou de bug. Sur une installation type &amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/&amp;lt;/code&amp;gt;, placez-le par exemple :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Emplacement !! Recommandation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt; || &#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Au même niveau d&#039;arborescence que &amp;lt;code&amp;gt;htdocs/&amp;lt;/code&amp;gt;, donc inaccessible via HTTP par construction&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/dolibarr-secrets/pdp.secret&amp;lt;/code&amp;gt; || &#039;&#039;&#039;Recommandé&#039;&#039;&#039;. Répertoire système dédié aux secrets, idéal pour gérer plusieurs environnements (&amp;lt;code&amp;gt;pdp-prod.secret&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdp-sandbox.secret&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret&amp;lt;/code&amp;gt; || &#039;&#039;&#039;À éviter&#039;&#039;&#039;. Fonctionne (chemin par défaut codé), mais place le fichier sous la racine web : tout problème de configuration serveur peut l&#039;exposer en clair&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier créé, son chemin absolu doit être renseigné dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;, section &#039;&#039;&#039;API PDP&#039;&#039;&#039;, champ &#039;&#039;&#039;Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Tant que cette constante n&#039;est pas renseignée, le plugin retombe sur le défaut codé (chemin sous la racine web), ce qui n&#039;est pas l&#039;emplacement souhaitable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obtention des identifiants&#039;&#039;&#039; : récupérer &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; depuis l&#039;espace administrateur de votre PDP. Pour SUPERPDP, l&#039;endpoint d&#039;authentification utilisé par le plugin est &amp;lt;code&amp;gt;api.superpdp.tech/oauth2/token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Format attendu&#039;&#039;&#039;. Fichier texte, une clé par ligne, valeur entre guillemets droits (les guillemets sont optionnels). Les lignes vides et celles commençant par &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; sont ignorées :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Credentials OAuth2 SUPERPDP. NE PAS COMMITER&lt;br /&gt;
client_id=&amp;quot;votre-client-id-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
client_secret=&amp;quot;votre-client-secret-fourni-par-la-pdp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Création et droits Unix&#039;&#039;&#039;. Le plugin fournit un modèle &amp;lt;code&amp;gt;.secret.example&amp;lt;/code&amp;gt; à la racine du plugin. Copiez-le &#039;&#039;&#039;hors de la racine web&#039;&#039;&#039; puis complétez-le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Copier le modele HORS de la racine web (exemple : au meme niveau que htdocs/)&lt;br /&gt;
cp /var/www/dolibarr/htdocs/custom/facturxtbnetsys/.secret.example /var/www/dolibarr/.secret&lt;br /&gt;
# Renseigner client_id et client_secret avec votre editeur favori&lt;br /&gt;
nano /var/www/dolibarr/.secret&lt;br /&gt;
# Restreindre les droits (lecture/ecriture par www-data uniquement)&lt;br /&gt;
chmod 600 /var/www/dolibarr/.secret&lt;br /&gt;
chown www-data:www-data /var/www/dolibarr/.secret&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis, dans Dolibarr : &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage &amp;gt; API PDP &amp;gt; Chemin du fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; → saisir &amp;lt;code&amp;gt;/var/www/dolibarr/.secret&amp;lt;/code&amp;gt; (adapter à votre installation) et enregistrer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Précautions de sécurité&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Placer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; hors de la racine web&#039;&#039;&#039; (cf. tableau ci-dessus) : c&#039;est la garantie la plus solide qu&#039;il ne sera jamais servi en HTTP.&lt;br /&gt;
* &#039;&#039;&#039;Ne jamais committer &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; dans un dépôt git (ajouter &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; au &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; du plugin si vous forkez le code).&lt;br /&gt;
* &#039;&#039;&#039;Ne jamais transmettre le fichier par email/messagerie&#039;&#039;&#039; en clair.&lt;br /&gt;
* En cas de fuite suspectée, &#039;&#039;&#039;révoquer immédiatement le &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt;&#039;&#039;&#039; depuis l&#039;admin de la PDP et en générer un nouveau.&lt;br /&gt;
* Le fichier doit appartenir à &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; et être en &amp;lt;code&amp;gt;0600&amp;lt;/code&amp;gt; : aucun autre utilisateur Unix de la machine ne doit pouvoir le lire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vérification&#039;&#039;&#039;. Après création, ouvrir &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ligne diagnostic !! État attendu&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; || &#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Fichier présent et &amp;lt;code&amp;gt;client_id&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;client_secret&amp;lt;/code&amp;gt; non vides&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt; || &#039;&#039;&#039;OK&#039;&#039;&#039; (vert). Un Bearer token a été obtenu avec succès&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Si &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; ressort « KO » (rouge), le fichier existe mais une des deux clés est absente ou mal formée. Relire le format ci-dessus. Si &amp;lt;code&amp;gt;api.superpdp.tech&amp;lt;/code&amp;gt; ressort en erreur, les identifiants sont rejetés par la PDP : vérifier qu&#039;ils sont corrects et actifs côté admin de la plateforme. Les détails de l&#039;erreur sont tracés dans le journal Dolibarr (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;, préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Sélection du moteur PDF dans Dolibarr ===&lt;br /&gt;
&lt;br /&gt;
Une fois le module activé, aller dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; onglet Paramétrage&#039;&#039;&#039;. La section &#039;&#039;&#039;« Pipeline PDF »&#039;&#039;&#039; propose un radio à deux choix :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;horstoeko/zugferd / PDF/A-3B portable&#039;&#039;&#039;. Choix par défaut depuis la version 1.1.0. Aucun prérequis système. Sous le radio, un champ &#039;&#039;&#039;« Binaire php-cli »&#039;&#039;&#039; permet de pointer vers la version de PHP utilisée par le sous-processus (par défaut &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt;). Si votre &amp;lt;code&amp;gt;/usr/bin/php&amp;lt;/code&amp;gt; ne dispose pas de l&#039;extension SimpleXML, indiquer ici une version qui l&#039;inclut, par exemple &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Mustang / PDF/A-3U strict&#039;&#039;&#039;. Choix optionnel pour archivage légal long terme. Nécessite que la procédure [[#Installation des prérequis système. Mode Mustang uniquement|Installation des prérequis système]] ait été suivie au préalable.&lt;br /&gt;
&lt;br /&gt;
Sélectionner le mode souhaité, sauvegarder, puis ouvrir l&#039;onglet &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; pour vérifier que toutes les briques nécessaires au mode choisi sont au vert. Le contenu de cette page s&#039;adapte automatiquement au mode sélectionné. Vous ne verrez les checks Ghostscript/Java/Mustang qu&#039;en mode Mustang, et les checks PHP CLI/SimpleXML/Composer vendor qu&#039;en mode horstoeko.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Vérification finale en une commande ==&lt;br /&gt;
&lt;br /&gt;
=== Mode Mustang ===&lt;br /&gt;
&lt;br /&gt;
Pour vérifier en bloc tous les prérequis Mustang depuis la ligne de commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== Ghostscript ===&amp;quot; &amp;amp;&amp;amp; gs --version &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Java ===&amp;quot; &amp;amp;&amp;amp; java -version 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Mustang JAR ===&amp;quot; &amp;amp;&amp;amp; ls -l /opt/Mustang-CLI-2.22.0.jar &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== ICC sRGB ===&amp;quot; &amp;amp;&amp;amp; ls -l /usr/share/color/icc/sRGB.icc &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si la dernière ligne &amp;lt;code&amp;gt;=== Tout est OK ===&amp;lt;/code&amp;gt; s&#039;affiche, l&#039;installation système est complète. Sinon, l&#039;erreur juste avant indique précisément ce qui manque.&lt;br /&gt;
&lt;br /&gt;
=== Mode horstoeko ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;=== PHP CLI ===&amp;quot; &amp;amp;&amp;amp; php -v | head -1 &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== SimpleXML ===&amp;quot; &amp;amp;&amp;amp; php -r &#039;echo extension_loaded(&amp;quot;simplexml&amp;quot;) ? &amp;quot;OK&amp;quot; : &amp;quot;ABSENT&amp;quot;, PHP_EOL;&#039; &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== vendor ===&amp;quot; &amp;amp;&amp;amp; ls -d /var/www/dolibarr/htdocs/custom/facturxtbnetsys/vendor/horstoeko/zugferd &amp;amp;&amp;amp; \&lt;br /&gt;
echo &amp;quot;=== Tout est OK ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez configuré une version PHP CLI spécifique (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;), remplacer &amp;lt;code&amp;gt;php&amp;lt;/code&amp;gt; par ce binaire dans les deux premières lignes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Pièges fréquents ==&lt;br /&gt;
&lt;br /&gt;
=== Mode Mustang ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptôme !! Cause probable !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gs: command not found&amp;lt;/code&amp;gt; lors de la régénération || Ghostscript pas installé ou pas dans le &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; du serveur web || Re-vérifier l&#039;étape 2. Au besoin, renseigner le chemin absolu dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Binaire Ghostscript »&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Mustang JAR introuvable/illisible&amp;lt;/code&amp;gt; || Le fichier n&#039;est pas à &amp;lt;code&amp;gt;/opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt;, ou pas lisible par &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chmod +r /opt/Mustang-CLI-2.22.0.jar&amp;lt;/code&amp;gt; ou ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Mustang CLI (.jar) »&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;java: command not found&amp;lt;/code&amp;gt; || JRE non installé || Re-vérifier l&#039;étape 3&lt;br /&gt;
|-&lt;br /&gt;
| Erreur PDF/A-3 « no ICC profile » || Le profil sRGB n&#039;est pas trouvé || Re-vérifier l&#039;étape 5, ajuster le chemin dans &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039;, champ « Profil ICC sRGB » si nécessaire&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mode horstoeko ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptôme !! Cause probable !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vendor/autoload.php introuvable&amp;lt;/code&amp;gt; dans le journal || Le &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt; Composer n&#039;a pas été déployé avec le plugin || Réinstaller le plugin depuis l&#039;archive officielle (qui inclut &amp;lt;code&amp;gt;vendor/&amp;lt;/code&amp;gt;) ou exécuter &amp;lt;code&amp;gt;composer install --no-dev --optimize-autoloader&amp;lt;/code&amp;gt; à la racine du module&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Binaire php-cli introuvable ou non exécutable&amp;lt;/code&amp;gt; || La constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; pointe sur un chemin invalide || Ajuster dans &#039;&#039;&#039;Paramétrage &amp;gt; Pipeline PDF &amp;gt; Binaire php-cli&#039;&#039;&#039; (ex. &amp;lt;code&amp;gt;/usr/bin/php8.4&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;extension SimpleXML absente&amp;lt;/code&amp;gt; (badge KO dans Diagnostic) || La version de PHP CLI désignée n&#039;a pas l&#039;extension &amp;lt;code&amp;gt;simplexml&amp;lt;/code&amp;gt; || Pointer la constante &amp;lt;code&amp;gt;FACTURXTBNETSYS_PHP_BIN&amp;lt;/code&amp;gt; sur une autre version de PHP CLI qui inclut SimpleXML, ou demander à l&#039;hébergeur d&#039;activer l&#039;extension côté CLI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Sous-processus horstoeko a échoué (rc=…)&amp;lt;/code&amp;gt; || Erreur dans la lib horstoeko/zugferd ; le PDF source produit par Dolibarr peut être atypique || Consulter le journal Dolibarr (préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt;) ; en dernier recours, basculer temporairement sur le mode Mustang pour identifier si le PDF source est en cause&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Communs aux deux modes ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptôme !! Cause probable !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;proc_open() has been disabled&amp;lt;/code&amp;gt; dans le syslog || Le serveur (souvent un VPS mutualisé) interdit l&#039;exécution de processus externes || Demander à l&#039;hébergeur d&#039;autoriser &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;disable_functions&amp;lt;/code&amp;gt;). &#039;&#039;&#039;Les deux modes&#039;&#039;&#039; utilisent &amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt; (Mustang pour Ghostscript+Java, horstoeko pour le sous-processus PHP). Le plugin &#039;&#039;&#039;ne peut pas fonctionner sans&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Page Diagnostic affiche tout en vert mais erreur à l&#039;usage || Cache OPcache PHP || Redémarrer Apache/Nginx (&amp;lt;code&amp;gt;systemctl reload apache2&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Catégories TVA. Comment le plugin classe vos factures ==&lt;br /&gt;
&lt;br /&gt;
À chaque régénération de facture, le plugin détermine &#039;&#039;&#039;automatiquement&#039;&#039;&#039; le régime TVA applicable à chaque ligne et le code d&#039;exonération correspondant exigé par la norme européenne EN16931. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039; : tout est déduit de la configuration de votre société, du pays du client et des taux de TVA de la facture.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin et dans quels cas, pour que vous puissiez vérifier que cela correspond bien à votre situation fiscale.&lt;br /&gt;
&lt;br /&gt;
=== Les 6 cas reconnus (du plus prioritaire au moins prioritaire) ===&lt;br /&gt;
&lt;br /&gt;
Pour chaque ligne, le plugin parcourt la liste suivante de haut en bas et s&#039;arrête à la première règle qui s&#039;applique.&lt;br /&gt;
&lt;br /&gt;
==== 1. Vous êtes en franchise en base de TVA (micro-entreprise) ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : dans Dolibarr, &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA » = Non&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
→ Toutes les lignes de toutes vos factures sont marquées « hors champ TVA » avec la mention légale &#039;&#039;&#039;« TVA non applicable, art. 293 B du CGI »&#039;&#039;&#039; ajoutée automatiquement dans le document (factures &#039;&#039;&#039;et&#039;&#039;&#039; avoirs).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Cette règle est prioritaire : si vous êtes en franchise, le plugin ne tient compte ni des taux, ni du pays du client, ni des lignes de débours. Tout sort en franchise.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. La ligne est un débours (refacturation à l&#039;identique d&#039;un frais) ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : la ligne a été saisie via le plugin &#039;&#039;&#039;debourstbnetsys&#039;&#039;&#039; (refacturation à l&#039;identique au client d&#039;un frais que vous avez avancé pour son compte).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification &#039;&#039;&#039;art. 267 II 2° CGI&#039;&#039;&#039; (les débours sont par nature hors champ de la TVA, indépendamment du pays du client).&lt;br /&gt;
&lt;br /&gt;
==== 3. La ligne porte un taux de TVA standard ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : la ligne a un taux de TVA strictement supérieur à 0 % (5,5 %, 10 %, 20 %, etc.).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « TVA au taux standard », sans code d&#039;exonération. C&#039;est le cas le plus courant.&lt;br /&gt;
&lt;br /&gt;
==== 4. Vous facturez un client professionnel établi dans l&#039;Union européenne ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : le taux est à 0 %, le client est dans un pays UE différent de la France, et &#039;&#039;&#039;son numéro de TVA intracommunautaire est renseigné&#039;&#039;&#039; dans sa fiche tiers.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « livraison intracommunautaire » avec autoliquidation par l&#039;acheteur (art. 196 de la directive 2006/112/CE). Vous devrez également mentionner manuellement « Autoliquidation » sur la facture (voir « À savoir » ci-dessous).&lt;br /&gt;
&lt;br /&gt;
==== 5. Vous facturez un client hors Union européenne ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : le taux est à 0 % et le client est dans un pays hors UE.&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « export », exonérée au titre de l&#039;&#039;&#039;&#039;&#039;art. 262 I du CGI&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== 6. Tous les autres cas avec un taux à 0 % ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Condition&#039;&#039;&#039; : taux à 0 %, client en France ou client UE sans numéro de TVA intracommunautaire (cas typique : particulier européen).&lt;br /&gt;
&lt;br /&gt;
→ La ligne est marquée « exonérée » avec la justification française par défaut.&lt;br /&gt;
&lt;br /&gt;
=== À savoir avant de mettre en service ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Numéro de TVA intracommunautaire indispensable pour vos clients UE professionnels.&#039;&#039;&#039; Si vous facturez un client allemand, italien, espagnol, etc. sans avoir renseigné son n° TVA intra dans Dolibarr, le plugin considérera qu&#039;il s&#039;agit d&#039;un particulier (cas n° 6) au lieu d&#039;une livraison intracommunautaire (cas n° 4). Pensez à compléter la fiche tiers avant la première facture.&lt;br /&gt;
* &#039;&#039;&#039;Mention « Autoliquidation » à ajouter manuellement.&#039;&#039;&#039; Pour les factures intracommunautaires (cas n° 4), la réglementation impose que la facture mentionne explicitement « Autoliquidation ». Le plugin ne l&#039;ajoute pas automatiquement pour l&#039;instant : pensez à le faire dans le libellé de votre facture.&lt;br /&gt;
* &#039;&#039;&#039;Vérifiez votre statut TVA si vous êtes micro-entreprise.&#039;&#039;&#039; Le plugin détecte la franchise via le paramètre Dolibarr &#039;&#039;&#039;Configuration &amp;gt; Société &amp;gt; « Assujetti à la TVA »&#039;&#039;&#039;. Vérifiez qu&#039;il est bien sur &#039;&#039;&#039;Non&#039;&#039;&#039; si vous êtes effectivement en franchise. Sinon vos factures sortiront avec un régime TVA classique au lieu de la mention 293 B.&lt;br /&gt;
* &#039;&#039;&#039;Si vous mettez à jour le plugin depuis une version antérieure&#039;&#039;&#039; et que vous émettez régulièrement des factures intracommunautaires ou à l&#039;export : vos prochaines régénérations utiliseront un code TVA plus précis qu&#039;avant (correction de conformité). Les factures déjà émises ne sont pas modifiées. Faites un essai sur une facture représentative pour vérifier qu&#039;elle est bien acceptée par votre PDP avant de regénérer en masse.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Acomptes. Comment le plugin gère les factures d&#039;acompte et leur imputation ==&lt;br /&gt;
&lt;br /&gt;
Le plugin reconnaît automatiquement les &#039;&#039;&#039;factures d&#039;acompte&#039;&#039;&#039; que vous émettez dans Dolibarr (type « Acompte ») ainsi que les &#039;&#039;&#039;factures finales&#039;&#039;&#039; sur lesquelles ces acomptes sont imputés. &#039;&#039;&#039;Vous n&#039;avez rien à paramétrer&#039;&#039;&#039; : la détection se fait au moment de la régénération.&lt;br /&gt;
&lt;br /&gt;
Cette section explique ce que produit le plugin pour que vous sachiez à quoi vous attendre dans le XML envoyé à votre PDP ou à votre client.&lt;br /&gt;
&lt;br /&gt;
=== Si vous émettez une facture d&#039;acompte ===&lt;br /&gt;
&lt;br /&gt;
Quand le type de la facture Dolibarr est &#039;&#039;&#039;« Acompte »&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
→ Le XML est marqué comme « facture d&#039;acompte » (code document &amp;lt;code&amp;gt;386&amp;lt;/code&amp;gt; au sens du standard EN16931, distinct du code &amp;lt;code&amp;gt;380&amp;lt;/code&amp;gt; des factures classiques et du &amp;lt;code&amp;gt;381&amp;lt;/code&amp;gt; des avoirs).&lt;br /&gt;
&lt;br /&gt;
→ Les mentions légales obligatoires en France (indemnité de recouvrement 40 €, pénalités de retard, escompte) sont conservées : un acompte est une &#039;&#039;&#039;facture exigible&#039;&#039;&#039; au sens fiscal, la TVA y est exigible.&lt;br /&gt;
&lt;br /&gt;
→ Aucune mention d&#039;acompte antérieur n&#039;est ajoutée (par construction, l&#039;acompte est lui-même la première facture du cycle).&lt;br /&gt;
&lt;br /&gt;
=== Si vous émettez la facture finale après un ou plusieurs acomptes ===&lt;br /&gt;
&lt;br /&gt;
Quand vous facturez le solde d&#039;une commande déjà partiellement payée par acompte(s) :&lt;br /&gt;
&lt;br /&gt;
→ Le plugin lit dans Dolibarr la liste des &#039;&#039;&#039;factures d&#039;acompte rattachées&#039;&#039;&#039; à cette facture finale et insère pour chacune une référence dans le XML (numéro de la facture d&#039;acompte). Le destinataire et le PDP peuvent ainsi tracer l&#039;historique complet du cycle.&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant total des acomptes imputés&#039;&#039;&#039; est inscrit dans le XML sous une balise dédiée (BT-113 « Total prepaid amount » au sens EN16931).&lt;br /&gt;
&lt;br /&gt;
→ Le &#039;&#039;&#039;montant restant à payer&#039;&#039;&#039; est recalculé automatiquement comme &amp;lt;code&amp;gt;total TTC – acomptes déjà versés&amp;lt;/code&amp;gt;. C&#039;est ce montant net qui apparaît comme « somme due » (BT-115 « Due payable amount »), pas le total brut.&lt;br /&gt;
&lt;br /&gt;
→ Si un écart d&#039;arrondi minime existe entre le total TTC Dolibarr et le total recalculé par taux de TVA (cas rare, dépend de la composition des taux sur la facture), il est inscrit séparément (BT-114 « Rounding amount ») pour que la cohérence comptable reste vérifiable par le PDP.&lt;br /&gt;
&lt;br /&gt;
=== À savoir avant de mettre en service (acomptes) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bien lier l&#039;acompte à la facture finale dans Dolibarr.&#039;&#039;&#039; L&#039;imputation est lue depuis la table standard Dolibarr des « remises et avoirs déjà appliqués ». Si vous saisissez la facture finale sans déclarer explicitement l&#039;acompte précédent (par exemple en passant par les écritures de paiement uniquement, sans utiliser le mécanisme « consommer cet acompte »), le plugin ne pourra pas en tenir compte automatiquement.&lt;br /&gt;
* &#039;&#039;&#039;Avoirs imputés non comptabilisés en BT-113.&#039;&#039;&#039; Si vous imputez un avoir sur une facture finale, le plugin ne l&#039;inclut &#039;&#039;&#039;pas&#039;&#039;&#039; dans le « total déjà payé » (BT-113). C&#039;est conforme à la norme EN16931 qui réserve cette balise aux &#039;&#039;&#039;avances reçues&#039;&#039;&#039; (acomptes), pas aux compensations (avoirs). Le solde net reste correct car l&#039;avoir est traité comme un mode de règlement classique côté Dolibarr.&lt;br /&gt;
* &#039;&#039;&#039;Avoir d&#039;acompte (cas marginal).&#039;&#039;&#039; Émettre un avoir qui annule une facture d&#039;acompte fonctionne mais le XML produit ne référence pas explicitement la facture d&#039;acompte annulée. À éviter en l&#039;état si vous avez besoin d&#039;une traçabilité formelle ; sinon le résultat reste valide EN16931.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Unités de mesure (UN/ECE Rec 20) ==&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de facture est exportée dans le XML EN16931 avec un code unité standardisé UN/ECE Rec 20 dans l&#039;attribut &amp;lt;code&amp;gt;BilledQuantity@unitCode&amp;lt;/code&amp;gt; (BT-130). Le plugin lit l&#039;unité saisie sur la ligne Dolibarr (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; → table &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) et la convertit automatiquement.&lt;br /&gt;
&lt;br /&gt;
Le code Dolibarr (colonne &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; de &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt;) est utilisé comme clé de conversion plutôt que le libellé court (&amp;lt;code&amp;gt;short_label&amp;lt;/code&amp;gt;) car celui-ci comporte des collisions (par exemple &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; désigne à la fois le mètre et le mois dans Dolibarr).&lt;br /&gt;
&lt;br /&gt;
=== Table de conversion appliquée ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Famille !! Dolibarr (&amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;) → UN/ECE Rec 20&lt;br /&gt;
|-&lt;br /&gt;
| Temps || &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt;→SEC · &amp;lt;code&amp;gt;MI&amp;lt;/code&amp;gt;→MIN · &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;→HUR · &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;→DAY · &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;→WEE · &amp;lt;code&amp;gt;MO&amp;lt;/code&amp;gt;→MON · &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;→ANN&lt;br /&gt;
|-&lt;br /&gt;
| Poids || &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;→TNE · &amp;lt;code&amp;gt;KG&amp;lt;/code&amp;gt;→KGM · &amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;→GRM · &amp;lt;code&amp;gt;MG&amp;lt;/code&amp;gt;→MGM · &amp;lt;code&amp;gt;OZ&amp;lt;/code&amp;gt;→ONZ · &amp;lt;code&amp;gt;LB&amp;lt;/code&amp;gt;→LBR&lt;br /&gt;
|-&lt;br /&gt;
| Longueur || &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;→MTR · &amp;lt;code&amp;gt;DM&amp;lt;/code&amp;gt;→DMT · &amp;lt;code&amp;gt;CM&amp;lt;/code&amp;gt;→CMT · &amp;lt;code&amp;gt;MM&amp;lt;/code&amp;gt;→MMT · &amp;lt;code&amp;gt;FT&amp;lt;/code&amp;gt;→FOT · &amp;lt;code&amp;gt;IN&amp;lt;/code&amp;gt;→INH&lt;br /&gt;
|-&lt;br /&gt;
| Surface || &amp;lt;code&amp;gt;M2&amp;lt;/code&amp;gt;→MTK · &amp;lt;code&amp;gt;DM2&amp;lt;/code&amp;gt;→DMK · &amp;lt;code&amp;gt;CM2&amp;lt;/code&amp;gt;→CMK · &amp;lt;code&amp;gt;MM2&amp;lt;/code&amp;gt;→MMK · &amp;lt;code&amp;gt;FT2&amp;lt;/code&amp;gt;→FTK · &amp;lt;code&amp;gt;IN2&amp;lt;/code&amp;gt;→INK&lt;br /&gt;
|-&lt;br /&gt;
| Volume || &amp;lt;code&amp;gt;M3&amp;lt;/code&amp;gt;→MTQ · &amp;lt;code&amp;gt;DM3&amp;lt;/code&amp;gt;→DMQ · &amp;lt;code&amp;gt;CM3&amp;lt;/code&amp;gt;→CMQ · &amp;lt;code&amp;gt;MM3&amp;lt;/code&amp;gt;→MMQ · &amp;lt;code&amp;gt;FT3&amp;lt;/code&amp;gt;→FTQ · &amp;lt;code&amp;gt;IN3&amp;lt;/code&amp;gt;→INQ · &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;→LTR · &amp;lt;code&amp;gt;GAL&amp;lt;/code&amp;gt;→GLL&lt;br /&gt;
|-&lt;br /&gt;
| Quantité || &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;→C62 (un/pièce) · &amp;lt;code&amp;gt;SET&amp;lt;/code&amp;gt;→SET&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Politique de fallback ===&lt;br /&gt;
&lt;br /&gt;
* Ligne sans unité renseignée (&amp;lt;code&amp;gt;fk_unit&amp;lt;/code&amp;gt; vide) : code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt; (one/each), comportement neutre.&lt;br /&gt;
* Unité présente mais désactivée dans &amp;lt;code&amp;gt;llx_c_units&amp;lt;/code&amp;gt; (colonne &amp;lt;code&amp;gt;active=0&amp;lt;/code&amp;gt;) : code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Code Dolibarr non couvert par la table (unité personnalisée ajoutée par l&#039;instance) : code &amp;lt;code&amp;gt;C62&amp;lt;/code&amp;gt;, et un message &amp;lt;code&amp;gt;LOG_INFO&amp;lt;/code&amp;gt; est tracé dans le journal Dolibarr (&amp;lt;code&amp;gt;dol_syslog&amp;lt;/code&amp;gt;) pour permettre l&#039;extension de la table.&lt;br /&gt;
&lt;br /&gt;
Aucune configuration n&#039;est nécessaire : le mapping s&#039;applique à la régénération, pour les factures et les avoirs, y compris les lignes débours du plugin &amp;lt;code&amp;gt;debourstbnetsys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Paramétrage du plugin dans Dolibarr ==&lt;br /&gt;
&lt;br /&gt;
Une fois l&#039;installation terminée, tout le paramétrage du plugin se fait depuis l&#039;interface Dolibarr. Vous trouverez quatre pages utiles :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; : options principales du plugin. Activer ou non l&#039;envoi des factures vers le PDP, activer ou non la validation à la régénération, taille des pages d&#039;écran, et &#039;&#039;&#039;chemins des utilitaires système&#039;&#039;&#039; (Ghostscript, Mustang JAR, profil ICC sRGB) si vos outils ne sont pas aux emplacements par défaut.&lt;br /&gt;
* &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Diagnostic&#039;&#039;&#039; : page de contrôle de santé en lecture seule. Affiche en vert/rouge l&#039;état des prérequis (Ghostscript, Java, Mustang, profil ICC, accès à votre PDP…). En cas d&#039;anomalie sur un chemin, l&#039;ajustement se fait dans la page Paramétrage ci-dessus.&lt;br /&gt;
* &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Adresses Peppol&#039;&#039;&#039; : gestion de votre annuaire d&#039;identifiants Peppol/PPF (à utiliser uniquement si vous savez ce que c&#039;est).&lt;br /&gt;
* &#039;&#039;&#039;FacturX &amp;gt; Dispatch PDP&#039;&#039;&#039; (menu principal) : page d&#039;envoi explicite de vos factures vers la plateforme PDP, avec filtres par période, client, état, etc.&lt;br /&gt;
&lt;br /&gt;
=== Mode strict (en cas d&#039;échec du pipeline Factur-X) ===&lt;br /&gt;
&lt;br /&gt;
Sur la page &#039;&#039;&#039;Paramétrage&#039;&#039;&#039;, l&#039;option &#039;&#039;&#039;« Mode strict »&#039;&#039;&#039; détermine ce qu&#039;il se passe si la conversion en Factur-X plante (Ghostscript indisponible, Mustang qui échoue, profil ICC introuvable, etc.) :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Décoché (recommandé, valeur par défaut)&#039;&#039;&#039;. Mode best-effort. Si le pipeline Factur-X échoue, le PDF classique généré par votre modèle de base (par exemple « crabe ») est &#039;&#039;&#039;conservé&#039;&#039;&#039; et la facture reste utilisable. Un avertissement orange est affiché à l&#039;utilisateur. La facture peut être imprimée et envoyée par email. Elle n&#039;est juste pas au format Factur-X.&lt;br /&gt;
* &#039;&#039;&#039;Coché&#039;&#039;&#039;. Mode strict. Tout échec du pipeline supprime le PDF et fait remonter une erreur côté Dolibarr. Aucune facture n&#039;est livrée tant que le problème technique n&#039;est pas corrigé. À utiliser uniquement si vous voulez la garantie absolue qu&#039;aucun PDF non-Factur-X ne circule (par ex. exigence contractuelle ou réglementaire).&lt;br /&gt;
&lt;br /&gt;
Dans les deux cas, la validation SUPERPDP (si elle est activée) reste &#039;&#039;&#039;purement informative&#039;&#039;&#039;. Elle n&#039;a jamais d&#039;effet bloquant, pour ne pas paralyser la facturation en cas d&#039;indisponibilité réseau de la plateforme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Pour les développeurs et intégrateurs&#039;&#039;&#039; souhaitant comprendre l&#039;architecture interne du plugin (couches HTTP, mapping XML EN16931, structure de la base, etc.), une documentation technique séparée est fournie dans le fichier &amp;lt;code&amp;gt;ARCHITECTURE.md&amp;lt;/code&amp;gt; à la racine du plugin.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Source du plugin ==&lt;br /&gt;
&lt;br /&gt;
Le plugin est distribué sur le &#039;&#039;&#039;Dolistore&#039;&#039;&#039;, la place de marché officielle des modules Dolibarr : www.dolistore.com/. C&#039;est la voie recommandée pour les utilisateurs finaux qui souhaitent simplement installer le plugin sur leur Dolibarr.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;développements sont réalisés en interne chez TBNETSYS&#039;&#039;&#039; ; le code source est hébergé sur le dépôt git privé de l&#039;auteur.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi simplement télécharger une archive du plugin (depuis le Dolistore) et l&#039;extraire. Le résultat est équivalent. Reprendre ensuite la procédure « Installation du plugin » plus haut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note documentation&#039;&#039;&#039; : ce fichier &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; est repris tel quel dans le wiki Dolibarr de la fiche du plugin. Toute mise à jour du README est donc répercutée par son auteur dans la documentation publique du plugin côté Dolibarr.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mise à jour du plugin ==&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour le plugin vers une nouvelle version :&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Télécharger la mise à jour sur le Dolistore&#039;&#039;&#039; : www.dolistore.com/. Récupérer l&#039;archive de la dernière version publiée et l&#039;extraire dans le dossier &amp;lt;code&amp;gt;custom/&amp;lt;/code&amp;gt; de votre Dolibarr (par-dessus l&#039;installation existante). Ne pas oublier de rétablir les droits :&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/dolibarr/htdocs/custom/facturxtbnetsys&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Désactiver puis réactiver le plugin&#039;&#039;&#039; dans &#039;&#039;&#039;Accueil &amp;gt; Configuration &amp;gt; Modules&#039;&#039;&#039;, onglet « Facturation/Comptabilité ». Ce cycle force Dolibarr à recharger les définitions du module (constantes, hooks, menus, droits) et garantit que les éventuelles nouveautés apportées par la mise à jour sont prises en compte. Vos données existantes ne sont pas affectées.&lt;br /&gt;
# &#039;&#039;&#039;Reparamétrer si nécessaire&#039;&#039;&#039;. Si la mise à jour introduit de nouvelles options ou si certains paramétrages ont changé de format, vérifier la page &#039;&#039;&#039;Configuration &amp;gt; Modules &amp;gt; FacturX &amp;gt; Paramétrage&#039;&#039;&#039; ainsi que la page &#039;&#039;&#039;Diagnostic&#039;&#039;&#039; (toutes les vérifications doivent rester au vert).&lt;br /&gt;
# &#039;&#039;&#039;Optionnellement&#039;&#039;&#039;, lire le fichier &amp;lt;code&amp;gt;ChangeLog.md&amp;lt;/code&amp;gt; à la racine du plugin pour prendre connaissance du détail des changements (corrections de bugs, nouvelles fonctionnalités, modifications de comportement, éventuelles actions manuelles requises).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Le fichier &amp;lt;code&amp;gt;.secret&amp;lt;/code&amp;gt; (credentials PDP) n&#039;est jamais embarqué dans l&#039;archive distribuée. Il reste donc inchangé lors d&#039;une mise à jour. Si vous extrayez l&#039;archive par-dessus l&#039;installation existante, prenez garde à ne pas écraser ce fichier.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Signalement de bugs ==&lt;br /&gt;
&lt;br /&gt;
Le plugin est maintenu par son auteur qui assure la &#039;&#039;&#039;correction des anomalies&#039;&#039;&#039; rencontrées par ses utilisateurs. Pour signaler un bug, utilisez le &#039;&#039;&#039;formulaire de contact&#039;&#039;&#039; : www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ce canal est dédié exclusivement aux corrections de bugs&#039;&#039;&#039;, c&#039;est-à-dire à des comportements du plugin qui ne sont pas conformes à ce que décrit cette documentation ou à la norme Factur-X / EN16931. Il ne s&#039;agit &#039;&#039;&#039;pas d&#039;un service d&#039;assistance utilisateur&#039;&#039;&#039; : les questions d&#039;installation Dolibarr, de paramétrage métier, de fiscalité, ou plus généralement « comment faire X dans Dolibarr » ne relèvent pas de ce canal et ne recevront pas de réponse.&lt;br /&gt;
&lt;br /&gt;
Pour qu&#039;un signalement soit exploitable, soyez &#039;&#039;&#039;précis et clair&#039;&#039;&#039; dans la description du problème. Un bon rapport de bug contient au minimum :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Versions&#039;&#039;&#039; : version de Dolibarr, version de PHP, version du plugin (visible sur la page Configuration &amp;gt; Modules), système d&#039;exploitation du serveur.&lt;br /&gt;
* &#039;&#039;&#039;Contexte précis&#039;&#039;&#039; : sur quelle facture (type : standard, acompte, avoir ; pays du client ; régime TVA), à quelle étape (régénération PDF, envoi PDP, validation Mustang…).&lt;br /&gt;
* &#039;&#039;&#039;Comportement observé&#039;&#039;&#039; : message d&#039;erreur exact (copier-coller, pas une reformulation), capture d&#039;écran si pertinent.&lt;br /&gt;
* &#039;&#039;&#039;Comportement attendu&#039;&#039;&#039; : ce qui aurait dû se produire à la place.&lt;br /&gt;
* &#039;&#039;&#039;Reproductibilité&#039;&#039;&#039; : le bug se produit-il à chaque tentative ou de manière intermittente ? sur toutes les factures ou seulement certaines ?&lt;br /&gt;
* &#039;&#039;&#039;Journaux Dolibarr&#039;&#039;&#039; : extrait du journal (&amp;lt;code&amp;gt;Accueil &amp;gt; Configuration &amp;gt; Outils &amp;gt; Journaux&amp;lt;/code&amp;gt;) filtré sur le préfixe &amp;lt;code&amp;gt;FACTURXTBNETSYS&amp;lt;/code&amp;gt; au moment de l&#039;incident.&lt;br /&gt;
&lt;br /&gt;
Les rapports vagues du type « ça ne marche pas » ou « le PDF est cassé » ne permettent pas de reproduire ni de corriger le problème et ne seront pas traités.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Clause de non responsabilité ==&lt;br /&gt;
&lt;br /&gt;
Le plugin est exclusivement destiné aux &#039;&#039;&#039;professionnels assujettis aux obligations de facturation électronique en France&#039;&#039;&#039; au sens des articles 289 bis et suivants du Code général des impôts. Il n&#039;est ni conçu, ni proposé, ni destiné à un usage par un consommateur au sens de l&#039;article liminaire du Code de la consommation, ni par un non-professionnel.&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé sous licence libre &#039;&#039;&#039;GPL-3.0-or-later&#039;&#039;&#039;, qui en garantit le droit de redistribution et d&#039;étude du code source conformément à ses termes. Sa licence d&#039;utilisation est concédée &#039;&#039;&#039;à titre onéreux&#039;&#039;&#039;, selon les conditions tarifaires en vigueur, dans le cadre d&#039;une relation &#039;&#039;&#039;strictement entre professionnels&#039;&#039;&#039;, à l&#039;exclusion de toute relation entrant dans le champ d&#039;application du Code de la consommation. L&#039;&#039;&#039;&#039;acquisition, l&#039;installation ou l&#039;utilisation du plugin valent reconnaissance par l&#039;utilisateur de sa qualité de professionnel&#039;&#039;&#039; ainsi qu&#039;acceptation sans réserve des présentes conditions.&lt;br /&gt;
&lt;br /&gt;
Le plugin est fourni &#039;&#039;&#039;« en l&#039;état »&#039;&#039;&#039;, sans aucune garantie, expresse ou implicite, de quelque nature que ce soit. Notamment, mais sans s&#039;y limiter, de qualité marchande, d&#039;adéquation à un usage particulier, de conformité réglementaire ou fiscale, ni de continuité de service.&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation du plugin se fait &#039;&#039;&#039;aux risques et périls de l&#039;utilisateur&#039;&#039;&#039;. Il appartient à ce dernier de vérifier, sous sa seule responsabilité, que les factures Factur-X produites sont conformes à ses obligations légales, fiscales et contractuelles, et qu&#039;elles sont effectivement acceptées par ses destinataires et par sa Plateforme de Dématérialisation Partenaire (PDP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ni l&#039;auteur, ni TBNETSYS, ni les contributeurs ne pourront en aucun cas être tenus responsables&#039;&#039;&#039; d&#039;un quelconque dommage direct ou indirect (notamment, mais sans s&#039;y limiter : perte de données, perte de chiffre d&#039;affaires, perte d&#039;exploitation, rejet de factures par un destinataire ou par un PDP, redressement fiscal, sanction administrative, dommage matériel, immatériel ou moral) résultant de l&#039;installation, de l&#039;utilisation, du dysfonctionnement ou de l&#039;impossibilité d&#039;utiliser le plugin, même dans l&#039;hypothèse où l&#039;auteur, TBNETSYS ou un contributeur auraient été informés de l&#039;éventualité d&#039;un tel dommage.&lt;br /&gt;
&lt;br /&gt;
Cette clause s&#039;applique dans toute la mesure permise par la loi applicable.&lt;br /&gt;
&lt;br /&gt;
Le plugin et la présente clause sont régis par le &#039;&#039;&#039;droit français&#039;&#039;&#039;. Entre professionnels, en cas de litige relatif à l&#039;installation, à l&#039;utilisation, au fonctionnement ou à l&#039;absence de fonctionnement du plugin et à défaut de résolution amiable préalable, &#039;&#039;&#039;compétence exclusive et expresse est attribuée au Tribunal judiciaire de Perpignan&#039;&#039;&#039;, y compris en cas de référé, de pluralité de défendeurs ou d&#039;appel en garantie, nonobstant toute clause contraire. Si l&#039;utilisateur devait néanmoins être qualifié de consommateur ou de non-professionnel par une juridiction, les règles impératives de protection prévues par le droit français s&#039;appliqueront, sans que cela ne remette en cause les autres stipulations de la présente clause, qui demeurent applicables dans toute la mesure permise par la loi.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Auteur et licence ==&lt;br /&gt;
&lt;br /&gt;
Auteur : &#039;&#039;&#039;Thierry Bazzanella&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contact : www.tbnetsys.fr/contact/&amp;lt;br/&amp;gt;&lt;br /&gt;
(La nuit, Marvin, le bot gérant le formulaire de contact, dort, lui aussi. Comme vous)&amp;lt;br/&amp;gt;&lt;br /&gt;
(c) 2026 TBNETSYS. All rights reserved&amp;lt;br/&amp;gt;&lt;br /&gt;
Licence : GPL-3.0-or-later&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Contributeurs et béta-testeurs ==&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;contributeurs&#039;&#039;&#039; (correction de bugs, développement de nouvelles fonctionnalités) et les &#039;&#039;&#039;béta-testeurs&#039;&#039;&#039; ayant téléchargé le plugin sont éventuellement les bienvenus. Nous pouvons en discuter par téléphone après un premier contact par email. Pour l&#039;instant, l&#039;auteur en assure la maintenance et les évolutions.&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;&#039;environnement dédié et privé sous GitLab&#039;&#039;&#039; est mis à disposition pour ce plugin : il regroupe le code source, le suivi des tickets, les branches de travail et les itérations de test. L&#039;environnement est très &#039;&#039;&#039;orienté développement et cycle de vie logiciel&#039;&#039;&#039; (branches, revues, intégration continue, jalons, releases). Il s&#039;adresse donc à des intervenants à l&#039;aise avec ces pratiques.&lt;br /&gt;
&lt;br /&gt;
La documentation du code source est intégrée à celui-ci au format PhpDoc. L&#039;outil de développement recommandé est &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; avec les extensions &#039;&#039;&#039;PHP Intelephense&#039;&#039;&#039; (éditeur : Intelephense) et &#039;&#039;&#039;PHP Debug&#039;&#039;&#039; (éditeur : Xdebug).&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;communication entre tous les intervenants se fait principalement par ticket&#039;&#039;&#039; (issues GitLab) : signalement, discussion technique, suivi d&#039;avancement, validation. Cela garantit la traçabilité des décisions et permet à chacun de retrouver le contexte d&#039;un changement à tout moment.&lt;br /&gt;
&lt;br /&gt;
Pour rejoindre l&#039;environnement contributeurs/béta-testeurs, prendre contact via le formulaire : www.tbnetsys.fr/contact/.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Prix du plugin ==&lt;br /&gt;
&lt;br /&gt;
Le plugin est diffusé en &#039;&#039;&#039;paiement unique&#039;&#039;&#039;. Une fois acquis, il vous appartient sans abonnement, sans coût récurrent et sans limite de durée d&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Période !! Prix&lt;br /&gt;
|-&lt;br /&gt;
| Tarif de lancement, jusqu&#039;au 31 août 2026 || &#039;&#039;&#039;149 € TTC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| À compter du 1er septembre 2026 || &#039;&#039;&#039;199 € TTC&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&#039;auteur n&#039;est pas assujetti à la TVA (franchise en base, art. 293 B du CGI). Les prix indiqués sont nets de taxe : aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mises à jour à vie incluses.&#039;&#039;&#039; Chaque acquéreur reçoit toutes les versions futures du plugin sans frais supplémentaire : corrections de bugs, mises en conformité réglementaire, nouvelles fonctionnalités, nouveaux profils EN16931, prise en charge des futures versions de Dolibarr. Une seule acquisition couvre l&#039;usage du plugin sur la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modèle de financement.&#039;&#039;&#039; Chaque utilisateur participe ainsi au coût de développement et au temps passé sur la maintenance, le suivi des évolutions de la norme Factur-X, l&#039;adaptation aux versions successives de Dolibarr ainsi qu&#039;à la correction des anomalies signalées (cf. § Signalement de bugs). C&#039;est ce financement collectif qui permet à l&#039;auteur de continuer à faire vivre le plugin dans la durée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aucune obligation, d&#039;aucune sorte, de l&#039;auteur ni des contributeurs.&#039;&#039;&#039; Les mises à jour à vie comme la correction des bugs sont fournies dans la mesure des moyens et de la disponibilité de l&#039;auteur et de ses éventuels contributeurs, sans engagement d&#039;aucune sorte : ni de fréquence, ni de délai, ni de périmètre, ni de résultat, ni de continuité de service. L&#039;acquisition du plugin n&#039;ouvre droit à aucune prestation contractuelle de maintenance, de support ou d&#039;évolution. Le plugin est fourni « en l&#039;état » conformément à la § Clause de non responsabilité, qui prévaut sur la présente section en cas de divergence d&#039;interprétation.&lt;br /&gt;
&lt;br /&gt;
=== Support payant (optionnel) ===&lt;br /&gt;
&lt;br /&gt;
Au-delà du plugin lui-même (paiement unique avec mises à jour à vie, sans obligation), un service d&#039;&#039;&#039;&#039;assistance technique payante&#039;&#039;&#039; peut être souscrit ponctuellement, à la demande, par les utilisateurs souhaitant un accompagnement dépassant le cadre du simple signalement de bugs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tarif horaire : 85 € TTC / heure.&#039;&#039;&#039; L&#039;auteur n&#039;étant pas assujetti à la TVA (franchise en base, art. 293 B du CGI), aucun montant de TVA ne s&#039;ajoute au prix affiché.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modalités de facturation.&#039;&#039;&#039; Facturation à la demi-heure indivisible commencée, avec un minimum facturable d&#039;une heure par intervention. Toute prestation est précédée d&#039;un &#039;&#039;&#039;devis écrit&#039;&#039;&#039; que l&#039;utilisateur doit accepter avant le démarrage de l&#039;intervention. Le devis fixe un &#039;&#039;&#039;plafond horaire ferme&#039;&#039;&#039; propre à l&#039;intervention. Aucune heure facturable au-delà de ce plafond ne peut être engagée sans &#039;&#039;&#039;acceptation écrite préalable&#039;&#039;&#039; d&#039;un avenant ou d&#039;un nouveau devis. À défaut d&#039;accord pour poursuivre, l&#039;intervention est interrompue à due concurrence du plafond initial.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Périmètre.&#039;&#039;&#039; À distance uniquement : email, formulaire de contact, partage d&#039;écran ou accès SSH ponctuel sur autorisation explicite et révocable de l&#039;utilisateur. La prestation porte exclusivement sur le plugin FacturXTbnetsys et son intégration dans Dolibarr (paramétrage, diagnostic, accompagnement à l&#039;installation, analyse de cas particuliers et lecture de journaux). Sont exclus du périmètre : l&#039;administration Dolibarr générale, le conseil fiscal, le conseil métier, l&#039;intervention sur d&#039;autres modules tiers et le développement spécifique non directement lié à une anomalie du plugin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heures ouvrées (heure de Paris).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jour !! Plage horaire&lt;br /&gt;
|-&lt;br /&gt;
| Lundi à vendredi || 9h–12h et 14h–18h&lt;br /&gt;
|-&lt;br /&gt;
| Samedi, dimanche, jours fériés légaux français || Fermé&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Délais cibles de prise en charge.&#039;&#039;&#039; Les délais ci-dessous courent à compter de la réception de la demande pendant les heures ouvrées : une demande arrivée hors plage est réputée reçue à l&#039;ouverture suivante. Ces délais sont des &#039;&#039;&#039;objectifs cibles à effort raisonnable, jamais des engagements contractuels chiffrés opposables&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Niveau de gravité !! Définition !! Objectif cible de prise en charge&lt;br /&gt;
|-&lt;br /&gt;
| Critique || Production de factures Factur-X totalement interrompue, aucun contournement disponible || 4 heures ouvrées&lt;br /&gt;
|-&lt;br /&gt;
| Majeur || Fonctionnalité importante dégradée mais contournement possible (par exemple : mode Mustang en échec mais mode horstoeko fonctionnel) || 1 jour ouvré&lt;br /&gt;
|-&lt;br /&gt;
| Mineur || Gêne ponctuelle, question, optimisation, demande de paramétrage ou d&#039;éclaircissement || 3 jours ouvrés&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Obligation de moyen, à l&#039;exclusion de toute obligation de résultat.&#039;&#039;&#039; Le support payant constitue une &#039;&#039;&#039;prestation de services&#039;&#039;&#039; au sens du droit français, exécutée selon une &#039;&#039;&#039;obligation de moyen uniquement&#039;&#039;&#039;. L&#039;auteur s&#039;engage à mettre en œuvre ses compétences professionnelles et le temps nécessaire pour tenter d&#039;apporter une réponse ou une résolution, &#039;&#039;&#039;sans garantir aucun résultat&#039;&#039;&#039; : ni la résolution effective de la difficulté signalée, ni le respect des délais cibles ci-dessus, ni l&#039;absence de récidive, ni la compatibilité avec l&#039;environnement particulier de l&#039;utilisateur. Les délais cibles ne sont assortis d&#039;&#039;&#039;&#039;aucune pénalité&#039;&#039;&#039; et n&#039;ouvrent droit à &#039;&#039;&#039;aucune indemnité, remise ou avoir&#039;&#039;&#039; en cas de dépassement. Cette obligation de moyen prévaut sur toute interprétation contraire pouvant résulter de la rédaction de la présente section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Engagement d&#039;information en cours d&#039;intervention.&#039;&#039;&#039; Si l&#039;auteur estime, en cours d&#039;analyse, que la difficulté ne pourra vraisemblablement pas être résolue dans le plafond horaire du devis accepté, ou que la cause apparente est extérieure au plugin (anomalie Dolibarr, conflit avec un autre module tiers, configuration système hors périmètre, environnement non reproductible), il en informe l&#039;utilisateur &#039;&#039;&#039;avant de poursuivre la facturation au-delà du temps déjà engagé&#039;&#039;&#039;. La poursuite de l&#039;intervention requiert alors l&#039;acceptation écrite de l&#039;utilisateur. Cet engagement d&#039;information demeure une modalité d&#039;exécution de l&#039;obligation de moyen. Il n&#039;emporte aucune obligation de résultat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exclusivement et uniquement sous forme de services.&#039;&#039;&#039; La prestation ne comprend ni produit logiciel additionnel, ni licence supplémentaire, ni garantie, ni assurance, ni cession de droits, ni livrable autre que le &#039;&#039;&#039;compte-rendu d&#039;intervention&#039;&#039;&#039;. Ce compte-rendu mentionne au minimum : la nature des vérifications effectuées, les éléments diagnostiqués, les actions menées, les points restant ouverts ainsi que les recommandations à destination de l&#039;utilisateur. Il est remis quel que soit le résultat constaté. Le règlement rémunère exclusivement le &#039;&#039;&#039;temps de travail effectivement passé&#039;&#039;&#039; en assistance, indépendamment du résultat constaté à l&#039;issue de l&#039;intervention.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Procédure d&#039;accès au support payant.&#039;&#039;&#039; Le support payant n&#039;est pas accessible directement sur facture spontanée. Il suppose au préalable :&lt;br /&gt;
&lt;br /&gt;
# Un &#039;&#039;&#039;premier contact via le formulaire&#039;&#039;&#039; : www.tbnetsys.fr/contact/, en présentant le contexte de la demande (instance Dolibarr, version du plugin, nature du besoin d&#039;accompagnement).&lt;br /&gt;
# La &#039;&#039;&#039;signature d&#039;un contrat de support&#039;&#039;&#039; entre l&#039;utilisateur (en qualité de professionnel) et TBNETSYS, qui formalise le tarif horaire, les modalités de facturation, le périmètre, les délais cibles, l&#039;obligation de moyen, l&#039;exclusion de l&#039;obligation de résultat ainsi que les autres conditions rappelées dans la présente section.&lt;br /&gt;
# L&#039;&#039;&#039;&#039;acceptation écrite d&#039;un devis&#039;&#039;&#039; propre à chaque intervention, dans le cadre du contrat ainsi signé.&lt;br /&gt;
&lt;br /&gt;
Aucune intervention payante n&#039;est démarrée tant que ces trois étapes ne sont pas complétées. Sans contrat de support signé, seul le canal gratuit de signalement de bugs (cf. § Signalement de bugs) reste accessible, dans les limites qui y sont décrites.&lt;br /&gt;
&lt;br /&gt;
La présente offre de support payant ne modifie pas la § Clause de non responsabilité, qui prévaut intégralement sur tout point non explicitement couvert ici.&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66111</id>
		<title>Module Factur-X TBNETSYS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66111"/>
		<updated>2026-05-10T15:16:28Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: ajout capture écran&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dispatch pdp.png|alt=Dispatch PDP|thumb|Dispatch PDP]]&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Dispatch_pdp.png&amp;diff=66110</id>
		<title>File:Dispatch pdp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Dispatch_pdp.png&amp;diff=66110"/>
		<updated>2026-05-10T15:15:17Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;module facturxtbnetsys, page Dispatch_PDP&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66109</id>
		<title>Module Factur-X TBNETSYS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Factur-X_TBNETSYS&amp;diff=66109"/>
		<updated>2026-05-10T15:10:19Z</updated>

		<summary type="html">&lt;p&gt;Tbnetsys: Création de la page du module facturxtbnetsys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tbnetsys</name></author>
	</entry>
</feed>