Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Accounting
  3. Invoice Partial Payment Reconciliation v 18.0
  4. Sales Conditions FAQ

Invoice Partial Payment Reconciliation

by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
Odoo

$ 99.01

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Invoicing (account)
• Discuss (mail)
Lines of code 370
Technical Name partial_payment_reconciliation_dh
LicenseOPL-1
Websitehttps://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Invoicing (account)
• Discuss (mail)
Lines of code 370
Technical Name partial_payment_reconciliation_dh
LicenseOPL-1
Websitehttps://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse
  • Description
  • License

Invoice Partial Payment Reconciliation

Register exact partial payments for customer invoices and vendor bills - single or multiple at once - with optional write-off for the remaining balance. Full control over every dollar.



Problem: Standard Payment Offers No Fine-Grained Partial Control

In standard Odoo Accounting, the Pay button opens the payment wizard which defaults to the full outstanding amount. While the amount field is editable, the workflow is designed around full settlement and lacks visibility into the per-invoice breakdown when paying several invoices at once.

This creates friction for real-world payment scenarios:

  • Customer pays a fixed instalment - e.g. 40% deposit on a large project invoice
  • Partial settlement with write-off - accept $800 in full and waive the remaining $200 as a discount
  • Multiple invoices, different partial amounts - pay $5,000 against Invoice A and $3,000 against Invoice B in one session
  • Vendor pre-payment - pay part of a supplier bill now and schedule the rest for later
  • Bad-debt write-off on partial - collect what's recoverable and write off the unrecoverable portion to a dedicated account


Solution: Dedicated Partial Payment Wizard with Per-Invoice Control

This module adds a "Partial Payment" button to every posted customer invoice and vendor bill. Clicking it opens a dedicated wizard that lists all selected invoices/bills with their full amount, amount due, and an editable Amount To Pay field per line. Enter any partial amount, choose whether to keep the difference open or write it off to an account, then click Validate. The module creates the payment entries, posts them, and reconciles each payment with its invoice automatically. The invoice status updates to In Payment (or Partial after bank reconciliation) and the payment is linked to the invoice for full traceability.



Key Features
  • Per-Invoice Amount To Pay: Set a precise partial amount for each invoice - not just a single lump sum
  • Customer Invoices & Vendor Bills: Works identically for both AR and AP documents
  • Single & Multi-Invoice Wizard: Process one invoice or select many from the list view - all handled in one wizard session
  • Keep Open Option: Leave the remainder as an outstanding credit/debit balance for future settlement
  • Write-Off Option: Post the payment difference directly to any GL account and mark the invoice as fully paid
  • Payment Difference Visibility: Wizard shows the difference per invoice in real time as you type
  • Standard Journal & Date: Choose the payment journal and date - fully compatible with Odoo's bank reconciliation
  • Automatic Reconciliation: Each payment is created, posted, and reconciled with the invoice's receivable/payable lines automatically
  • Payment Status Update: After payment the invoice shows In Payment (pending bank reconciliation) or Partial (Community) status, with the payment linked via the Payments smart button
  • Community & Enterprise: Pure server-side implementation - no JavaScript required, works on both editions


How It Works - Customer Invoice Partial Payment

Step 1 - Customer Invoice List

Navigate to Accounting -> Customers -> Invoices. You can open a single invoice or select multiple invoices to pay partially in one session.

Customer Invoice List

Step 2 - Open a Posted Invoice

Open any posted invoice with a Not Paid or Partial payment status. The full invoice details are shown - customer, lines, totals and amount due.

Invoice Form - Before Partial Payment

Step 3 - Click "Partial Payment"

The new Partial Payment button appears in the action bar alongside the standard Pay button. It is visible only for posted invoices/bills that are not yet fully paid.

Partial Payment Button Highlighted

Step 4 - Wizard Opens with Full Amount Pre-filled

The Register Partial Payment wizard opens. It shows the invoice with its Invoice Amount, Amount Due, and Amount To Pay (defaulting to the full outstanding amount). Payment details - journal, date, and memo - are on the left.

