diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts.rst b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts.rst index be1d3c7780..a1e8c08222 100644 --- a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts.rst +++ b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts.rst @@ -1,68 +1,179 @@ -==================== -Offer cash discounts -==================== - -Cash discounts are incentives you can offer to customers to motivate -them to pay within a specific time frame. For instance, you offer a 2% -discount if the customer pays you within the first 5 days of the -invoice, when it is due in 30 days. This approach can greatly improve -your average collection period. - -Set up a cash discount -====================== - -To set up a cash discount, go to :menuselection:`Accounting --> -Configuration --> Management --> Payment Terms` and click on -*Create*. Add a *Percent* type of term with a corresponding value -(e.g. 98% of the total price for a 2% discount) and the number of days -during which the offer is valid. You can also change the default balance -term if needed. - -.. image:: cash_discounts/cash_discounts01.png - :align: center - -Start offering the cash discount ================================ +Cash discounts and tax reduction +================================ + +**Cash discounts** are reductions in the amount a customer must pay for goods or services offered as +an incentive for paying their invoice promptly. These discounts are typically a percentage of the +total invoice amount and are applied if the customer pays within a specified time. Cash discounts +can help the company maintain a steady cash flow. + +.. example:: + You issue a €100 invoice on the 1st of January. The full payment is due within 30 days, and you + also offer a 2% discount if your customer pays you within seven days. + + The customer can pay €98 up to the 8th of January. After that date, they would have to pay €100 + by the 31st of January. + +A :ref:`tax reduction ` can also be applied depending on the country +or region. + +.. _cash-discounts/configuration: + +Configuration +============= + +To grant cash discounts to customers, you must first set up the :ref:`type of tax reduction +`, verify the :ref:`gain and loss accounts +`, and configure new :ref:`payment terms +`. + +.. _cash-discounts/tax-reductions: + +Tax reductions +-------------- + +Depending on the country or region, the base amount used to compute the tax can vary, which can lead +to a **tax reduction**. + +To configure how the tax reduction is applied, go to :menuselection:`Accounting --> Configuration +--> Settings`, and in the :guilabel:`Taxes` section, in the :guilabel:`Cash Discount Tax Reduction` +feature, select one of the three following options: + +Always (upon invoice) + The tax is always reduced. The base amount used to compute the tax is the discounted amount, + whether the customer benefits from the discount or not. + +On early payment + The tax is reduced only if the customer pays early. The base amount used to compute the tax is the + same as the sale: if the customer benefits from the reduction, then the tax is reduced. This means + that, depending on the customer, the tax amount can vary after the invoice is issued. + +Never + The tax is never reduced. The base amount used to compute the tax is the full amount, whether the + customer benefits from the discount or not. + +.. example:: + + You issue a €100 invoice (tax-excluded) on the 1st of January, with a 21% tax rate. The full + payment is due within 30 days, and you also offer a 2% discount if your customer pays you within + seven days. + + .. tabs:: + + .. tab:: Always (upon invoice) + + .. list-table:: + :header-rows: 1 + + * - Due date + - Total amount due + - Computation + * - 8th of January + - €118.58 + - (€98 + (21% of €98)) + * - 31st of January + - €120.58 + - (€100 + (21% of €98)) + + .. tab:: On early payment + + .. list-table:: + :header-rows: 1 + + * - Due date + - Total amount due + - Computation + * - 8th of January + - €118.58 + - (€98 + (21% of €98)) + * - 31st of January + - €121.00 + - (€100 + (21% of €100)) + + .. tab:: Never + + .. list-table:: + :header-rows: 1 + + * - Due date + - Total amount due + - Computation + * - 8th of January + - €119.00 + - (€98 + (21% of €100)) + * - 31st of January + - €121.00 + - (€100 + (21% of €100)) + +.. note:: + - :ref:`Tax grids `, which are used for the tax report, are correctly + computed according to the :ref:`type of tax reduction ` you + configured. + - The **type of cash discount tax reduction** may be correctly pre-configured, depending on your + :ref:`fiscal localization package `. + +.. _cash-discounts/gain-loss-accounts: + +Cash discount gain/loss accounts +-------------------------------- + +With a cash discount, the amount you earn depends on whether the customer benefits from the cash +discount or not. This inevitably leads to gains and losses, which are recorded on default accounts. + +To modify these accounts, go to :menuselection:`Accounting --> Configuration --> Settings`, and in +the :guilabel:`Default Accounts` section, select the accounts you want to use for the +:guilabel:`Cash Discount Gain account` and :guilabel:`Cash Discount Loss account`. + +.. _cash-discounts/payment-terms: + +Payment terms +------------- + +Cash discounts are defined on :doc:`payment terms `. Configure them to your liking by +going to :menuselection:`Accounting --> Configuration --> Payment Terms`, and make sure to fill out +the fields :guilabel:`Discount %` and :guilabel:`Discount Days`. + +.. image:: cash_discounts/payment-terms.png + :align: center + :alt: Configuration of payment terms named "2/7 Net 30". The field "Description on Invoices" + reads: "Payment terms: 30 Days, 2% Early Payment Discount under 7 days". + +.. seealso:: + :doc:`payment_terms` -Now, you can create a customer invoice and select the cash discount -payment term you added. Once the invoice is validated, Odoo will -automatically split the account receivables part of the journal entry -into two installments having different due dates. Since the discounted -price is already calculated, your payment controls will be simplified. +.. _cash-discounts/customer-invoice: -.. image:: cash_discounts/cash_discounts02.png - :align: center +Apply a cash discount to a customer invoice +=========================================== -Grant the cash discount -======================= +Apply a cash discount to a customer invoice by selecting the :ref:`payment terms you created +`. Odoo automatically computes the correct amounts, tax amounts, due +dates, and accounting records. -The customer fulfilled the payment terms and therefore benefits from the -cash discount. When you process the bank statement, match the payment -with the related journal entry. Then, select the remaining cash discount -and click on *Create Write-off* to reconcile it. +Under the :guilabel:`Journal Items` tab, you can display the discount details by clicking on the +"toggle" button and adding the :guilabel:`Discount Date` and :guilabel:`Discount Amount` columns. -.. image:: cash_discounts/cash_discounts03.png - :align: center +.. image:: cash_discounts/invoice-journal-entry.png + :align: center + :alt: An invoice of €100.00 with "2/7 Net 30" selected as payment terms. The "Journal Items" tab + is open, and the "Discount Date" and "Discount Amount" columns are displayed. -.. tip:: - You can also create a dedicated reconciliation model to make - the process easier. In this case, you should add a tax to the model - based on the taxes applied to your invoices. This means that if you - handle multiple tax rates, you need to create several reconciliation - models. Note that depending on your localisation, you might already have - a Cash Discount model available by default. +The discount amount and due date are also displayed on the generated invoice sent to the customer. -Register the full payment -========================= +.. image:: cash_discounts/invoice-print.png + :align: center + :alt: An invoice of €100.00 with the following text added to the terms and conditions: "30 Days, + 2% Early Payment Discount under 7 days. 118.58 € due if paid before 01/08/2023." -In this case, the customer has not fulfilled the payment term and cannot -benefit from the cash discount. When you process the bank statement, -match the payment with the two related journal entries. +Payment reconciliation +---------------------- -.. image:: cash_discounts/cash_discounts04.png - :align: center +When you record a payment or reconcile your bank statements, Odoo takes the customer payment's date +into account to define if they can benefit from the cash discount or not. +.. note:: + If your customer pays the discount amount *after* the discount date, you can always decide + whether to mark the invoice as fully paid with a write-off or as partially paid. .. seealso:: - * :doc:`../../receivables/customer_invoices/payment_terms` - * :doc:`../../bank/reconciliation/reconciliation_models` + :doc:`../customer_payments/recording` diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts01.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts01.png deleted file mode 100644 index 8fa4fac915..0000000000 Binary files a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts01.png and /dev/null differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts02.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts02.png deleted file mode 100644 index a9b6ec0d5c..0000000000 Binary files a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts02.png and /dev/null differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts03.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts03.png deleted file mode 100644 index b810b08a13..0000000000 Binary files a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts03.png and /dev/null differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts04.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts04.png deleted file mode 100644 index 52018989a3..0000000000 Binary files a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/cash_discounts04.png and /dev/null differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-journal-entry.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-journal-entry.png new file mode 100644 index 0000000000..e3667b230f Binary files /dev/null and b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-journal-entry.png differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-print.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-print.png new file mode 100644 index 0000000000..62bd2fc5e7 Binary files /dev/null and b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/invoice-print.png differ diff --git a/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/payment-terms.png b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/payment-terms.png new file mode 100644 index 0000000000..06a50af329 Binary files /dev/null and b/content/applications/finance/accounting/receivables/customer_invoices/cash_discounts/payment-terms.png differ