Apply a Customer Prepayment to a Later Invoice in Odoo · Calibre Consulting

Apply a customer prepayment to a later invoice.

Record a customer prepayment in Odoo 19, keep the bank match, and apply the credit to the invoice when you bill the order.

This guide shows how to handle a customer prepayment that reaches your bank before the invoice exists: record it, let the bank transaction match it, and apply it to the invoice once you bill the order. The short answer: keep the bank match. Matching the bank transaction only confirms that the money arrived, and the amount stays on the customer's account as an open credit. When you confirm the invoice, Odoo lists that credit under Outstanding credits, and clicking Add settles the invoice. You do not need to delete the bank transaction or register a second payment.

It is written for bookkeepers whose customers pay before goods ship. The steps were verified on Odoo 19 Enterprise.

Before you start

Why the payment looks used up

A prepayment goes through two separate matches. The first ties the bank transaction to the payment and proves the money arrived. The second ties the payment to an invoice and settles what the customer owes. They are independent, so the first can happen days before the second.

A confirmed customer payment has the status In Process. Once the bank transaction is matched to it, the status changes to Paid. That status describes the bank side only. Until an invoice takes the money, the amount stays as a credit on the customer's receivable account, which is where the invoice looks for it.

This holds for either bank journal setup. If the journal's incoming payment method has an Outstanding Receipts account, the payment posts to it straight away and the bank match clears it. If it has none, the payment has no journal entry until the bank match, and at that point Odoo books the unapplied amount to the customer's receivable account.

Record the prepayment when it arrives

  1. Open the Accounting app and go to Customers > Payments, then click New.
  2. Choose the Customer, enter the Amount, select your bank in Journal, and put the order reference in Memo so the payment is easy to recognise later.
  3. Click Confirm. The payment now shows In Process.

Let the bank transaction match the payment

  1. Open the Accounting app. On the dashboard, find your bank journal's card and click the button that shows how many transactions are left to reconcile.
  2. Find the incoming transaction. Odoo often matches it to the payment by itself when the details line up. If it has not, use the transaction's Reconcile button to search the open journal items for this customer. When the journal uses an Outstanding Receipts account, the payment's line is among them.
  3. Open the payment again. Its status is now Paid.

Leave the transaction as it is. Even though the invoice does not exist yet, nothing needs to be undone.

Apply the credit on the invoice

  1. Create the customer invoice as usual, from the sales order or from Accounting > Customers > Invoices, and click Confirm.
  2. A banner appears at the top of the invoice saying that this customer has outstanding credits listed below.
  3. Scroll down to the totals. Under the Outstanding credits heading, the prepayment is listed with its date and reference, with an Add button beside it.
  4. Click Add. The Amount Due drops by the amount of the prepayment.

Use Add rather than the Pay button at the top of the invoice. Pay opens the window for registering a new payment, so the customer would end up with two payments for one order.

Check that it worked

Working from the bank feed only

Some teams skip recording the payment and work straight from the bank transactions. In bank reconciliation, open the incoming transaction, click Set Partner and choose the customer, then click Receivable. The amount is booked to that customer's receivable account as a credit and appears under Outstanding credits on their next invoice, exactly as above. The drawback is that the prepayment does not exist in Odoo until the bank transaction arrives.

Common mistakes to check first

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

How do I apply a customer prepayment to an invoice in Odoo 19?

Confirm the invoice, then scroll to the totals. The prepayment is listed under Outstanding credits, and clicking Add next to it applies it to the invoice.

Why does my Odoo payment show Paid when no invoice is attached?

In Odoo 19, a customer payment changes from In Process to Paid once its bank transaction is matched. That only confirms the bank side; the amount stays on the customer's account as a credit until an invoice uses it.

Do I need to delete the bank transaction to apply a prepayment in Odoo?

No. The bank match and the invoice match are separate. Leave the bank transaction matched and apply the credit from the invoice with Add.

Why does a customer prepayment not show under Outstanding credits?

Odoo only lists credits on the same receivable account and the same customer as the invoice. If the bank journal has no Outstanding Receipts account, the payment also appears only after its bank transaction has been matched.

Can I use the Pay button on the invoice for a prepaid order?

It is better not to. Pay registers a new payment, so the customer would have two payments for one order, while Add uses the credit already on their account.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →