Each task below is short on purpose: do it once on a test record, check the stated result, and only then repeat it on real data. Work through them in order if you are setting up a new database, or jump to the task you need from the contents.
1. How to issue an Odoo credit note
A posted invoice is corrected with a credit note. The credit note is not itself the bank payment.
Open the posted invoice
Go to Accounting → Customers → Invoices and open the invoice you need to correct. Click Credit Note.
Odoo documents the credit note as the way to cancel, refund, or modify a validated invoice. Enter a reason the customer and your accountant can both understand.
Choose how to reverse it
Reverse opens a draft credit note copied from the invoice. Change the product or quantity when only part of the invoice is wrong, then click Confirm.
Reverse and Create invoice validates the credit note, reconciles it with the invoice, and opens a new draft invoice copied from the original. Use that when the whole invoice should be replaced.
Confirm it and record any refund
Confirm the draft if you used Reverse. The credit note number starts with R and the related invoice number, such as RINV/2025/0004 for INV/2025/0004.
Register a payment when you actually return money. If the customer is returning stored goods, validate that return as well. The credit note alone does not move stock or cash.
Record a vendor refund
Open Accounting → Vendors → Bills, open the bill, and click Credit Note. To start from a blank document, use Accounting → Vendors → Refunds and click New.
Common questions
Can I delete a posted invoice instead?
Use the credit note. Odoo documents that as the way to cancel or change a validated invoice.
What if only one line is wrong?
Click Reverse, edit the product or quantity on the draft credit note, then confirm it.
Does the credit note send the money back?
No. Confirm the credit note, then register a payment when you refund the customer.
Odoo documents customer and vendor credit notes in the Odoo 19 credit notes page.
2. How to set Odoo payment terms on an invoice
Payment terms decide when the invoice is due. The due date on a draft invoice is the check.
Create a term
Open Accounting → Configuration → Payment Terms and click New. Name the term, then add a Due Terms line for the full amount due after 30 days. A name alone does not set the due date. Save it.
Assign the customer
Open the customer, go to the Sales & Purchase tab, and set that payment term. Save the customer before you create the invoice.
Check the due date
Create a draft customer invoice dated today. The due date should follow the Due Terms line. If it is blank or today, the line was not added.
Do not hide a one-off change
If this invoice needs a different due date, change it on the invoice and leave a note. Do not change the customer’s term for a single exception.
Common questions
Does the term collect the money?
No. It only sets the due date. Record a payment when money arrives.
Can a vendor bill use terms too?
Yes. Set terms on the vendor if you want the bill due date to follow them.
What if due dates are already wrong on old invoices?
Leave posted invoices as they are. Fix the term, then check the next draft.
Odoo documents terms and due-date lines in the Odoo 19 payment terms page.
3. How to reconcile one Odoo bank transaction
Reconciliation connects a bank line to the invoice, bill, or payment it settles. Match one line and check the result before you clear the rest.
Open the unmatched bank lines
On the Accounting dashboard, click the bank journal’s to reconcile button. That list hides lines that are already matched. Click the journal name instead when you need every transaction.
This guide starts after the statement lines are already in the journal. How they arrive depends on the bank and the apps installed.
Match the line to a document
Expand the line and click Reconcile. Select the customer invoice, vendor bill, or payment, then click Select. If the line has a partner, the list is limited to that partner.
When no partner is set, Odoo can compare the line label with invoice, bill, and payment references. When a partner is set, it tries an exact amount, then an early-payment discount, then an amount written in the label.
Deal with a difference
If the bank amount is lower than the document, the line can be fully matched while the document stays partly open. Edit the line and choose fully paid only when the difference should close the document.
If the bank amount is higher, the remainder stays on the bank line. Match another document, or use Set Account or a reconciliation model for a fee that has no invoice.
Check the match and undo it if needed
A matched line shows the counterpart instead of the suggestion buttons. The suspense account on that move is replaced by the counterpart account.
To undo it, expand the line and delete the counterpart items. Do that before you close the period if the match was wrong.
Common questions
Can one payment close two invoices?
Yes. Click Reconcile and select both items. Match or write off whatever balance remains.
What if Odoo suggests the wrong invoice?
Do not accept the suggestion. Choose Reconcile and select the document that matches the payment.
Where do the bank lines come from?
This guide starts after they are in the bank journal. Importing or synchronizing them depends on the bank connection you use.
Odoo documents the Bank Matching view in the Odoo 19 bank reconciliation page.
4. How to set taxes on an Odoo product
Odoo copies the product’s taxes onto quotations, invoices, bills, and point of sale orders. Set the tax your localization already created.
Start from the fiscal localization
Go to Accounting → Configuration → Taxes. The fiscal localization creates the rates for your country, and usually activates the main rate only.
Activate the rate you actually charge. Do not type a percentage you have not confirmed. A guessed rate posts the wrong tax.
Set the default taxes
Go to Accounting → Configuration → Settings and find Taxes. Set Default Sales Tax and Default Purchase Tax. Odoo applies those to new products.
Choose Tax Included only when your prices already contain tax. Otherwise leave prices tax excluded and let Odoo add the tax.
Assign the taxes on the product
Open the product from Accounting → Customers → Products. Set Sales Taxes and Purchase Taxes, then save.
Default taxes do not go back and fill products you created earlier. Open those products and set the fields.
Check one draft invoice
Add the product to a draft quotation or customer invoice. Confirm the tax name and amount before you send it. The tax label is what the customer sees on the PDF.
Point of Sale uses the product tax and can replace it with a fiscal position. Map export or special-customer taxes only after the default product tax is right.
Common questions
Which percentage should I create?
Use a tax the fiscal localization already created, or a rate your accountant confirms. Do not guess the percentage.
Why does an older product have no tax?
Default taxes apply to new products. Open the existing product and set Sales Taxes and Purchase Taxes.
Can an export customer use a different tax?
Yes. Fiscal positions can replace the product tax. Set that mapping after the default tax is correct.
Odoo documents default taxes and product taxes in the Odoo 19 taxes page.
5. How to apply an Odoo fiscal position
A fiscal position swaps the product tax for a customer who should be taxed differently. Prove the swap on a draft invoice.
Start from a real tax
Use a tax that already exists on the product. Do not invent a percentage. The product tax guide shows where to set it.
Map it
Open Accounting → Configuration → Fiscal Positions and create the position. Then open Accounting → Configuration → Taxes and open the tax that customer should bear. Set its Fiscal Position to the position you created, and set Replaces to the tax already on the product. Do not type a new percentage.
Assign the customer
Open Accounting → Customers → Customers, select the test customer, and set Fiscal Position on the Sales & Purchase tab. Leave other customers empty. On one document, you can instead set Fiscal Position on the Other Info tab before you add product lines.
Read the draft
Invoice the product to that customer. The tax on the draft should be the mapped tax. A second customer without the position should still get the product tax.
Common questions
Will this change every customer?
No. Only customers with the position, or documents where you set it.
What if I am unsure of the rate?
Ask the accountant before you map it. A wrong map posts the wrong tax on every invoice for that customer.
Does the position apply to old invoices?
Check a new draft. Do not assume posted invoices were rewritten.
Odoo documents positions in the Odoo 19 fiscal positions page and the replacement itself on the taxes page.
6. How to add a second currency in Odoo
A foreign invoice needs a rate into your company currency. Enter the rate you actually use, then read both amounts.
Enable more than one currency
Go to Accounting → Configuration → Currencies and turn Active on for one currency a real customer will pay in. Activating the currency is the switch. There is not a separate “allow foreign currency” box.
Enter a rate
Open that currency, go to Rates, and add a line with the date and the rate from your accountant or bank. Do not invent a rate.
Use it on one draft
Create a draft customer invoice in that currency. You should see the foreign total and an amount in the company currency.
Update the rate when it changes
A new rate should affect later documents. Do not expect it to rewrite a posted invoice. Check the next draft after you change the rate.
Common questions
Which rate is correct?
The rate your accountant or bank says to use. The software will accept a wrong number.
Will old invoices change when the rate changes?
Posted invoices should keep the rate they were posted with. Check a new draft.
Do I activate every currency?
Activate the ones you invoice or pay. Extra currencies only add noise.
Odoo documents currencies and rates in the Odoo 19 multi-currency page.
7. How to lock an Odoo accounting date
A lock date stops ordinary users from posting into a period you have closed. Test the refusal before you rely on it.
Open Lock Dates
Go to Accounting → Accounting → Lock Dates. You need administrator access to Accounting. If the menu is missing, Accounting is not installed or this user cannot administer it.
Set Lock Everything
In the Lock Journal Entries window, set the Lock Everything date to the last day of a period you have finished, then save. The date is inclusive. Practice on a copy before you lock a live company.
Check a dated invoice
Create a customer invoice with an accounting date on or before that lock date. Odoo 19 does not keep that date. It moves the accounting date to the day after the lock. Entries already posted on or before the lock date also cannot be modified.
Correct without deleting the lock
If an invoice in an open period is wrong, issue a credit note. An accounting administrator can record a logged exception from Lock Dates. A hard lock cannot be removed. Do not delete a posted invoice to get around the date.
Common questions
Does a lock delete old entries?
No. It blocks changes to posted entries on or before that date. Odoo 19 also moves a new entry’s accounting date to the day after the lock.
Can some users still post?
An accounting administrator can record a logged exception. Test with the user who posts daily invoices. A hard lock cannot be removed.
Should I lock today’s date?
Lock a period you have finished. Locking today will block ordinary work.
Odoo documents Lock Everything in the Odoo 19 year-end closing page. Labels can still vary with the installed accounting app.
8. How to submit and approve one Odoo expense
Approval is not payment. The expense should show who approved it, and the payment should happen afterwards.
Create the expense
Open Expenses and create one expense for an employee, with an amount and a receipt. Submit it. A draft that was never submitted is not waiting for a manager.
Approve it as the manager
Open the submitted expense and approve it. The employee should no longer see it as something to submit.
Pay it separately
Post or reimburse it through the expense settlement your app shows. Record the payment when money moves. Approving the screen does not send money.
Refuse a duplicate
If the same receipt was already paid, refuse this expense with a reason. Do not approve it to be tidy.
Common questions
Does approve mean the employee was paid?
No. Look for the payment or the posted entry before you tell them it is settled.
What if Expenses is missing?
Install the Expenses app. The petty-cash process still applies if you are not using that app yet.
Can I approve my own expense?
Only if your rights allow it. Prefer a second person when the amount matters.
Odoo documents logging, approval, posting, and reimbursement in the Odoo 19 expenses page. Approving a line does not move the money.
9. How to test an Odoo online payment provider
Test mode proves the checkout. Live keys wait until the provider has approved you and a test payment has succeeded.
Open the provider
Go to Accounting → Configuration → Payment Providers. The same list is under Website or Sales configuration. For a first test with no account, use the built-in Demo provider. It takes dummy payments and needs no credentials.
Stay in test mode
On a copy of the database, set the provider’s State to Test mode and enter that provider’s sandbox credentials. Do not paste secret keys into a ticket, a screenshot, or a chat. Odoo leaves a test-mode provider unpublished, so visitors do not see it until you publish it.
Pay one test order
Pay one test order with the Demo provider, or with the provider’s own test card. The order or invoice should show that test payment. Do not mark an invoice paid by hand.
Leave it in test
Set State to Enabled only when that provider account is allowed to take live payments. Rotate any key that has been exposed. Enabling a provider publishes it on the website unless you unpublish it.
Common questions
Is a test payment real money?
No, when you used the provider’s test mode and test card. Check the provider status on the payment before you tell a customer it is live.
Where do I get the test card number?
From that provider’s documentation. Do not reuse a customer’s real card.
What if the payment stays pending?
Read the provider message on the payment. Do not mark the invoice paid by hand unless finance confirms the money.
Odoo documents provider states in the Odoo 19 online payments page. Test on a duplicate database so live invoice numbers are left alone.
10. Related guides and next steps
Sample names and amounts are illustrative. They are not a client result, a price, or legal or tax advice. Menus can differ between versions and installed apps.
Continue learning
Describe your business, the system you use now, and what has to change. See our Odoo implementation service or contact OdooMatrix.