Compare commits

...

38 Commits

Author SHA1 Message Date
jero-odoo c61b9b1426 [ADD] Purchase: Templates
Co-authored-by: dikd-odoo <dikd@odoo.com>

Co-authored-by: Felicia Kuan <feku@odoo.com>

Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-18 10:41:34 -05:00
xpl-odoo d2c610179a [IMP] accounting: clarify invoice sequence format
task-4564980

closes odoo/documentation#12053

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-18 11:12:47 +00:00
“Dallas” 35f2768359 [IMP] accounting/transactions: view/edit/print statements
Explains how to view, edit, and print statements from both kanban and list views of transactions.

task-4320158

closes odoo/documentation#12028

X-original-commit: f1f547ca58
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-02-17 11:09:30 +00:00
Odoo Translation Bot 7529565384 [I18N] *: fetch 18.0 translations 2025-02-17 08:01:34 +00:00
Odoo Translation Bot 1e412a8780 [I18N] Update translation terms from Transifex 2025-02-16 02:42:22 +01:00
samueljlieber 77d4d6e359 [IMP] data cleaning: content improvements
closes odoo/documentation#12092

X-original-commit: a762cabbb3
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
2025-02-15 21:45:43 +00:00
dikd-odoo c0dd6b7d1c [ADD] sales: gelato integration
edit image sizes

edits

Apply suggestions from FEKU review

edits

Apply suggestions from FEKU review

edits

Apply suggestions from FEKU review

edits

Update content/applications/sales/sales/gelato.rst

edits

Apply suggestions from ZST review

edits

edits

sales file

Apply suggestions from SALI review

Apply suggestions from SALI review2

images

Edits

closes odoo/documentation#12001

Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-15 02:00:37 +00:00
dikd-odoo cd2e27084d [IMP] sales: subscription products in ecommerce
closes odoo/documentation#12043

X-original-commit: 710854226d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
2025-02-14 23:13:12 +00:00
maad-odoo a00a6f5583 [FIX] developer/mixins: chatter integration instructions in form view
Previously, the chatter integration instructions described an outdated method using fields and widgets. However, the integration approach has changed, requiring only the `<chatter/ >` element in the form view with configurable options. This commit updates the instructions accordingly.

See odoo/odoo@351b047c37

closes odoo/documentation#12057

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2025-02-14 19:01:27 +00:00
jbelloc2 84051ad9de [ADD] sale_shopee: Shopee Connector
Documentation on the benefits of the new shopee connector and guidelines for odoo users.

tasks-3623720

closes odoo/documentation#11984

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-14 17:44:25 +00:00
jero-odoo 5fbab9eba4 [IMP] inventory: add a delivery
closes odoo/documentation#12033

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-14 15:58:02 +00:00
jero-odoo 01cf1d3dd7 [IMP] inventory: notifs for expiration dates
closes odoo/documentation#12054

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-14 15:58:01 +00:00
samueljlieber a55fdb6313 [FIX] resource folder match
closes odoo/documentation#12074

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-14 15:57:59 +00:00
samueljlieber a4b841afce [FIX] clean unused resource files
Part-of: odoo/documentation#12074
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-14 15:57:59 +00:00
samueljlieber 3f1f02200b [IMP] tests: check resource file referenced
Part-of: odoo/documentation#12074
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-14 15:57:59 +00:00
bhra-odoo faca8a4bda [ADD] l10n_in: add TDS/TCS threshold alert (India)
This PR is backporting of this commit:
https://github.com/odoo/documentation/pull/11109/commits/4452b60b5cddb46d45bb8a6b992f0cf10df75c96

This commit introduces TDS/TCS Alert documentation for Indian localization.

closes odoo/documentation#12075

Signed-off-by: Raj Bhuva (bhra) <bhra@odoo.com>
2025-02-14 11:18:18 +00:00
jero-odoo c9fca6c3b6 [ADD] Barcode: Processing a transfer
closes odoo/documentation#11979

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-02-13 17:11:57 +00:00
samueljlieber 3941e55043 [IMP] marketing automation: content improvements
closes odoo/documentation#12060

X-original-commit: 8f1d5d428c
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-13 15:51:16 +00:00
mcsi-odoo 4b6e34efc5 [IMP] studio: automation rules correction
Task-3761784

closes odoo/documentation#12052

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-02-13 12:22:26 +00:00
Odoo Translation Bot 7368ad782b [I18N] *: fetch 18.0 translations 2025-02-13 09:33:25 +00:00
xpl-odoo c4bfeb9cae [IMP] website: remove slash in redirect rule expression
task-4113085

closes odoo/documentation#12049

X-original-commit: a00b6cf990
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-12 14:25:17 +00:00
Sam Lieber (sali) f4c16bc722 [IMP] data cleaning: field cleaning
closes odoo/documentation#12038

X-original-commit: 98b765babe
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-12 14:25:16 +00:00
jero-odoo aa5d9911b3 [IMP] Inventory: Adjustments edit
closes odoo/documentation#12034

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-02-11 21:14:38 +00:00
mcsi-odoo 5c72ee6f63 [IMP] studio: adding link about accessing studio
Task-3761784

closes odoo/documentation#11999

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-02-11 15:32:36 +00:00
jero-odoo 123ea24f91 [IMP] Calendar: Outlook calendar configuration
closes odoo/documentation#12021

X-original-commit: f1030c6e9f
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-02-10 20:29:33 +00:00
Paolo Gatti 8495357d6e [IMP] fiscal_localizations: Documentation for l10n_it_riba
Since the feature was released, lots of partners ask for
information/documentation about the RIBA feature.  Add a concise
documentation explaining what users should know.

Ref: odoo/enterprise#74097

task-4497749

closes odoo/documentation#12005

X-original-commit: e8305bad12
Related: odoo/enterprise#78927
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
2025-02-10 16:24:03 +00:00
afma-odoo 52d8565f02 [IMP] accounting: update payment matching feature
task-3518648

closes odoo/documentation#11923

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-02-10 16:23:53 +00:00
afma-odoo b6e6515fbf [IMP] accounting: Update customer invoices page for 18.0
task-3416326

closes odoo/documentation#11813

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-02-10 14:51:30 +00:00
Zuzanna Luczynska 49b75e3213 [IMP] project: project dashboard minor corrections
closes odoo/documentation#12009

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-02-10 14:51:27 +00:00
Meet Jivani [MEJI] bb69f01e71 [IMP] pos_urban_piper: clarify combo product handling
In this commit:
- Added a note explaining that UrbanPiper does not support combo products.
- Users need to create a new product and add combo items as variants to use them
with UrbanPiper.

task-4546712

closes odoo/documentation#11954

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-02-10 14:51:12 +00:00
Odoo Translation Bot c7fb228d91 [I18N] Update translation terms from Transifex 2025-02-09 02:41:57 +01:00
Felicious 75f0258d19 [IMP] inventory: CRL - replenishment & visibility days
closes odoo/documentation#11966

X-original-commit: 26f226c51b
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com>
2025-02-08 16:58:49 +00:00
jero-odoo 7e375cfd54 [IMP] Inventory: Adjustments 18.0
closes odoo/documentation#11930

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-02-08 02:21:02 +00:00
Harsh Modi 853583b0ce [FIX] coding_guidelines: fix the alphabetic orders for the import
In odoo, as we suggest everyone to follow an alphebetic order.

The translator(`_`), ASCII is 95 and `a` ASCII value is 97
which '_' < 'a', the translator should be defined first in the
import before the `api` not at the end of the import

This commits adds an example to import static class `Command`
with a Capital alphabet with a ASCII value of `C` as 67
which will be before than the `_`
'C' < '_' < 'a'

This order of import should be followed while the import

closes odoo/documentation#11990

X-original-commit: c7a6b67a87
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Harsh Modi (hamo) <hamo@odoo.com>
2025-02-07 15:28:27 +00:00
Nicolas Viseur (vin) d7c0cdddbf [IMP] l10n_vn: SInvoice documentation
Recently, a new module released to support integration of Odoo with SInvoice to support e-invoicing for Vietnam.

