# 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](https://wiki.infras.fr/uploads/images/gallery/2026-07/bwFm1SVZOZ6Q1cAh-pic-207-001.png)

**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) :

<table id="bkmrk-balisedescription%7B00" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(63, 97, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Balise**

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Description**

</th></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{000000}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Compteur incrémenté à chaque facture</span>

</td></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{000000+000}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Compteur avec offset — ex. FC{000000+558886} pour démarrer à FC558887</span>

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{000000@x}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Compteur remis à zéro le xème mois (x=0 = fiscal, x=99 = mensuel)</span>

</td></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{dd} / {mm} / {yy} / {yyyy}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Jour, mois, année</span>

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{cccc} / {cccc000}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Code client / Code client + compteur propre</span>

</td></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">{tttt}</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">Code type entreprise</span>

</td></tr></tbody></table>

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é…).

<p class="callout warning">**Avertissement :** Si vous utilisez UltimatePDF et souhaitez profiter de toutes ses fonctionnalités, créez le code LCR dans Configuration des dictionnaires &gt; Modes de paiement s'il n'existe pas, et activez-le.</p>

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 :

<table id="bkmrk-%24test-%3D-%24object-%3Earr" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">$test = $object-&gt;array\_options\['options\_typent'\];

$pdf-&gt;MultiCell(100, 4, $test, '', 'R');

</td></tr></tbody></table>

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 :

<table id="bkmrk-lignehttva-10%25-exact" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(63, 97, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Ligne

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">HT

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">TVA 10% exacte

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">TVA arrondie

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Total avec TVA

</th></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Alpha

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1,24

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,124

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,12

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1,36

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Beta

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1,24

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,124

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,12

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1,36

</td></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**Total**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2,48

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,24

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2,72

</td></tr></tbody></table>

Méthode 2 — sommer la TVA de toutes les lignes, puis arrondir le total :

<table id="bkmrk-calculr%C3%A9sultattotal-" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(63, 97, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Calcul

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Résultat

</th></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Total HT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2,48

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">TVA totale : (1,24 + 1,24) × 10% = 0,248 → arrondi

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0,25

</td></tr><tr style="background-color: rgb(239, 249, 223);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**Total TTC**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2,73

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">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 </span>**MAIN\_ROUNDOFTOTAL\_NOT\_TOTALOFROUND** = 1 dans Accueil &gt; Configuration &gt; Divers (Keatic ERP v3.5+).

### **Option d'exigibilité de TVA**

Deux régimes sont disponibles :

1. Standard — TVA sur encaissement : sur livraison pour les biens, sur paiement pour les services.
2. 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).

[![ex8.png](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/QmKrQJdXSfYq5Dlz-ex8.png)](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/QmKrQJdXSfYq5Dlz-ex8.png)

**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 &gt; 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](https://wiki.infras.fr/uploads/images/gallery/2026-07/5rFS7MkLPc69UTRR-pic-212-008.png)

**Figure 9.3 – Sélection du type de facture**

<span style="white-space: pre-wrap;">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 </span>**INVOICE\_USE\_SITUATION**). Doit être créée depuis la fiche du tiers ou depuis une proposition/commande, pas depuis Factures &gt; 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](https://wiki.infras.fr/uploads/images/gallery/2026-07/9h26cl4gxNe7qVLo-pic-213-010.png)

**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.

<p class="callout warning">**Avertissement :** Pour les factures récurrentes, le module Travaux planifiés doit être activé, sinon une alerte s'affiche lors de l'association.</p>

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/VoQ2HmUUtN3NFQcH-pic-214-012.png)

**Figure 9.5 – Alerte module Travaux planifiés non activé**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/pqTQ2XBChy9h8NNa-pic-214-013.png)

**Figure 9.6 – Configuration de la clé de sécurité pour les travaux planifiés**

<span style="white-space: pre-wrap;">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 </span>***Accueil &gt; Outils d'administration &gt; Travaux planifiés***<span style="white-space: pre-wrap;"> pour configurer la tâche.</span>

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/EpqVvqbNHRLSPpFQ-pic-215-015.png)

**Figure 9.7 – Page de configuration des travaux planifiés**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/Q3WqYudMDuarL93D-pic-216-017.png)

**Figure 9.8 – Lancement manuel d'un travail planifié**

Pour automatiser sur un serveur Unix (exécution toutes les 5 minutes) :

