OdooWiki OCA HUB

Payroll Sheet Importer

account_payroll_sheet_import folder_open OCA/account-financial-tools open_in_new
Accounting License: AGPL-3

This module allows importing payroll data from Excel (.xlsx) files into accounting journal entries in Odoo. It streamlines integration between external HR/payroll systems and Odoo’s accounting module.

Main Features:

  • Map Excel columns to specific accounting accounts.
  • Detect and report missing employees based on VAT/ID/Passport numbers.
  • Associate imported data with a specific accounting journal.
  • Support for multiple mapping configurations per company.

This module is ideal for companies that receive externally processed payroll in Excel format and need a semi-automated way to post it into Odoo's accounting system.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets accountants import an Excel payroll sheet and automatically create a draft journal entry in Odoo, using saved column-to-account mappings and matching each row to an employee by ID or passport number.

This module adds a way to turn an externally prepared payroll spreadsheet into an accounting journal entry, without typing the lines by hand.

Where it appears in Odoo: - Under Accounting configuration there is a new "Payroll Mapping" section with two screens: "Payroll Mapping" (the mapping headers) and "Payroll Mapping Lines" (the individual column-to-account rules). - Under Accounting entries there is a "Payroll Import" menu that opens a small upload window.

How it works: - You first create a mapping: give it a name, choose the accounting journal, and name the Excel column that holds the employee's ID or passport number. Then you list, for each Excel column, which accounting account it goes to and whether it is a debit or a credit. A column can optionally be booked to a fixed partner instead of the employee. - In the import window you upload the Excel file, pick a mapping and press Import.

The module then checks that every mapped column and the ID column exist in the file, and refuses the import otherwise. Each row is matched to an employee through their identification or passport number; rows with no match are collected and shown in a "Missing Contacts" warning window listing the unknown ID numbers, so you can create those employees first.

Business rules: - Only .xlsx/.xls files are accepted. - Zero or empty amounts are skipped. - For each employee, total debits must equal total credits; if not, the import stops and shows the employee's lines with their debit and credit totals. - The resulting entry is created in the chosen journal, referenced with the file name and today's date, and opened for review.

Mappings are company-specific, and multi-company rules keep each company's mappings separate. Access is limited to accounting users.

Depends on

accounthr

Menus it adds

Payroll MappingPayroll MappingPayroll Mapping LinesPayroll ImportImport Payroll
Models and fields (4)
  • payroll.import.wizard · new modelfile (Excel File), filename, mapping_id (Column Mapping)
  • missing.partner.wizard · new modelmissing_ids (Missing IDs)
  • payroll.import.mapping · new modelname (Mapping Name), id_column (ID Column), company_id (Company), journal_id (Journal), mapping_line_ids (Column Mappings)
  • payroll.import.mapping.line · new modelsequence, move_type, account_id (Account), company_id (Company), column_name (Excel Column Name), other_partner_id (Other Partner)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/account-financial-tools.

terminal Installation and usage

OCA documentation · Odoo 19.0

Excel File Requirements

  • File must be in .xlsx format.
  • Must contain a column with employee identifiers (e.g., VAT/ID/Passport).
  • Data columns must match those defined in the selected mapping.
  • Format has to be:

| VAT/ID/Passport | Base Salary | Extra Hours | Other Concepts.. | |-----------------|-------------|-------------|------------------| | 1 | 2000 | 500 | ... | | 2 | 1800 | 250 | ... |

Employee Requirements

In order to correctly match payroll entries with existing employees (and their linked partners), each employee must have a unique identifier set in one of the following fields:

  • Identification Nº (identification_id)
  • Passport (passport_id)

These fields must match the values provided in the corresponding Excel column. If no matching employee is found, the system will list the missing identifiers, and you will need to create the missing records or update the identifiers accordingly.

Creating a Column Mapping

  • Navigate to Accounting > Configuration > Payroll Mapping.
  • Create a new mapping and configure:
  • Mapping name.
  • Target journal.
  • Name of the column containing employee VAT/ID/Pasport.
  • Mapping lines: Excel column → account → move type (debit/credit). Ex: "NET SALARY", 230000, credit
  • Other Partner (optional): set this field on a mapping line to use a specific partner instead of the partner associated with the employee. If left empty, the employee’s partner is used. Example: for private health insurance paid by the company, select the insurance provider as Other Partner so that the corresponding journal item is assigned to the provider instead of the employee.
  • Save the mapping for future use.

Import

  • Go to Accounting > Accounting > Payroll Import.
  • Upload an Excel file containing payroll data.
  • Choose a previously configured column mapping.
  • The system will attempt to match employees using VAT/ID/Passport numbers:
  • After validation, click Import to generate journal entries.
  • If employees are missing, a warning will show the unmatched identifiers.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.