task - 3631616

closes odoo/documentation#11974

X-original-commit: 4b123b8464
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
Signed-off-by: Kim Dohyun (kido) <kido@odoo.com>
2025-02-07 03:58:47 +00:00
benderliz be14393043 [IMP] Inventory: Merged cycle count docs and updated for 17.0
closes odoo/documentation#11731

X-original-commit: 6852e4b980
Signed-off-by: Liz Bender (beli) <benderliz@users.noreply.github.com>
2025-02-06 21:12:24 +00:00
Anita (anko) 6ad97e2fea [IMP] applications/sales: prepare files for future Gelato documentation
task-3935688

closes odoo/documentation#11823

Related: odoo/odoo#193457
Related: odoo/enterprise#77839
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-06 19:56:54 +00:00
evtf-odoo 27acb59d79 [IMP] accounting/l10n_ar: purchase withholding automation
Add new section Withholding Management
Content based on v18

closes odoo/documentation#11770

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Liz Bender (beli) <beli@odoo.com>
Co-authored-by: samueljlieber <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
2025-02-06 17:59:33 +00:00
435 changed files with 21849 additions and 6520 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ Edit Security Settings --> Delete Account`. It can also be accessed by going to
Upon clicking the :guilabel:`Delete Account` button, a pop-up window appears, requesting
confirmation for the account deletion.
.. image:: odoo_account/delete-account.png
.. image:: odoo_accounts/delete-account.png
:align: center
:alt: Clicking on the Delete Account button will populate a window verifying the change.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

@@ -120,6 +120,8 @@ You can edit the currency used to enter the transactions.
.. seealso::
:doc:`get_started/multi_currency`
.. _accounting/bank/account-number:
Account number
--------------
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

@@ -21,25 +21,23 @@ Import transactions
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
- SEPA recommended Cash Management format (CAMT.053)
- Comma-separated values (CSV)
- Open Financial Exchange (OFX)
- Quicken Interchange Format (QIF)
- Belgium: Coded Statement of Account (CODA)
To import a file, go to the **Accounting Dashboard**, and in the :guilabel:`Bank` journal,
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import File`.
.. tip::
Alternatively, you can also:
- click :guilabel:`⋮` on the :guilabel:`Bank` journal and select :guilabel:`Import file`;
- or access the transaction list by clicking :guilabel:`⋮` on the :guilabel:`Bank` journal and
selecting :guilabel:`Transactions`, then click the gear icon :guilabel:`(⚙)` and select
:guilabel:`Import records`.
.. image:: transactions/import-transactions.png
:alt: Import bank transactions from the bank journal
- click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank`
journal and select :guilabel:`Import file`;
- or access the transaction list by clicking the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)`
icon on the :guilabel:`Bank` journal and selecting :guilabel:`Transactions`, then click
the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Import records`.
Next, select the file and upload it.
@@ -75,22 +73,28 @@ on your business flow, you may want to record them for control purposes.
account balance as of the date you begin synchronizing or importing transactions. This is
necessary to ensure the accuracy of your accounting.
To access a list of statements, go to your :guilabel:`Accounting Dashboard`, click on the vertical
ellipsis (:guilabel:`⋮`) button next to the bank or cash journal you want to check, then on
:guilabel:`Statements`
To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the
:icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon next to the bank or cash journal you want to
check, then click :guilabel:`Statements`.
.. _transactions/statement-kanban:
Statement creation from the kanban view
---------------------------------------
Open the bank reconciliation view by clicking on the name of the bank journal, and identify the
transaction corresponding to the last transaction of your bank statement. Click on the
:guilabel:`STATEMENT` button when hovering on the upper separator line.
Open the bank reconciliation (kanban) view from the :guilabel:`Accounting Dashboard` by clicking on
the name of the bank journal and identify the transaction corresponding to the last (most recent)
transaction of your bank statement. Click on the :guilabel:`Statement` button when hovering on the
upper separator line to create a statement from that transaction down to the oldest transaction that
is not yet part of a statement.
.. image:: transactions/statements-kanban.png
:alt: A "STATEMENT" button is visible when hovering on the line separating two transactions.
:alt: A "Statement" button is visible when hovering on the line separating two transactions.
Fill out the statement's details and save. The newly created statement includes the previous
transactions following the last statement.
In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify
its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, and click :guilabel:`Save`.
.. _transactions/statement-list:
Statement creation from the list view
-------------------------------------
@@ -100,3 +104,35 @@ view. Select all the transactions corresponding to the bank statement, and, in t
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
saving.
.. _transactions/view-edit-print:
Statement viewing, editing, and printing
----------------------------------------
To view an existing statement, click on the statement amount in the reconciliation (kanban) view or
click on the statement name in the bank transaction list view. From here, you can edit the
:guilabel:`Reference`, :guilabel:`Starting Balance`, or :guilabel:`Ending Balance`.
.. note::
Manually updating the :guilabel:`Starting Balance` automatically updates the :guilabel:`Ending
Balance` based on the new value of the :guilabel:`Starting Balance` and the value of the
statement's transactions.
.. warning::
If the :guilabel:`Starting Balance` doesn't equal the previous statement's :guilabel:`Ending
Balance`, or if the :guilabel:`Ending Balance` doesn't equal the running balance
(:guilabel:`Starting Balance` plus the statement's transactions), a warning appears explaining
the issue. To maintain flexibility, it is still possible to save without first resolving the
issue.
To attach a digital copy (i.e., JPEG, PNG, or PDF) of the bank statement for enhanced recordkeeping,
click the :icon:`fa-paperclip` :guilabel:`Attachments` button and select the file to attach.
To generate and print a PDF of the bank statement, click the :guilabel:`Print` button (if accessed
via the reconciliation view) or click on the :icon:`fa-cog`:guilabel:`(gear)` icon and click
:icon:`fa-print`:guilabel:`Statement` (if accessed via the list view).
.. note::
When a bank statement is generated to be printed, it is automatically added to the
:guilabel:`Attachments`.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 23 KiB

@@ -7,8 +7,7 @@ Customer invoices
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.
fees, and other charges. Odoo supports multiple invoicing and payment workflows.
.. seealso::
:doc:`/applications/finance/accounting/customer_invoices/overview`
@@ -44,22 +43,31 @@ goods and services. Make sure the following fields are appropriately completed:
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:`Journal`: Automatically set and can be changed if needed.
- :doc:`Currency <get_started/multi_currency>`. If the invoice's currency differs from the
company's currency, the currency exchange rate is automatically displayed.
In the :guilabel:`Invoice Lines` tab:
- :guilabel:`Product`: Click :guilabel:`Add a line`, then search for and select the product.
- :guilabel:`Quantity`
- :guilabel:`Price`
- :doc:`Taxes <taxes>` (if applicable)
To access the product catalog and view all items in an organized display, click :doc:`Catalog
</applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/product_catalog>`.
When the products and quantities are selected, click :guilabel:`Back to Invoice` to return to the
invoice; the selected catalog items will appear in the invoice lines.
.. tip::
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.
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.
The :guilabel:`Journal Items` tab displays the accounting entries created. Additional invoice
information such as the :guilabel:`Customer Reference`, :guilabel:`Payment 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.
.. note::
Odoo initially creates invoices in :guilabel:`Draft` status. Draft invoices have no accounting
@@ -73,32 +81,72 @@ modified in the :guilabel:`Other Info` tab.
Invoice confirmation
====================
Click :guilabel:`Confirm` when the document is completed. The document's status changes to
Click :guilabel:`Confirm` when the invoice is completed. The invoice's status changes to
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
confirmation, Odoo assigns each document a unique number from a defined
:ref:`sequence <accounting/invoice/sequence>`.
confirmation, Odoo assigns each invoice a unique number from a defined :ref:`sequence
<accounting/invoice/sequence>`.
.. 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.
- If required, invoices and other journal entries can be locked once posted using the
:ref:`Secure posted entries with hash <data-inalterability/restricted>` feature.
.. _accounting/invoice/sending:
Invoice sending
===============
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
<studio/pdf-reports/default-layout>` hasn't been customized. Then, select how to send this invoice
to the customer in the :guilabel:`Send` window.
To set a preferred :guilabel:`Invoice sending` method for a customer, go to
:menuselection:`Accounting --> Customers --> Customers` and select the customer. In the
:guilabel:`Accounting` tab of the contact form, select the preferred :guilabel:`Invoice sending`
method in the :guilabel:`Customer Invoices` section.
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.
.. note::
Sending letters in Odoo requires :doc:`In-App Purchase (IAP) <../../essentials/in_app_purchase>`
credit or tokens.
To send the invoice to the customer, navigate back to the invoice record and follow these steps:
#. Click :guilabel:`Print & Send`.
#. If the :ref:`default invoice layout <studio/pdf-reports/default-layout>` has not been customized
yet, a :guilabel:`Configure your document layout` pop-up window appears. Configure the layout and
click :guilabel:`Continue`.
.. note::
- The document layout can be changed at any time in the general settings.
- To add a QR code for banking app payments to the invoice, enable the :guilabel:`QR Code`
option in the :guilabel:`Configure Your Document Layout` window. To modify this option, go
to :menuselection:`Accounting --> Configuration --> Settings`, scroll down to the
:guilabel:`Customer Payments` section, and enable/disable the :guilabel:`QR Codes` option.
#. In the :guilabel:`Print & Send` window:
- If a preferred :guilabel:`Invoice sending` method was set in the contact form, it is selected
by default. Select another one if needed.
- If no preferred :guilabel:`Invoice sending` method was set in the contact form, select the
method to use for sending the invoice to the customer.
#. Click :guilabel:`Print & Send` if the :guilabel:`by Email` option is selected, or click
:guilabel:`Print`.
.. _accounting/invoice/sending-multiple-invoices:
Sending multiple invoices
-------------------------
To send and print multiple invoices, go to :menuselection:`Accounting --> Customers --> Invoices`,
select them in the :guilabel:`Invoices` list view and click :guilabel:`Print & Send`. The
:guilabel:`Print & Send` window displays the selected invoice sending methods based on the preferred
method set.
A banner is added to 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.
To check all invoices that have not yet been sent, go to :menuselection:`Accounting --> Customers
--> Invoices`. In the :guilabel:`Invoices` list view, click into the search bar and filter on
:guilabel:`Not Sent`.
.. _accounting/invoice/paymentandreconciliation:
@@ -125,53 +173,45 @@ same customer, the actions are performed on the most overdue invoice.
.. _accounting/invoice/sequence:
Sequence
========
Invoice sequence
================
The sequence that Odoo assigns to each document is a unique number made up of a prefix and a number.
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.
When confirming an invoice, Odoo generates a unique invoice reference number. By default, Odoo uses
the following sequence format `INV/year/incrementing-number` (e.g., `INV/2025/00001`), which
restarts from `00001` each year.
However, it is possible to :ref:`change the sequence format <accounting/invoice/resequencing>` and
its periodicity, and to :ref:`mass-resequence invoices <accounting/invoice/mass-resequencing>`.
.. note::
Changes made to reference numbers are logged in the chatter.
.. _accounting/invoice/resequencing:
Resequencing
------------
Changing the default sequence
-----------------------------
Resequencing is not possible:
To customize the default sequence, open the last confirmed invoice, click :guilabel:`Reset to
Draft`, and edit the invoice's reference number.
- When entries are before a lock date.
- 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/reference-number.png
:alt: Editing the reference number of an invoice.
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`.
Odoo then explains how the detected format will be applied to all future invoices. For example, if
the current invoice's month is added, the sequence's periodicity will change to every month instead
of every year.
In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a
:guilabel:`Validation Error` message appears.
.. image:: customer_invoices/sequence-dialog.png
:alt: Editing the reference number of an invoice.
.. note::
- All sequence changes are logged in the chatter to keep the information.
- Sequence changes also affect the format of future invoices' sequences.
.. _accounting/invoice/resequencing-one-invoice:
Resequencing a single invoice
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
.. tip::
The sequence format can be edited directly when creating the first invoice of a given sequence
period.
.. _accounting/invoice/mass-resequencing:
Mass-resequencing invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~
--------------------------
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,
@@ -190,6 +230,7 @@ Follow these steps to resequence invoice numbers:
- :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`.
@@ -221,18 +262,18 @@ go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
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`.
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`.
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:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

@@ -20,39 +20,110 @@ for use at a later date:
- `Odoo Tutorials: Bank Configuration
<https://www.odoo.com/slides/slide/bank-configuration-6832>`_
.. _accounting/payments/payment-methods:
Payment methods
===============
Several payment methods are available in Odoo to allow different configurations for different types
of payments. Examples of payment methods include manual payments (such as cash), :doc:`checks
<payments/pay_checks>`, and batch payment files (such as :ref:`NACHA
<l10n_us/ach-electronic-transfers>` and :doc:`SEPA <payments/pay_sepa>`). Payment methods can be
configured in the :guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs of a bank or
cash journal.
.. seealso::
:doc:`../../sales/point_of_sale/payment_methods` for Point of Sale
.. _accounting/payments/preferred-payment-methods:
Preferred payment method
------------------------
A contact's preferred payment method can be set so that when a payment is created for that contact,
the payment method is automatically selected by default. Invoices and bills can be filtered by
:guilabel:`Payment Method` to simplify :ref:`group <accounting/payments/group-payments>` payments.
To set a preferred :guilabel:`Payment Method` for a customer or a vendor, go to
:menuselection:`Accounting --> Customers --> Customers` or :menuselection:`Accounting --> Vendors
--> Vendors` and select the customer or vendor. In the :guilabel:`Sales & Purchase` tab of the
contact form, select the preferred :guilabel:`Payment Method` in the :guilabel:`Sales` section for
invoice payments or for vendor bill payments in the :guilabel:`Purchase` section.
.. tip::
Access a full list of all contacts from the :guilabel:`Customers` or :guilabel:`Vendors` list
view by removing the :guilabel:`Customers` or :guilabel:`Vendors` filter. Alternatively, access
the full contact list through the Contacts app.
.. _accounting/payments/from-invoice-bill:
Registering payment from an invoice or bill
===========================================
When clicking :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a new
journal entry and changes the amount due according to the payment amount. The counterpart is
reflected in an :ref:`outstanding <accounting/bank/outstanding-accounts>` **receipts** or
**payments** account. At this point, the customer invoice or vendor bill is marked as :guilabel:`In
payment`. Then, when the outstanding account is reconciled with a bank transaction line, the invoice
or vendor bill changes to the :guilabel:`Paid` status.
To register a payment for an invoice or a bill, follow these steps:
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal, click
:guilabel:`View`.
#. Click :guilabel:`Pay` on a customer invoice or vendor bill. In the :guilabel:`Pay` window, select
the :guilabel:`Journal` and the :guilabel:`Payment Date`.
#. If previously set, the contact's preferred :guilabel:`Payment Method` is automatically selected
by default but can be updated if necessary.
#. If using :doc:`payment terms <customer_invoices/payment_terms>`, the :guilabel:`Amount` is
automatically set based on the installment amounts defined by the payment term. To pay the full
amount instead, click :guilabel:`full amount`.
#. If necessary, edit the :guilabel:`Memo`.
#. Click :guilabel:`Create Payment`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment.
After the payment is registered, the customer invoice or vendor bill is marked as
:guilabel:`In payment`.
.. note::
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
payment.
- If a payment is unreconciled, it still appears in the books but is no longer linked to the
invoice.
- If a payment is (un)reconciled in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If a payment is (un)reconciled and an invoice with cash-basis taxes, a journal entry is
automatically created to post the cash-basis tax (reversal) amount.
.. tabs::
.. tip::
If the main bank account is set as an :ref:`outstanding account
<accounting/bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a
related bank transaction), invoices and bills are directly registered as :guilabel:`Paid`.
.. group-tab:: Without outstanding accounts
If no :ref:`outstanding accounts <accounting/bank/outstanding-accounts>` are configured, no
journal entry is created. To display more information about the payment, click the
:guilabel:`Payments` smart button.
When the invoice or vendor bill is :doc:`reconciled <bank/reconciliation>` with a bank
transaction, its status is updated to :guilabel:`Paid`.
.. note::
- If a bank transaction is reconciled in a different currency, a journal entry is
automatically created to post the currency exchange gains/loss amount.
- When a bank transaction is reconciled with an invoice with cash-basis, a journal entry is
automatically created to post the cash-basis tax amount.
.. group-tab:: Using outstanding accounts
By default, payments in Odoo do not create journal entries, but they can easily be configured
to create journal entries using :ref:`outstanding accounts
<accounting/bank/outstanding-accounts>`.
Registering a payment on a customer invoice or vendor bill generates a new journal entry and
reduces the :guilabel:`Amount Due` based on the payment amount. The counterpart is
reflected in an :ref:`outstanding <accounting/bank/outstanding-accounts>` **receipts** or
**payments** account. At this point, the customer invoice or vendor bill is marked as
:guilabel:`In payment`. Then, when the payment is :doc:`reconciled <bank/reconciliation>` with
a bank transaction, the invoice or vendor bill status changes to :guilabel:`Paid`.
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal,
click :guilabel:`View`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment.
.. note::
- Unreconciling a payment unlinks it from the invoice or bill but does not delete the
payment.
- If a payment is (un)reconciled in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is
automatically created to post the cash-basis tax (reversal) amount.
.. tip::
If the main bank account is set as the outstanding account on the bank journal's payment
method, registering the full payment on an invoice or bill moves the invoice/bill directly
to the :guilabel:`Paid` status without requiring bank reconciliation.
.. _accounting/payments/not-tied:
@@ -60,71 +131,185 @@ Registering payments not tied to an invoice or bill
===================================================
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments`, it is not
directly linked to an invoice or bill. Instead, the account receivable or the account payable is
matched with the **outstanding account** until it is manually matched with its related invoice or
bill.
directly linked to an invoice or bill.
.. tabs::
.. group-tab:: Without outstanding accounts
Payments that are not linked to an invoice or bill should not be registered without using
:ref:`outstanding accounts <accounting/bank/outstanding-accounts>`, as there is no way to
associate the payment with the invoice or bill since no journal entry is created for the
payment. The amount paid or received is not reflected in the accounting and the
:guilabel:`Amount Due` is not updated based on the payment amount.
.. group-tab:: Using outstanding accounts
Instead, the payment's journal entry matches the :guilabel:`outstanding account` with the
account receivable or the account payable until the payment is manually matched with its
related invoice or bill. Then, :doc:`reconciling <bank/reconciliation>` the payment with the
bank transaction completes the payment workflow.
.. _accounting/payments/payments-matching:
Payments matching
-----------------
.. note::
During the :doc:`bank reconciliation <bank/reconciliation>` process, a remaining balance is
identified if the total debits and credits do not match when records are compared with bank
transactions. This balance must either be reconciled later or written off immediately.
.. _accounting/payments/matching-invoices-bills:
Matching invoices and bills with payments
-----------------------------------------
For a single invoice or bill
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists for
this specific customer or vendor. To match it with the invoice or bill, click :guilabel:`ADD`
under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. tabs::
.. image:: payments/add-option.png
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment.
.. group-tab:: Without outstanding accounts
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with its
corresponding bank transaction.
By default, payments in Odoo do not create journal entries. As a result, there is no payment
to match.
.. group-tab:: Using outstanding accounts
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists
for this specific customer or vendor. To match it with the invoice or bill, click
:guilabel:`Add` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. image:: payments/add-option.png
:alt: Shows the Add option to reconcile an invoice or a bill with a payment.
The invoice or bill is then marked as :guilabel:`In payment` until the payment is
:doc:`reconciled <bank/reconciliation>` with its corresponding :doc:`bank transaction(s)
<bank/transactions>`.
.. _accounting/payments/auto-reconcile-tool:
For multiple invoices or bills
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. tabs::
.. group-tab:: Without outstanding accounts
By default, payments in Odoo do not create journal entries. As a result, there is no payment
to match, but this feature can still be used to match miscellaneous journal items.
.. group-tab:: Using outstanding accounts
The :guilabel:`Payments matching` or :guilabel:`Auto-reconcile` tool allows reconciling
journal items with each other (i.e., payments with customer invoices or vendor bills) either
individually or in batches. Access the :guilabel:`Accounting Dashboard`, click the
:icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) button from the :guilabel:`Customer
Invoices` or :guilabel:`Vendor Bills` journals, and select :guilabel:`Payments Matching`.
Alternatively, go to :menuselection:`Accounting --> Accounting --> Reconcile`.
To manually :guilabel:`Reconcile` journal items, select the individual items from the list
view and click :guilabel:`Reconcile`.
.. _accounting/payments/auto-reconcile-feature:
Auto-Reconcile Feature
**********************
.. tabs::
.. group-tab:: Without outstanding accounts
To use the :guilabel:`Auto-Reconcile` feature, follow these steps:
#. In the :guilabel:`Journal Items to reconcile` list view, click :guilabel:`Auto-Reconcile`
next to the receivable or payable account (or a specific contact's group of journal items
in that account).
#. In the :guilabel:`Reconcile automatically` window, click :guilabel:`Reconcile`.
.. group-tab:: Using outstanding accounts
To use the :guilabel:`Auto-Reconcile` feature, follow these steps:
#. In the :guilabel:`Journal Items to reconcile` list view, click :guilabel:`Auto-Reconcile`
next to the receivable or payable account (or a specific contact's group of journal items
in that account).
#. In the :guilabel:`Reconcile Automatically` window, set the
:guilabel:`Reconcile` field depending on how you want to match journal items:
- :guilabel:`Perfect Match`: Each debit journal item will be matched with
the corresponding credit journal item of the same value.
- :guilabel:`Clear Accounts`: All reconciled journal items will have the same
matching number, as they are selected from the same account.
#. Click :guilabel:`Reconcile`.
Invoices and bills are automatically matched to their corresponding payments and marked as
:guilabel:`In payment` until they are :doc:`reconciled <bank/reconciliation>` with their
corresponding :doc:`bank transactions <bank/transactions>`.
.. _accounting/payments/group-payments:
Group payments
--------------
Registering payments on multiple invoices/credit notes or bills/refunds (group payments)
========================================================================================
Group payments allow combining outgoing and incoming payments from the same contact into a single
payment to simplify the process and improve payment usability. To register a group payment:
To register payments on multiple invoices/credit notes or bills/refunds, follow these steps:
#. Go to :menuselection:`Accounting --> Customers --> Invoices/Credit Notes` or
:menuselection:`Accounting --> Vendors --> Bills/Refunds`.
#. Select the relevant invoices/credit notes or bills/refunds linked to a specific contact.
#. Click the :icon:`fa-cog` (:guilabel:`Action menu`) icon and select :guilabel:`Register Payment`.
#. In the :guilabel:`Register Payment` window, select the :guilabel:`Journal`, the
:guilabel:`Payment Method`, and the :guilabel:`Payment Date`.
#. Enable the :guilabel:`Group Payments` option and click :guilabel:`Create payment`.
#. In the list view, click into the search bar, group by :guilabel:`Payment Method`, select the
relevant invoices/credit notes or bills/refunds and click :guilabel:`Pay`.
#. In the :guilabel:`Pay` window, select the :guilabel:`Journal` and the :guilabel:`Payment Date`.
#. If previously set, the contact's preferred :guilabel:`Payment Method` is automatically selected
by default but can be updated if necessary.
#. If using :doc:`payment terms <customer_invoices/payment_terms>`, the :guilabel:`Amount` is
automatically set based on the installment amounts defined by the payment term. To pay the full
amount instead, click :guilabel:`full amount`.
#. To combine all payments from the same contact into a single payment, enable the :guilabel:`Group
Payments` option, or leave it unchecked to create separate payments.
#. Click :guilabel:`Create payment`.
The invoices or bills are now marked as :guilabel:`In payment` until they are reconciled with the
corresponding bank transactions. The credit notes or refunds are marked as :guilabel:`Paid`.
.. tabs::
.. group-tab:: Without outstanding accounts
The invoices or bills are then marked as :guilabel:`In payment` until they are
:doc:`reconciled <bank/reconciliation>` with the bank transactions.
.. group-tab:: Using outstanding accounts
The invoices or bills are then marked as :guilabel:`In payment` until the bank transactions
are :doc:`reconciled <bank/reconciliation>` with the payments.
.. _accounting/payments/batch-payments:
Batch payments
--------------
Registering a single payment for multiple customers or vendors (batch payments)
===============================================================================
Batch payments allow grouping payments from multiple contacts to ease
:doc:`reconciliation <bank/reconciliation>`. They are also useful when depositing :doc:`checks
<payments/checks>` to the bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to
:menuselection:`Accounting --> Customers --> Batch Payments` or :menuselection:`Accounting -->
Vendors --> Batch Payments`. In the list view of payments, to group several payments in a
batch, select them and click :menuselection:`Action --> Create Batch Payment`.
Batch payments allow grouping payments from multiple contacts to ease :doc:`reconciliation
<bank/reconciliation>`. They are also useful when depositing :doc:`checks <payments/checks>` to the
bank or for generating bank payment files such as :doc:`SEPA <payments/pay_sepa>` or :ref:`NACHA
<l10n_us/nacha>`. To do so, go to :menuselection:`Accounting --> Customers --> Payments` or
:menuselection:`Accounting --> Vendors --> Payments`. In the payments list view, select the payments
to be grouped in a batch, click :icon:`fa-cog` :guilabel:`Actions`, and select :guilabel:`Create
Batch Payment`.
.. note::
All payments in a batch must have the same :ref:`payment method
<accounting/payments/payment-methods>`.
.. seealso::
- :doc:`payments/batch`
- :doc:`payments/batch_sdd`
- :doc:`payments/batch`
- :doc:`payments/batch_sdd`
.. _accounting/payments/matching:
Payments matching
-----------------
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
allows them to be processed individually, matching all payments and invoices in one place. Go to the
:guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` (:guilabel:`dropdown menu`)
button from the :guilabel:`Customer Invoices` or :guilabel:`Vendor Bills` journals, and select
:guilabel:`Payments Matching`, or go to :menuselection:`Accounting --> Accounting -->
Reconciliation`.
The :guilabel:`Payments matching` tool opens all unreconciled journal items and allows them to be
processed individually, matching all payments and journal items. Go to the
:guilabel:`Accounting Dashboard`, go to :menuselection:`Accounting --> Accounting --> Reconcile` or
click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) button from the :guilabel:`Customer
Invoices` or :guilabel:`Vendor Bills` journals, and select :guilabel:`Payments Matching`.
.. image:: payments/payments-journal.png
:alt: Payments matching menu in the drop-down menu.
@@ -134,47 +319,56 @@ Reconciliation`.
not match, there is a remaining balance. This either needs to be reconciled at a later date or
written off directly.
.. _accounting/payments/batch-payments-matching:
Batch payments matching
-----------------------
Use the batch reconciliation feature to reconcile several outstanding payments or invoices
simultaneously for a specific customer or vendor. Go to :menuselection:`Accounting --> Reporting -->
Aged Receivable / Aged Payable`. All transactions that have not yet been reconciled for that
contact are visible, and when a customer or vendor is selected, the :guilabel:`Reconcile` option is
displayed.
.. image:: payments/reconcile-option.png
:alt: The batch payment reconcile option.
.. _accounting/payments/partial-payment:
Registering a partial payment
=============================
To register a partial payment, click on :guilabel:`Register Payment` from the related invoice or
bill. In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field displays the
outstanding balance. There are two options:
To register a partial payment, click on :guilabel:`Pay` from the related invoice or bill.
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a :guilabel:`Partial`
banner;
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In` field and
change the :guilabel:`Label` if needed. A journal entry will be created to balance the accounts
payable or receivable with the selected account.
.. tabs::
.. image:: payments/partial-payment.png
:alt: register a partial payment
.. group-tab:: Without outstanding accounts
In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), fill in the :guilabel:`Amount` in the
:guilabel:`Pay` window.
.. group-tab:: Using outstanding accounts
In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field
displays the outstanding balance. There are two options:
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a
:guilabel:`Partial` banner;
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In`
field and change the :guilabel:`Label` if needed. A journal entry will be created to balance
the accounts payable or receivable with the selected account.
.. image:: payments/partial-payment.png
:alt: register a partial payment
.. _accounting/payments/reconciling-payments:
Reconciling payments with bank transactions
===========================================
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank transaction line to
finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`.
.. tabs::
.. group-tab:: Without outstanding accounts
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In
payment`. The next step is :doc:`reconciling <bank/reconciliation>` the related :doc:`bank
transaction <bank/transactions>` line with the invoice or bill to finalize the payment
workflow and mark the invoice or bill as :guilabel:`Paid`.
.. group-tab:: Using outstanding accounts
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In
payment`. The next step is :doc:`reconciling <bank/reconciliation>` the payment with the
related :doc:`bank transaction <bank/transactions>` line to finalize the payment workflow and
mark the invoice or bill as :guilabel:`Paid`.
.. toctree::
:titlesonly:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@@ -62,7 +62,7 @@ Then, to close the fiscal year:
<accounting/reporting/aged-payable>` reports.
- Audit all accounts, being sure to fully understand all transactions and their nature, making
sure to include loans and fixed assets.
- Optionally, run :ref:`payments matching <accounting/payments/matching>` to validate any open
- Optionally, :ref:`match payments <accounting/payments/auto-reconcile-tool>` to validate any open
vendor bills and customer invoices with their payments. While this step is optional, it could
assist the year-end closing process if all outstanding payments and invoices are reconciled,
potentially finding errors or mistakes in the system.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -37,7 +37,7 @@ appropriately completed:
- :guilabel:`Vendor`: Odoo automatically fills some information based on the vendor's registered
information, previous purchase orders, or bills.
- :guilabel:`Bill Reference`: add the sales order reference provided by the vendor and is used to do
the :ref:`matching <accounting/payments/matching>` when you receive the products.
the :ref:`matching <accounting/payments/payments-matching>` when you receive the products.
- :guilabel:`Auto-Complete`: select a past bill/purchase order to automatically complete the
document. The :guilabel:`Vendor` field should be completed prior to completing this field.
- :guilabel:`Bill Date`: is the issuance date of the document.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

@@ -48,6 +48,9 @@ localization:
- `l10n_ar_website_sale`
- (optional) Allows the user to see Identification Type and AFIP Responsibility in the
eCommerce checkout form in order to create electronic invoices.
* - :ref:`Argentina - Payment Withholdings <l10n_ar/payment-withholdings>`
- `l10n_ar_withholding`
- Allows registering withholdings during the payment of an invoice.
.. _argentina/configure-your-company:
@@ -681,6 +684,147 @@ the invoice can then be validated.
:align: center
:alt: Enter the perception amount.
.. _l10n_ar/payment-withholdings:
Withholding management
----------------------
The Argentinean fiscal localization module is already loaded with the necessary withholdings
records, which can be seen by navigating to :menuselection:`Accounting app --> Configuration -->
Taxes` and removing the default :guilabel:`Sale or Purchase` filter. To verify these records, the
**Argentina Payment Withholdings** (`l10n_ar_withholding`) module must be :ref:`installed
<general/install>`:
Journal entries are *not* created when payments are posted unless :ref:`outstanding accounts
<accounting/bank/outstanding-accounts>` are set up. Thus, for this feature to work properly, it is
important to verify that *all* payment methods within the bank journals have an outstanding payment
and receipt account set.
.. image:: argentina/l10n-ar-outstanding-payments.png
:alt: An outstanding payment account must be set.
This configuration is crucial for the proper accounting of withholding transactions with clients
and vendors.
.. note::
In Argentina, withholdings represent the cancellation of a specific portion of the total debt
owed to a supplier or a reduction in the total payment to be collected from a customer.
Therefore, one or multiple withholdings can be recorded for each payment applied to an invoice.
Configuration
~~~~~~~~~~~~~
While Odoo already creates most of the required withholdings inside the :guilabel:`Taxes`
menu, in several cases, it is necessary to apply or modify certain configurations to correctly
calculate the withholding amount on vendor payments. The following withholding types are available:
- :ref:`Earnings <l10n_ar/earnings-withholdings>`
- :ref:`Earnings Scale <l10n_ar/earnings-scale-withholdings>`
- :ref:`IIBB Total Amount <l10n_ar/iib-total-amount-withholdings>`
- :ref:`IIBB Non-Taxable <l10n_ar/iib-nontax-withholdings>`
.. _l10n_ar/earnings-withholdings:
Earnings
********
For :guilabel:`Earnings` withholdings, Odoo already has a record for each regime group, which is
stated under the name of the tax and the AFIP code.
Each of these records are ready to be used. As a good practice, the configuration should be double
checked to make sure the configuration is updated and well-applied. The fields to validate are:
- :guilabel:`Amount`: This is the percentage of the total payment amount which is withheld.
- :guilabel:`Non-Taxable Amount`: Up to this amount, the withholding does not apply.
- :guilabel:`Minimum Withholding`: If the calculated withholding amount is smaller than this value,
the total withholding amount is set to `0.0`.
- :guilabel:`Withholding Sequence`: This field helps to automate the capture of a withholding number
under the payment line. If this field is not set, a number is manually captured while adding a
withholding to a payment.
.. image:: argentina/l10n-ar-earnings.png
:alt: Earnings withholding type.
.. _l10n_ar/earnings-scale-withholdings:
Earnings Scale
**************
In this particular case, a percentage does not need to be set. Instead, this withholding is
calculated based on the value of the :guilabel:`Scale` field.
To view, modify, or create new scales, navigate to :menuselection:`Accounting app --> Configuration
--> Earnings Scale`. By default, the Argentinian localization is preconfigured with two main scales.
However, scales should be created and updated as necessary to suit a business's needs.
.. note::
Earnings scales are cumulative, which means that Odoo keeps track of the different records
created for a bill and automatically calculates the proper withholding amount.
.. _l10n_ar/iib-total-amount-withholdings:
IIBB Total Amount
*****************
In this case, the necessary records related to the applicable province need to be created. The
withholding amount is calculated based on the percentage :guilabel:`Amount` set on the tax
configuration. Since Odoo does not automatically synchronize the percentages applicable to each
province, this information needs to be manually updated.
The recommendation, in this case, is to always duplicate and apply the different configurations for
each record to safeguard any technical configurations that allow the proper calculation and
accounting of the withholding.
.. _l10n_ar/iib-nontax-withholdings:
IIBB Untaxed
************
The configuration of non-taxable gross income withholdings is very similar to that of a :ref:`total
amount withholding <l10n_ar/iib-total-amount-withholdings>`, so the percentage :guilabel:`Amount` in
each of the records needs to be maintained. However, Odoo comes preconfigured with several records
that apply to different provinces. The difference, in this case, is that it is not necessary to
establish a non-taxable amount or minimum withholding for this record type.
Partner withholding assignation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once the proper configuration is set on each possible withholding for partners, the applicable
withholdings need to be assigned to each contact. To do this, open the :guilabel:`Contacts` app and
select the desired partner. In the :guilabel:`Accounting` tab, find the :guilabel:`Purchase
Withholdings` table.
By using the additional fields :guilabel:`From Date` and :guilabel:`To Date`, the applicability of
multiple withholdings can be automated across different date ranges. The :guilabel:`ref` field
allows you to apply an internal control number to each withholding line, which is just for internal
reference, so it does not affect any transactions and is not visible on them. These fields are
accessible from the :icon:`oi-settings-adjust` :guilabel:`(adjust settings)` menu.
- :guilabel:`From Date`: the start of the withholding date range.
- :guilabel:`To Date`: the end of the withholding date range.
- :guilabel:`ref`: apply an internal control number to each withholding line that is only visible
for internal reference and does not affect any transactions.
Automatic withholding calculation and application per payment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By applying new payments to vendor bills, Odoo automatically applies and calculates the proper
withholding into the payment. Based on the record's configuration, it may be necessary to use a
reference number for each withholding line.
More withholdings can be added, or computed withholdings can be edited if necessary.
.. image:: argentina/l10n-ar-payment.png
:alt: Payment with applied withholdings.
.. important::
The total amount of the debt to be canceled is the total amount of the payment. However, Odoo
still captures the net amount (i.e. the amount to be reconciled with the bank), which will be
represented as the payment amount after the withholding application.
.. image:: argentina/l10n-ar-payment-registered.png
:alt: Payment registered form.
Check management
----------------
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@@ -589,3 +589,96 @@ goods (i.e :guilabel:`Opening Stock` + purchases during the period - :guilabel:`
.. image:: india/profit-and-loss-report.png
:alt: Profit and Loss report
.. _india/tds-tcs-threshold:
TDS/TCS threshold alert
=======================
:abbr:`TDS (tax deducted at source)` and :abbr:`TCS (tax collected at source)` are tax provisions
under Indian law, triggered when transaction amounts exceed specified thresholds. This alert
notifies users when the value of invoices or bills surpasses these limits, prompting the application
of the appropriate TDS/TCS.
To configure Odoo to advise you on when to apply TDS/TCS, set the :guilabel:`TDS/TCS section`
field on the corresponding account in the chart of accounts. Odoo will display a banner suggesting
the TDS/TCS section under which tax might be applicable when recording an invoice or bill.
Configuration
-------------
#. Navigate to :menuselection:`Accounting --> Configuration --> Settings`.
#. In the :guilabel:`Indian Integration` section, enable the :guilabel:`TDS and TCS` feature.
#. Navigate to :menuselection:`Accounting --> Configuration --> Chart of Accounts`.
#. Click :guilabel:`View` on the desired account, and set the :guilabel:`TDS/TCS Section` field.
.. note::
The TDS/TCS sections are pre-configured with threshold limits. If you need to modify these
limits, go to :menuselection:`Accounting --> Configuration --> Taxes`. In the :guilabel:`Advanced
Options` tab, click on the :icon:`fa-arrow-right` :guilabel:`(internal link)` icon of the
:guilabel:`Section` field.
.. image:: india/tds-tcs-section-modify.png
:alt: TDS/TCS section modify
Applying TCS/TDS on invoices and bills
--------------------------------------
Based on the account used on the customer invoice or vendor bill, Odoo checks the TCS/TDS threshold
limit. If the limit specified in the :guilabel:`TCS/TDS Section` of the account is exceeded, Odoo
displays an alert that suggests applying the appropriate TCS/TDS. The alert will disappear once the
TCS/TDS is applied.
.. image:: india/tcs-warning.png
:alt: TCS advice
**TCS** is directly applicable in the tax on the invoice lines. To apply **TDS**, click the
:guilabel:`TDS Entry` smart button on the vendor bill/payment. The popup window allows specifying
the TDS details. Confirm the entry to apply the TDS.
.. image:: india/tds-apply.png
:alt: TDS application
In Odoo, the aggregate total is calculated for partners sharing the same PAN number, across all
company branches.
.. example::
.. list-table::
:header-rows: 1
:widths: 10 20 10 20 15
* - **Branch**
- **Customer**
- **Invoice**
- **Transaction Amount (₹)**
- **PAN Number**
* - IN - MH
- XYZ Enterprise - GJ
- Invoice 1
- ₹50,000
- ABCPX1234E
* - IN - MH
- XYZ Enterprise - GJ
- Invoice 2
- ₹30,000
- ABCPX1234E
* - IN - MH
- XYZ Enterprise - MH
- Invoice 3
- ₹40,000
- ABCPX1234E
* - IN - DL
- XYZ Enterprise - GJ
- Invoice 4
- ₹20,000
- ABCPX1234E
* - IN - GJ
- XYZ Enterprise - MH
- Invoice 5
- ₹60,000
- ABCPX1234E
- **Aggregate total** = 50,000 + 30,000 + 40,000 + 20,000 + 60,000 = ₹200,000
- The aggregate total for all customers (XYZ Enterprise - GJ, MH, DL) sharing the PAN number
ABCPX1234E across all branches is ₹200,000.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

