[IMP] accounting: info about proforma label on invoices
task-3938154
task-3416326
task-2466972
closes odoo/documentation#11491
X-original-commit: 2920b764f1
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
@ -4,225 +4,251 @@
|
|||||||
Customer invoices
|
Customer invoices
|
||||||
=================
|
=================
|
||||||
|
|
||||||
From Customer Invoice to Payments Collection
|
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.
|
||||||
|
|
||||||
Odoo supports multiple invoicing and payment workflows, so you can
|
.. seealso::
|
||||||
choose and use the ones that match your business needs. Whether you want
|
:doc:`/applications/finance/accounting/customer_invoices/overview`
|
||||||
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
|
From draft invoice to profit and loss report, the process involves several steps once the goods (or
|
||||||
-------------------------------------
|
services) have been ordered/shipped (or rendered) to a customer, depending on the invoicing policy:
|
||||||
|
|
||||||
If we pick up at the end of a typical 'order to cash' scenario, after
|
- :ref:`accounting/invoice/creation`
|
||||||
the goods have been shipped, you will: issue an invoice; receive
|
- :ref:`accounting/invoice/confirmation`
|
||||||
payment; deposit that payment at the bank; make sure the Customer
|
- :ref:`accounting/invoice/sending`
|
||||||
Invoice is closed; follow up if Customers are late; and finally present
|
- :ref:`accounting/invoice/paymentandreconciliation`
|
||||||
your Income on the Profit and Loss report and show the decrease in
|
- :ref:`accounting/invoice/followup`
|
||||||
Assets on the Balance Sheet report.
|
- :ref:`accounting/invoice/reporting`
|
||||||
|
|
||||||
Invoicing in most countries occurs when a contractual obligation is met.
|
.. _accounting/invoice/creation:
|
||||||
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.
|
|
||||||
|
|
||||||
Invoice creation
|
Invoice creation
|
||||||
----------------
|
================
|
||||||
|
|
||||||
Draft invoices can be manually generated from other documents such as
|
Draft invoices can be created directly from documents like sales orders or purchase orders or
|
||||||
Sales Orders, Purchase Orders,etc. Although you can create a draft
|
manually from the :guilabel:`Customer Invoices` journal in the :guilabel:`Accounting Dashboard`.
|
||||||
invoice directly if you would like.
|
|
||||||
|
|
||||||
An invoice must be provided to the customer with the necessary
|
An invoice must include the required information to enable the customer to pay promptly for their
|
||||||
information in order for them to pay for the goods and services ordered
|
goods and services. Make sure the following fields are appropriately completed:
|
||||||
and delivered. It must also include other information needed to pay the
|
|
||||||
invoice in a timely and precise manner.
|
|
||||||
|
|
||||||
Draft invoices
|
- :guilabel:`Customer`: When a customer is selected, Odoo automatically pulls information from the
|
||||||
--------------
|
customer record like the invoice address,
|
||||||
|
:doc:`preferred payment terms <customer_invoices/payment_terms>`,
|
||||||
|
:doc:`fiscal positions <taxes/fiscal_positions>`, receivable account, and more onto the invoice.
|
||||||
|
To change these values for this specific invoice, edit them directly on the invoice. To change
|
||||||
|
them for future invoices, change the values on the contact record.
|
||||||
|
- :guilabel:`Invoice Date`: If not set manually, this field is automatically set as the current date
|
||||||
|
upon confirmation.
|
||||||
|
- :guilabel:`Due Date` or :doc:`payment terms <customer_invoices/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 <get_started/multi_currency>`
|
||||||
|
- :guilabel:`Product`: Click :guilabel:`Add a line` to add a product.
|
||||||
|
- :guilabel:`Quantity`
|
||||||
|
- :guilabel:`Price`
|
||||||
|
- :doc:`Taxes <taxes>` (if applicable)
|
||||||
|
|
||||||
The system generates invoice which are initially set to the Draft state.
|
.. tip::
|
||||||
While these invoices remain unvalidated, they have no accounting impact within the system.
|
To display the total amount of the invoice in words, go to :menuselection:`Accounting -->
|
||||||
There is nothing to stop users from creating their own draft invoices.
|
Configuration --> Settings` and activate the :guilabel:`Total amount of invoice in letters`
|
||||||
|
option.
|
||||||
|
|
||||||
Let's create a customer invoice with following information:
|
The :guilabel:`Journal Items` tab displays the accounting entries created.
|
||||||
|
Additional invoice information such as the :guilabel:`Customer Reference`, :doc:`Fiscal Positions
|
||||||
|
<taxes/fiscal_positions>`, :doc:`Incoterms <customer_invoices/incoterms>`, and more can be added or
|
||||||
|
modified in the :guilabel:`Other Info` tab.
|
||||||
|
|
||||||
- Customer: Agrolait
|
.. note::
|
||||||
- Product: iMac
|
Odoo initially creates invoices in :guilabel:`Draft` status. Draft invoices have no accounting
|
||||||
- Quantity: 1
|
impact until they are :ref:`confirmed <accounting/invoice/confirmation>`.
|
||||||
- Unit Price: 100
|
|
||||||
- Taxes: Tax 15%
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice01.png
|
.. seealso::
|
||||||
|
:doc:`/applications/sales/sales/invoicing/proforma`
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice02.png
|
.. _accounting/invoice/confirmation:
|
||||||
|
|
||||||
The document is composed of three parts:
|
Invoice confirmation
|
||||||
|
====================
|
||||||
|
|
||||||
- the top of the invoice, with customer information,
|
Click :guilabel:`Confirm` when the document is completed. The document's status changes to
|
||||||
- the main body of the invoice, with detailed invoice lines,
|
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
|
||||||
- the bottom of the page, with detail about the taxes, and the totals.
|
confirmation, Odoo assigns each document a unique number from a defined
|
||||||
|
:ref:`sequence <accounting/invoice/sequence>`.
|
||||||
|
|
||||||
Open or Pro-forma invoices
|
.. note::
|
||||||
--------------------------
|
- Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if
|
||||||
|
changes are needed.
|
||||||
|
- If required, invoices and other journal entries can be locked once posted
|
||||||
|
using the :ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
|
||||||
|
|
||||||
An invoice will usually include the quantity and the price of goods
|
.. _accounting/invoice/sending:
|
||||||
and/or services, the date, any parties involved, the unique invoice
|
|
||||||
number, and any tax information.
|
|
||||||
|
|
||||||
"Validate" the invoice when you are ready to approve it. The invoice
|
Invoice sending
|
||||||
then moves from the Draft state to the Open state.
|
===============
|
||||||
|
|
||||||
When you have validated an invoice, Odoo gives it a unique number from a
|
To send the invoice to the customer, click :guilabel:`Send & Print`. A :guilabel:`Configure your
|
||||||
defined, and modifiable, sequence.
|
document layout` pop-up window will appear if a :ref:`default invoice layout
|
||||||
|
<studio/pdf-reports/default-layout>` hasn't been customized. Then, select how to send this invoice
|
||||||
|
to the customer in the :guilabel:`Send` window.
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice03.png
|
To send and print multiple invoices, go to :menuselection:`Accounting --> Customers --> Invoices`
|
||||||
|
and select them. Then click the :icon:`fa-cog` :guilabel:`Actions` menu and select
|
||||||
|
:guilabel:`Send & Print`. 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 for exceptionally large batches.
|
||||||
|
|
||||||
Accounting entries corresponding to this invoice are automatically
|
.. _accounting/invoice/paymentandreconciliation:
|
||||||
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.
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice04.png
|
Payment and reconciliation
|
||||||
|
==========================
|
||||||
|
|
||||||
Send the invoice to customer
|
In Odoo, an invoice is considered :guilabel:`Paid` when the associated accounting entry has been
|
||||||
----------------------------
|
reconciled with a corresponding bank transaction.
|
||||||
|
|
||||||
After validating the customer invoice, you can directly send it to the
|
.. seealso::
|
||||||
customer via the 'Send by email' functionality.
|
- :doc:`payments`
|
||||||
|
- :doc:`bank/reconciliation`
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice05.png
|
.. _accounting/invoice/followup:
|
||||||
|
|
||||||
A typical journal entry generated from a validated invoice will look
|
Payment follow-up
|
||||||
like as follows:
|
=================
|
||||||
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
Odoo's :doc:`follow-up actions <payments/follow_up>` help companies follow up on customer invoices.
|
||||||
| **Account** | **Partner** | **Due date** | **Debit** | **Credit** |
|
Different actions can be set up to remind customers to pay their outstanding invoices, depending on
|
||||||
+=======================+===============+================+=============+==============+
|
how much the customer is overdue. These actions are bundled into follow-up levels that trigger when
|
||||||
| Accounts Receivable | Agrolait | 01/07/2015 | 115 | |
|
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
same customer, the actions are performed on the most overdue invoice.
|
||||||
| Taxes | Agrolait | | | 15 |
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
|
||||||
| Sales | | | | 100 |
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
|
||||||
|
|
||||||
Payment
|
.. _accounting/invoice/sequence:
|
||||||
-------
|
|
||||||
|
|
||||||
In Odoo, an invoice is considered to be paid when the associated
|
Sequence
|
||||||
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.
|
|
||||||
|
|
||||||
A typical journal entry generated from a payment will look like as
|
The sequence that Odoo assigns to each document is a unique number made up of a prefix and a number.
|
||||||
follows:
|
The prefix combines the journal code and the entry date and is used to group 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 <accounting/invoice/resequencing>` invoices might be necessary.
|
||||||
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
.. _accounting/invoice/resequencing:
|
||||||
| **Account** | **Partner** | **Due date** | **Debit** | **Credit** |
|
|
||||||
+=======================+===============+================+=============+==============+
|
|
||||||
| Bank | Agrolait | | 115 | |
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
|
||||||
| Accounts Receivable | Agrolait | | | 115 |
|
|
||||||
+-----------------------+---------------+----------------+-------------+--------------+
|
|
||||||
|
|
||||||
Receive a partial payment through the bank statement
|
Resequencing
|
||||||
----------------------------------------------------
|
------------
|
||||||
|
|
||||||
You can manually enter your bank statements in Odoo, or you can import
|
Resequencing is not possible:
|
||||||
them in from a csv file or from several other predefined formats
|
|
||||||
according to your accounting localisation.
|
|
||||||
|
|
||||||
Create a bank statement from the accounting dashboard with the related
|
- When entries are before a lock date.
|
||||||
journal and enter an amount of $100 .
|
- When the sequence leads to a duplicate.
|
||||||
|
- When the :guilabel:`Invoice Date` doesn't match the date contained in the new sequence number,
|
||||||
|
e.g., if the sequence is changed to INV/2023/XXXXX for a document with an :guilabel:`Invoice Date`
|
||||||
|
of 2024.
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice06.png
|
To change the invoice sequence with the structure INV/YYYY/MM/number, add `/MM` with the number of
|
||||||
|
the month of the :guilabel:`Invoice date`. Odoo will recognize the "/" term as a month and update
|
||||||
|
the future invoice sequence appropriately with the month of the :guilabel:`Invoice date`. For
|
||||||
|
example, if the invoice date is January, change the sequence to `INV/2024/01/XXXXX`.
|
||||||
|
|
||||||
Reconcile
|
In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a
|
||||||
---------
|
:guilabel:`Validation Error` message appears.
|
||||||
|
|
||||||
Now let's reconcile!
|
.. note::
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice07.png
|
- All sequence changes are logged in the chatter to keep the information.
|
||||||
|
- Sequence changes also affect the format of future invoices' sequences.
|
||||||
|
|
||||||
You can now go through every transaction and reconcile them or you can mass reconcile with instructions at the bottom.
|
.. _accounting/invoice/resequencing-one-invoice:
|
||||||
|
|
||||||
After reconciling the items in the sheet, the related invoice will now
|
Resequencing a single invoice
|
||||||
display "You have outstanding payments for this customer. You can
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
reconcile them to pay this invoice. "
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice08.png
|
To resequence the last confirmed invoice, click :guilabel:`Reset to Draft`, then change the
|
||||||
|
sequence. The invoice now appears in red on the :guilabel:`Customer Invoices` list.
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice09.png
|
.. _accounting/invoice/mass-resequencing:
|
||||||
|
|
||||||
Apply the payment. Below, you can see that the payment has been added to
|
Mass-resequencing invoices
|
||||||
the invoice.
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice10.png
|
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
|
||||||
|
another invoicing or accounting system and the reference originates from the previous software,
|
||||||
|
continuity for the current year must be maintained without restarting from the beginning.
|
||||||
|
|
||||||
Payment Followup
|
.. note::
|
||||||
----------------
|
This feature is only available to users with administrator or advisor access.
|
||||||
|
|
||||||
There's a growing trend of customers paying bills later and later.
|
Follow these steps to resequence invoice numbers:
|
||||||
Therefore, collectors must make every effort to collect money and
|
|
||||||
collect it faster.
|
|
||||||
|
|
||||||
Odoo will help you define your follow-up strategy. To remind customers
|
#. Activate the :ref:`developer mode <developer-mode>`.
|
||||||
to pay their outstanding invoices, you can define different actions
|
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
|
||||||
depending on how severely overdue the customer is. These actions are
|
#. Select the invoices that need a new sequence.
|
||||||
bundled into follow-up levels that are triggered when the due date of an
|
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
|
||||||
invoice has passed a certain number of days. If there are other overdue
|
#. In the :guilabel:`Ordering` field, choose to
|
||||||
invoices for the same customer, the actions of the most overdue invoice
|
|
||||||
will be executed.
|
|
||||||
|
|
||||||
By going to the customer record and diving into the "Overdue Payments"
|
- :guilabel:`Keep current order`: The order of the numbers remains the same.
|
||||||
you will see the follow-up message and all overdue invoices.
|
- :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/invoice11.png
|
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice12.png
|
.. image:: customer_invoices/invoice-sequencing.png
|
||||||
|
:alt: Resequence options window
|
||||||
|
|
||||||
.. _customer-invoices/aging-report:
|
.. _accounting/invoice/reporting:
|
||||||
|
|
||||||
Customer aging report:
|
Reporting
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
=========
|
||||||
|
|
||||||
The customer aging report will be an additional key tool for the
|
.. _accounting/invoice/partner-reports:
|
||||||
collector to understand the customer credit issues, and to prioritize
|
|
||||||
their work.
|
|
||||||
|
|
||||||
Use the aging report to determine which customers are overdue and begin
|
Partner reports
|
||||||
your collection efforts.
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice13.png
|
|
||||||
|
|
||||||
Profit and loss
|
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
The Profit and Loss statement displays your revenue and expense details.
|
.. _accounting/invoices/partner-ledger:
|
||||||
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."
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice14.png
|
Partner Ledger
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The :guilabel:`Partner Ledger` report shows the balance of customers and suppliers. To access it,
|
||||||
|
go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
|
||||||
|
|
||||||
|
.. _accounting/invoices/aging-report:
|
||||||
|
|
||||||
|
Aged Receivable
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To review outstanding customer invoices and their related due dates, use the
|
||||||
|
:ref:`Aged Receivable <accounting/reporting/aged-receivable>` report. To access it, go to
|
||||||
|
:menuselection:`Accounting --> Reporting --> Aged Receivable`.
|
||||||
|
|
||||||
|
.. _accounting/invoices/aged-payable:
|
||||||
|
|
||||||
|
Aged Payable
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To review outstanding vendor bills and their related due dates, use the
|
||||||
|
:ref:`Aged Payable <accounting/reporting/aged-payable>` report. To access it, go to
|
||||||
|
:menuselection:`Accounting --> Reporting --> Aged Payable`.
|
||||||
|
|
||||||
|
.. _accounting/invoices/profit-and-loss:
|
||||||
|
|
||||||
|
Profit and Loss
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The :ref:`Profit and Loss <accounting/reporting/profit-and-loss>` statement shows details of income
|
||||||
|
and expenses.
|
||||||
|
|
||||||
|
.. _accounting/invoices/balance-sheet:
|
||||||
|
|
||||||
Balance sheet
|
Balance sheet
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The balance sheet summarizes your company's liabilities,
|
The :ref:`Balance Sheet <accounting/reporting/balance-sheet>` summarizes the company's assets,
|
||||||
assets and equity at a specific moment in time.
|
liabilities, and equity at a specific time.
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice15.png
|
|
||||||
|
|
||||||
.. image:: customer_invoices/invoice16.png
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 15 KiB |
@ -116,7 +116,7 @@ for every computed *due date*.
|
|||||||
This makes for easier :doc:`follow-ups </applications/finance/accounting/payments/follow_up>` and
|
This makes for easier :doc:`follow-ups </applications/finance/accounting/payments/follow_up>` and
|
||||||
:doc:`reconciliation </applications/finance/accounting/bank/reconciliation>` since Odoo takes each
|
:doc:`reconciliation </applications/finance/accounting/bank/reconciliation>` since Odoo takes each
|
||||||
due date into account, rather than just the balance due date. It also helps to get an accurate
|
due date into account, rather than just the balance due date. It also helps to get an accurate
|
||||||
:ref:`aged receivable report <customer-invoices/aging-report>`.
|
:ref:`aged receivable report <accounting/invoices/aging-report>`.
|
||||||
|
|
||||||
.. example::
|
.. example::
|
||||||
.. image:: payment_terms/journal-entry.png
|
.. image:: payment_terms/journal-entry.png
|
||||||
|