Lettrer les paiements
Prérequis : le module account_reconcile_oca doit être installé.
Pour chaque entrée/sortie sur le compte bancaire, il faudra faire un “matching” (aussi appelé “lettrage” ou “réconciliation”) avec une pièce comptable dans Odoo.
Il est déconseillé d'encoder manuellement les paiements de factures fournisseurs depuis les factures elles-mêmes en cliquant "enregistrer un paiement". Dans ce cas, les factures liées aux paiements sont directement marquées "payées", avec génération d'écritures comptables à la clé. Les factures ne sont plus disponibles pour le lettrage, et il faut lettrer les paiements associés. C'est une pratique normalement bien gérée par Odoo, mais potentiellement source de confusion pour les comptables et les utilisateurs.
Lettrage manuel
Cliquer sur le bouton "Lettrer XX articles" dans la zone du journal de banque dans le tableau de bord :
L'écran de réconciliation est affiché. Il est très différent en version 16 par rapport aux versions antérieures. C'est un module de l'OCA qui permet d'avoir cette fonctionnalité, celle-ci n'étant plus disponible dans l'édition open source d'Odoo. Merci à l'OCA !
La liste de toutes les transactions bancaires du journal de banque se trouve dans la zone de gauche. On voit par défaut uniquement les écritures non lettrées. Pour voir les écritures déjà lettrées, il suffit de supprimer le filtre "Non lettré" affiché dans la barre de recherche en haut à droite.
Pour réaliser un lettrage, sélectionner la transaction bancaire à lettrer dans la zone de gauche. Elle s'affiche dans la zone centrale avec le détail du partenaire, la date, le libellé, le montant. Si Odoo reconnait le partenaire (client ou fournisseur), il sera affiché, sinon il indiquera "false".
Dans la zone du bas, dans l'onglet "lettrer", rechercher les opérations de contrepartie. Ici, une facture client qui était ouverte et qui a été payée par la transaction bancaire.
Cliquer sur le bouton "Lettrer" pour générer les écritures comptables correspondantes. La transaction disaparait de l'affichage et on peut passer à la suivante.
Marquer un lettrage pour vérification ultérieure
Si vous n'êtes pas sûr de vous lors d'un lettrage, vous pouvez cliquer sur le bouton "A VERIFIER" et demander à votre comptable de vérifier toutes les écritures en question.
Le statut "à vérifier" est affiché dans la liste des transactions sur la gauche.
Le comptable peut facilement retrouver via le Filtre > A vérifier toutes les transactions à contrôler et les marquer comme vérifiées grâce au bouton ad hoc.
Annuler un lettrage
Attention, cette opération n'est à faire que si la période comptable n'a pas encore été clôturée !
Retrouver la transaction bancaire dont le lettrage est erronée (en enlevant le filtre "Non lettrées" dans l'écran de lettrage).
Cliquer sur le bouton Délettrer.
Lettrage sans contrepartie (opération manuelle)
Si aucune facture ouverte n'existe dans votre comptabilité pour un mouvement bancaire, vous pouvez encoder directement l'écriture comptable. Cela peut avoir lieu en cas de paiement d'un loyer récurrent par exemple : aucune facture fournisseur n'est encodée pour cela (des OD peuvent être réalisées, à la préférence de votre comptable).
Cliquer sur l'onglet Opération manuelle et sélectionner à la main le compte adéquat du plan comptable. Un partenaire peut être également sélectionné à cette étape, et un texte peut être ajouté dans la zone "Nom", qui sera repris dans le libellé de l'écriture comptable. Le Nom est en général repris sur base de la communication de la transaction bancaire.
Cliquer sur le bouton Valider.
Modèle de lettrage
Si certains lettrages se font directement sur des comptes généraux sans passer par des pièces comptables (compte courant TVA, …), vous pouvez configurer des modèles de lettrage de manière à ce qu’en 1 clic, le bon compte soit sélectionné.
Pour ce faire,
- Allez dans Facturation < Configuration < "Comptabilité" < Modèle de rapprochement
- Cliquez sur "Nouveau"
- Paramétrez vos modèles de lettrage en fonction de vos besoins
Il existe plusieurs types de modèles :
- Bouton qui génère l'écriture de contrepartie : le bouton est disponible sur l'écran de lettrage, il faut cliquer dessus pour l'utiliser (manuel).
- Règle pour suggérer l'écriture de la contrepartie
L'onglet "Association du partenaire" permet d'aider le système à détecter quel partenaire client/fournisseur utiliser sur base de textes dans le libellé (communication) de la transaction bancaire.
- Règle pour rapprocher les factures clients/fournisseurs (à documenter).
Quelle est la différence entre le lettrage et le rapprochement dans Odoo ?
C'est une petite subtilité de la comptabilité dans Odoo : le lettrage peut faire référence à deux chose :
- la "comptabilisation" d'un paiement : création et validation d'une pièce comptable liée au paiement
- le rapprochement du paiement avec une autre écriture comptable
- Ici, les lignes de relevés que tu montrent sont comptabilisées mais pas rapprochées. Odoo va quand même les montrer comme "lettrée" dans le relevé bancaire.
Si l'on prends une pièce comptable de paiement qui est comptabilisée et rapprochée, alors on voit sur la pièce un bouton "Imputations". Si l'on clique dessus on voit les écritures comptables qui ont été rapprochées (et qui ont une "reference de lettrage" #Lettrage).
Si ce bouton n'apparait pas, c'est que la pièce a été comptabilisée mais pas rapprochée (malgré le fait qu'il soit écrit "lettré" dans le relevé, c'est une mauvaise dénomination).
Pour rapprocher les écritures, cela peut se faire soit en allant sur la facture, et ajouter un paiement en circulation, soit en lettrant les écritures comptables directement en sélectionnant les écritures depuis la vue liste de Facturation>Comptabilité>Écritures comptables puis Action>Réconcilier.
Si on cliquer sur Réconcilier dans l'écran de réconciliation, on fait bien une comptabilisation et un rapprochement. Cependant parfois le bouton s'appelle "Valider" et pas "Réconcilier", par exemple si on encode l'écriture de contrepartie manuellement. Dans ce cas on fait juste une comptabilisation, mais pas un rapprochement :
Comment fonctionne techniquement le lettrage dans Odoo
Les modèles de réconciliation ont priorité (voir section ci-dessous “Avec modèles de réconciliation”). Si aucune des règles des modèles ne correspond (ou qu’il n’y a pas de modèle ou de règle), alors le contact est déterminé comme expliqué dans la section “Sans modèle de réconciliation”.
Le code qui donne priorité aux modèles de réconciliation est ici.
Avec modèles de réconciliation
Les modèles de réconciliation de type writeoff_suggestion (Rule to suggest counterpart entry) ou invoice_matching (Rule to match invoices/bills) peuvent contenir des règles de correspondance de contacts (onglet “Partner Mapping”). Dans celles-ci, il faut qu’il y ait une valeur dans la colonne “Find Text in Label” ou “Find Text in Notes” (ou dans les 2). Ces valeurs seront cherchées respectivement dans les champs payment_ref (Libellé) ou narration (Conditions générales) de la ligne d’extrait de compte.
Il est à noter que les valeurs sont évaluées comme des expressions régulières Python et que c’est la fonction re.match() qui est utilisée. Ceci signifie que les champs doivent commencer par les valeurs renseignées et que les valeurs peuvent contenir des caractères spéciaux qui permettent de correspondre à plusieurs choses. La casse est prise en compte dans cette correspondance.
Si toutes les conditions correspondent, alors le contact renseigné dans la colonne “Partner” est assigné à cette ligne.
Ceci se passe dans cette fonction.
Sans modèle de réconciliation
Dans ce cas-ci, il y a plusieurs possibilités, évaluées dans cet ordre-ci (et l’évaluation s’arrête dès qu’on a trouvé un contact) :
- Si la ligne d’extrait de compte a déjà un contact assigné, on le garde.
- Si la ligne a un numéro de compte, et s’il existe un (ou plusieurs) compte(s) en banque (
res.partner.bank) dont le numéro (nettoyé en enlevant les espaces etc.) est lié(s) à un et un seul contact, alors ce contact est utilisé. - S’il existe un et un seul contact dans Odoo dont le nom est égal à la valeur du champ
partner_name(Nom du partenaire) de la ligne (sans tenir compte de la casse), alors ce contact est utilisé. - S’il existe un et un seul contact dans Odoo dont le nom contient entièrement la valeur du champ
partner_name(Nom du partenaire) de la ligne (sans tenir compte de la casse), alors ce contact est utilisé.
Ceci ce passe dans cette fonction
