@@ -705,3 +705,60 @@ Then, to ensure :doc:`Odoo Point of Sale </applications/sales/point_of_sale>` is
fiscal printer, go to :menuselection:`Point of Sale --> Configuration --> Settings`. In the
:guilabel:`Connected Devices` section, add the IP address in the :guilabel:`Italian Fiscal Printer
IP address` and enable :guilabel:`Use HTTPS`.
Ri.Ba. (Ricevuta Bancaria)
==========================
:abbr:`Ri.Ba. (Ricevuta Bancaria)` is a payment method widely used in Italy where vendors request
payments through their bank, which forwards the request to the customer's own bank and takes
responsibility for the collection. This enables payment automation and reduces risks for the vendor.
The vendor generally uploads a fixed-format text file with the list of payments to the bank's web
portal.
.. note::
- Ri.Ba. are exclusively for **domestic payments** in Italy. For recurring international
payments, please use `SEPA Direct Debt (SDD) <../accounting/payments/batch_sdd>`_
Configuration
-------------
#. Check that the `l10n_it_riba` module is :ref:`installed <general/install>`.
#. Go to :menuselection:`Settings --> Users & Companies --> Companies` and select the company that
will use Ri.Ba.
#. Fill out the required :guilabel:`SIA Code`.
.. image:: italy/sia-code.png
:alt: The company's SIA code
.. note::
The :guilabel:`SIA Code` identifies businesses within the Italian banking network and is used
to receive money through specific payment methods. It consists of one letter and four digits
(e.g., T1234) and can usually be found on the bank's portal or obtained by contacting the bank.
#. Ensure the Company's bank account has an Italian IBAN.
.. seealso::
How to configure :doc:`Bank Accounts <../accounting/bank>`
Accept Ri.Ba. for your invoices
-------------------------------
Payments of type :abbr:`Ri.Ba. (Ricevuta Bancaria)` can be registered from the :guilabel:`Invoices`
(:menuselection:`Accounting --> Customers --> Invoices`).
.. important::
Make sure that your invoice involves a Partner that has a bank account with an Italian IBAN.
Then, all Payments must be grouped in a **Batch Payment**.
.. seealso::
- :doc:`Batch Payments <../accounting/payments>`
- :doc:`Create a Batch Payment <../accounting/payments/batch>`
Once you press the :guilabel:`Validate` button for the Batch Payment, the :abbr:`Ri.Ba. (Ricevuta
Bancaria)` file is generated and attached to the Batch Payment, so you can download it and upload it
through your bank's web portal.
.. image:: italy/riba-attachment.png
:alt: The Ri.Ba. file attached
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

