Payments¶
In Odoo, payments can either be automatically linked to an invoice or bill or be stand-alone records for use at a later date:
If a payment is linked to an invoice or bill, it reduces/settles the amount due on the invoice. Multiple payments on the same invoice are possible.
If a payment is not linked to an invoice or bill, the customer has an outstanding credit with the company, or the company has an outstanding debit with a vendor. Those outstanding amounts reduce/settle unpaid invoices/bills.
See also
Payment methods¶
Several payment methods are available in Odoo to allow different configurations for different types of payments. Examples of payment methods include manual payments (such as cash), checks, and online payment providers. Payment methods can be configured in the Incoming Payments and Outgoing Payments tabs of a bank or cash journal.
See also
Payment methods for Point of Sale
Preferred payment method¶
A contact’s preferred payment method can be set so that when a payment is created for that contact, the payment method is automatically selected by default. Invoices and bills can be filtered by Payment Method to simplify group payments.
To set a preferred Payment Method for a customer or a vendor, go to or and select the customer or vendor. In the Sales & Purchase tab of the contact form, select the preferred Payment Method in the Sales section for invoice payments or for vendor bill payments in the Purchase section.
Tip
Access a full list of all contacts from the Customers or Vendors list view by removing the Customers or Vendors filter. Alternatively, access the full contact list through the Contacts app.
Checks¶
Vendor bills can be paid by check using a dedicated outgoing payment method, which allows check numbers to be tracked and checks to be printed directly from Odoo.
For incoming customer check payments, you can use the default Manual Payment payment method, or you can create a payment method specifically for checks to help identify such payments quickly. To create a Check payment method, follow these steps:
Go to and select the Bank journal.
In the Incoming Payments tab, click Add a line.
As Payment Method, select Manual, then enter
Checkas the Name.
When registering a customer payment on an invoice or not related to an invoice, use the new Check payment method.
Note
Registering a customer payment by check in Odoo does not move funds. Checks must be deposited in order to make the payment. Once deposited to your bank, the check should appear as a bank transaction, at which point it can be reconciled with the registered payment.
Tip
For best practice, enter the check number as the Memo when registering a customer payment by check.
Registering payment from an invoice or bill¶
To register a payment for an invoice or a bill, follow these steps:
Click Pay on a customer invoice or vendor bill. In the Pay window, select the Journal and the Payment Date.
If previously set, the contact’s preferred Payment Method is automatically selected by default but can be updated if necessary.
If using payment terms, the Amount is automatically set based on the installment amounts defined by the payment term. To pay the full amount instead, click full amount in the message below the amount.
If necessary, edit the Memo.
Click Create Payment.
After the payment is registered, the customer invoice or vendor bill is marked as In payment.
If no outstanding accounts are configured, no journal entry is created. To display more information about the payment, click the Payments smart button.
When the invoice or vendor bill is reconciled with a bank transaction, its status is updated to Paid.
Note
If a bank transaction is reconciled in a different currency, a journal entry is automatically created to post the currency exchange gains/loss amount.
When a bank transaction is reconciled with an invoice with cash-basis, a journal entry is automatically created to post the cash-basis tax amount.
By default, payments in Odoo do not create journal entries, but they can easily be configured to create journal entries using outstanding accounts.
Registering a payment on a customer invoice or vendor bill generates a new journal entry and reduces the Amount Due based on the payment amount. The counterpart is reflected in an outstanding receipts or payments account. At this point, the customer invoice or vendor bill is marked as In payment. Then, when the payment is reconciled with a bank transaction, the invoice or vendor bill status changes to Paid.
The information icon next to the payment line displays more information about the payment. To access additional information, such as the related journal, click View.
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a paid invoice)
- shows
- Totals block with the payment line ("Paid on …") and the opened information popover showing the payment details and the "View" button.
- highlight
- The information icon and the popover (red frame).
- data
- Demo invoice with a registered payment; outstanding accounts configured.
- module
- account
- notes
- English UI, light theme, crop to the totals block.
Note
Unreconciling a payment unlinks it from the invoice or bill but does not delete the payment.
If a payment is (un)reconciled in a different currency, a journal entry is automatically created to post the currency exchange gains/losses (reversal) amount.
If a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is automatically created to post the cash-basis tax (reversal) amount.
Tip
If the main bank account is set as the outstanding account on the bank journal’s payment method, registering the full payment on an invoice or bill moves the invoice/bill directly to the Paid status without requiring bank reconciliation.
Registering payments not tied to an invoice or bill¶
When a new payment is registered via , it is not directly linked to an invoice or bill.
Payments that are not linked to an invoice or bill should not be registered without using outstanding accounts, as there is no way to associate the payment with the invoice or bill since no journal entry is created for the payment. The amount paid or received is not reflected in the accounting and the Amount Due is not updated based on the payment amount.
Instead, the payment’s journal entry matches the outstanding account with the account receivable or the account payable until the payment is manually matched with its related invoice or bill. Then, reconciling the payment with the bank transaction completes the payment workflow.
Payments matching¶
Note
During the bank reconciliation process, a remaining balance is identified if the total debits and credits do not match when records are compared with bank transactions. This balance must either be reconciled later or written off immediately.
For a single invoice or bill¶
By default, payments in Odoo do not create journal entries. As a result, there is no payment to match.
A blue banner appears when validating a new invoice/bill and an outstanding payment exists for this specific customer or vendor. To match it with the invoice or bill, click Add under Outstanding Credits or Outstanding Debits.
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a posted invoice)
- shows
- Totals block of a posted invoice with the "Outstanding Credits" section listing a customer payment and its "Add" button.
- highlight
- The "Add" button (red frame).
- data
- Demo customer with a registered payment not yet linked to the invoice; outstanding accounts configured.
- module
- account
- notes
- English UI, light theme, crop to the totals block.
The invoice or bill is then marked as In payment until the payment is reconciled with its corresponding bank transaction(s).
For multiple invoices or bills¶
The Reconcile tool (provided by the Account Reconcile Oca module) allows reconciling journal items with each other (i.e., payments with customer invoices or vendor bills, or miscellaneous journal items), account by account and partner by partner. To open it:
go to : each card groups the unreconciled journal items of an account (and partner);
click Reconcile on an account line of the chart of accounts (for accounts that allow reconciliation), or use the Reconcile action of a contact form;
or select journal items of the same account in and click .
In the reconciliation view, select the journal items to match. When the selected debits and credits are balanced, click Reconcile. Use Clean to clear the selection. If a difference remains, it can be kept open or written off to another account before reconciling.
- menu
- Accounting ‣ Accounting ‣ Reconcile ‣ (open a partner card)
- shows
- Reconciliation view of the receivable account of a customer: the unreconciled invoices and payments on the left, the selected items and the balance on the right, with the "Reconcile" and "Clean" buttons.
- highlight
- The "Reconcile" button (red frame).
- data
- Demo customer with two open invoices and one payment covering both.
- module
- account_reconcile_oca
- notes
- English UI, light theme, 1440px width.
Note
Only journal items of the same account can be reconciled together.
Registering payments on multiple invoices/credit notes or bills/refunds (group payments)¶
To register payments on multiple invoices/credit notes or bills/refunds, follow these steps:
Go to or .
In the list view, click into the search bar, group by Payment Method, select the relevant invoices/credit notes or bills/refunds and click Pay.
In the Pay window, select the Journal and the Payment Date.
If previously set, the contact’s preferred Payment Method is automatically selected by default but can be updated if necessary.
If using payment terms, the Amount is automatically set based on the installment amounts defined by the payment term. To pay the full amount instead, click full amount.
To combine all payments from the same contact into a single payment, enable the Group Payments option, or leave it unchecked to create separate payments.
Click Create payment.
The invoices or bills are then marked as In payment until they are reconciled with the bank transactions.
The invoices or bills are then marked as In payment until the bank transactions are reconciled with the payments.
Registering a partial payment¶
To register a partial payment, click on Pay from the related invoice or bill.
In the case of a partial payment (when the Amount paid is less than the total remaining amount on the invoice or the bill), fill in the Amount in the Pay window.
In the case of a partial payment (when the Amount paid is less than the total remaining amount on the invoice or the bill), the Payment Difference field displays the outstanding balance. There are two options:
Keep open: Keep the invoice or the bill open and mark it with a Partial banner;
Mark as fully paid: Select an account in the Post Difference In field and change the Label if needed. A journal entry will be created to balance the accounts payable or receivable with the selected account.
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a posted invoice) ‣ Pay
- shows
- "Pay" dialog with an amount lower than the amount due, the "Payment Difference" and the "Keep open" / "Mark as fully paid" options; "Mark as fully paid" selected with the "Post Difference In" account and "Label" fields.
- highlight
- The payment difference options (red frame).
- data
- Invoice of 1,000 paid 990.
- module
- account
- notes
- English UI, light theme, crop to the dialog.
Reconciling payments with bank transactions¶
Once a payment has been registered, the status of the invoice or bill is In payment. The next step is reconciling the related bank transaction line with the invoice or bill to finalize the payment workflow and mark the invoice or bill as Paid.
Once a payment has been registered, the status of the invoice or bill is In payment. The next step is reconciling the payment with the related bank transaction line to finalize the payment workflow and mark the invoice or bill as Paid.
Recurring payments¶
The Odoo 18 Recurring Payment (om_recurring_payments) module creates payments at regular
intervals, e.g., for rents or subscriptions paid by bank transfer.
Go to and create a template: enter a Name, the Journal, the recurring period (days, weeks, months, or years) and Recurring Interval, and whether the payments are generated as Un Posted or Posted (Generate Journal As). Click Done to activate the template.
Go to and create a recurring payment: select the Recurring Template, the Partner, the Payment Type (Send Money or Receive Money), the Amount, and the Start Date and End Date.
Click Done. The planned payments are listed in the Recurring Entries tab.
A scheduled action creates the payments of the lines whose date has passed. A payment can also be created manually with the Create Payment button of a line. To modify the recurring payment, click Set To Draft (only possible if no payment has been created yet).
- menu
- Accounting ‣ Configuration ‣ Recurring Payment ‣ Recurring Payment ‣ (open a record)
- shows
- Recurring payment form in "Done" status: template, partner, payment type "Send Money", amount, journal, date range, period and interval; "Recurring Entries" tab with monthly lines and their status and "Create Payment" buttons.
- highlight
- The "Recurring Entries" tab (red frame).
- data
- Monthly office rent of 350,000 HUF for 12 months.
- module
- om_recurring_payments
- notes
- English UI, light theme, 1440px width.