<table id="bkmrk-%2A%2F5-%2A-%2A-%2A-%2A-%2Fpath%2Fsc" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">\*/5 \* \* \* \* /path/scripts/cron/cron\_run\_jobs.php &lt;cle\_securite&gt; webmaster &gt; /documents/cron\_run\_jobs.php

</td></tr></tbody></table>

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 &gt; Factures clients &gt; 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)
- <span style="white-space: pre-wrap;">Les champs société (via la constante </span>**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.

<p class="callout warning">**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.</p>

### **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 :

1. Créez une facture d'acompte (Type = Facture d'acompte)
2. Validez-la
3. Cliquez sur Émettre règlement et renseignez le montant de l'acompte versé
4. Cliquez sur Payer

<p class="callout warning">**Note :** Le bouton Convertir en réduction future n'apparaît que si le montant restant à payer est ramené à 0.</p>

1. Cliquez sur Convertir en réduction future — le montant apparaît en ligne de déduction sur la facture définitive

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/6eOQiYEMM4NXRQ0n-pic-218-020.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/VVeAYhugrJVgC2Is-pic-218-021.png)

**Figure 9.10 – Acompte en ligne négative (haut de la facture définitive)**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/H24z9WysTlE4WAVu-pic-219-023.png)

**Figure 9.11 – Acompte en bas de la facture définitive**

<span style="white-space: pre-wrap;">Le module UltimatePDF permet une présentation alternative via la constante </span>**FACTURE\_DEPOSITS\_ARE\_JUST\_PAYMENTS** (l'acompte est traité comme un paiement, pas comme une ligne négative) :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/NVgqIb6Ba6MQU0wk-pic-219-024.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/NpsazQsMhL23NMpu-pic-220-026.png)

**Figure 9.13 – Création d'un avoir sur une facture**

Cliquez sur Convertir en réduction future pour utiliser ce montant.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/BJzKm0NKrK2ZUtbM-pic-221-028.png)

**Figure 9.14 – Utiliser la réduction sur une nouvelle facture**

<p class="callout warning">**Avertissement :** La facture à corriger doit être validée pour pouvoir utiliser la remise.</p>

Cliquez sur Appliquer dans la section Remises de la facture à corriger :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/awNLj7V6xpmi3U29-pic-222-030.png)

**Figure 9.15 – Application de la réduction (section Remises)**

Puis passez la facture à Passer payée :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/OZdWLQF0dEChg2mD-pic-222-031.png)

**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 :

1. 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.
2. 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**

<span style="white-space: pre-wrap;">Constantes à définir à 1 dans </span>***Accueil &gt; Configuration &gt; Divers***<span style="white-space: pre-wrap;"> :</span>

<table id="bkmrk-constanteeffetmain_d" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(1, 152, 162); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Effet

