Standard Expenses module allow employee to do the expense reimbursement only after the expense has been made. In other world, employee will need to pay first and reimburse later.
This module, allow company to advance an amount to the employee. Employee can then use that advance amount to purchase product/service first, then back to company and do the clearing.
There can be 3 scenarios for advance and clearing
- When clearing amount = advance amount, no other operation is required.
- When clearing amount \> advance amount, company will pay the extra to employee.
- When clearing amount \< advance amount, employee will return the remain to company.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets companies pay employees an advance before they spend, then clear that advance against real expense reports. Employees can request advances, submit clearing reports, and either receive extra reimbursement or return unused money.
This module adds an advance-and-clearing workflow on top of standard Expenses. In the Expenses app, under My Reports, you get two new menus: Advances and Expenses, so advance requests are kept separate from normal expense reports.
On an expense report you can tick Employee Advance. Advance lines are forced to use a dedicated 'Employee Advance' product, must have no taxes, must use the employee-paid mode, and must post to the advance product's payable account; otherwise Odoo blocks saving. A clearing report can be linked to one open advance of the same employee, and Odoo automatically creates clearing lines from the advance lines that have a clearing product set.
On the advance report, buttons show how many clearing reports and return payments exist. A 'Clear Advance' button opens a new clearing report, and a 'Return Advance' button lets you register a payment returning unused money to the company; Odoo refuses to return more than what is actually left. When a clearing report is posted, Odoo reconciles its lines with the advance's lines and marks the report paid, done, or partially paid depending on whether the cleared amount is equal to, above, or below the advance. If clearing exceeds the advance, the extra can be paid to the employee.
Employees show an Advance counter button opening their advance reports. In Settings you can choose a default miscellaneous journal used for clearing entries. Odoo also prevents cancelling or resetting to draft an advance whose amount was already cleared or returned.
Depends on
Required by other modules
Menus it adds
Models and fields (8)
- hr.expense · extends an existing modeladvance (Employee Advance), av_line_id (Ref: Advance), clearing_product_id (Clearing Product)
- res.company · extends an existing modelclearing_journal_id (Default Clearing Journal)
- account.move · extends an existing model
- account.payment · extends an existing modeladvance_id
- hr.employee.base · extends an existing modeladvance_count (# of Advance), advance_sheet_ids
- hr.expense.sheet · extends an existing modeladvance (Employee Advance), return_count, amount_payable (Payable Amount), clearing_count, advance_sheet_id (Clear Advance), clearing_residual (Amount to clear), clearing_sheet_ids (Clearing Sheet), payment_return_ids (Payment Return), clearing_journal_id, advance_sheet_residual (Advance Remaining)
- res.config.settings · extends an existing modelclearing_journal_id
- account.payment.register · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 18.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-03Confirmation status: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/hr-expense.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0This module will create a new product "Employee Advance" automatically. You will need to setup the Expense Account of this product to your Employee Advance account manually.
- Open Product window and search for "Employee Advance"
- On Accounting tab, select appropriate employee advance account from your chart of account
Note:
- You will need the "Show Full Accounting Features" to see accounting data
- Employee Advance account code, if not already exists, you can create one. Use type = Current Asset and check Allow Reconciliation.
Clearing Journal
Clearing entries are posted as journal entries (move_type 'entry'), which only allow Miscellaneous (general) journals. By default Odoo picks the first general journal it finds. To control it:
- Go to Settings \> Expenses \> Accounting.
- Set the "Default Clearing Journal" to the Miscellaneous journal that should receive the clearing entries.
The clearing journal can also be set per clearing report on the report's "Clearing Journal" field, which defaults to the company setting above.
Usage
Source · Odoo 18.0To use this module, you must configure product "Employee Advance" with account type = Current Asset and check Allow Reconciliation. After that, you can step following:
Create an Employee Advance
- Go to Expenses \> My Expenses \> Advances
- Create sheet and add a line with advance
- As an option, the user can also set the "Clearing Product". If this is set, on the clear advance step, the clearing product will create a default product line.
- Set the unit price to advance amount \> Save
- As normal, do Submit to Manager \> Approve \> Post Journal Entries \> Register Payment.
- As this is Advance, you will see a new field "Amount to clear".
Clear Advance
you can do 2 ways,
- Create clearing from advance document
- Go to Expenses \> My Expenses \> Advances
- Search for the Advance you want to clear, or use filter "Advance (not cleared)" to see all uncleared advance.
- Open an Advance which is now in paid status with some Amount to be cleared.
- Click button "Clear Advance", system will create new Expense Report with reference to the previous step Advance.
- Create name clearing and Save (must save first)
- Edit \> Add or create Expense line(s) as normal.
- As normal, do Approve \> Post Journal Entries
- Create clearing from new expense
- Go to Expenses \> My Expenses \> Expenses
- Create sheet and reference advance with field "Clear Advance" \> Save (must save first)
- Edit \> Add or create Expense line(s) as normal.
- As normal, do Approve \> Post Journal Entries
Note:
- If the total expense amount less than or equal to the advance amount, the status will be set to Paid right after post journal entries.
- If the total expense amount more than the advance amount, Register Payment will pay the extra amount then set state to Paid.
Return Advance
- Go to Expenses \> My Expenses \> Advances
- Search for the Advance you want to clear, or use filter "Advance (not cleared)" to see all uncleared advance.
- Open an Advance which is now in paid status with some Amount to be cleared.
- Click button "Return Advance" will open Register Payment wizard with Amount to clear.
- Click button "Create Payment" to return that amount back
- All returned, Amount to clear is now equal to 0.0
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.