diff --git a/content/applications/finance/accounting/customer_invoices.rst b/content/applications/finance/accounting/customer_invoices.rst index e175527068..17efa3b03a 100644 --- a/content/applications/finance/accounting/customer_invoices.rst +++ b/content/applications/finance/accounting/customer_invoices.rst @@ -4,225 +4,221 @@ Customer invoices ================= -From Customer Invoice to Payments Collection -============================================ - -Odoo supports multiple invoicing and payment workflows, so you can -choose and use the ones that match your business needs. Whether you want -to accept a single payment for a single invoice, or process a payment -spanning multiple invoices and taking discounts for early payments, you -can do so efficiently and accurately. - -From Draft Invoice to Profit and Loss -------------------------------------- - -If we pick up at the end of a typical 'order to cash' scenario, after -the goods have been shipped, you will: issue an invoice; receive -payment; deposit that payment at the bank; make sure the Customer -Invoice is closed; follow up if Customers are late; and finally present -your Income on the Profit and Loss report and show the decrease in -Assets on the Balance Sheet report. - -Invoicing in most countries occurs when a contractual obligation is met. -If you ship a box to a customer, you have met the terms of the contract -and can bill them. If your supplier sends you a shipment, they have met -the terms of that contract and can bill you. Therefore, the terms of the -contract is fulfilled when the box moves to or from the truck. At this -point, Odoo supports the creation of what is called a Draft Invoice by -Warehouse staff. +A customer invoice is a document issued by a company for products and/or services sold to a +customer. It records receivables as they are sent to customers. Customer invoices can include +amounts due for the goods and/or services provided, applicable sales taxes, shipping and handling +fees, and other charges. +Odoo supports multiple invoicing and payment workflows. -Invoice creation ----------------- - -Draft invoices can be manually generated from other documents such as -Sales Orders, Purchase Orders,etc. Although you can create a draft -invoice directly if you would like. - -An invoice must be provided to the customer with the necessary -information in order for them to pay for the goods and services ordered -and delivered. It must also include other information needed to pay the -invoice in a timely and precise manner. +.. seealso:: + - :doc:`/applications/finance/accounting/customer_invoices/overview` -Draft invoices --------------- +From draft invoice to profit and loss report, the process involves several steps once the goods are +shipped to a customer: -The system generates invoice which are initially set to the Draft state. -While these invoices remain unvalidated, they have no accounting impact within the system. -There is nothing to stop users from creating their own draft invoices. +- :ref:`accounting/invoice/creation` +- :ref:`accounting/invoice/confirmation` +- :ref:`accounting/invoice/sending` +- :ref:`accounting/invoice/paymentandreconciliation` +- :ref:`accounting/invoice/followup` +- :ref:`accounting/invoice/reporting` -Let's create a customer invoice with following information: +.. note:: + Odoo :guilabel:`Invoicing` is a standalone app designed to create invoices, send them to + customers, and manage payments. On the other hand, the :guilabel:`Accounting` app is a + comprehensive accounting solution that allows the same actions to be performed. -- Customer: Agrolait -- Product: iMac -- Quantity: 1 -- Unit Price: 100 -- Taxes: Tax 15% +.. _accounting/invoice/creation: -.. image:: customer_invoices/invoice01.png +Invoice creation +================ -.. image:: customer_invoices/invoice02.png +Draft invoices can be manually created from documents like sales orders or purchase orders or +directly from the :guilabel:`Customer Invoices` journal in the :guilabel:`Accounting Dashboard`. -The document is composed of three parts: +An invoice must include the required information to enable the customer to pay promptly for the +goods and services ordered and delivered. Make sure the following fields are appropriately +completed: -- the top of the invoice, with customer information, -- the main body of the invoice, with detailed invoice lines, -- the bottom of the page, with detail about the taxes, and the totals. +- :guilabel:`Customer`: Odoo automatically fills in some information based on the customer’s + registered information and previous invoices. +- :guilabel:`Invoice Date`: is automatically filled in when the invoice is confirmed. +- :guilabel:`Payment Reference`: is the reference to be set as the payment reference to facilitate + reconciliation. It's automatically filled in when the invoice is confirmed. +- :guilabel:`Due Date` or :guilabel:`Payment terms`: to specify when the customer has to pay the + invoice. +- :guilabel:`Journal`: is automatically set and can be changed if needed. +- :doc:`Currency ` +- :guilabel:`Product` +- :guilabel:`Quantity` +- :guilabel:`Price` +- :guilabel:`Taxes` (if applicable). -Open or Pro-forma invoices --------------------------- +To display the total amount of the invoice in words, go to :menuselection:`Accounting --> +Configuration --> Settings` and activate the :guilabel:`Total amount of invoice in letters` option. -An invoice will usually include the quantity and the price of goods -and/or services, the date, any parties involved, the unique invoice -number, and any tax information. +The :guilabel:`Journal Items` tab displays the accounting entries created. +To add specific invoice/accounting information, fill in the :guilabel:`Other Info` tab. -"Validate" the invoice when you are ready to approve it. The invoice -then moves from the Draft state to the Open state. +The system initially creates invoices in :guilabel:`Draft` status. While they remain unvalidated, +draft invoices have no accounting impact within the system. When previewing a draft invoice, +:guilabel:`Proforma` is added before the invoice reference, as proforma invoices are issued to +request payment from the buyer before the goods or services are provided. -When you have validated an invoice, Odoo gives it a unique number from a -defined, and modifiable, sequence. +.. _accounting/invoice/confirmation: -.. image:: customer_invoices/invoice03.png +Invoice confirmation +==================== -Accounting entries corresponding to this invoice are automatically -generated when you validate the invoice. You can see the details by -clicking on the entry in the Journal Entry field in the "Other Info" -tab. +Click :guilabel:`Confirm` when the document is completed. The document's status changes to +:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. The +:guilabel:`Journal Items` tab is then filled. -.. image:: customer_invoices/invoice04.png +.. image:: customer_invoices/invoice-confirmation.png + :alt: invoice confirmation journal entries -Send the invoice to customer ----------------------------- +On confirmation, Odoo assigns each document a unique number from a defined sequence consisting of a +prefix and a number. The prefix combines the journal code and the entry date. It is used to classify +entries by period. The number is unique for each period and is used to identify the entry. The +default sequence on customer invoices is INV/YYYY/number. In some specific cases, +:ref:`resequencing ` might be necessary. -After validating the customer invoice, you can directly send it to the -customer via the 'Send by email' functionality. +When previewing a confirmed invoice, :guilabel:`Proforma` is added before the invoice reference, as +proforma invoices are issued to request payment from the buyer before the goods or services are +provided. -.. image:: customer_invoices/invoice05.png +.. note:: + Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if + changes are required. -A typical journal entry generated from a validated invoice will look -like as follows: +.. _accounting/invoice/sending: -+-----------------------+---------------+----------------+-------------+--------------+ -| **Account** | **Partner** | **Due date** | **Debit** | **Credit** | -+=======================+===============+================+=============+==============+ -| Accounts Receivable | Agrolait | 01/07/2015 | 115 | | -+-----------------------+---------------+----------------+-------------+--------------+ -| Taxes | Agrolait | | | 15 | -+-----------------------+---------------+----------------+-------------+--------------+ -| Sales | | | | 100 | -+-----------------------+---------------+----------------+-------------+--------------+ +Invoice sending +=============== -Payment -------- +To send the invoice to the customer, click :guilabel:`Send & Print`. A :guilabel:`Configure your +document layout` pop-up window will appear if a :ref:`default invoice layout +` hasn't been customized. +To send it to the customer's email address and download a PDF of the document, click +:guilabel:`Send & Print` (enable the :guilabel:`By Post` option if needed). -In Odoo, an invoice is considered to be paid when the associated -accounting entry has been reconciled with the payment entries. If there -has not been a reconciliation, the invoice will remain in the Open state -until you have entered the payment. +.. image:: customer_invoices/invoice-sending.png + :alt: invoice sending window -A typical journal entry generated from a payment will look like as -follows: +To send and print multiple invoices, go to the list view and select them. In the :icon:`fa-cog` +:guilabel:`Actions` menu, select the :guilabel:`Send & Print` option. A banner will appear on the +selected invoices to indicate they are part of an ongoing send and print batch. This helps prevent +the process from being triggered manually again, as it may take some time to complete. -+-----------------------+---------------+----------------+-------------+--------------+ -| **Account** | **Partner** | **Due date** | **Debit** | **Credit** | -+=======================+===============+================+=============+==============+ -| Bank | Agrolait | | 115 | | -+-----------------------+---------------+----------------+-------------+--------------+ -| Accounts Receivable | Agrolait | | | 115 | -+-----------------------+---------------+----------------+-------------+--------------+ +.. _accounting/invoice/paymentandreconciliation: -Receive a partial payment through the bank statement ----------------------------------------------------- +Payment and reconciliation +========================== -You can manually enter your bank statements in Odoo, or you can import -them in from a csv file or from several other predefined formats -according to your accounting localisation. +In Odoo, an invoice is considered :guilabel:`Paid` when the associated accounting entry has been +reconciled with the payment entries. -Create a bank statement from the accounting dashboard with the related -journal and enter an amount of $100 . +.. seealso:: + - :doc:`payments` + - :doc:`bank/reconciliation` -.. image:: customer_invoices/invoice06.png +.. _accounting/invoice/followup: -Reconcile ---------- +Payment follow-up +================= -Now let's reconcile! +Odoo helps define a follow-up strategy. Different actions can be set up to remind customers to pay +their outstanding invoices, depending on how much the customer is overdue. The system +bundles these actions into follow-up levels that trigger when an invoice is overdue by a certain +number of days. If there are other overdue invoices for the same customer, the actions are performed +on the most overdue invoice. -.. image:: customer_invoices/invoice07.png +.. _accounting/invoice/followup-reports: -You can now go through every transaction and reconcile them or you can mass reconcile with instructions at the bottom. +Follow-up Reports +----------------- -After reconciling the items in the sheet, the related invoice will now -display "You have outstanding payments for this customer. You can -reconcile them to pay this invoice. " +To set the different follow-up levels, go to +:menuselection:`Accounting --> Configuration --> Follow-up Levels`. All actions triggered after a +specified number of days can be viewed. To manage the various options, such as the number of days, +the type of reminder sent, or whether the action is automated, click on the specific line that needs +to be updated. -.. image:: customer_invoices/invoice08.png +Then, follow these steps to take the appropriate action: -.. image:: customer_invoices/invoice09.png +- To access the list of customers requiring action along with the :guilabel:`Total Due` and + :guilabel:`Total Overdue` amounts, go to + :menuselection:`Accounting --> Customers --> Follow-up Reports`. +- To get a full overview of the customer's open invoices, click on its line. +- To open a payment reminder to be sent to the customer, click the :guilabel:`Follow up` button. +- To exclude any invoices from the follow-up, enable the option :guilabel:`Exclude from Follow-ups` + for the selected ones. -Apply the payment. Below, you can see that the payment has been added to -the invoice. +.. _accounting/invoices/aging-report: -.. image:: customer_invoices/invoice10.png +Aged Receivable +--------------- -Payment Followup ----------------- +To review outstanding customer invoices and their related due dates, use the +:ref:`Aged Receivable ` report. To access it, go to +:menuselection:`Accounting --> Reporting --> Aged Receivable`. -There's a growing trend of customers paying bills later and later. -Therefore, collectors must make every effort to collect money and -collect it faster. +.. _accounting/invoice/reporting: -Odoo will help you define your follow-up strategy. To remind customers -to pay their outstanding invoices, you can define different actions -depending on how severely overdue the customer is. These actions are -bundled into follow-up levels that are triggered when the due date of an -invoice has passed a certain number of days. If there are other overdue -invoices for the same customer, the actions of the most overdue invoice -will be executed. +Reporting +========= -By going to the customer record and diving into the "Overdue Payments" -you will see the follow-up message and all overdue invoices. +Profit and Loss +--------------- -.. image:: customer_invoices/invoice11.png +The :ref:`Profit and Loss ` statement shows details of income +and expenses. -.. image:: customer_invoices/invoice12.png +Balance sheet +------------- -.. _customer-invoices/aging-report: +The :ref:`Balance Sheet ` summarizes the company's liabilities, +assets, and equity at a specific time. -Customer aging report: -~~~~~~~~~~~~~~~~~~~~~~ +.. _accounting/invoice/resequencing: -The customer aging report will be an additional key tool for the -collector to understand the customer credit issues, and to prioritize -their work. +Resequencing +============ -Use the aging report to determine which customers are overdue and begin -your collection efforts. +:guilabel:`Resequence` is a technical feature used to change the sequence of documents. It can be +helpful to resequence invoice numbers when importing invoices from another invoicing or accounting +system, mainly if the reference originates from the previous software and continuity for the current +year must be maintained without restarting from the beginning. -.. image:: customer_invoices/invoice13.png +The sequence can be modified once an invoice is in the system. -Profit and loss ---------------- +.. note:: -The Profit and Loss statement displays your revenue and expense details. -Ultimately, this gives you a clear image of your Net Profit and Loss. It -is sometimes referred to as the "Income Statement" or "Statement of -Revenues and Expenses." + - This feature is only available to users with administrator or advisor access. + - All sequence changes are logged in the chatter to keep the information. -.. image:: customer_invoices/invoice14.png +Here are the different steps to resequence invoice numbers: -Balance sheet -------------- +#. Activate the :ref:`developer mode `. +#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal. +#. Select the documents that need a new sequence. +#. In the :icon:`fa-cog` :guilabel:`Actions` menu, click :guilabel:`Resequence`. +#. In the :guilabel:`Ordering` field, choose to -The balance sheet summarizes your company's liabilities, -assets and equity at a specific moment in time. + - :guilabel:`Keep current order`: the order of the numbers remains the same + - :guilabel:`Reorder by accounting date`: the number is reordered by accounting date. +#. Set the :guilabel:`First New Sequence`. +#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`. -.. image:: customer_invoices/invoice15.png +.. image:: customer_invoices/invoice-sequencing.png + :alt: Resequence options window -.. image:: customer_invoices/invoice16.png +In some cases, resequencing is not possible: -For example, if you manage your inventory using the perpetual accounting -method, you should expect a decrease in account "Current Assets" once -the material has been shipped to the customer. +- When entries are previous to a lock date. +- When changing the date of a previously posted invoice from another period, the sequence is not + aligned with the existing sequence used for the new date set. +- When the sequence leads to a duplicate. .. toctree:: :titlesonly: diff --git a/content/applications/finance/accounting/customer_invoices/invoice-confirmation.png b/content/applications/finance/accounting/customer_invoices/invoice-confirmation.png new file mode 100644 index 0000000000..090e1509bf Binary files /dev/null and b/content/applications/finance/accounting/customer_invoices/invoice-confirmation.png differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice-sending.png b/content/applications/finance/accounting/customer_invoices/invoice-sending.png new file mode 100644 index 0000000000..24db4a5d73 Binary files /dev/null and b/content/applications/finance/accounting/customer_invoices/invoice-sending.png differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice-sequencing.png b/content/applications/finance/accounting/customer_invoices/invoice-sequencing.png new file mode 100644 index 0000000000..c4d8445f13 Binary files /dev/null and b/content/applications/finance/accounting/customer_invoices/invoice-sequencing.png differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice01.png b/content/applications/finance/accounting/customer_invoices/invoice01.png deleted file mode 100644 index 13a5e50606..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice01.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice02.png b/content/applications/finance/accounting/customer_invoices/invoice02.png deleted file mode 100644 index 9028b72449..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice02.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice03.png b/content/applications/finance/accounting/customer_invoices/invoice03.png deleted file mode 100644 index dc361520b1..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice03.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice04.png b/content/applications/finance/accounting/customer_invoices/invoice04.png deleted file mode 100644 index 4805488c31..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice04.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice05.png b/content/applications/finance/accounting/customer_invoices/invoice05.png deleted file mode 100644 index eb79fa0f20..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice05.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice06.png b/content/applications/finance/accounting/customer_invoices/invoice06.png deleted file mode 100644 index 7b11f0df6f..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice06.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice07.png b/content/applications/finance/accounting/customer_invoices/invoice07.png deleted file mode 100644 index 8afc14881d..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice07.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice08.png b/content/applications/finance/accounting/customer_invoices/invoice08.png deleted file mode 100644 index cf5fdf554d..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice08.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice09.png b/content/applications/finance/accounting/customer_invoices/invoice09.png deleted file mode 100644 index b82adc0698..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice09.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice10.png b/content/applications/finance/accounting/customer_invoices/invoice10.png deleted file mode 100644 index 0a15570a9b..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice10.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice11.png b/content/applications/finance/accounting/customer_invoices/invoice11.png deleted file mode 100644 index 204131d8b7..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice11.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice12.png b/content/applications/finance/accounting/customer_invoices/invoice12.png deleted file mode 100644 index ab73e18caf..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice12.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice13.png b/content/applications/finance/accounting/customer_invoices/invoice13.png deleted file mode 100644 index 204e010171..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice13.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice14.png b/content/applications/finance/accounting/customer_invoices/invoice14.png deleted file mode 100644 index c2b45e61db..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice14.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice15.png b/content/applications/finance/accounting/customer_invoices/invoice15.png deleted file mode 100644 index 0b1d223750..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice15.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/invoice16.png b/content/applications/finance/accounting/customer_invoices/invoice16.png deleted file mode 100644 index 9f39490e9f..0000000000 Binary files a/content/applications/finance/accounting/customer_invoices/invoice16.png and /dev/null differ diff --git a/content/applications/finance/accounting/customer_invoices/payment_terms.rst b/content/applications/finance/accounting/customer_invoices/payment_terms.rst index 1f999802a0..2187c24d23 100644 --- a/content/applications/finance/accounting/customer_invoices/payment_terms.rst +++ b/content/applications/finance/accounting/customer_invoices/payment_terms.rst @@ -116,7 +116,7 @@ for every computed *due date*. This makes for easier :doc:`follow-ups ` and :doc:`reconciliation ` since Odoo takes each due date into account, rather than just the balance due date. It also helps to get an accurate -:ref:`aged receivable report `. +:ref:`aged receivable report `. .. example:: .. image:: payment_terms/journal-entry.png