@@ -2,55 +2,271 @@
Vietnam
=======
Add Vietnamese QR banking codes to invoices
===========================================
.. _SInvoice: https://www.sinvoice.vn/
.. _localizations/vietnam/modules:
Modules
=======
The following modules are installed automatically with the Vietnamese localization:
.. list-table::
:header-rows: 1
* - Name
- Technical name
- Description
* - :guilabel:`Vietnam - Accounting`
- `l10n_vn`
- This module includes the default
:ref:`fiscal localization package <fiscal_localizations/packages>`.
* - :guilabel:`Vietnam - E-invoicing`
- `l10n_vn_edi_viettel`
- This module includes the features required for integration with :ref:`SInvoice
<localizations/vietnam/sinvoice>`.
.. note::
In some cases, such as when upgrading to a version with additional modules, it is possible that
modules may not be installed automatically. Any missing modules can be manually :ref:`installed
<general/install>`.
.. _localizations/vietnam/company:
Company
=======
To use all the features of this fiscal localization, the following fields are required on the
:doc:`company record </applications/general/companies>`:
- :guilabel:`Name`
- :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
and :guilabel:`Country`.
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Tax ID`: tax identification number.
.. _localizations/vietnam/sinvoice:
E-invoicing with SInvoice
=========================
SInvoice_ is an e-invoice service platform provided by Viettel, one of the biggest e-invoice service
providers in Vietnam. Odoo supports integration with SInvoice to submit invoices generated in Odoo.
Configuration
-------------
SInvoice platform
~~~~~~~~~~~~~~~~~
To send electronic invoices to SInvoice, the following must be created on SInvoice_:
- :ref:`SInvoice account <localizations/vietname/sinvoice-registration>`
- :ref:`Invoice template <localizations/vietname/sinvoice-template>`
- :ref:`Invoice symbol <localizations/vietname/sinvoice-symbol>`
- :ref:`Invoice issuance notice <localizations/vietname/sinvoice-notice>`
.. _localizations/vietname/sinvoice-registration:
SInvoice registration
*********************
To create an account, go to SInvoice_ and register for the desired plan. Fill in the form that
opens to be contacted by SInvoice_ to create an account.
Once you have an account, log into SInvoice_ using your :guilabel:`Username` and
:guilabel:`Password`.
.. _localizations/vietname/sinvoice-template:
Invoice template creation
*************************
#. On the left side of the overview page, in the :guilabel:`Release management` menu, click
:guilabel:`Create business information`.
#. In the :guilabel:`Update key information` step, fill in the following fields and other optional
information if needed: :guilabel:`Unit name`, :guilabel:`Address`, :guilabel:`Contact person`,
:guilabel:`Type of representative documents`.
#. Click :guilabel:`Update`.
#. In the :guilabel:`Look up digital certificate` step, click :guilabel:`Add new` to add a digital
certificate.
#. Select the :guilabel:`Branch/Enterprise` and the :guilabel:`Type of digital certificate`, then
fill in the required fields for each type:
- :guilabel:`Supplier`: CloudCA
- :guilabel:`Signer ID`: CloudCA
- :guilabel:`Digital Certificate`: CloudCA
- :guilabel:`How to download file`: HSM
- :guilabel:`File Upload`: HSM, USB-TOKEN
#. Click :guilabel:`Generate key pair` to generate encryption keys for authentication, and
:guilabel:`Save`.
#. In the :guilabel:`Manage invoice templates` step, add a new :guilabel:`Invoice template`.
#. Select the :guilabel:`Invoice type` and fill in the :guilabel:`Invoice template code`,
:guilabel:`Invoice template name`, and other optional information if needed.
#. Click :guilabel:`Update`.
.. seealso::
`SInvoice documentation on electronic invoice template creation
<https://www.sinvoice.vn/2021/02/hdsd-tai-lieu-nghiep-vu-tao-mau-hoa-don-dien-tu.html?debug=1>`_
.. _localizations/vietname/sinvoice-symbol:
Invoice symbol creation
***********************
On the left side of the main screen, in the :guilabel:`Release management` menu, click
:guilabel:`Invoice symbol` and follow these steps:
#. Click :guilabel:`Add new` and select the :guilabel:`Invoice template`.
#. Set the :guilabel:`Status` to :guilabel:`Active` to activate the symbol and fill in the
:guilabel:`Invoice symbol`.
#. Enable :guilabel:`Stop automatic sending to tax authorities` and :guilabel:`Default for built-in
API` based on preference.
#. Click :guilabel:`Save`.
.. _localizations/vietname/sinvoice-notice:
Invoice issuance notice
***********************
On the left side of the main screen, in the :guilabel:`Release management` menu, click
:guilabel:`Create issuance notice` and follow these steps:
#. Click :guilabel:`Add new`, select the :guilabel:`Name of the business unit to issue an e-invoice`
and the :guilabel:`Tax agency name`. Based on the business unit and tax agency selected, the
:guilabel:`Tax code`, :guilabel:`Address`, :guilabel:`Phone number`, and :guilabel:`Separator
used` are automatically filled and uneditable.
#. Click :guilabel:`Select the invoice type for issuance`, and then select and fill in the
following information :
- :guilabel:`Invoice type`: The invoice type on which to declare an issuance notice.
- :guilabel:`Invoice template`: Select from the list of templates available based on the invoice
type.
- :guilabel:`Symbol`: Select from the list of symbols available based on the invoice type.
- :guilabel:`Quantity`: Total number of invoices to issue for the selected type. Based on the
type and template selected, this field is filled in automatically. It can be changed if needed.
- :guilabel:`Start date of use`: The date from which the invoice template, range, and quantity
are used for the issuance notice.
#. Click :guilabel:`Save` and select more invoice types if necessary by repeating the steps above.
Click :guilabel:`Save` to finish drafting the notice.
#. Click :guilabel:`Send to tax authorities` for approval. Once approved, the notice's
:guilabel:`Status` is changed to :guilabel:`Active`.
.. _localizations/vietnam/sinvoice-odoo:
Odoo database
~~~~~~~~~~~~~
Link Odoo to SInvoice
*********************
To connect Odoo with SInvoice, go to :menuselection:`Accounting --> Configuration --> Settings`.
In the :guilabel:`Vietnamese Integration` section, fill in your SInvoice :guilabel:`Username` and
:guilabel:`Password`. Add a :guilabel:`Default symbol` to generate a prefix for the invoice number
managed in SInvoice if needed.
Invoice template
****************
To create SInvoice templates, go to :menuselection:`Accounting --> Configuration --> Templates`.
Click :guilabel:`New` and add a :guilabel:`Template code` and a :guilabel:`Template Invoice Type`.
The :guilabel:`Template code` is the initial sequence of digits in the name assigned by SInvoice.
For example, if the invoice template is `1/001 - Hóa đơn GTGT - ND123`, the :guilabel:`Template
code` is `1/001`. The SInvoice templates in Odoo must match the ones in SInvoice.
To add :guilabel:`Invoice Symbols`, click :guilabel:`Add a new line`.
Sending invoices to SInvoice
----------------------------
Invoices can be sent to SInvoice once they have been confirmed. To do so, follow the
:ref:`invoice sending <accounting/invoice/sending>` steps. In the :guilabel:`Send` popup, enable
:guilabel:`Send to SInvoice` and click :guilabel:`Send & Print`.
Once the invoice has been successfully submitted to SInvoice, the :guilabel:`SInvoice Status` field
in the :guilabel:`SInvoice` tab of the invoice is updated to :guilabel:`Sent`. The
:guilabel:`SInvoice Number`, :guilabel:`Issue Date`, :guilabel:`Secret Code` and :guilabel:`eInvoice
Number` fields are also updated. The same information is available on SInvoice.
Replacement or adjustment invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A replacement invoice is issued to correct an invoice that has **yet to be tax declared**, whereas
an adjustment invoice is issued to correct one that has **already been tax declared**. Follow these
steps to issue a replacement or adjustment invoice:
#. Open the invoice and click :guilabel:`Credit Note`.
#. In the :guilabel:`Credit Note` popup, fill in the following fields:
- :guilabel:`Reason displayed on Credit Note`
- :guilabel:`Adjustment type`
- :guilabel:`Agreement Name`
- :guilabel:`Agreement Date`
- :guilabel:`Journal`
- :guilabel:`Reversal date`
#. Click :guilabel:`Reverse and Create Invoice` to issue a replacement invoice, or
:guilabel:`Reverse` to issue an adjustment invoice.
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
:guilabel:`Replaced` for a replacement invoice or :guilabel:`Adjusted` for an adjustment invoice.
Invoice cancellation
~~~~~~~~~~~~~~~~~~~~
If an invoice needs to be canceled, open the invoice and click :guilabel:`Request Cancel`. In the
:guilabel:`Invoice Cancellation` popup, enter the cancellation :guilabel:`Reason`,
:guilabel:`Agreement Name`, and :guilabel:`Agreement Date`, and click :guilabel:`Request
Cancellation`.
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
:guilabel:`Canceled`.
.. _localizations/vietnam/qrcode:
QR banking codes
================
Vietnamese QR banking is a payment service platform that allows customers to make instant domestic
payments to individuals and merchants in Vietnamese dong via online and mobile banking.
Activate QR codes
-----------------
Configuration
-------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, activate the :guilabel:`QR Codes` feature.
To activate QR banking codes, go to :menuselection:`Accounting --> Configuration --> Settings` and
enable :guilabel:`QR Codes` in the :guilabel:`Customer Payments` section.
Vietnamese QR banking bank account configuration
------------------------------------------------
Bank account
~~~~~~~~~~~~
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
which you want to activate Vietnamese QR banking. Set the :guilabel:`Bank Identifier Code` on the
bank. Then set the :guilabel:`Proxy Type` and fill in the :guilabel:`Proxy Value` field depending on
the type you chose.
To activate QR banking for a bank account, go to :menuselection:`Contacts --> Configuration -->
Bank Accounts` and select the bank account. Fill in the :guilabel:`Bank Identifier Code`,
:guilabel:`Proxy Type` (based on the information used to identify the :guilabel:`Merchant Account`,
such as the card number and bank account numbers), and :guilabel:`Proxy Value` fields.
Enable :guilabel:`Include Reference` to include the invoice number in the QR code.
.. important::
- The account holder's country must be set to `Vietnam` on its contact form.
- The account holder's city is mandatory.
- You could also include the invoice number in the QR code by checking the :guilabel:`Include
Reference` checkbox.
.. image:: vietnam/vn-paynow-bank-setting.png
:alt: Vietnamese QR banking bank account configuration
- The account holder's country must be set to `Vietnam`, and their city must be specified on the
contact form.
- The :ref:`account number <accounting/bank/account-number>` and bank must be set on the
:guilabel:`Bank` journal.
.. seealso::
:doc:`../accounting/bank`
Bank journal configuration
--------------------------
Generating QR codes on invoices
-------------------------------
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
When creating a new invoice, open the :guilabel:`Other Info` tab and select :guilabel:`EMV
Merchant-Presented QR-code` in the :guilabel:`Payment QR-code` field.
.. image:: vietnam/vn-bank-account-journal-setting.png
:alt: Bank Account's journal configuration
Issue invoices with Vietnamese QR banking QR codes
--------------------------------------------------
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
QR-code` option to *EMV Merchant-Presented QR-code*.
.. image:: vietnam/vn-qr-code-invoice-setting.png
:alt: Select EMV Merchant-Presented QR-code option
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the Vietnamese QR banking QR code.
.. note::
Ensure the :guilabel:`Recipient Bank` is configured, as Odoo uses this field to generate QR
codes.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

@@ -10,6 +10,7 @@ Daily operations
operations/adjustments
operations/receipts_deliveries
operations/process_transfers
operations/transfers_scratch
operations/barcode_nomenclature
operations/gs1_nomenclature
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Some files were not shown because too many files have changed in this diff Show More