</th></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DEPOSIT\_MULTI\_TVA

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dans la facture d'acompte, crée une ligne par taux de TVA depuis le document d'origine (v6.0)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_SHOW\_SEND\_REMINDER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Affiche le lien « Envoyer rappel par mail » (ancienne fonction)

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_CAN\_ALWAYS\_BE\_EDITED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet de modifier les factures même si un paiement a été lancé

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_CAN\_ALWAYS\_BE\_REMOVED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet de toujours supprimer les factures (même si ce n'est pas la dernière)

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_CAN\_NEVER\_BE\_REMOVED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Interdit la suppression des factures (sauf brouillons)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_POSITIVE\_CREDIT\_NOTE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Les montants sur les avoirs sont affichés en positif

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_CHANGE\_THIRDPARTY

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet de changer le tiers dans les factures brouillon

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_USE\_PROFORMAT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Active le type de factures PROFORMAT

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_DEPOSITS\_ARE\_JUST\_PAYMENTS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Traite les acomptes comme des paiements (pas comme réduction du montant)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_SENDBYEMAIL\_FOR\_ALL\_STATUS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet d'envoyer une facture par email même au statut brouillon

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_WITHOUT\_VAT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactive la TVA sur les documents (pour les associations, fonctionne avec le modèle crabe)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_CREDIT\_NOTE\_STANDALONE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">On peut créer une note de crédit sans facture (v3.9)

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_DISABLE\_REPLACEMENT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactive les factures de remplacement

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_DISABLE\_CREDIT\_NOTE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactive les notes de crédit

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">WORKFLOW\_BILL\_ON\_SHIPMENT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Adapte l'étiquette du bouton pour la facturation sur expéditions

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DEFAULT\_PAYMENT\_TERM\_ID

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Définit le délai de paiement par défaut au niveau entreprise

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">DOC\_SHOW\_FIRST\_SALES\_REP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Affiche le nom du commercial sur les PDF

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_DISABLE\_DEPOSIT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactive les factures de dépôt

</td></tr></tbody></table>

<table id="bkmrk-constanteeffetinvoic" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px; margin-top: 12px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(1, 152, 162); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Effet

</th></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_ALLOW\_EXTERNAL\_DOWNLOAD

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Génère automatiquement une clé de partage pour téléchargement externe (v7.0+)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_POINTOFTAX\_DATE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Ajoute la date d'imposition sur les factures (v4.0+)

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_ENABLE\_NEGATIVE\_LINES

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet d'ajouter des lignes négatives à une facture (v8.0.2+)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_USE\_DEFAULT\_DOCUMENT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Sélection dynamique du modèle de facture selon le type (v9.0+)

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">FACTURE\_REUSE\_NOTES\_ON\_CREATE\_FROM

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Réutilise les notes publiques/privées de l'objet précédent (propale, commande…) lors de la création

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_USE\_SITUATION

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Active la fonctionnalité « facture de situation »

</td></tr><tr style="background-color: rgb(223, 242, 243);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ROUNDOFTOTAL\_NOT\_TOTALOFROUND

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Active la méthode 2 d'arrondi TVA (arrondi du total, non recommandé)

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">Clés de substitution disponibles pour les notes des factures récurrentes : </span>**\_\_INVOICE\_MONTH\_\_, \_\_INVOICE\_PREVIOUS\_MONTH\_\_,** etc.

### **Facture de situation**

La facture de situation permet une facturation progressive par tranches de pourcentage.

<p class="callout warning">**Avertissement :** <span style="white-space: pre-wrap;">Créez la facture de situation depuis la fiche du tiers (onglet Client) ou depuis une proposition/commande, et non depuis le </span>***menu Factures &gt; Nouvelle facture.***</p>

<span style="white-space: pre-wrap;">Activez la constante </span>**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/UcJZEQDHdhl5Gvcc-pic-225-035.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/S6NOCR6NgRnDVTVv-pic-226-037.png)

**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.

<p class="callout warning">**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.</p>

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/.

<table id="bkmrk-chmod-%2Bx-rebuild_mer" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">chmod +x rebuild\_merge\_pdf.php

./rebuild\_merge\_pdf.php filter=payments 20211001 20220930 lang=fr\_FR

</td></tr></tbody></table>

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](https://wiki.infras.fr/uploads/images/gallery/2026-07/8S4Y9VKFywESBC3L-pic-227-039.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/FkrzwRSCQWWOmvf7-pic-228-041.png)

**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/.

<table id="bkmrk-chmod-%2Bx-email_unpai" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">chmod +x email\_unpaid\_invoices\_to\_representatives.php

./email\_unpaid\_invoices\_to\_representatives.php confirm

</td></tr></tbody></table>

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/DAOnNQYOx9Geak8c-pic-229-043.png)

**Figure 9.21 – Commande du script email commerciaux**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/uMypY07ZBc645eTN-pic-229-044.png)

**Figure 9.22 – Exemple d'email reçu par un commercial**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/FOYQSTOdMClEZBnA-pic-230-046.png)

**Figure 9.23 – Résultat de l'exécution du script**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/wng1OTDGclDxbE2C-pic-230-047.png)

**Figure 9.24 – Sortie du script**

# 9.3 Factures fournisseurs

### **Créer une facture fournisseur**

<span style="white-space: pre-wrap;">Dans </span>**Factures fournisseurs &gt; 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.

<p class="callout warning">**Avertissement :** La validation de la facture est irréversible. Un numéro lui est attribué selon le modèle de numérotation configuré.</p>

### **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.

<p class="callout info">**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.</p>

### **Cas concret — Facture fournisseur avec avoir**

<span style="white-space: pre-wrap;">Question : </span>**Si je reçois une facture fournisseur et un avoir pour erreur sur la facture, comment faire ?**<span style="white-space: pre-wrap;"> </span>

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 &gt; 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**

<table id="bkmrk-constanteeffetfactur" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 266px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Effet

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**FACTURE\_CHANGE\_THIRDPARTY**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permet de changer le tiers lors du clonage d'une commande

</td></tr></tbody></table>

# 9.5 Taxes et charges

