Running an HVAC business with Odoo
How do I record full or partial customer payments in Odoo?

Record partial and final Odoo customer receipts, verify the invoice balance and distinguish Paid/Reconciled labels from outstanding bank settlement.
Alex records two fictional receipts against the HVAC invoice from the previous lesson. A $50 partial payment leaves $121.72 due; recording the remaining $121.72 changes the invoice to Paid. We also check what those labels mean: the invoice receivable is matched, while both amounts remain in Outstanding Receipts awaiting separate bank review.
Alex Rivera and Demo Air HVAC are fictional training examples. Prices, dates, quantities and business situations in this guide are illustrative.
Before you begin
Tested in stock Odoo 20.0-20260926 Community as the demo owner administrator, with official modules and standard configuration. Use the posted $171.72 invoice from the posted time-and-materials invoice and the existing bank journal from the existing bank journal. The tested invoice is INV/2026/00001, billed to Demo Property H08, Billing Office H08, in USD. Its initial Amount Due is $171.72 and it has no customer payments. Demo Operating Bank H73 uses the existing Manual Payment method and fictional DEMO-H73-ACCOUNT - Demo Bank H73 company account. Prepare two explicitly synthetic receipt inputs for October 14, 2026: $50/reference DEMO-H56-RECEIPT-001 and $121.72/reference DEMO-H56-RECEIPT-002. They are scenario data, not evidence that real money arrived. In your business, independently confirm each actual receipt and use its real amount, date and reference before recording it.
Step-by-step workflow
Record two distinct synthetic receipts, verify the partial and final invoice balances, and review what remains outstanding. Recording these amounts initiates no bank transfer and completes no bank-statement reconciliation.
Step 1. Check the invoice and existing receipts
Continue from H54’s posted invoice. Check INV/2026/00001, the billing customer, USD, Total: $171.72 and Amount Due: $171.72. Its original 1.50 Hours and two filters remain unchanged. Inspect any existing payment links before entering a receipt; a reminder, screenshot or promise to pay is not confirmation of money received.




Step 2. Open the native payment dialog
Click Pay. In the Pay dialog, check Journal: Demo Operating Bank H73, the fictional Recipient Account, Amount, Payment Date and Memo. This dialog initially proposes the full $171.72 balance. The tested setup has one inbound method, Manual Payment, which is visible on the resulting payment record; it did not show a separate method picker in this dialog.




Step 3. Record the first confirmed amount once
Change Amount to 50.00 and Memo to DEMO-H56-RECEIPT-001. Verify Payment Date: Oct 14 (October 14, 2026). The example retained that displayed date; a different receipt date must use its actual value. Click Create Payment once and wait for the dialog to close and the invoice to update. Do not click again while it is processing.








Step 4. Verify the partial balance and linked payment
The invoice now shows Partial Customer Invoice, a Paid on 10/14/2026 $50.00 row and Amount Due: $121.72. Open 1 Payments. The native record is PBNK1/2026/00002, type Receive, customer Billing Office H08, amount $50, date Oct 14, the chosen memo, journal and Manual Payment method. At this partial checkpoint its payment status was Paid, while the invoice remained Partially Paid. These are different records.














Step 5. Return to the same invoice for the separate remaining receipt
Use the payment’s 1 Invoice button to return to the original invoice. Check that its balance is still $121.72 and the $50 receipt is already listed. After the second independently confirmed receipt, click Pay again. The dialog now proposes 121.72, the remaining balance. Retain the correct journal/date, enter DEMO-H56-RECEIPT-002 in Memo, and click Create Payment once. This creates a separate receipt, not an edit or replacement of the first one.











Step 6. Compare the final invoice and both payments
Wait for the refreshed invoice, then reload it. It shows Paid Customer Invoice, two paid rows ($50 and $121.72) and Amount Due: $0.00. 2 Payments opens exactly two customer receipts totalling $171.72: PBNK1/2026/00002 and PBNK1/2026/00003. Open the second record and check its $121.72 amount, date, memo and same journal. Both payment records now show Reconciled in this runtime. The zero-balance invoice no longer shows Pay.













Step 7. Keep invoice matching and bank settlement separate
The saved accounting check found the $171.72 invoice receivable fully matched by the two receipt credits. It also found separate Outstanding Receipts debits of $50 and $121.72 still unmatched, with no entry on the Bank account from these registrations. No bank statement, bank feed or settlement matching was performed. Therefore this guide’s Paid invoice and Reconciled payment labels establish the demonstrated invoice matching, not confirmation that a bank statement has been reconciled. Carry the unmatched amounts into your separate bank-review process.














Step 8. Reopen before leaving the receipt workflow
Reopen the payment and invoice and compare the same two receipts, $171.72 total and zero invoice balance. Check the references against your receipt records before entering anything else. Reopening retained the original invoice lines and two payments; it did not add a third receipt. A standalone duplicate-payment attempt was not tested. The earlier supplier bill/payment and the source time, orders and stock remain separate records.









Check the result
The same posted $171.72 invoice progresses from unpaid to Partially Paid with $121.72 due, then Paid with $0 due. Two October 14 Receive payments retain their $50/$121.72 amounts, distinct references and the existing Manual Payment journal. Their credits fully match the invoice receivable; both final payment records show Reconciled. The $171.72 in Outstanding Receipts remains unmatched, and no Bank-account entry or bank reconciliation was created. Reopen checks retained exactly two customer receipts, the original invoice lines and the earlier supplier balance of $37.24.
If your screen differs
The journal’s inbound method had no explicit payment-account mapping, but the stock configuration selected Outstanding Receipts for both entries. Do not assume an empty mapping prevents recording or change accounts solely to force a status. The tested final invoice state is Paid and payment states are Reconciled despite the unmatched outstanding entries. Another configuration may behave differently; investigate its actual entries and residuals. This test did not exercise write-offs, overpayments, refunds, a different payment date, another user role or standalone duplicate creation. It made no external charge or transfer. For an incorrect receipt, review the posted records and correction process before changing anything; the full reversal procedure belongs to a separate verified workflow.
Frequently asked questions
How do I record a partial customer payment in Odoo?
Open the posted invoice, verify the customer and current amount due, then use Pay. Select the correct journal, enter the independently confirmed receipt amount/date/reference and click Create Payment once. In this test, $50 against $171.72 left $121.72 due and one linked receipt. Record the later remaining receipt separately.
Why does Odoo show Paid before I reconcile the bank?
In this tested setup, the two receipt credits fully matched the invoice receivable, so the invoice showed Paid and both payment records showed Reconciled. Their $50 and $121.72 Outstanding Receipts debits were still unmatched, with no Bank-account entry from payment registration. Check the actual ledger and bank evidence; these labels alone do not establish completed bank-statement reconciliation.Does registering a payment in Odoo transfer money?
The native Manual Payment procedure demonstrated here records the receipt and its invoice matching. It did not initiate a bank transfer, collect a card payment or connect to a bank. Confirm actual receipt independently and complete bank review separately. The example amounts and references are wholly fictional training inputs.Continue building the business
Continue with Can I accept online invoice payments in Odoo?. Online checkout and provider settlement are separate from manually recording an independently confirmed receipt. Bank reconciliation is also a separate workflow; the remaining outstanding entries are deliberately visible here.
Talk to an Odoo partner
Bring your current process and the result you need to Onward to plan your Odoo workflow. Talk to an Odoo partner.