09. FACTURATION | PAIEMENT 9.1 Introduction L’onglet Facturation | Paiement regroupe les modules suivants : Factures et avoirs — gestion des factures et avoirs clients, gestion des factures fournisseurs Dépenses spéciales — taxes, charges fiscales ou sociales, dividendes Salaires — enregistrement et suivi du paiement des salaires des employés Emprunt — gestion des emprunts Dons — gestion des dons Banques et caisses — gestion des comptes financiers (comptes bancaires, postaux ou caisses liquide) Prélèvements — gestion des paiements par prélèvements et génération du fichier de virements Marges — gestion des marges Comptabilité — comptabilité simplifiée ou en partie double Échéancier Figure 9.1 – Modules du panneau Facturation | Paiement Ces modules sont livrés en standard avec la distribution de Dolibarr et sont déjà installés. Configuration des Factures et avoirs Vous trouverez le module Factures et avoirs dans la famille Modules financiers (Compta/trésorerie). Onglet Divers — Modèles de numérotation Trois modèles sont disponibles : Mercure — numéro personnalisable selon un masque. Les masques peuvent être définis indépendamment pour les factures standards, de remplacement, les avoirs et les acomptes. Terre — numéros de la forme FAyymm-nnnn (factures et remplacement), AVyymm-nnnn (avoirs), ACyymm-nnnn (acomptes) Mars — numéros de la forme FAyymm-nnnn (factures), FRyymm-nnnn (remplacement), ACyymm-nnnn (acomptes), AVyymm-nnnn (avoirs) Balises disponibles dans le masque Mercure (identiques aux autres modules) : Balise Description {000000} Compteur incrémenté à chaque facture {000000+000} Compteur avec offset — ex. FC{000000+558886} pour démarrer à FC558887 {000000@x} Compteur remis à zéro le xème mois (x=0 = fiscal, x=99 = mensuel) {dd} / {mm} / {yy} / {yyyy} Jour, mois, année {cccc} / {cccc000} Code client / Code client + compteur propre {tttt} Code type entreprise Exemples pour la 99ème facture du tiers LaCompanie faite le 31/03/2021 : ABC{yy}{mm}-{000000} → ABC2103-000099 {0000+100}-XXX-{dd}-YYY → 0199-XXX-31-YYY Modèles de documents Activez le modèle souhaité (bouton au vert). Si le module UltimatePDF est installé, activez ultimate_invoice (modèle complet avec colonnes Remise, Prix unitaire remisé…). Avertissement Si vous utilisez UltimatePDF et souhaitez profiter de toutes ses fonctionnalités, créez le code LCR dans Configuration des dictionnaires > Modes de paiement s’il n’existe pas, et activez-le. Mode de paiement suggéré par défaut Vous pouvez proposer le paiement par virement (en sélectionnant votre compte bancaire, préalablement renseigné) ou par chèque. Si rien n’est renseigné ici, vos coordonnées bancaires n’apparaîtront sur aucun document. Autres options Forcer la date de facture à la date de validation Mention complémentaire (ex. En cas de non paiement à l’échéance, le montant sera majoré d’intérêts au taux de 1,50% par mois de retard. Pas d’escompte en cas de règlement anticipé.) Filigrane sur les brouillons de factures Attributs supplémentaires (factures clients) Même principe que pour les modules précédents (22 types disponibles, voir chapitre Tiers). Exemple d’utilisation avancée : un attribut Liste issue d’une table nommé « Type entreprise » (code typent, table c_typent) ajoute une liste déroulante des types d’entreprises sur la fiche facture. Pour récupérer cette valeur dans un modèle PDF : $test = $object->array_options['options_typent']; $pdf->MultiCell(100, 4, $test, '', 'R'); Attributs supplémentaires (lignes) Même principe pour les lignes de factures. Un attribut Liste de sélection nommé « Au choix » (code choix) ajoutera une ligne de sélection sous chaque ligne de la facture. Configuration des Factures fournisseurs Onglet Facture fournisseur — Modèles de numérotation Cactus — numéro de la forme SIyymm-nnnn (ex. SI1301-0001) Tulip — numéro personnalisable selon un masque (mêmes balises) Modèles de documents Si le module UltimatePDF est installé, activez ultimate_supplierinvoice. Autres options : mention complémentaire sur les factures. Attributs supplémentaires : même principe. TVA standard et règles d’arrondi Deux méthodes de calcul de TVA coexistent : Méthode 1 (défaut Dolibarr) — arrondir la TVA ligne par ligne, puis sommer : Ligne HT TVA 10% exacte TVA arrondie Total avec TVA Alpha 1,24 0,124 0,12 1,36 Beta 1,24 0,124 0,12 1,36 Total 2,48 — 0,24 2,72 Méthode 2 — sommer la TVA de toutes les lignes, puis arrondir le total : Calcul Résultat Total HT 2,48 TVA totale : (1,24 + 1,24) × 10% = 0,248 → arrondi 0,25 Total TTC 2,73 La différence (0,01 ici) est inhérente aux arrondis et non un bug. La méthode 1 est recommandée car elle évite les incohérences de présentation. Pour activer la méthode 2 (non recommandé sauf obligation légale) : constante MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND = 1 dans Accueil > Configuration > Divers (Dolibarr v3.5+). Option d’exigibilité de TVA Deux régimes sont disponibles : Standard — TVA sur encaissement : sur livraison pour les biens, sur paiement pour les services. Option services sur Débit — TVA sur débit : sur livraison pour les biens, sur facturation (débit) pour les services. Log inaltérable (Loi de finances 2016 / NF525) Dolibarr est concerné par la loi si vous êtes assujetti à la TVA et utilisez le logiciel pour enregistrer des encaissements de particuliers (B2C ou mixte B2B/B2C). Vous n’êtes pas concerné si : - Vous n’encaissez pas d’argent - Vous êtes une association/organisme non assujetti à la TVA - Tous vos encaissements passent par intermédiation directe d’un établissement de crédit - Vous ne facturez que des professionnels (B2B uniquement) Si vous êtes concerné, activez le module Log inaltérable (BlockedLog) fourni avec Dolibarr v11+. Une attestation de conformité devra ensuite être obtenue auprès d’un tiers. Configuration du module Marges Vous trouverez le module Marges dans la famille Modules financiers (Compta/trésorerie). Figure 9.2 – Configuration du module Marges — choix du type de marge Choisissez le type de marge gérée. Définitions : Marge brute = Prix de vente HT – Prix d’achat HT (ou coût d’achat incluant les frais accessoires) Marge nette = Marge brute – frais de distribution (loyers, personnel, publicité…) Taux de marge = Marge commerciale / Coût d’achat × 100 Taux de marque = Marge commerciale / Prix de vente HT × 100 9.2 Factures clients Types de factures Lors de la création d’une facture (menu Factures clients > Nouvelle facture, ou depuis l’onglet Client d’une fiche tiers via le bouton Créer facture ou avoir), vous avez le choix entre : Figure 9.3 – Sélection du type de facture Facture standard — facture traditionnelle (facture de doit). Aucun prérequis. Facture d’acompte — fait suite à la réception d’un acompte, quand il n’est pas encore possible de saisir le paiement sur une facture définitive. Facture de situation — facturation progressive par pourcentage d’avancement (fonctionnalité activée dans l’onglet Facture de situation d’UltimatePDF, ou via la constante INVOICE_USE_SITUATION). Doit être créée depuis la fiche du tiers ou depuis une proposition/commande, pas depuis Factures > Nouvelle facture. Facture modèle — pour créer un modèle, créez d’abord une facture standard brouillon et convertissez-la en modèle. Figure 9.4 – Création d’une facture modèle Vous pouvez associer une tâche planifiée à un modèle pour les factures récurrentes. Avertissement Pour les factures récurrentes, le module Travaux planifiés doit être activé, sinon une alerte s’affiche lors de l’association. Figure 9.5 – Alerte module Travaux planifiés non activé Figure 9.6 – Configuration de la clé de sécurité pour les travaux planifiés Dans la configuration du module, activez la Clé de sécurité pour l’URL de lancement des travaux programmés. Pour les factures récurrentes, allez dans Accueil > Outils d’administration > Travaux planifiés pour configurer la tâche. Figure 9.7 – Page de configuration des travaux planifiés Figure 9.8 – Lancement manuel d’un travail planifié Pour automatiser sur un serveur Unix (exécution toutes les 5 minutes) : */5 * * * * /path/scripts/cron/cron_run_jobs.php webmaster > /documents/cron_run_jobs.php Facture de remplacement — permet de refaire une facture sur laquelle il y a des erreurs et sur laquelle aucun paiement n’a été saisi. Une seule facture de remplacement (R) par facture de doit (F). Quand R est validée, F passe automatiquement au statut abandonné et le cycle de vie continue sur R. Créer une facture client Dans Facturation | Paiement > Factures clients > Nouvelle facture. Choisissez le client, la date, les conditions de règlement. Tant que la facture n’est pas validée, vous pouvez corriger : Les lignes (supprimer, modifier TVA/prix HT/TTC/quantité via l’icône Modifier) Les champs société (via la constante FACTURE_CHANGE_THIRDPARTY = 1) Date, date limite règlement, conditions règlement, mode de règlement, projet (bouton Modifier) Supprimer une facture client Un numéro de référence est attribué de façon irréversible. Supprimer une facture crée un trou dans le suivi. Important Préférez une facture de remplacement (si aucun paiement) ou une facture d’avoir (si déjà validée ou payée) plutôt que la suppression directe. Facture d’acompte La facture d’acompte fait suite à la réception d’un acompte. Vous pouvez en créer autant que désiré. Elle sera ensuite convertie en réduction sur la facture définitive. Processus : Créez une facture d’acompte (Type = Facture d’acompte) Validez-la Cliquez sur Émettre règlement et renseignez le montant de l’acompte versé Cliquez sur Payer Note Le bouton Convertir en réduction future n’apparaît que si le montant restant à payer est ramené à 0. Cliquez sur Convertir en réduction future — le montant apparaît en ligne de déduction sur la facture définitive Figure 9.9 – Fiche facture d’acompte L’acompte se présente classiquement dans la facture définitive sous la forme d’une ligne avec un montant négatif : Figure 9.10 – Acompte en ligne négative (haut de la facture définitive) Figure 9.11 – Acompte en bas de la facture définitive Le module UltimatePDF permet une présentation alternative via la constante FACTURE_DEPOSITS_ARE_JUST_PAYMENTS (l’acompte est traité comme un paiement, pas comme une ligne négative) : Figure 9.12 – Présentation alternative de l’acompte avec UltimatePDF Factures d’avoir On crée un avoir sur une facture de doit. Plusieurs avoirs sont possibles sur une même facture. L’avoir est transformé en réduction pour réduire le paiement d’une autre facture en attente. Figure 9.13 – Création d’un avoir sur une facture Cliquez sur Convertir en réduction future pour utiliser ce montant. Figure 9.14 – Utiliser la réduction sur une nouvelle facture Avertissement La facture à corriger doit être validée pour pouvoir utiliser la remise. Cliquez sur Appliquer dans la section Remises de la facture à corriger : Figure 9.15 – Application de la réduction (section Remises) Puis passez la facture à Passer payée : Figure 9.16 – Facture passée à payée après remise Réduire le montant total / solde à payer Réduction — réduction relative (pourcentage) du prix de vente d’une ou plusieurs lignes, définie ligne par ligne (0% à 100%, le 100% affichant la mention offert). Remise — réduction du prix total de la facture. Deux types : Remise associée à un versement déjà perçu — les avoirs et acomptes convertis en réduction future s’affichent dans la section Remises de la facture et sont mentionnés en bas du document comme versements anticipés déduits du total. Remise non associée à un versement — définie sur la fiche client (onglet Client, montant fixe ou pourcentage). Ces remises apparaissent comme des lignes négatives dans le détail de la facture et réduisent le montant total. Options cachées Constantes à définir à 1 dans Accueil > Configuration > Divers : Constante Effet MAIN_DEPOSIT_MULTI_TVA Dans la facture d’acompte, crée une ligne par taux de TVA depuis le document d’origine (v6.0) FACTURE_SHOW_SEND_REMINDER Affiche le lien « Envoyer rappel par mail » (ancienne fonction) INVOICE_CAN_ALWAYS_BE_EDITED Permet de modifier les factures même si un paiement a été lancé INVOICE_CAN_ALWAYS_BE_REMOVED Permet de toujours supprimer les factures (même si ce n’est pas la dernière) INVOICE_CAN_NEVER_BE_REMOVED Interdit la suppression des factures (sauf brouillons) INVOICE_POSITIVE_CREDIT_NOTE Les montants sur les avoirs sont affichés en positif FACTURE_CHANGE_THIRDPARTY Permet de changer le tiers dans les factures brouillon FACTURE_USE_PROFORMAT Active le type de factures PROFORMAT FACTURE_DEPOSITS_ARE_JUST_PAYMENTS Traite les acomptes comme des paiements (pas comme réduction du montant) FACTURE_SENDBYEMAIL_FOR_ALL_STATUS Permet d’envoyer une facture par email même au statut brouillon MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT Désactive la TVA sur les documents (pour les associations, fonctionne avec le modèle crabe) INVOICE_CREDIT_NOTE_STANDALONE On peut créer une note de crédit sans facture (v3.9) INVOICE_DISABLE_REPLACEMENT Désactive les factures de remplacement INVOICE_DISABLE_CREDIT_NOTE Désactive les notes de crédit WORKFLOW_BILL_ON_SHIPMENT Adapte l’étiquette du bouton pour la facturation sur expéditions MAIN_DEFAULT_PAYMENT_TERM_ID Définit le délai de paiement par défaut au niveau entreprise DOC_SHOW_FIRST_SALES_REP Affiche le nom du commercial sur les PDF INVOICE_DISABLE_DEPOSIT Désactive les factures de dépôt Constante Effet INVOICE_ALLOW_EXTERNAL_DOWNLOAD Génère automatiquement une clé de partage pour téléchargement externe (v7.0+) INVOICE_POINTOFTAX_DATE Ajoute la date d’imposition sur les factures (v4.0+) FACTURE_ENABLE_NEGATIVE_LINES Permet d’ajouter des lignes négatives à une facture (v8.0.2+) INVOICE_USE_DEFAULT_DOCUMENT Sélection dynamique du modèle de facture selon le type (v9.0+) FACTURE_REUSE_NOTES_ON_CREATE_FROM Réutilise les notes publiques/privées de l’objet précédent (propale, commande…) lors de la création INVOICE_USE_SITUATION Active la fonctionnalité « facture de situation » MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND Active la méthode 2 d’arrondi TVA (arrondi du total, non recommandé) Clés de substitution disponibles pour les notes des factures récurrentes : __INVOICE_MONTH__, __INVOICE_PREVIOUS_MONTH__, etc. Facture de situation La facture de situation permet une facturation progressive par tranches de pourcentage. Avertissement Créez la facture de situation depuis la fiche du tiers (onglet Client) ou depuis une proposition/commande, et non depuis le menu Factures > Nouvelle facture. Activez la constante INVOICE_USE_SITUATION = 1. Renseignez le pourcentage de progression ligne par ligne (ou via le bouton Modifier toutes les lignes). Par exemple, pour la première facture à 40% : Figure 9.17 – Facture de situation à 40% du montant initial Une fois cette facture de situation réglée, le bouton Créer prochaine situation apparaît. Figure 9.18 – Créer la prochaine facture de situation Le brouillon créé propose le type facture suivant situation avec le numéro de la facture précédente. Note Pour ajouter 40% supplémentaires par rapport à la facture précédente, renseignez 80% (40% + 40%) dans le champ progression — la valeur est cumulative, pas incrémentale. Pour la troisième et dernière facture de situation, ajoutez 20% pour atteindre 100%. Scripts Script 1 — Fusion de factures PDF Génère un PDF unique à partir de l’ensemble des factures PDF d’une période. Le script rebuild_merge_pdf.php se trouve dans /scripts/invoices/. chmod +x rebuild_merge_pdf.php ./rebuild_merge_pdf.php filter=payments 20211001 20220930 lang=fr_FR Pour choisir un modèle de facture en sortie (ex. ultimate_invoice), éditez le script pour y intégrer le nom du modèle. Figure 9.19 – Commande du script de fusion PDF Le PDF généré est disponible dans /documents/facture/temp/ sous le nom mergedpdf_payments_20211001_20220930.pdf. Figure 9.20 – Résultat du script de fusion PDF Script 2 — Email aux commerciaux pour factures impayées Envoie un email à tous les commerciaux associés à un tiers client ayant au moins une facture impayée. Le script email_unpaid_invoices_to_representatives.php se trouve dans /scripts/invoices/. chmod +x email_unpaid_invoices_to_representatives.php ./email_unpaid_invoices_to_representatives.php confirm Figure 9.21 – Commande du script email commerciaux Figure 9.22 – Exemple d’email reçu par un commercial Figure 9.23 – Résultat de l’exécution du script Figure 9.24 – Sortie du script 9.3 Factures fournisseurs Créer une facture fournisseur Dans Factures fournisseurs > Nouvelle facture. Choisissez un fournisseur, renseignez une référence fournisseur, un libellé (optionnel), une date de facturation et d’échéance, éventuellement une note publique. Cliquez sur Créer brouillon. Intégrez les produits ou services (ceux déjà définis ou à saisir directement). Pour le calcul de la TVA, choisissez le mode 1 (arrondi ligne par ligne) ou mode 2 (arrondi du total) selon la méthode utilisée par votre fournisseur. Avertissement La validation de la facture est irréversible. Un numéro lui est attribué selon le modèle de numérotation configuré. Modifier une facture fournisseur Possible uniquement sur brouillon. Vous pouvez agir sur les lignes (supprimer/modifier) et corriger les champs référence fournisseur, libellé, dates via le bouton Modifier. Supprimer une facture fournisseur Possible depuis le bouton Supprimer au bas de la fiche. Un trou de numérotation s’ensuivra. Saisir les paiements Sélectionnez la facture et cliquez sur Émettre règlement. Renseignez la date, le mode de règlement, éventuellement le numéro de chèque/virement, le compte bancaire, et le montant réglé en fin de ligne. Enregistrez. Classer la facture Après paiement, la facture passe à l’état Commencée / Règlement commencé. Pour la passer à Payée : cliquez sur Classer Payée. Note Si vous avez coché l’option Classer automatiquement à « Payé » les factures entièrement payées, ce classement est fait automatiquement. Sans cela, une facture dont le règlement est émis mais non classée reste visible dans la liste des impayées. Cas concret — Facture fournisseur avec avoir Question : Si je reçois une facture fournisseur et un avoir pour erreur sur la facture, comment faire ? Réponse : Saisissez la facture fournisseur (facture de doit), puis saisissez une facture fournisseur normale avec un montant négatif (l’avoir). Émettez un règlement positif sur la facture et un règlement négatif sur l’avoir. Classez les deux comme Payées. Un paiement au débit et un au crédit apparaîtront dans les écritures bancaires. 9.4 Commandes à facturer Gérer une facture depuis une commande Dans Commandes à facturer, seules les commandes clôturées apparaissent. En cliquant sur la référence, vous ouvrez la fiche commande et pouvez : Cloner la commande (vous pouvez choisir un tiers différent via FACTURE_CHANGE_THIRDPARTY = 1) Classer facturée Créer la facture (vérifiez qu’une facture du montant total n’est pas déjà associée, car plusieurs facturations sont possibles) Expédier le produit — accède à l’onglet Expéditions/Réceptions pour créer une nouvelle expédition Modifier une facture commande Une fois la facture validée, cliquez sur Modifier pour corriger ou supprimer les lignes et rectifier les champs date, conditions de règlement, mode de règlement, projet. Re-validez ensuite. Supprimer une facture commande Vous ne pouvez pas supprimer une facture rattachée à une commande. Utilisez Classer abandonnée à la place. Cas concret — Facturer plusieurs commandes en une fois Question : Comment facturer en une fois plusieurs commandes pour un même client ? Réponse : Allez sur la fiche du client, onglet Client > toutes les commandes. Cliquez sur le bouton checkbox sous la loupe pour tout sélectionner. Choisissez Facturer commandes dans la liste déroulante d’actions. Le système propose de créer une facture par tiers (sinon une par commande). Validez ou non les factures. Options cachées Constante Effet FACTURE_CHANGE_THIRDPARTY Permet de changer le tiers lors du clonage d’une commande 9.5 Taxes et charges Créer une charge sociale Figure 9.25 – Création et règlement d’une charge sociale Dans Taxes et dividendes > Nouvelle charge. Renseignez le libellé, le type (liste modifiable dans Dictionnaires > Types de charges sociales) et le montant. Cliquez sur Ajouter. Le lien Règlements vous renvoie vers la page de règlement des charges. Pour émettre un règlement : ouvrez la fiche de la charge, cliquez sur Émettre règlement, renseignez la date, le mode de règlement, le compte à débiter et le montant. Cliquez sur Enregistrer puis Classer ‘Payée’. Figure 9.26 – Confirmation et classement d’une charge comme payée Modifier une charge sociale Ouvrez la fiche, cliquez sur Modifier. Seuls les champs Libellé, Date fin période et Date échéance sont accessibles. Supprimer une charge sociale Ouvrez la fiche, cliquez sur Supprimer. Une confirmation est demandée. La suppression est définitive. 9.6 Rapports Résultat/exercice par tiers Rapports > Par tiers — affiche le bilan des recettes et dépenses, détail par tiers, selon le mode comptable configuré (Créances-Dettes ou Recettes-Dépenses). Choisissez la période d’analyse et cliquez sur Rafraîchir. Chiffre d’affaires par tiers Rapports > Chiffre d’affaires > Par tiers — les tiers apparaissent avec leur CA et le pourcentage correspondant. La dernière colonne propose des icônes vers les statistiques propales, commandes et factures du tiers. Chiffre d’affaires par utilisateur Rapports > Chiffre d’affaires > Par utilisateur — même principe, par utilisateur/commercial. Journal des ventes Rapports > Journal des ventes — enregistre tous les mouvements du compte 411xxx (Clients). Chaque pièce comptable est ventilée sur trois lignes : compte 411xxx (client), compte 445xxx (TVA), compte 700xxx (vente produit). Journal des achats Rapports > Journal des achats — enregistre tous les mouvements du compte 401xxx (Fournisseurs). Ventilation sur trois lignes : compte 401xxx (fournisseur), compte 445xxx (TVA), compte 600xxx (achat produit). 9.7 Marges Gérer les prix d’achat / coûts de revient Sur les fiches produits et services, renseignez les prix d’achat fournisseurs (plusieurs possibles). Ils seront proposés en liste déroulante sur les lignes de saisie des propales, commandes clients et factures clients. Sur la fiche fournisseur d’un produit, le champ Charges permet d’ajouter un coût propre au prix d’achat (frais de transport, manutention…). Le total constitue le coût de revient du produit. Si le paramétrage du module est en marge nette, tous les calculs utilisent ce coût de revient (et non le seul prix fournisseur). Pour un prix fournisseur défini sur un lot minimum (ex. 100 DVD), saisissez également la charge correspondante : elle sera répartie en coût unitaire sur chaque élément du lot. Gérer vos commerciaux Pour suivre les marges par commercial, chaque commercial doit avoir son propre compte utilisateur interne. Sur l’onglet Fiche de chaque client, rattachez un seul commercial principal. Avertissement Le module Marges ne gère pas le cas de plusieurs commerciaux par tiers — les marges seraient multipliées par le nombre de commerciaux. Attribuez un seul commercial principal par tiers, et gérez les cas particuliers via l’onglet Contacts/Adresse de chaque document. Saisie d’un document Sur les lignes de saisie d’une propale/commande/facture, choisissez ou saisissez le prix d’achat : Ligne libre : saisissez le prix de vente et le prix d’achat (ou coût de revient) Produit de la base : choisissez un prix fournisseur existant ou saisissez un prix libre Un tableau récapitulatif des marges (produits / services / total) est affiché sur chaque fiche document. Note Si le prix d’achat n’est pas renseigné, la prise en compte de la ligne dans le calcul dépend du paramètre défini dans la configuration du module Marges. Cas des remises Une remise faite sur une ligne est prise en compte pour le calcul de la marge. Les remises globales sont prises en compte selon le paramétrage du module. 9.8 Facturation électronique Important Obligation réglementaire imminente À partir du 1er septembre 2026, toutes les entreprises françaises assujetties à la TVA doivent être capables de recevoir des factures électroniques. Les grandes entreprises et ETI doivent également émettre électroniquement dès cette date. Les PME et micro-entreprises suivront le 1er septembre 2027. La facturation électronique ne concerne pas que les marchés publics (Chorus Pro) : elle s’étend à toutes les transactions B2B (entre entreprises). Contexte réglementaire La réforme française de la facturation électronique B2B est issue de l’ordonnance n°2021-1190 du 15 septembre 2021. Elle repose sur un écosystème à trois niveaux : PPF (Portail Public de Facturation) — plateforme publique gérée par l’État, accessible à tous gratuitement, qui joue le rôle d’annuaire central et de passerelle. PA (Partenaire d’Accès, anciennement PDP — Plateforme de Dématérialisation Partenaire) — plateforme privée agréée par l’administration fiscale. Les entreprises choisissent librement leur PA. Le PA transmet les factures au destinataire (via le PPF ou directement si les deux parties utilisent le même PA). Annuaire — chaque entreprise déclare son identifiant de routage (basé sur le SIREN). L’annuaire permet de savoir vers quel PA/PPF envoyer chaque facture. Calendrier d’application : Date Obligation 1er septembre 2026 Réception obligatoire pour toutes les entreprises 1er septembre 2026 Émission obligatoire pour les grandes entreprises et ETI 1er septembre 2027 Émission obligatoire pour les PME et micro-entreprises Formats acceptés : Format Description Factur-X PDF enrichi d’un fichier XML embarqué (lisible par un humain, traitable par une machine) CII (Cross Industry Invoice) XML pur, conforme à la norme EN 16931 — recommandé pour les échanges automatisés UBL Autre format XML interopérable Pourquoi choisir CII plutôt que Factur-X ? Factur-X est pratique car le PDF reste lisible. CII est plus adapté si vous traitez un grand volume de factures et souhaitez une intégration 100% automatisée sans génération de PDF. Le module PDPConnectFR propose les deux — CII est recommandé par défaut. Le module PDPConnectFR Dolibarr intègre la facturation électronique via le module communautaire PDPConnectFR, disponible gratuitement sur GitHub (Dolibarr/dolibarr-community-modules). Il assure la synchronisation bidirectionnelle entre Dolibarr et le PA de votre choix. Ce que fait le module : Génère les fichiers XML/Factur-X depuis vos factures Dolibarr Transmet les factures clients vers votre PA Reçoit et importe les factures fournisseurs depuis votre PA Suit le cycle de vie des statuts (déposé → émis → reçu → approuvé) Valide les données tiers via les API gouvernementales (SIREN, TVA) Journalise tous les appels API pour le diagnostic Installation : cd htdocs/custom git clone git@github.com:Dolibarr/dolibarr-community-modules.git mkdir pdpconnectfr cp -pr dolibarr-community-modules/pdpconnectfr/* pdpconnectfr rm -fr dolibarr-community-modules Une fois les fichiers copiés, activez le module dans Configuration > Modules/Applications, section Autre : Figure 9.27 – Activation du module PDPConnectFR Configuration du point d’accès Accédez à la configuration via Configuration > Modules/Applications > PDPConnectFR (roue dentée) ou directement via le menu Facturation > Gestion des factures électroniques. Figure 9.28 – Configuration du module — onglet Paramètres du point d’accès La configuration se déroule en trois étapes : choisir votre PA, créer un compte sur sa plateforme, puis saisir les credentials dans Dolibarr. Étape 1 — Choisir votre Partenaire d’Accès (PA) Dans le champ Sélectionnez votre plateforme Point d’accès à la facturation électronique (PA), choisissez votre PA. Dolibarr v24 propose SuperPDP parmi les plateformes compatibles. Note SuperPDP (superpdp.tech) est un PA français agréé, qui propose un mode bac à sable (sandbox) gratuit pour les tests et un abonnement production. D’autres PA compatibles peuvent apparaître dans la liste selon les mises à jour du module. Étape 2 — Créer un compte sur SuperPDP Rendez-vous sur superpdp.tech et créez votre compte. Au premier accès, choisissez votre type de compte : Figure 9.29 – SuperPDP — choix du type de compte Type Usage Représentant légal (Production) Vous êtes le représentant légal de l’entreprise — vérification KYB requise, inscrit dans l’annuaire, factures à valeur légale Développeur (Bac à sable) Tests avec données fictives — aucune vérification, deux entreprises test préconfigurées Pour vos premiers tests, choisissez Développeur / Bac à sable. Une fois connecté, créez une nouvelle application pour lier votre Dolibarr à SuperPDP : Figure 9.30 – SuperPDP — type d’application (Bac à sable ou Production) Sélectionnez Bac à sable, puis renseignez le formulaire : Figure 9.31 – SuperPDP — création d’une application Entreprise : sélectionnez votre entreprise (en bac à sable, “Burger Queen” ou “Tricatel” sont préconfigurées) URLs de redirection : copiez l’URL indiquée dans votre page de configuration Dolibarr (ex. https://localhost:8082/custom/pdpconnectfr/admin/setup.php) Type d’application : choisissez Confidentielle (le secret est stocké côté serveur) Une fois l’application créée, SuperPDP affiche le Client ID et le Client Secret : Figure 9.32 – SuperPDP — credentials de l’application (client_secret affiché une seule fois) Avertissement Le client_secret n’est affiché qu’une seule fois lors de la création. Copiez-le immédiatement dans un endroit sûr. Si vous le perdez, vous devrez renouveler le secret via le bouton “Renouveler le secret” dans SuperPDP. Étape 3 — Saisir les credentials dans Dolibarr Revenez dans la configuration Dolibarr et renseignez : Figure 9.33 – Configuration Dolibarr — saisie du Client ID et Client Secret Champ Valeur Votre identifiant de facturation Votre SIREN (9 chiffres) électronique d’entreprise Client ID L’identifiant de l’application SuperPDP Client Secret Le secret de l’application SuperPDP Cliquez sur ENREGISTRER, puis sur Se connecter (Générer le jeton d’accès) : Figure 9.34 – Configuration Dolibarr — jeton d’accès généré Le jeton d’accès OAuth2 est généré et stocké. Utilisez ensuite Test de connexion (Healthcheck) pour vérifier que la liaison est opérationnelle : Figure 9.35 – Connexion réussie avec SuperPDP La mention “Connexion réussie : le point d’accès SUPERPDP est joignable.” confirme que tout est en ordre. Onglet Options L’onglet Options contrôle le comportement du module pour l’émission et la réception : Figure 9.36 – Onglet Options — synchronisation et mentions légales obligatoires Synchronisation Dolibarr → PA/PDP (émission) Option Description Validation des données tiers via API Vérifie le SIREN et la TVA du client auprès des registres officiels gouvernementales avant envoi Bloquer si pas d’identifiant de Interdit l’envoi si le tiers n’a pas de routing ID défini facturation électronique Protocole d’échange CII (recommandé) ou Factur-X Génération automatique à la validation La facture électronique est générée dès que la facture Dolibarr est validée Annuler si génération automatique Bloque la validation de la facture en cas d’erreur de génération échoue Mentions légales obligatoires Ces trois mentions doivent obligatoirement figurer sur les factures électroniques B2B françaises : Code Mention Exemple PMT Frais de recouvrement Indemnité forfaitaire de recouvrement : 40 € PMD Pénalités de retard Pénalités de retard : 3 fois le taux légal AAB Escompte pour paiement anticipé Pas d'escompte pour paiement anticipé Synchronisation PA/PDP → Dolibarr (réception) Option Description Génération automatique des produits Crée le produit dans Dolibarr s’il n’existe pas lors de l’import manquants Génération automatique des tiers Crée le fournisseur dans Dolibarr s’il n’existe pas lors de l’import manquants Compléter les informations manquantes Met à jour la fiche tiers avec les données reçues dans la facture des tiers Limite d’activation de la Limite le nombre de flux traités par cycle synchronisation des flux Nombre de flux traités par défaut par Par défaut : 100 appel Délai de recouvrement de Délai minimum entre deux synchronisations automatiques synchronisation (heures) Utilisation Une fois configuré, le module ajoute un sous-menu dédié dans Facturation : Figure 9.37 – Sous-menu Gestion des factures électroniques dans Facturation Le sous-menu contient : Gestion des factures électroniques — tableau de bord (page d’accueil) Synchronisation des factures électroniques — lancement manuel et suivi des flux entrants Journaux d’appels et de synchronisation — diagnostic des échanges API Émettre une facture client Sur chaque fiche facture client validée, un bloc Gestion des factures électroniques apparaît en bas de page. Il permet de : Générer la facture électronique — crée le fichier XML/Factur-X et l’attache à la facture Transmettre — envoie le fichier au PA Si l’option Génération automatique à la validation est activée, ces deux étapes se déclenchent automatiquement dès la validation de la facture. Cycle de vie côté émission : Code statut Libellé Non générée Généré Fichier créé, prêt à envoyer 200 Déposé auprès du PA 201 Émis (transmis au destinataire) 202 Reçu par le destinataire 204 Pris en charge 205 Approuvé 210 Refusé Avertissement Une facture transmise (statut � 200) ne peut plus être modifiée dans Dolibarr. Les champs verrouillés incluent : référence, date, échéance, montants, client, mode et condition de règlement. Pour corriger une erreur, créez un avoir référençant la facture originale, puis émettez une nouvelle facture corrigée. Recevoir des factures fournisseurs Vos fournisseurs transmettent leurs factures via leur propre PA. SuperPDP les reçoit et les met à disposition. La synchronisation peut être : Manuelle : Facturation > Synchronisation des factures électroniques > bouton SYNCHRONISER Automatique : via la tâche planifiée PDPConnectFRDocumentSync (configurable dans Configuration > Travaux planifiés) Figure 9.38 – Page de synchronisation des factures électroniques À chaque synchronisation, le module : Interroge SuperPDP pour les nouveaux flux Pour chaque flux entrant : crée ou met à jour la facture fournisseur dans Dolibarr Associe la facture au tiers correspondant (par SIREN), ou crée le tiers si l’option est activée Attache le fichier XML original à la facture Envoyer un statut de retour Sur les factures fournisseurs reçues électroniquement, vous pouvez renvoyer un statut à l’émetteur : 205 — Approuvé : vous acceptez la facture 210 — Refusé : vous contestez la facture (avec un motif obligatoire) Journaux et diagnostic La page Journaux d’appels et de synchronisation est réservée aux utilisateurs avancés. Elle liste tous les appels API effectués entre Dolibarr et le PA : Figure 9.39 – Journaux d’appels — healthcheck et génération de jeton Chaque entrée indique : date, fournisseur (SuperPDP…), type d’appel (healthcheck, get_access_token, send_invoice…), méthode HTTP, nombre de flux traités et statut (Success/Error). Comment activer le mode debug ? Dans l’onglet Options, activez Conserver le détail complet des appels API dans l’historique. Cela enregistre le contenu complet des requêtes et réponses. Attention : cette option augmente la taille des journaux et peut réduire les performances — désactivez-la après le diagnostic. Prérequis sur la fiche Société Le module vérifie plusieurs champs obligatoires sur votre fiche société (Configuration > Entreprise/Organisation). Des avertissements sont affichés si des informations manquent : Champ Requis Raison sociale Oui Adresse complète (rue, code postal, ville) Oui Pays France SIREN (idprof1) 9 chiffres SIRET (idprof2) 14 chiffres, contrôle Luhn Numéro de TVA intracommunautaire Format FR + 2 car + 9 chiffres De même, sur chaque fiche tiers client, le module ajoute un bloc Adresse de facturation électronique permettant de définir le routing ID du client (son adresse de réception dans l’annuaire). Pour les clients français avec un SIREN valide, le routing ID est déduit automatiquement. Comment tester sans client réel ? En mode bac à sable SuperPDP, vous pouvez utiliser les entreprises fictives préconfigurées (Burger Queen, Tricatel) pour simuler un échange complet émission/réception sans aucune valeur légale. Utilisez le bouton Générer, envoyer et récupérer un exemple de facture dans la configuration pour valider la chaîne de bout en bout.