09. FACTURATION | PAIEMENT
- 9.1 Introduction
- 9.2 Factures clients
- 9.3 Factures fournisseurs
- 9.4 Commandes à facturer
- 9.5 Taxes et charges
- 9.6 Rapports
- 9.7 Marges
- 9.8 Facturation électronique
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 Keatic ERP 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 Keatic ERP) — 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 (Keatic ERP 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)
Keatic ERP 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 Keatic ERP 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 <cle_securite> 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
Keatic ERP intègre la facturation électronique via le module communautaire PDPConnectFR, disponible gratuitement sur GitHub (Keatic ERP/keatic ERP-community-modules). Il assure la synchronisation bidirectionnelle entre Keatic ERP et le PA de votre choix. Ce que fait le module :
- Génère les fichiers XML/Factur-X depuis vos factures Keatic ERP
- 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:Keatic ERP/keatic ERP-community-modules.git mkdir pdpconnectfr cp -pr keatic ERP-community-modules/pdpconnectfr/* pdpconnectfr rm -fr keatic ERP-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 Keatic ERP.
É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. Keatic ERP 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 Keatic ERP à 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 Keatic ERP (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 Keatic ERP
Revenez dans la configuration Keatic ERP et renseignez :
Figure 9.33 – Configuration Keatic ERP — saisie du Client ID et Client Secret
Champ | Valeur |
|---|---|
Votre identifiant de facturation électronique d'entreprise | Votre SIREN (9 chiffres) |
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 Keatic ERP — 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 Keatic ERP → PA/PDP (émission)
Option | Description |
|---|---|
Validation des données tiers via API gouvernementales | Vérifie le SIREN et la TVA du client auprès des registres officiels avant envoi |
Bloquer si pas d'identifiant de facturation électronique | Interdit l'envoi si le tiers n'a pas de routing ID défini |
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 Keatic ERP est validée |
Annuler si génération automatique échoue | Bloque la validation de la facture en cas d'erreur de génération |
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 → Keatic ERP (réception)
Option | Description |
|---|---|
Génération automatique des produits manquants | Crée le produit dans Keatic ERP s'il n'existe pas lors de l'import |
Génération automatique des tiers manquants | Crée le fournisseur dans Keatic ERP s'il n'existe pas lors de l'import |
Compléter les informations manquantes des tiers | Met à jour la fiche tiers avec les données reçues dans la facture |
Limite d'activation de la synchronisation des flux | Limite le nombre de flux traités par cycle |
Nombre de flux traités par défaut par appel | Par défaut : 100 |
Délai de recouvrement de synchronisation (heures) | Délai minimum entre deux synchronisations automatiques |
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
- 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 Keatic ERP. 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 Keatic ERP
- 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 Keatic ERP 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.