### **Créer une charge sociale**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/cwQuLzOBn9rGRW34-pic-233-051.png)**Figure 9.25 – Création et règlement d’une charge sociale**

Dans **Taxes et dividendes &gt; Nouvelle charge**. Renseignez le libellé, le type (liste modifiable dans Dictionnaires &gt; 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](https://wiki.infras.fr/uploads/images/gallery/2026-07/TEoQ1P4CuXD9AgbQ-pic-233-052.png)**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 &gt; Par tiers*** — aﬀiche 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 &gt; Chiffre d’affaires &gt; Par tiers***<span style="white-space: pre-wrap;"> — 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.</span>

### **Chiffre d’affaires par utilisateur**

***Rapports &gt; Chiffre d’affaires &gt; Par utilisateur***<span style="white-space: pre-wrap;"> — même principe, par utilisateur/commercial.</span>

### **Journal des ventes**

***Rapports &gt; 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 &gt; 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.

<p class="callout warning">**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.</p>

### **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 aﬀiché sur chaque fiche document.

<p class="callout info">**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.</p>

### **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 :

<table id="bkmrk-dateobligation1er-se" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Date

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Obligation

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1er septembre 2026

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Réception obligatoire pour toutes les entreprises

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1er septembre 2026

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Émission obligatoire pour les grandes entreprises et ETI

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1er septembre 2027

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Émission obligatoire pour les PME et micro-entreprises

</td></tr></tbody></table>

Formats acceptés :

<table id="bkmrk-formatdescriptionfac" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Format

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Factur-X

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PDF enrichi d'un fichier XML embarqué (lisible par un humain, traitable par une machine)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">CII (Cross Industry Invoice)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">XML pur, conforme à la norme EN 16931 — recommandé pour les échanges automatisés

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">UBL

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Autre format XML interopérable

</td></tr></tbody></table>

**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 :

<table id="bkmrk-cd-htdocs%2Fcustomgit-" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">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

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">Une fois les fichiers copiés, activez le module dans </span>***Configuration &gt; Modules/Applications***, section Autre :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/BrhGFUM5gkJOgnZ7-pic-237-057.png)

**Figure 9.27 – Activation du module PDPConnectFR**

### **Configuration du point d'accès**

<span style="white-space: pre-wrap;">Accédez à la configuration via </span>***Configuration &gt; Modules/Applications &gt; PDPConnectFR***<span style="white-space: pre-wrap;"> (roue dentée) ou directement via le </span>***menu Facturation &gt; Gestion des factures électroniques.***

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/oRcxmGAFGhtE2rQM-pic-238-060.png)

**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.

<p class="callout info">**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.</p>

### **É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](https://wiki.infras.fr/uploads/images/gallery/2026-07/UFgD6HXdG5L5loBE-pic-239-063.png)

**Figure 9.29 – SuperPDP — choix du type de compte**

<table id="bkmrk-typeusagerepr%C3%A9sentan" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Type

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Usage

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Représentant légal (Production)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Vous êtes le représentant légal de l'entreprise — vérification KYB requise, inscrit dans l'annuaire, factures à valeur légale

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Développeur (Bac à sable)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Tests avec données fictives — aucune vérification, deux entreprises test préconfigurées

</td></tr></tbody></table>

Pour vos premiers tests, choisissez Développeur / Bac à sable. Une fois connecté, créez une nouvelle application pour lier votre Keatic ERP à SuperPDP :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/FzZnhHTQu5UTDP79-pic-240-066.png)

**Figure 9.30 – SuperPDP — type d'application (Bac à sable ou Production)**

Sélectionnez Bac à sable, puis renseignez le formulaire :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/2CDtgZuKIv79vfTN-pic-240-068.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/z5cNkD2OxyYZNLU4-pic-241-071.png)

**Figure 9.32 – SuperPDP — credentials de l'application (client\_secret affiché une seule fois)**

<p class="callout warning">**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.</p>

### **Étape 3 — Saisir les credentials dans Keatic ERP**

Revenez dans la configuration Keatic ERP et renseignez :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/E9XBUxFTNlWbKGDd-pic-242-073.png)

**Figure 9.33 – Configuration Keatic ERP — saisie du Client ID et Client Secret**

<table id="bkmrk-champvaleurvotre-ide" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Champ

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Valeur

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Votre identifiant de facturation électronique d'entreprise

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Votre SIREN (9 chiffres)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Client ID

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">L'identifiant de l'application SuperPDP

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Client Secret

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Le secret de l'application SuperPDP

