How to Configure Payment Terms in Odoo 18 Accounting: Complete Guide
By Braincuber Team
Published on February 28, 2026
A $2.4M-revenue skincare brand we onboarded last year had $38,700 in overdue invoices because nobody configured payment terms properly. Every invoice went out with "Due on Receipt"—which customers interpreted as "pay whenever." No installment splits, no early payment incentives, no automated due dates. Their AR person was copy-pasting due dates into an Excel tracker *(yes, with VLOOKUPs)*. Odoo 18's payment terms engine handles all of this automatically—installments, early discounts, due date math—so your invoices actually get paid on schedule. This beginner guide is the complete tutorial.
What You'll Learn:
- How to create and configure payment terms in Odoo 18
- Setting up installment-based payment schedules
- Configuring early payment discounts to incentivize faster payments
- Assigning default payment terms to customer contacts
- How payment terms auto-populate on invoices and sales orders
- Processing installment payments and tracking partial payments
Why Misconfigured Payment Terms Drain Your Cash Flow
Payment terms aren't just legal text on an invoice. They're the rules that determine when money hits your bank account. Set them wrong, and you've got customers paying Net 60 when you need Net 15. Set them right, and Odoo calculates due dates, splits installments, and even tracks early payment discounts—automatically. No more Excel due-date trackers.
Automated Due Dates
Odoo calculates due dates from the invoice date based on payment term rules. No more typing dates manually into 47 invoices every month. We've seen teams save 6.5 hours/week just by eliminating manual due date entry.
Installment Splits
Split a $10,000 invoice into 4 installments of $2,500 each with different due dates. Odoo tracks each installment separately—partial payments, remaining balances, and specific due dates per installment.
Early Payment Discounts
Offer 2-10% discounts for fast payments. Odoo auto-calculates the discounted amount and posts the discount loss to the correct journal account. Customers pay 7-12 days faster on average when you enable this.
Customer Default Terms
Assign payment terms directly on customer contacts. Every invoice and sales order for that customer auto-inherits the terms. No more forgetting to set Net 30 on a wholesale client's invoice.
Create and Configure Payment Terms
Payment terms live under the Accounting module's configuration. Each term defines the percentage of the invoice due at specific intervals—immediately, 30 days later, 60 days later, or any custom schedule. You can stack multiple due lines to create installment plans.
Navigate to Payment Terms
Open the Accounting module. Go to Configuration > Payment Terms. You'll see a list of all existing payment terms. Odoo ships with a few defaults like "Immediate Payment" and "30 Net Days"—but they're almost never enough for real D2C operations.
Create a New Payment Term
Click New. Fill in the Payment Term name (e.g., "25% Now + 75% in 30 Days"). Select the Company this term applies to. The Due Terms section below is where the real configuration happens—each line defines a portion of the invoice amount and when it's due.
Configure Due Term Lines
In the Due Terms section, add your installment lines. For each line, set the percentage of the invoice (e.g., 25%), the due type (Days after invoice date, End of month, etc.), and the number of days. For example: Line 1 = 25% due 0 days after invoice. Line 2 = 75% due 30 days after invoice. Enable Show Installment Dates to preview the calculated due dates.
| Field | Purpose | Watch Out |
|---|---|---|
| Payment Term Name | Label shown on invoices and sales orders | Make it descriptive—"Net 30" tells your customer nothing about installments |
| Company | Restricts the term to a specific company in multi-company setups | Leave blank for terms that apply across all companies |
| Early Discount | Checkbox to enable % discount for early payments | Only works with single-line due terms—not installment splits |
| Due Terms | Defines percentage and timing of each payment portion | Percentages must total 100%. Odoo won't warn you if they don't |
| Show Installment Dates | Previews calculated due dates on the invoice | Useful for customer-facing invoices where clarity matters |
Assign Payment Terms to a Customer
Open the customer's contact form. Navigate to the Sales & Purchase tab. In the Payment Terms field, select the term you just created (e.g., "25% Now + 75% in 30 Days"). Click Save. From now on, every invoice and sales order for this customer will automatically use these terms—no manual selection needed.
Create an Invoice Using the Payment Terms
Go to Accounting > Customers > Invoices and click New. Select the customer. The payment term assigned to the contact auto-populates in the Payment Terms field. Add your invoice lines and click Confirm. Odoo splits the invoice amount according to your term rules and calculates the due dates automatically.
Process Installment Payments
Open the confirmed invoice and click Pay. The payment popup shows the first installment amount automatically (e.g., $250 on a $1,000 invoice with 25% due immediately). Click Full Amount to switch to the total, or keep it as Installment. Click Create Payment. The invoice status changes to Partially Paid. Repeat for subsequent installments.
Don't Ignore the "Payments in Progress" Warning
When you click Pay a second time on an installment invoice, Odoo shows a warning: "There are payments in progress. Make sure you don't pay twice." Click Check Them to review existing payments before creating a duplicate. We've seen brands accidentally double-pay $4,200 installments because they skipped this warning. Really expensive mistake.
Configure Early Payment Discounts
Early discounts incentivize customers to pay faster. Offer 5% off if they pay within 10 days instead of the full 30. Odoo handles the math: calculates the discount, applies it at payment time, and posts the discount loss to the right journal account. But the early discount feature only works with single-line due terms—not multi-installment splits. *(Yes, this catches people off guard.)*
Enable Early Payment Discount
Create or edit a payment term. Enable the Early Discount checkbox. Set the Discount Percentage (e.g., 10%) and the Discount Days (e.g., 10 days). The due term must be a single line with 100% due. Odoo will apply the discount only if the customer pays within the discount window.
Invoice with Early Discount Applied
Create a new invoice using the early-discount payment term. Confirm the invoice. When you click Pay, the payment popup shows the discounted amount if the payment date is within the discount window. For a $1,000 invoice with 10% early discount, you'll see $900. If the payment date exceeds the discount days, the full $1,000 appears instead.
Review the Discount Journal Entry
After payment, open the journal entry. The $100 early discount (on a $1,000 invoice at 10%) is posted as a debit to the Cash Discount Loss account. This keeps your P&L accurate. Check the default discount accounts under Accounting > Configuration > Settings > Default Accounts—you'll find both Early Discount Loss and Early Discount Gain account fields there.
Verify the Complete Payment Cycle
After all installments are paid, the invoice status changes to In Payment and the Amount Due shows $0. Check the invoice's Payments smart tab to see a full breakdown of each installment—dates, amounts, and journal entries. In the Invoice List view, the due date column reflects the final installment date configured in your payment terms.
COMMON PAYMENT TERM CONFIGURATIONS:
Immediate Payment = 100% due, 0 days after invoice
Net 15 = 100% due, 15 days after invoice
Net 30 = 100% due, 30 days after invoice
2/10 Net 30 = 2% discount if paid within 10 days, full amount due in 30
50/50 Split = 50% immediate + 50% at 30 days
25/25/25/25 Quarters = 25% at 0, 30, 60, 90 days
EARLY DISCOUNT RULES:
- Only works with single-line due terms (not installments)
- Discount auto-applied when payment date < discount days
- Discount loss posted to Cash Discount Loss account
- Configure default accounts: Accounting > Settings > Default Accounts
Early Discount + Installments Don't Mix
If you enable the Early Discount checkbox on a payment term with multiple due lines, the discount won't apply correctly. Early discounts are designed for single-line terms only (e.g., "100% due in 30 days"). If you need installments and discount incentives, create two separate payment terms and apply them based on the customer relationship.
Frequently Asked Questions
How do I create a payment term in Odoo 18?
Go to Accounting > Configuration > Payment Terms, click New, name the term, add due lines with percentages and day counts, then save. Assign it to customers via their contact's Sales & Purchase tab.
Can I set different payment terms for different customers in Odoo 18?
Yes. Open each customer's contact form, go to the Sales & Purchase tab, and select a specific payment term. That term auto-applies to every new invoice and sales order for that customer.
How does early payment discount work in Odoo 18?
Enable the Early Discount checkbox on a single-line payment term, set the discount percentage and maximum days. If the customer pays within the window, Odoo applies the discount automatically and posts the loss to the Cash Discount Loss account.
Why is my early discount not applying on the invoice?
Two common causes: the payment date exceeds the discount days window, or the payment term has multiple due lines (installments). Early discounts only work with single-line terms where 100% is due in one payment.
How do installment payments show on an Odoo 18 invoice?
After each partial payment, the invoice status shows "Partially Paid" with the remaining amount due. The Payments smart tab lists every installment with date, amount, and journal reference. Once all installments are paid, the status changes to "In Payment."
Need Help Configuring Odoo 18 Payment Terms?
Our team configures payment terms, installment schedules, early discounts, and automated invoicing workflows—so your AR stops leaking cash and customers pay on your terms, not theirs.
