Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions content/applications/finance/accounting/taxes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ tax, and click on :guilabel:`Save`.

.. _taxes/list_activation:

Activate sales taxes from the list view
=======================================
Activate taxes from the list view
=================================

As part of your :ref:`fiscal localization package <fiscal_localizations/packages>`, most of your
country's sales taxes are already preconfigured on your database. However, only a few taxes are
Expand Down
19 changes: 11 additions & 8 deletions content/applications/finance/accounting/vendor_bills.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,17 @@ click :guilabel:`New`.
Automatically
-------------

Vendor bills can be automatically created through various methods:

- Emailing to an :ref:`email alias <invoice-digitization/email-alias>` associated with the purchase
journal. If the email does not contain a valid file, an automatic response notifies the sender
that no document was received.
- Uploading a PDF: To upload a bill, go to :menuselection:`Accounting --> Vendors --> Bills`, then
click :guilabel:`Upload`.
Vendor bills can be automatically created by sending an email to an :ref:`email alias
<accounting/bill-digitization/email-alias>` associated with the purchase journal, or by
:ref:`uploading a PDF <accounting/bill-digitization/manual-upload>`.

.. note::
- Once the bill is uploaded, the PDF document appears on the right side of the screen, making it
easy to fill in the bill information.
- Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic completion.
- Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic
completion and :ref:`matched with purchase orders
<accounting/bill-digitization/vendor-bills-matching-po>` to replace OCR-detected data with the
existing purchase order's details.
- Services such as digitizing scanned or PDF vendor bills in Odoo require :doc:`In-App
Purchase (IAP) </applications/essentials/in_app_purchase>` credits.

Expand All @@ -62,6 +61,10 @@ following options:
- :guilabel:`Ask after 3 validations without edits`
- :guilabel:`Never`

.. seealso::
:ref:`Vendor bills matching with purchase orders
<accounting/bill-digitization/vendor-bills-matching-po>`

.. _accounting/vendor_bills/bill-completion:

Bill completion
Expand Down
Original file line number Diff line number Diff line change
@@ -1,101 +1,215 @@
================================
AI-powered document digitization
================================
=====================
Document digitization
=====================

**Invoice digitization** is the process of converting paper documents into vendor bill and customer
invoice forms in your accounting.
Document digitization refers to the process of converting paper or digital documents into records
in a database. Using :abbr:`OCR (optical character recognition)` and artificial intelligence
technologies, Odoo reads the content and automatically creates and fills in the record's details.
This process is mainly used for vendor bills (or refunds).

Odoo uses :abbr:`OCR (optical character recognition)` and artificial intelligence technologies to
recognize the content of the documents. Vendor bill and customer invoice forms are automatically
created and populated based on the scanned invoices.
.. note::
Although less common, this digitization process can also be applied to customer invoices and
credit notes. The :ref:`settings <accounting/bill-digitization/configuration>` need to be
adjusted accordingly.