</td></tr></tbody></table>

Cliquez sur ENREGISTRER, puis sur Se connecter (Générer le jeton d'accès) :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/nULwwQzBYx0caouU-pic-242-075.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/HIDVqihNc65Jyvnc-pic-243-078.png)

**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](https://wiki.infras.fr/uploads/images/gallery/2026-07/kGbZWUq6Pn8B9aOy-pic-244-081.png)

**Figure 9.36 – Onglet Options — synchronisation et mentions légales obligatoires**

Synchronisation Keatic ERP → PA/PDP (émission)

<table id="bkmrk-optiondescriptionval" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Option

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Validation des données tiers via API gouvernementales

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Vérifie le SIREN et la TVA du client auprès des registres officiels avant envoi

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Bloquer si pas d'identifiant de facturation électronique

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Interdit l'envoi si le tiers n'a pas de routing ID défini

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Protocole d'échange

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">CII (recommandé) ou Factur-X

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Génération automatique à la validation

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">La facture électronique est générée dès que la facture Keatic ERP est validée

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Annuler si génération automatique échoue

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Bloque la validation de la facture en cas d'erreur de génération

</td></tr></tbody></table>

Mentions légales obligatoires Ces trois mentions doivent obligatoirement figurer sur les factures électroniques B2B françaises :

<table id="bkmrk-codementionexemplepm" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Code

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Mention

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Exemple

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PMT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Frais de recouvrement

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Indemnité forfaitaire de recouvrement : 40 €

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PMD

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pénalités de retard

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pénalités de retard : 3 fois le taux légal

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">AAB

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Escompte pour paiement anticipé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pas d'escompte pour paiement anticipé

</td></tr></tbody></table>

Synchronisation PA/PDP → Keatic ERP (réception)

<table id="bkmrk-optiondescriptiong%C3%A9n" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Option

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Génération automatique des produits manquants

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Crée le produit dans Keatic ERP s'il n'existe pas lors de l'import

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Génération automatique des tiers manquants

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Crée le fournisseur dans Keatic ERP s'il n'existe pas lors de l'import

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Compléter les informations manquantes des tiers

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Met à jour la fiche tiers avec les données reçues dans la facture

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Limite d'activation de la synchronisation des flux

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Limite le nombre de flux traités par cycle

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre de flux traités par défaut par appel

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Par défaut : 100

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Délai de recouvrement de synchronisation (heures)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Délai minimum entre deux synchronisations automatiques

</td></tr></tbody></table>

### **Utilisation**

Une fois configuré, le module ajoute un sous-menu dédié dans Facturation :

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/oOSkSobgzS2QcXxe-pic-245-084.png)

**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 :

1. Générer la facture électronique — crée le fichier XML/Factur-X et l'attache à la facture
2. 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é).

<p class="callout warning">**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.</p>

### **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 :

- <span style="white-space: pre-wrap;">Manuelle : </span>***Facturation &gt; Synchronisation des factures électroniques &gt; bouton SYNCHRONISER***
- <span style="white-space: pre-wrap;">Automatique : via la tâche planifiée PDPConnectFRDocumentSync (configurable dans </span>***Configuration &gt; Travaux planifiés***)

**Figure 9.38 – Page de synchronisation des factures électroniques**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/ir4t8LzRYZP3v4Z5-pic-247-088.png)

À chaque synchronisation, le module :

1. Interroge SuperPDP pour les nouveaux flux
2. Pour chaque flux entrant : crée ou met à jour la facture fournisseur dans Keatic ERP
3. Associe la facture au tiers correspondant (par SIREN), ou crée le tiers si l'option est activée
4. 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**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/NWTz9dkdBcpkzYSl-pic-248-091.png)

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 &gt; Entreprise/Organisation). Des avertissements sont affichés si des informations manquent :

<table id="bkmrk-champrequisraison-so" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(110, 2, 54); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Champ

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Requis

</th></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Raison sociale

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Oui

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Adresse complète (rue, code postal, ville)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Oui

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pays

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">France

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">SIREN (idprof1)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">9 chiffres

</td></tr><tr style="background-color: rgb(245, 230, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">SIRET (idprof2)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">14 chiffres, contrôle Luhn

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Numéro de TVA intracommunautaire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Format FR + 2 car + 9 chiffres

</td></tr></tbody></table>

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.