Guide · Facturation

Facturer le temps passé avec Odoo, de la saisie à la facture

Quand on facture au temps passé, chaque heure travaillée doit se retrouver sur la facture, une seule fois. Odoo sait le faire, y compris en Community, avec un service facturé d'après les feuilles de temps. Mise en place, erreurs fréquentes, et apport de TimeViking.

Mis à jour le · par l'équipe TimeViking

Le principe de la facturation des heures dans Odoo

Dans Odoo, une ligne de temps est une ligne analytique sur un projet, généralement avec une tâche. La facturation ne passe pas par la ligne elle-même mais par une commande client :

  1. un service dont la politique de facturation est « Basé sur les feuilles de temps » ;
  2. une commande client confirmée avec ce service ;
  3. un projet ou une tâche rattaché à la ligne de commande ;
  4. des lignes de temps sur ce projet ou cette tâche, qui reprennent automatiquement l'article de la commande ;
  5. une facture pour les heures livrées non encore facturées.

C'est le rôle du module sale_timesheet, installé par Odoo dès que Ventes et Feuilles de temps sont utilisés ensemble. Il fait partie de Community : nous l'avons vérifié dans le code source d'Odoo 18, 19 et 20.

Prenons une ESN qui déploie un logiciel chez un client du secteur logistique, au temps passé. Le devis devient une commande, les tâches sont regroupées dans un projet, et chaque vendredi le chef de projet consulte sur la commande le nombre d'heures déjà livrées.

Mise en place pas à pas

  1. Créez un service facturé au temps passé

    Dans Ventes : un article de type Service, avec la politique de facturation Basé sur les feuilles de temps (Based on Timesheets) et, sous Créer à la commande, une tâche ou un projet. Renseignez le tarif horaire.

  2. Confirmez la commande client

    Établissez un devis avec ce service et le nombre d'heures prévu, puis confirmez-le. Odoo crée le projet ou la tâche et le rattache à la ligne de commande.

  3. L'équipe saisit ses heures sur cette tâche

    Chaque ligne de temps sur le projet ou la tâche reprend l'article de la commande client. La colonne Délivré de la commande totalise les heures.

  4. Contrôlez les heures

    Dans Feuilles de temps, filtrez par projet et par période, et vérifiez que chaque ligne porte un article de commande. Sans article, la ligne ne sera pas facturée.

  5. Générez la facture

    Sur la commande : Créer une facture. Odoo reprend les heures livrées non encore facturées. Une fois la facture comptabilisée, ces lignes sont verrouillées.

Trois modes de tarification d'un projet

Pour un projet facturable, Odoo vous laisse choisir comment valoriser les heures (champ Tarif) :

ModeQuand l'utiliser
Taux de la tâcheChaque tâche est rattachée à sa propre ligne de commande. Idéal pour vendre des prestations différentes à des clients différents.
Taux du projetUn tarif horaire unique pour tout le projet, quel que soit l'intervenant.
Taux de l'employéLa même prestation à un tarif propre à chaque personne, par exemple consultant junior et senior. On associe une ligne de commande à chaque employé.

Odoo attribue en outre à chaque ligne de temps un type de facturation : sur feuilles de temps, à prix fixe, par jalons, manuel ou non facturable. En regroupant les rapports de Feuilles de temps sur ce critère, vous voyez la part des heures qui se transforme en chiffre d'affaires.

Les erreurs les plus fréquentes

Sur le forum d'Odoo, les mêmes questions reviennent sans cesse, et la cause est presque toujours identique : une ligne de temps qui n'est pas rattachée à l'article de la commande.

  • Projet créé manuellement. Sans ligne de commande, les heures ne seront jamais facturées. Rattachez le projet ou la tâche à un article de commande.
  • Politique de facturation modifiée en cours de route. Odoo ne l'applique pas aux lignes déjà saisies.
  • Saisie sur la mauvaise tâche. Une tâche interne ou sans ligne de commande n'est pas prise en compte.
  • Commande non confirmée. Le projet et le rattachement n'existent qu'après confirmation.
Astuce : affichez la colonne Article de la commande client dans la liste des Feuilles de temps. Une cellule vide, c'est une heure qui ne sera pas facturée.

Heures facturées : verrouillage

Une fois qu'une ligne de temps figure sur une facture comptabilisée, Odoo en interdit la suppression (« You cannot remove a timesheet that has already been invoiced »), y compris pour un administrateur. Pour corriger, il faut annuler la facture ou émettre un avoir. Dans Odoo 18 et 19, le champ de la facture s'appelle timesheet_invoice_id, dans la 20 reinvoice_move_id ; le fonctionnement ne change pas.

L'apport de TimeViking

TimeViking n'émet pas de factures : c'est le travail d'Odoo. Il garantit en revanche que les heures arrivent dans Odoo à temps et au bon endroit.

  • La bonne tâche, du premier coup. L'équipe choisit un projet et une tâche issus d'Odoo, y compris sur smartphone. Odoo rattache la ligne à l'article de commande de la tâche, exactement comme une saisie faite dans Odoo.
  • Approbation hebdomadaire avant facturation. Le chef de projet consulte par personne les heures soumises et la part facturable, et renvoie la semaine en cas d'anomalie. Voir valider les feuilles de temps dans Odoo.
  • Heures facturables et montants par projet, client ou collaborateur, exportables vers Excel et CSV.
  • Les lignes facturées ne sont pas touchées. Si une ligne figure sur une facture, l'application ne la modifie ni ne la supprime, et en indique la raison.

Pour en savoir plus, consultez la page intégration Odoo et nos tarifs.

Essayez TimeViking avec votre propre Odoo.

Gratuit pour les équipes jusqu'à 3 utilisateurs, pour toujours. Les équipes plus grandes l'essaient 30 jours gratuitement, sans carte.

Questions fréquentes

Odoo Community permet-il de facturer des heures ?

Oui. Le module sale_timesheet (Ventes et Feuilles de temps réunis) fait partie de Community, sous licence LGPL-3, dans Odoo 18, 19 et 20. Enterprise n'est pas nécessaire.

Pourquoi les heures livrées de la commande ne collent-elles pas aux feuilles de temps ?

En général, des lignes ne sont pas rattachées à l'article de la commande : projet créé manuellement, ou tâche sans article. Affichez la colonne Article de la commande client dans la liste des Feuilles de temps et filtrez sur les valeurs vides. Et une politique de facturation modifiée après coup ne s'applique pas rétroactivement.

Une ligne de temps facturée est-elle encore modifiable ?

Non, dès que la facture est comptabilisée : Odoo refuse aussi la suppression. Il faut annuler la facture ou émettre un avoir. TimeViking ne force jamais ces lignes et explique pourquoi elles sont verrouillées.

TimeViking établit-il les factures ?

Non. La facturation se fait dans Odoo. TimeViking envoie les heures dans Odoo, sur le bon projet et la bonne tâche, pour qu'Odoo les rattache à la commande. Dans l'application, vous voyez par projet les heures facturables et leur montant, exportables vers Excel.

Autres guides