OdooWiki OCA HUB

Account Invoice Advance Compensation

account_invoice_advance_compensation folder_open OCA/account-invoicing open_in_new
Accounting/Invoicing License: AGPL-3

This module provides a comprehensive solution for managing advance payments and their compensation in Odoo. It enables businesses to efficiently handle prepayments and their application against regular invoices through a user-friendly interface.

Key Features:

  • Dedicated advance payment tracking for both customers and suppliers
  • Flexible compensation wizard for applying advances against invoices
  • Automatic reconciliation of advance payments with regular invoices
  • Configurable advance payment journals
  • Multi-currency support for advance payments

The module streamlines the advance payment process by providing a structured workflow for recording, tracking, and compensating advance payments, ensuring accurate financial records and improved cash flow management.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Lets you apply customer or vendor advance payments (prepayments) against open invoices and bills directly from the invoice form, creating and reconciling the compensation entry automatically.

This module adds a way to settle invoices with money already received or paid in advance. On a posted customer invoice or vendor bill that still has an open balance, Odoo shows an "Advance Available" notice and a "Compensate Advance" button when the partner has an open prepayment entry.

Clicking the button opens a wizard where you pick the advance line, the invoice line to settle, the compensation date, the amount and the journal. The wizard only offers advance lines belonging to the same partner, posted and paid, sitting on a prepayment account that allows reconciliation, and with a remaining balance. The amount is pre-filled with the smaller of the two open balances and cannot exceed either of them.

When you confirm, Odoo creates and posts a journal entry that moves the amount between the prepayment account and the invoice's receivable or payable account, then reconciles both pairs of lines. If reconciliation fails, the links are removed and an error is shown.

To use it, a general journal must first be flagged as an advance journal in its Advance Settings tab. The feature is available to users with invoicing rights.

Depends on

account
Models and fields (4)
  • account.move · extends an existing modeladvance_invoice (Has Advance Payments)
  • account.journal · extends an existing modelis_advance_journal (Is Compensation Advance Journal)
  • account.move.line · extends an existing model
  • account.invoice.advance.compensation.wizard · new modeldate (Compensation Date), amount (Compensation Amount), move_id (Invoice), journal_id (Journal), currency_id (Currency), advance_balance (Available Balance), advance_line_id (Advance Line), invoice_line_id (Invoice Line), available_advance_line_ids

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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

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

terminal Installation and usage

OCA documentation · Odoo 18.0

Configuration Guide

Core Setup

  • Journal Configuration

Path: Accounting → Configuration → Journals For new journal:

  • Create → Type: Miscellaneous
  • Name: "Advance Compensation"
  • Code: ADV
  • Default Account: [Select prepayment account]
  • Advanced Settings → ☑ Is Advance Journal
  • Prepayment Accounts

Path: Accounting → Configuration → Chart of Accounts

  • Customer Advances:
  • Type: Current Assets
  • Name: "Advances Receivable"
  • ☑ Allow Reconciliation
  • Supplier Advances:
  • Type: Current Liabilities
  • Name: "Advances Payable"
  • ☑ Allow Reconciliation
  • Advance Product

Path: Inventory → Products

  • Name: "Advance Payment"
  • Type: Service
  • Accounting:
  • Income/Expense: [Linked to prepayment account]

This module allows you to manage advance payments and their compensation against regular invoices. It supports both customer and supplier invoices, with multi-currency capabilities.

Step-by-Step Process

  • Recording an Advance Payment
  • Create a new invoice with the "Advance" product
  • Register the complete payment for the advance invoice
  • The advance will be available for compensation once fully paid
  • Applying Compensation
  • Open the regular invoice (must be for the same partner)
  • Click the Compensate Advance button
  • In the compensation wizard:
  • Select available advance(s) from the left panel
  • Choose invoice lines to compensate on the right
  • Enter the compensation amount
  • Click Compensate to apply the compensation

Key Features

Supported Scenarios

  • Customer and supplier invoices
  • Partial compensation of advances
  • Multi-currency transactions
  • Multiple advance compensations per invoice

Prerequisites

  • Advance invoice must be fully paid
  • Regular invoice must be for the same partner
  • Accounts must be reconcilable
  • Proper journal configuration

Troubleshooting

Common Issues

  • Advance not appearing in compensation wizard
  • Verify the advance invoice is fully paid
  • Check if the partner matches
  • Confirm journal settings are correct
  • Compensation not working
  • Ensure accounts are properly configured
  • Check currency compatibility
  • Verify user has necessary permissions

No verified information in OCA: Installation.

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.