Wizard Opens with Default Full Amount

Step 5 - Enter the Partial Amount

Click on the Amount To Pay cell and type the exact partial amount you want to collect. The Payment Difference column updates instantly. The total payment amount in the Summary panel also reflects the new value.

Partial Amount Entered in Wizard

Step 6a - Payment Difference: Keep Open

When a difference exists, the Payment Difference section appears below the invoice lines. Selecting Keep Open records a partial payment - the invoice remains open with the remaining balance as an outstanding credit/debit that can be settled later.

Payment Difference - Keep Open Option

Step 6b - Payment Difference: Mark as Fully Paid (Write-Off)

Selecting Mark as Fully Paid reveals the write-off fields. Choose the GL account to post the difference (e.g. bad debt expense, early payment discount) and a label for the journal entry. The remaining balance is written off and the invoice is marked as fully paid.

Payment Difference - Write-Off Option

Step 7 - Validate the Payment

Click Validate to confirm. The module creates the payment journal entry, posts it, and reconciles it with the invoice's receivable line - all in one step.

Validate Button Highlighted

Step 8 - Payment Record Created

After validation, Odoo navigates to the newly created payment form. You can see the payment amount, journal, date, and the partner - ready for bank reconciliation in the usual way.

Payment Form After Partial Payment Created

Step 9 - Invoice Shows Payment Status

Back on the invoice, the status updates to reflect the registered payment. In Odoo 18 with the Accounting module, the invoice shows an In Payment ribbon until the payment is bank-reconciled. The Payments smart button at the top links to the payment record. The invoice remains open and the remaining balance can be settled at any time.

Invoice Showing In Payment Status After Partial Payment

Step 10 - Invoice Remains Open for Further Payments

The invoice stays open - the full Amount Due is displayed and the invoice is still accessible for additional payments. Click the Payments smart button at the top to review all payments registered against this invoice. You can apply further partial payments (or a full payment) at any time until the invoice is fully settled.

Invoice Remaining Open After Partial Payment - Further Payments Can Be Applied


Vendor Bill Partial Payment

Vendor Bills List

The same workflow applies to Accounting -> Vendors -> Bills. Select one or more unpaid vendor bills.

Vendor Bill List View

Partial Payment Button on Vendor Bill

Open any posted, unpaid vendor bill. The Partial Payment button appears in the action bar - identical placement to the customer invoice. Click it to open the wizard.

Partial Payment Button on Vendor Bill

Vendor Bill Partial Payment Wizard

The wizard opens for the vendor bill. The payment direction is automatically set to outbound (sending money). Enter the amount to pay this vendor now and validate - the remaining outstanding debit balance is kept for the next payment run.

Vendor Bill Partial Payment Wizard


Multi-Invoice Partial Payment - Process Multiple at Once

Select Multiple Invoices in the List

In the invoice list view, tick the checkboxes of two or more invoices for the same partner. The action bar updates to show the selected count.

Multiple Invoices Selected in List

Open via Action Menu

Click the Action menu (⚙ gear icon) in the list control panel and select Register Partial Payment. This opens the same wizard for all selected invoices at once.

Action Menu - Register Partial Payment

Multi-Invoice Wizard

The wizard populates a row for each selected invoice. Each row shows the Invoice Amount, Amount Due, and its own editable Amount To Pay field. You can set a different partial amount per invoice. The Total Payment Amount in the summary updates as you edit.

Multi-Invoice Wizard

Different Partial Amounts per Invoice

Enter individual partial amounts per invoice line. Each gets its own Payment Difference calculated live. Validate once to create all payments simultaneously - one payment record per invoice, each automatically reconciled.

Multi-Invoice with Different Partial Amounts


Installation & Configuration

  1. Install the Module: Copy the partial_payment_reconciliation_dh folder to your Odoo addons path
  2. Update App List: Go to Apps -> Update App List
  3. Install: Search for Invoice Partial Payment Reconciliation and click Install
  4. No Additional Configuration: The module works immediately after installation - no settings to configure
  5. Test: Open any posted, unpaid customer invoice or vendor bill and click the new Partial Payment button