.. seealso::
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
- `Odoo Tutorials: Vendor Bill Digitization
<https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_
- :doc:`/applications/essentials/in_app_purchase`

.. _accounting/bill-digitization/configuration:

Configuration
=============

In :menuselection:`Accounting --> Configuration --> Settings --> Digitization`, check the box
:guilabel:`Document Digitization` and choose whether :guilabel:`Vendor Bills` and
:guilabel:`Customer Invoices` (this includes customer credit notes) should be processed
automatically or on demand.
Go to :menuselection:`Accounting --> Configuration --> Settings` and navigate to the
:guilabel:`Digitization` section. Enable the :guilabel:`Document Digitization` option and choose
whether :guilabel:`Vendor Bills` should be processed automatically or on demand.

.. note::
If the :guilabel:`Single Invoice Line Per Tax` option is enabled, only one line is created per
tax in the new vendor bill, regardless of the number of lines on it.

.. _accounting/bill-digitization/vendor-bills-upload:

If you enable the :guilabel:`Single Invoice Line Per Tax` option, only one line is created per tax
in the new bill, regardless of the number of lines on the invoice.
Vendor bills upload
===================

Invoice upload
==============
Vendor bills are :ref:`uploaded manually <accounting/bill-digitization/manual-upload>` or sent to a
:ref:`designated email alias <accounting/bill-digitization/email-alias>` to be digitized. They can
also be :ref:`automatically posted <accounting/bill-digitization/auto-post-bills>` for selected
vendors.

Upload invoices manually
------------------------
.. note::
Once the bill is uploaded, the document preview appears on the right side of the screen.

.. seealso::
:doc:`Vendor bills <../vendor_bills>`

From the :guilabel:`Accounting Dashboard`, click on the :guilabel:`Upload` button of your vendor
bills journal.
Alternatively, go to :menuselection:`Accounting --> Customers --> Invoices` or
:menuselection:`Accounting --> Vendors --> Bills` and select :guilabel:`Upload`.
.. _accounting/bill-digitization/manual-upload:

.. _invoice-digitization/email-alias:
Manual upload
-------------

Upload invoices using an email alias
------------------------------------
In the Accounting dashboard, drag and drop vendor bills into the desired purchase journal or click
:guilabel:`Upload` on the purchase journal.

You can configure your connected scanner to send scanned documents to an email alias. Emails sent to
these aliases are converted into new draft customer invoices or vendor bills.
.. _accounting/bill-digitization/email-alias:

You can modify the email alias of a journal. To do so, go to the :guilabel:`Settings` app. Under
:guilabel:`General Settings: Discuss`, enable :guilabel:`Custom Email Servers`, add an
:guilabel:`Alias Domain`, and :guilabel:`Save`.
Upload via email alias
----------------------

The email alias is now available in the :guilabel:`Advanced Settings` tab of the journal. Emails
sent to this address will be converted automatically into new invoices or bills.
Vendor bills can be uploaded via an email alias associated with the relevant journal in two ways:

- scanned from a connected scanner configured to send email to an email alias;
- sent directly to an email alias.

Each PDF attached to the email is automatically converted into a new draft vendor bill.

.. note::
If you use the :doc:`Documents </applications/productivity/documents>` app, you can automatically
send your scanned invoices to the :guilabel:`Finance` workspace (e.g.,
`[email protected]`).
- Only PDF and XML formats are processed via an email alias associated with a journal.
- JPEG files must be processed via :ref:`email alias in the Documents app
<documents/email-aliases>`.

The default email aliases `vendor-bills@` and `customer-invoices@` followed by the
:guilabel:`Alias Domain` you set are automatically created for the :guilabel:`Vendor Bills` and
:guilabel:`Customer Invoices` journals, respectively. Emails sent to these addresses are converted
automatically into new invoices or bills.
To add an email alias to a journal, follow these steps:

To change a default email alias, go to
:menuselection:`Accounting --> Configuration --> Accounting: Journals`. Select the journal you want
to edit, click on the :guilabel:`Advanced Settings` tab, and edit the `Email Alias`.
#. Make sure an :doc:`alias domain <../../../websites/website/configuration/domain_names>` has been
configured.
#. The default email alias `vendor-bills@` followed by the alias domain is automatically created
and available in the :guilabel:`Advanced Settings` tab of the :guilabel:`Vendor Bills` journal.
#. To change a default email alias, go to :menuselection:`Accounting --> Configuration -->
Journals`, select the corresponding journal, and edit the :guilabel:`Email Alias` in the
:guilabel:`Advanced Settings` tab.
#. Configure the connected scanner to send scanned documents to the email alias, if needed.

Invoice digitization
====================
.. note::
Alternatively, an :ref:`email alias in the Documents app <documents/email-aliases>` can be used
to automatically send vendor bills to the :guilabel:`Finance` :ref:`folder
<documents/folders>` (e.g., `[email protected]`).

According to your settings, the document is either processed automatically, or you need to click on
:guilabel:`Send for digitization` to do it manually.
.. _accounting/bill-digitization/auto-post-bills:

Once the data is extracted from the PDF, you can correct it if necessary by clicking on the
respective tags (available in :guilabel:`Edit` mode) and selecting the proper information instead.
Auto-post bills
---------------

Data recognition with AI
========================
To set an auto-post bills option for a vendor, go to :menuselection:`Accounting --> Vendors -->
Vendors`. In the :guilabel:`Accounting` tab of the contact form, select an :guilabel:`Auto-post
Comment on lines +96 to +97
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To set an auto-post bills option for a vendor, go to :menuselection:`Accounting --> Vendors -->
Vendors`. In the :guilabel:`Accounting` tab of the contact form, select an :guilabel:`Auto-post
To set an auto-post bills option for a vendor, go to :menuselection:`Accounting --> Vendors -->
Vendors` and click the desired vendor. In the :guilabel:`Accounting` tab of the contact form, select an :guilabel:`Auto-post

bills` option in the :guilabel:`Automation` section:

It is essential to review and correct (if needed) the information uploaded during digitization.
Then, you have to post the document by clicking on :guilabel:`Confirm`. In this manner, the AI
learns, and the system identifies the correct data for future digitizations.
- :guilabel:`Always`
- :guilabel:`Ask after 3 validations without edits`: When the third uploaded bill is confirmed
without any edits, an :guilabel:`Autopost Bills` window appears. The following options can be
chosen: :guilabel:`Activate auto-validation`, :guilabel:`Ask me later`, or :guilabel:`Never for
this vendor`.
- :guilabel:`Never`

.. tip::
The following conditions must be met for bills to be auto-posted:

- The :guilabel:`Digitize automatically` option in the :guilabel:`Document Digitization` section
must be enabled for vendor bills.
- Since automation is triggered after three validated bills without edits, the contact name must
already exist in the database, and each uploaded vendor bill must include a bill date.
Comment on lines +107 to +113
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since these are pre-requisites for the feature, I wouldn't have them in a tip:

  • I would move the first list item before the part where you explain how to enable the feature for a vendor. i'd also add a ref to the Configuration section of this doc page.
  • I think the second list item can be in a note and can stay here.
  • Then I don't think the introductory sentence on line 108 would be needed anymore.


.. _accounting/bill-digitization/digitization:

Digitization and data recognition with AI
=========================================

Depending on the :ref:`settings <accounting/bill-digitization/configuration>`, documents are either
automatically digitized or require manual processing if digitization is set to on-demand only.

To manually digitize an :ref:`uploaded document
<accounting/bill-digitization/vendor-bills-upload>`, click :guilabel:`Digitize document`.

Once the document has been digitized, a blue banner appears; click :icon:`oi-arrow-right`
:guilabel:`Refresh` if needed. Review and correct any information uploaded during digitization:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:guilabel:`Refresh` if needed. Review and correct any information uploaded during digitization:
:guilabel:`Refresh`. Review and correct any information uploaded during digitization:

click on the related field(s) to edit them, or click :guilabel:`Reload AI data` to refresh the data.

Then, click :guilabel:`Confirm` to post the document.

.. tip::
Once a document has been digitized, the :guilabel:`Vendor` field remains empty if the vendor
doesn't exist in the database. To add it, click the :icon:`fa-caret-down` :guilabel:`(down arrow)`
in the :guilabel:`Vendor` field; the vendor name appears highlighted in the document preview on
the right. Click it to open a new vendor form with the name pre-filled.

.. note::
The following vendor bill fields are recognized by OCR:

- :guilabel:`Vendor`, :guilabel:`Bill Reference`, :guilabel:`Bill Date`, :guilabel:`Payment
Reference` (only in the Belgian +++xxx/xxxx/xxxxx+++ format), :guilabel:`Recipient Bank`,
:guilabel:`Due Date`, and the currency (in a :doc:`multi-currency
<../get_started/multi_currency>` environment and if the currency is activated).
- From the :guilabel:`Invoices Lines` tab: :guilabel:`Product` description/label,
:guilabel:`Quantity`, unit :guilabel:`Price`, :guilabel:`Taxes` (if the :ref:`tax is activated
<taxes/list_activation>`; this field is not recognized by OCR for the :doc:`Indian
localization <../../fiscal_localizations/india>`), :guilabel:`Untaxed Amount`, and
:guilabel:`Total`.

.. _accounting/bill-digitization/vendor-bills-matching-po:

Purchase matching
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious to know why you decided to change this heading (compared to the 17.0 version)? I think I would at least write "Purchase order matching" here instead, what do you think?

=================

When a digitized vendor bill is recognized by :abbr:`OCR (optical character recognition)`, Odoo
searches the database for a matching purchase order. If found, the vendor bill can be manually
matched with the existing open purchase order lines.

Once a vendor bill has been :ref:`uploaded <accounting/bill-digitization/vendor-bills-upload>` and
:ref:`digitized <accounting/bill-digitization/digitization>`, click the :guilabel:`Purchase
matching` smart button to access the :guilabel:`Purchase matching` list view, displaying all
purchase orders linked to the corresponding vendor. Then, select the relevant lines from the
purchase order and the draft vendor bill (shown in grey), and click :guilabel:`Match`.
Comment on lines +163 to +164
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
purchase orders linked to the corresponding vendor. Then, select the relevant lines from the
purchase order and the draft vendor bill (shown in grey), and click :guilabel:`Match`.
purchase order lines linked to the vendor defined for the vendor bill. Then, select the relevant purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`.
  • since you see the PO lines in this view
  • to make it clearer
  • (defined not great; feel free to improve this)