Requirements: Odoo 18.0 · account module · Accounting user group (account.group_account_invoice)



Step-by-Step User Guide

Step 1 - Navigate to the Invoice or Bill

Go to Accounting -> Customers -> Invoices (or Vendors -> Bills for vendor bills). Open a posted invoice whose payment status is Not Paid or Partial.

Step 2 - Click "Partial Payment"

Click the Partial Payment button in the action bar. The wizard opens pre-loaded with the invoice and its full outstanding amount in Amount To Pay.

Step 3 - Set Payment Details

  • Journal: Select the bank or cash journal for the payment
  • Payment Date: Set the effective date of the payment
  • Memo: Optional reference for the payment journal entry
  • Currency: Shown in multi-currency setups; defaults to the invoice currency

Step 4 - Enter the Partial Amount

Click the Amount To Pay cell in the invoice row and type the exact amount to collect. The Payment Difference column updates in real time showing what remains. The amount must be greater than zero and cannot exceed the Amount Due.

Step 5 - Choose How to Handle the Difference

When a payment difference exists, the Payment Difference section appears:

  • Keep Open - Records a partial payment. The invoice stays open with the remaining balance as an outstanding credit/debit. Future payments (full or partial) can be applied later.
  • Mark as Fully Paid - Writes off the difference. Choose a GL account (e.g. bad debt, discount given) and a journal item label. The invoice is fully reconciled and closed.

Step 6 - Validate

Click Validate. For each invoice line, the module:

  1. Creates an account.payment record for the partial amount
  2. Posts the payment (generates the journal entry)
  3. Reconciles the payment's receivable/payable line with the invoice's matching line
  4. If write-off is selected, adds a write-off entry to fully close the invoice

After validation, Odoo opens the created payment record.

Tips for Multi-Invoice Payments
  • Select invoices for the same partner in the list view before opening the wizard
  • Use the Action -> Register Partial Payment menu item from the list view
  • Each invoice row in the wizard has its own editable Amount To Pay - set them independently
  • Validate once to create all payments in a single operation
Validations Applied
  • Only posted invoices or bills are accepted (draft/cancelled are rejected)
  • Documents must be Not Paid or Partial - already paid invoices are excluded
  • Cannot mix customer and vendor documents in one session
  • All selected documents must belong to the same partner
  • Amount To Pay must be > 0 and ≤ Amount Due per invoice


Common Use Cases

Deposit & Instalment Plans

Collect a 30% deposit on invoice creation, then 70% on delivery. Each payment is recorded and reconciled as a separate partial payment.

Early Payment Discounts

Accept 98% of the invoice as full settlement for early payment. Pay the discounted amount and write off the 2% to a discount expense account.

Bad Debt Write-Off

Recover $600 of a $1,000 invoice and write the remaining $400 off to a bad debt expense account. Invoice is closed in one step.

Bulk Vendor Pre-Payment

Select multiple vendor bills, pay each a different partial amount in one wizard session to match the cash available for the payment run.

Customer Dispute Settlement

Customer disputes $200 on a $1,500 invoice. Accept $1,300 as full settlement and write off the $200 to a dispute resolution account.

Progressive Project Billing

Issue a single project invoice for the full scope and receive payments milestone by milestone, each recorded as a partial settlement.



Business Benefits

Accurate Cash Forecasting

Each partial payment is immediately reflected in the AR/AP aging report - your cash flow forecast stays accurate even for instalment-based collections.

Clean Audit Trail

Every partial payment creates a proper journal entry and reconciliation record. Auditors can trace each payment back to the source invoice with full detail.

Flexible Write-Off Management

Post payment differences to any GL account - bad debt expense, discount given, rounding differences - without creating manual journal entries.

Efficiency - Batch Processing

Process partial payments for multiple invoices in one session instead of opening each invoice individually. Ideal for weekly payment run workflows.


Need Assistance or Have a Feature Request?

Contact Support


Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with