.. tip::
In the :guilabel:`Purchase Matching` list view, update the :guilabel:`Quantity` and
:guilabel:`Price` in the purchase order lines, if necessary.

If there is no existing purchase order related to the uploaded vendor bill, a new purchase order
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If there is no existing purchase order related to the uploaded vendor bill, a new purchase order
If there is no existing purchase order related to the vendor of the uploaded vendor bill, a new purchase order

can be directly created from the vendor bill lines. To do so, follow these steps:

#. Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in.
#. Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in with the correct vendor.

(to be improved)

#. Click the :guilabel:`Purchase matching` smart button, select the corresponding draft vendor bill
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. Click the :guilabel:`Purchase matching` smart button, select the corresponding draft vendor bill
#. Click the :guilabel:`Purchase matching` smart button, select the draft vendor bill in the list

(since there's only one?)

(shown in grey), and click :guilabel:`Add to PO`.
#. In the :guilabel:`Add to Purchase Order` window, start typing in the :guilabel:`Purchase Order`
field and select :guilabel:`Create and edit`.
#. In the :guilabel:`Create Purchase Order` window, complete all :ref:`required fields
<purchase/manage_deals/create-new-rfq>` in the purchase order form and click :guilabel:`Confirm
Comment on lines +178 to +179
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. In the :guilabel:`Create Purchase Order` window, complete all :ref:`required fields
<purchase/manage_deals/create-new-rfq>` in the purchase order form and click :guilabel:`Confirm
#. In the :guilabel:`Create Purchase Order` window, select the vendor from the bill, then complete all :ref:`required fields <purchase/manage_deals/create-new-rfq>` and click :guilabel:`Confirm

(feel free to improve this! I removed purchase order form since you said "in the Create purchase order window" at the beginning of the sentence)

order`.
#. In the :guilabel:`Purchase Matching` list view, select the relevant lines from the purchase order
and the lines from the draft vendor bill (shown in grey), and click :guilabel:`Match`.
Comment on lines +181 to +182
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. In the :guilabel:`Purchase Matching` list view, select the relevant lines from the purchase order
and the lines from the draft vendor bill (shown in grey), and click :guilabel:`Match`.
#. In the :guilabel:`Purchase Matching` list view, select the relevant purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`.

since there's only one line for the vendor bill?


.. Note::
If any information required for the purchase order fields is missing, click :guilabel:`Save and
Close` in the :guilabel:`Create Purchase Order` window. Then, open the Purchase app to fill in
the fields and confirm the purchase order.
Comment on lines +186 to +187
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a doc link for the Purchase app, just for good measure?


.. tip::
- Electronic vendor bills with embedded XML ensure more accurate and efficient processing.
- Alternatively, the :ref:`Auto-complete <accounting/vendor_bills/bill-completion>` feature
can transfer information from the purchase order to the vendor bill, without requiring OCR.

.. _accounting/bill-digitization/pricing:

Pricing
=======

The **invoice digitization** is an In-App Purchase (IAP) service that requires prepaid credits to
work. Digitizing one document consumes one credit.
The document digitization feature is an In-App Purchase (IAP) service requiring prepaid credits.
Digitizing one document uses one credit.

To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Digitization`
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
:guilabel:`View My Services`.
To buy credits, :ref:`go to the Settings app <iap/buying_credits>` or :menuselection:`Accounting -->
Configuration --> Settings`, navigate to the :guilabel:`Digitization` section, and click
:guilabel:`Buy credits`.

.. note::
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
deciding to purchase more credits for the database. This includes demo/training databases,
educational databases, and one-app-free databases.
- Odoo Enterprise users with a valid subscription get free credits to test IAP features before
purchasing more credits for the database. This includes demo/training databases, educational
databases, and one-app-free databases.
- XML files don't require OCR credits because they contain structured data that can be processed
directly, without OCR.

.. seealso::
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
- `Odoo In-App Purchase Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
- :doc:`/applications/essentials/in_app_purchase`