convert rst to markdown
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Odoo essentials
|
||||
|
||||
```{toctree}
|
||||
essentials/activities
|
||||
essentials/reporting
|
||||
essentials/search
|
||||
essentials/contacts
|
||||
essentials/export_import_data
|
||||
essentials/in_app_purchase
|
||||
essentials/keyboard_shortcuts
|
||||
```
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
===============
|
||||
Odoo essentials
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
||||
essentials/activities
|
||||
essentials/reporting
|
||||
essentials/search
|
||||
essentials/contacts
|
||||
essentials/export_import_data
|
||||
essentials/in_app_purchase
|
||||
essentials/keyboard_shortcuts
|
||||
@@ -0,0 +1,361 @@
|
||||
---
|
||||
substitutions:
|
||||
clock: '{icon}`fa-clock-o` {guilabel}`(clock)` icon'
|
||||
---
|
||||
|
||||
# Activities
|
||||
|
||||
*Activities* are follow-up tasks tied to a record in an Odoo database.
|
||||
|
||||
(activities-important)=
|
||||
|
||||
The icon used to display activities varies, depending on the {ref}`activity type
|
||||
<activities/types>`:
|
||||
|
||||
- {icon}`fa-clock-o` {guilabel}`(clock)` icon: the default activities icon.
|
||||
- {icon}`fa-phone` {guilabel}`(phone)` icon: a phone call is scheduled.
|
||||
- {icon}`fa-envelope` {guilabel}`(envelope)` icon: an email is scheduled.
|
||||
- {icon}`fa-check` {guilabel}`(check)` icon: a "to-do" is scheduled.
|
||||
- {icon}`fa-users` {guilabel}`(people)` icon: a meeting is scheduled.
|
||||
- {icon}`fa-upload` {guilabel}`(upload)` icon: a document is scheduled to be uploaded.
|
||||
- {icon}`fa-pencil-square-o` {guilabel}`(request signature)` icon: a signature request is scheduled.
|
||||
|
||||
## Schedule activities
|
||||
|
||||
Activities can be scheduled on any page of the database that contains a {ref}`chatter
|
||||
<activities/chatter>` thread, {ref}`Kanban view <activities/kanban>`, {ref}`list view
|
||||
<activities/list>`, or {ref}`activities view <activities/activity>` of an application.
|
||||
|
||||
(activities-chatter)=
|
||||
|
||||
### Chatter
|
||||
|
||||
Activities can be created from the chatter on any record.
|
||||
|
||||
To schedule a new activity, click the {guilabel}`Activities` button, located at the top of the
|
||||
chatter. In the {guilabel}`Schedule Activity` pop-up window that appears, {ref}`fill out the
|
||||
Schedule Activity form <activities/form>`.
|
||||
|
||||
```{image} activities/chatter.png
|
||||
:align: center
|
||||
:alt: New activity type form.
|
||||
```
|
||||
|
||||
(activities-kanban)=
|
||||
|
||||
### Kanban view
|
||||
|
||||
Activities can also be created from the {icon}`oi-view-kanban` {guilabel}`(Kanban)` view.
|
||||
|
||||
To do so, click on the {{ clock }} located at the bottom of an individual record.
|
||||
|
||||
Click {guilabel}`+ Schedule An Activity`, then proceed to {ref}`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
```{image} activities/schedule-kanban-activity.png
|
||||
:align: center
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
```
|
||||
|
||||
:::{note}
|
||||
If a record already has a scheduled activity, the {{ clock }} is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
:::
|
||||
|
||||
(activities-list)=
|
||||
|
||||
### List view
|
||||
|
||||
Activities can also be created from a {icon}`oi-view-list` {guilabel}`(list)` view.
|
||||
|
||||
If the {guilabel}`Activities` column is hidden, reveal it using the {icon}`oi-settings-adjust`
|
||||
{guilabel}`(settings adjust)` icon in the far-right of the top row.
|
||||
|
||||
Then, click on the {{ clock }} for the record the activity is being added to, and click {guilabel}`+
|
||||
Schedule an activity`. Proceed to {ref}`fill out the Schedule Activity form <activities/form>` that
|
||||
appears.
|
||||
|
||||
:::{note}
|
||||
If a record already has a scheduled activity, the {{ clock }} is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
:::
|
||||
|
||||
```{image} activities/schedule-list-activity.png
|
||||
:align: center
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
```
|
||||
|
||||
(activities-activity)=
|
||||
|
||||
### Activity view
|
||||
|
||||
Most applications in Odoo have an *Activity* view available. If available, a {{ clock }} is visible in
|
||||
the top-right corner of the main menu bar, amongst the other view option icons.
|
||||
|
||||
To open the activity view, click the {{ clock }}.
|
||||
|
||||
```{image} activities/activities.png
|
||||
:align: center
|
||||
:alt: Top-right menu with the Activities icon called out.
|
||||
```
|
||||
|
||||
In this view, all the available activities are listed in the columns, while the horizontal entries
|
||||
represent all the individual records.
|
||||
|
||||
Activities that appear green have a due date in the future, activities that appear orange are due
|
||||
today, while activities appearing red are overdue.
|
||||
|
||||
Color bars in each column represent records for specific activity types, and display a number
|
||||
indicating how many activities are scheduled for that type.
|
||||
|
||||
If multiple activity types are scheduled for a record, a number appears in the box, indicating the
|
||||
total number of scheduled activities.
|
||||
|
||||
:::{note}
|
||||
Activity colors, and their relation to an activity's due date, are consistent throughout Odoo,
|
||||
regardless of the activity type, or the view.
|
||||
:::
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field. Click the {icon}`fa-plus`
|
||||
{guilabel}`(plus)` icon that appears, and then {ref}`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
```{image} activities/activity-view.png
|
||||
:align: center
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
```
|
||||
|
||||
(activities-form)=
|
||||
|
||||
### Schedule Activity form
|
||||
|
||||
Activities can be scheduled from many different places, such as from the {ref}`chatter
|
||||
<activities/chatter>` of a record, or from one of multiple views in an application, when available:
|
||||
the {ref}`Kanban view <activities/kanban>`, {ref}`list view <activities/list>`, or {ref}`activity
|
||||
view <activities/activity>`.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- {guilabel}`Activity Type`: select the type of activity from the drop-down menu. The default
|
||||
options are: {guilabel}`Email`, {guilabel}`Call`, {guilabel}`Meeting`, or {guilabel}`To-Do`.
|
||||
Depending on what other applications are installed, additional options may be available.
|
||||
- {guilabel}`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- {guilabel}`Due Date`: using the calendar popover, select the activity's deadline.
|
||||
- {guilabel}`Assigned to`: by default, the current user populates this field. To assign a different
|
||||
user to the activity, select them from the drop-down menu.
|
||||
- {guilabel}`Notes`: add any additional information for the activity in this field.
|
||||
|
||||
When the {guilabel}`Schedule Activity` pop-up window is completed, click one of the following
|
||||
buttons:
|
||||
|
||||
- {guilabel}`Open Calendar`: opens the user's calendar to add and schedule the activity.
|
||||
|
||||
Click on the desired date and time for the activity, and a {guilabel}`New Event` pop-up window
|
||||
appears. The summary from the *Schedule Activity* pop-up window populates the {guilabel}`Title`
|
||||
field.
|
||||
|
||||
Enter the information in the {guilabel}`New Event` pop-up window, then click {guilabel}`Save &
|
||||
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
|
||||
{guilabel}`Planned Activities` section.
|
||||
|
||||
:::{important}
|
||||
The {guilabel}`Open Calendar` button **only** appears if the {guilabel}`Activity Type` is set
|
||||
to either {guilabel}`Call` or {guilabel}`Meeting`.
|
||||
:::
|
||||
|
||||
- {guilabel}`Schedule`: schedules the activity, and adds the activity to the chatter under
|
||||
{guilabel}`Planned Activities`.
|
||||
|
||||
- {guilabel}`Schedule & Mark as Done`: adds the details of the activity to the chatter under
|
||||
{guilabel}`Today`. The activity is not scheduled, and is automatically marked as done.
|
||||
|
||||
- {guilabel}`Done & Schedule Next`: adds the details of the activity to the chatter under
|
||||
{guilabel}`Today`. The activity is not scheduled, is automatically marked as done, and a new
|
||||
{guilabel}`Schedule Activity` pop-up window appears.
|
||||
|
||||
- {guilabel}`Cancel`: discards any changes made on the {guilabel}`Schedule Activity` pop-up window.
|
||||
|
||||
```{image} activities/schedule-pop-up.png
|
||||
:align: center
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
```
|
||||
|
||||
(activities-all)=
|
||||
|
||||
## All scheduled activities
|
||||
|
||||
To view a consolidated list of activities, organized by application, click the {{ clock }} in the header
|
||||
menu, located in the top-right corner.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
{{ clock }}.
|
||||
|
||||
All activities for each application are further divided into subsections, indicating where in the
|
||||
application the activity is to be completed. Each sub-section lists the number of scheduled
|
||||
activities that are {guilabel}`Late`, due {guilabel}`Today`, and scheduled in the
|
||||
{guilabel}`Future`.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
In the *Time Off* application, one activity is scheduled to be done in the *All Time Off*
|
||||
requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard.
|
||||
|
||||
These requests appear in two separate lists in the all activities drop-down menu: one labeled
|
||||
`Time Off` and one labeled `Time Off Allocation`.
|
||||
|
||||
.. image:: activities/activities-menu.png
|
||||
:align: center
|
||||
:alt: The list of activities that is accessed from the main menu bar. Two entries for the Time
|
||||
Off application are highlighted.
|
||||
```
|
||||
|
||||
### Request a document
|
||||
|
||||
The option to {guilabel}`Request a Document` is available at the bottom of the list of {ref}`all
|
||||
scheduled activities <activities/all>`, the option to {guilabel}`Request a Document` appears. Click
|
||||
{guilabel}`Request a Document`, and a {guilabel}`Request a file` pop-up window appears.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- {guilabel}`Document Name`: enter a name for the document being requested.
|
||||
- {guilabel}`Request To`: select the user the document is being requested from using the drop-down
|
||||
menu.
|
||||
- {guilabel}`Due Date In`: enter a numerical value indicating when the document is due. Next to
|
||||
this field, a {guilabel}`Days` field is visible. Click {guilabel}`Days`, the default option, to
|
||||
reveal a drop-down menu. Select the desired time-frame option from the list. The options are
|
||||
{guilabel}`Days`, {guilabel}`Weeks`, or {guilabel}`Months`.
|
||||
- {guilabel}`Workspace`: using the drop-down menu, select the specific {ref}`Workspace
|
||||
<documents/workspaces>` the document is being uploaded to.
|
||||
- {guilabel}`Tags`: select any desired tags from the drop-down menu. The available tags displayed
|
||||
are based on the tags configured for the selected {guilabel}`Workspace`.
|
||||
- {guilabel}`Message`: enter a message to clarify the document request in this field.
|
||||
|
||||
When all the fields are completed, click {guilabel}`Request` to send the document request.
|
||||
|
||||
```{image} activities/request-doc.png
|
||||
:align: center
|
||||
:alt: The Request a file form, with all fields filled out to request a contract.
|
||||
```
|
||||
|
||||
(activities-types)=
|
||||
|
||||
## Activity types
|
||||
|
||||
To view the currently configured types of activities in the database, navigate to
|
||||
{menuselection}`Settings app --> Discuss section --> Activities setting --> Activity Types`.
|
||||
|
||||
```{image} activities/settings-activities-types.png
|
||||
:align: center
|
||||
:alt: Activity Types button in the Settings application under the Discuss section.
|
||||
```
|
||||
|
||||
Doing so reveals the {guilabel}`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
:::{tip}
|
||||
Individual applications have a list of *Activity Types* dedicated to that application. For
|
||||
example, to view and edit the activities available for the *CRM* application, go to
|
||||
{menuselection}`CRM app --> Configuration --> Activity Types`.
|
||||
:::
|
||||
|
||||
```{image} activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
```
|
||||
|
||||
### Edit activity types
|
||||
|
||||
To edit an existing {ref}`activity type <activities/types>`, click on the activity type, and the
|
||||
activity type form loads.
|
||||
|
||||
Make any desired changes to the activity type form. The form automatically saves, but it can be
|
||||
saved manually at any time by clicking the {guilabel}`Save Manually` option, represented by a
|
||||
{icon}`fa-cloud-upload` {guilabel}`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
|
||||
### Create new activity types
|
||||
|
||||
To create a new {ref}`activity type <activities/types>`, click {guilabel}`New` from the
|
||||
{guilabel}`Activity Types` page, and a blank activity type form loads.
|
||||
|
||||
Enter a {guilabel}`Name` for the activity type at the top of the form, then enter the following
|
||||
information on the form.
|
||||
|
||||
#### Activity Settings section
|
||||
|
||||
- {guilabel}`Action`: using the drop-down menu, select an action associated with this new activity
|
||||
type. Some actions trigger specific behaviors after an activity is scheduled, such as:
|
||||
|
||||
- {guilabel}`Upload Document`: if selected, a link to upload a document is automatically added to
|
||||
the planned activity in the chatter.
|
||||
- {guilabel}`Call` or {guilabel}`Meeting`: if selected, users have the option to open their
|
||||
calendar to select a date and time for the activity.
|
||||
- {guilabel}`Request Signature`: if selected, a link to open a signature request pop-up window is
|
||||
automatically added to the planned activity in the chatter. This requires the Odoo *Sign*
|
||||
application to be installed.
|
||||
|
||||
:::{note}
|
||||
Available activity types vary based on the installed applications in the database.
|
||||
:::
|
||||
|
||||
- {guilabel}`Folder`: select a specific {ref}`workspace <documents/workspaces>` folder to save a
|
||||
document to. This field **only** appears if {guilabel}`Upload Document` is selected for the
|
||||
{guilabel}`Action`.
|
||||
|
||||
Using the drop-down menu, select the {guilabel}`Folder` the document is saved to.
|
||||
|
||||
- {guilabel}`Default User`: select a user from the drop-down menu to automatically assign this
|
||||
activity to the selected user when this activity type is scheduled. If this field is left blank,
|
||||
the activity is assigned to the user who creates the activity.
|
||||
|
||||
- {guilabel}`Default Summary`: enter a note to include whenever this activity type is created.
|
||||
|
||||
:::{note}
|
||||
The information in the {guilabel}`Default User` and {guilabel}`Default Summary` fields are
|
||||
included when an activity is created. However, they can be altered before the activity is
|
||||
scheduled or saved.
|
||||
:::
|
||||
|
||||
- {guilabel}`Keep Done`: tick this checkbox to keep activities that have been marked as `Done`
|
||||
visible in the {ref}`activity view <activities/activity>`.
|
||||
|
||||
- {guilabel}`Default Note`: enter any notes to appear with the activity.
|
||||
|
||||
#### Next Activity section
|
||||
|
||||
It is possible to have another activity either suggested or triggered. To do so, configure the
|
||||
{guilabel}`Next Activity` section.
|
||||
|
||||
- {guilabel}`Chaining Type`: select either {guilabel}`Suggest Next Activity` or {guilabel}`Trigger
|
||||
Next Activity` from the drop-down menu. Depending on the selected option, either the
|
||||
{guilabel}`Suggest` or {guilabel}`Trigger` field is displayed.
|
||||
|
||||
:::{note}
|
||||
The {guilabel}`Chaining Type` field does **not** appear if {guilabel}`Upload Document` is
|
||||
selected for the {guilabel}`Action`.
|
||||
:::
|
||||
|
||||
- {guilabel}`Suggest/Trigger`: depending on what is selected for the {guilabel}`Chaining Type`, this
|
||||
field either displays {guilabel}`Suggest` or {guilabel}`Trigger`. Using the drop-down menu, select
|
||||
the activity to recommend or schedule as a follow-up task to the activity type.
|
||||
|
||||
- {guilabel}`Schedule`: configure when the next activity is suggested or triggered.
|
||||
|
||||
First, enter a numerical value indicating when the activity is suggested or triggered.
|
||||
|
||||
Next to this field, a {guilabel}`Days` field is visible. Click {guilabel}`Days`, the default
|
||||
option, to reveal a drop-down menu. Select the desired time-frame option from the list. The
|
||||
options are {guilabel}`Days`, {guilabel}`Weeks`, or {guilabel}`Months`.
|
||||
|
||||
Lastly, using the drop-down menu, select whether the activity is scheduled or triggered either
|
||||
{guilabel}`after previous activity deadline` or {guilabel}`after completion date`.
|
||||
|
||||
```{image} activities/new-activity.png
|
||||
:align: center
|
||||
:alt: A new Activity form with all the fields filled out.
|
||||
```
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../productivity/discuss`
|
||||
- {doc}`../productivity/discuss/team_communication`
|
||||
- {doc}`../sales/crm/optimize/utilize_activities`
|
||||
:::
|
||||
|
||||
@@ -1,345 +0,0 @@
|
||||
==========
|
||||
Activities
|
||||
==========
|
||||
|
||||
.. |clock| replace:: :icon:`fa-clock-o` :guilabel:`(clock)` icon
|
||||
|
||||
*Activities* are follow-up tasks tied to a record in an Odoo database.
|
||||
|
||||
.. _activities/important:
|
||||
|
||||
The icon used to display activities varies, depending on the :ref:`activity type
|
||||
<activities/types>`:
|
||||
|
||||
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: the default activities icon.
|
||||
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
|
||||
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
|
||||
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
|
||||
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled.
|
||||
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
|
||||
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
|
||||
|
||||
Schedule activities
|
||||
===================
|
||||
|
||||
Activities can be scheduled on any page of the database that contains a :ref:`chatter
|
||||
<activities/chatter>` thread, :ref:`Kanban view <activities/kanban>`, :ref:`list view
|
||||
<activities/list>`, or :ref:`activities view <activities/activity>` of an application.
|
||||
|
||||
.. _activities/chatter:
|
||||
|
||||
Chatter
|
||||
-------
|
||||
|
||||
Activities can be created from the chatter on any record.
|
||||
|
||||
To schedule a new activity, click the :guilabel:`Activities` button, located at the top of the
|
||||
chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the
|
||||
Schedule Activity form <activities/form>`.
|
||||
|
||||
.. image:: activities/chatter.png
|
||||
:align: center
|
||||
:alt: New activity type form.
|
||||
|
||||
.. _activities/kanban:
|
||||
|
||||
Kanban view
|
||||
-----------
|
||||
|
||||
Activities can also be created from the :icon:`oi-view-kanban` :guilabel:`(Kanban)` view.
|
||||
|
||||
To do so, click on the |clock| located at the bottom of an individual record.
|
||||
|
||||
Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/schedule-kanban-activity.png
|
||||
:align: center
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
|
||||
.. _activities/list:
|
||||
|
||||
List view
|
||||
---------
|
||||
|
||||
Activities can also be created from a :icon:`oi-view-list` :guilabel:`(list)` view.
|
||||
|
||||
If the :guilabel:`Activities` column is hidden, reveal it using the :icon:`oi-settings-adjust`
|
||||
:guilabel:`(settings adjust)` icon in the far-right of the top row.
|
||||
|
||||
Then, click on the |clock| for the record the activity is being added to, and click :guilabel:`+
|
||||
Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form <activities/form>` that
|
||||
appears.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:align: center
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/activity:
|
||||
|
||||
Activity view
|
||||
-------------
|
||||
|
||||
Most applications in Odoo have an *Activity* view available. If available, a |clock| is visible in
|
||||
the top-right corner of the main menu bar, amongst the other view option icons.
|
||||
|
||||
To open the activity view, click the |clock|.
|
||||
|
||||
.. image:: activities/activities.png
|
||||
:align: center
|
||||
:alt: Top-right menu with the Activities icon called out.
|
||||
|
||||
In this view, all the available activities are listed in the columns, while the horizontal entries
|
||||
represent all the individual records.
|
||||
|
||||
Activities that appear green have a due date in the future, activities that appear orange are due
|
||||
today, while activities appearing red are overdue.
|
||||
|
||||
Color bars in each column represent records for specific activity types, and display a number
|
||||
indicating how many activities are scheduled for that type.
|
||||
|
||||
If multiple activity types are scheduled for a record, a number appears in the box, indicating the
|
||||
total number of scheduled activities.
|
||||
|
||||
.. note::
|
||||
Activity colors, and their relation to an activity's due date, are consistent throughout Odoo,
|
||||
regardless of the activity type, or the view.
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus`
|
||||
:guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/activity-view.png
|
||||
:align: center
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/form:
|
||||
|
||||
Schedule Activity form
|
||||
----------------------
|
||||
|
||||
Activities can be scheduled from many different places, such as from the :ref:`chatter
|
||||
<activities/chatter>` of a record, or from one of multiple views in an application, when available:
|
||||
the :ref:`Kanban view <activities/kanban>`, :ref:`list view <activities/list>`, or :ref:`activity
|
||||
view <activities/activity>`.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default
|
||||
options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`.
|
||||
Depending on what other applications are installed, additional options may be available.
|
||||
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
|
||||
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
|
||||
user to the activity, select them from the drop-down menu.
|
||||
- :guilabel:`Notes`: add any additional information for the activity in this field.
|
||||
|
||||
When the :guilabel:`Schedule Activity` pop-up window is completed, click one of the following
|
||||
buttons:
|
||||
|
||||
- :guilabel:`Open Calendar`: opens the user's calendar to add and schedule the activity.
|
||||
|
||||
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
|
||||
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
|
||||
field.
|
||||
|
||||
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
|
||||
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
|
||||
:guilabel:`Planned Activities` section.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Open Calendar` button **only** appears if the :guilabel:`Activity Type` is set
|
||||
to either :guilabel:`Call` or :guilabel:`Meeting`.
|
||||
|
||||
- :guilabel:`Schedule`: schedules the activity, and adds the activity to the chatter under
|
||||
:guilabel:`Planned Activities`.
|
||||
- :guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, and is automatically marked as done.
|
||||
- :guilabel:`Done & Schedule Next`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, is automatically marked as done, and a new
|
||||
:guilabel:`Schedule Activity` pop-up window appears.
|
||||
- :guilabel:`Cancel`: discards any changes made on the :guilabel:`Schedule Activity` pop-up window.
|
||||
|
||||
.. image:: activities/schedule-pop-up.png
|
||||
:align: center
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
|
||||
.. _activities/all:
|
||||
|
||||
All scheduled activities
|
||||
========================
|
||||
|
||||
To view a consolidated list of activities, organized by application, click the |clock| in the header
|
||||
menu, located in the top-right corner.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
|clock|.
|
||||
|
||||
All activities for each application are further divided into subsections, indicating where in the
|
||||
application the activity is to be completed. Each sub-section lists the number of scheduled
|
||||
activities that are :guilabel:`Late`, due :guilabel:`Today`, and scheduled in the
|
||||
:guilabel:`Future`.
|
||||
|
||||
.. example::
|
||||
In the *Time Off* application, one activity is scheduled to be done in the *All Time Off*
|
||||
requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard.
|
||||
|
||||
These requests appear in two separate lists in the all activities drop-down menu: one labeled
|
||||
`Time Off` and one labeled `Time Off Allocation`.
|
||||
|
||||
.. image:: activities/activities-menu.png
|
||||
:align: center
|
||||
:alt: The list of activities that is accessed from the main menu bar. Two entries for the Time
|
||||
Off application are highlighted.
|
||||
|
||||
Request a document
|
||||
------------------
|
||||
|
||||
The option to :guilabel:`Request a Document` is available at the bottom of the list of :ref:`all
|
||||
scheduled activities <activities/all>`, the option to :guilabel:`Request a Document` appears. Click
|
||||
:guilabel:`Request a Document`, and a :guilabel:`Request a file` pop-up window appears.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Document Name`: enter a name for the document being requested.
|
||||
- :guilabel:`Request To`: select the user the document is being requested from using the drop-down
|
||||
menu.
|
||||
- :guilabel:`Due Date In`: enter a numerical value indicating when the document is due. Next to
|
||||
this field, a :guilabel:`Days` field is visible. Click :guilabel:`Days`, the default option, to
|
||||
reveal a drop-down menu. Select the desired time-frame option from the list. The options are
|
||||
:guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`.
|
||||
- :guilabel:`Workspace`: using the drop-down menu, select the specific :ref:`Workspace
|
||||
<documents/workspaces>` the document is being uploaded to.
|
||||
- :guilabel:`Tags`: select any desired tags from the drop-down menu. The available tags displayed
|
||||
are based on the tags configured for the selected :guilabel:`Workspace`.
|
||||
- :guilabel:`Message`: enter a message to clarify the document request in this field.
|
||||
|
||||
When all the fields are completed, click :guilabel:`Request` to send the document request.
|
||||
|
||||
.. image:: activities/request-doc.png
|
||||
:align: center
|
||||
:alt: The Request a file form, with all fields filled out to request a contract.
|
||||
|
||||
.. _activities/types:
|
||||
|
||||
Activity types
|
||||
==============
|
||||
|
||||
To view the currently configured types of activities in the database, navigate to
|
||||
:menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`.
|
||||
|
||||
.. image:: activities/settings-activities-types.png
|
||||
:align: center
|
||||
:alt: Activity Types button in the Settings application under the Discuss section.
|
||||
|
||||
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
.. tip::
|
||||
Individual applications have a list of *Activity Types* dedicated to that application. For
|
||||
example, to view and edit the activities available for the *CRM* application, go to
|
||||
:menuselection:`CRM app --> Configuration --> Activity Types`.
|
||||
|
||||
.. image:: activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
|
||||
Edit activity types
|
||||
-------------------
|
||||
|
||||
To edit an existing :ref:`activity type <activities/types>`, click on the activity type, and the
|
||||
activity type form loads.
|
||||
|
||||
Make any desired changes to the activity type form. The form automatically saves, but it can be
|
||||
saved manually at any time by clicking the :guilabel:`Save Manually` option, represented by a
|
||||
:icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
|
||||
Create new activity types
|
||||
-------------------------
|
||||
|
||||
To create a new :ref:`activity type <activities/types>`, click :guilabel:`New` from the
|
||||
:guilabel:`Activity Types` page, and a blank activity type form loads.
|
||||
|
||||
Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following
|
||||
information on the form.
|
||||
|
||||
Activity Settings section
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- :guilabel:`Action`: using the drop-down menu, select an action associated with this new activity
|
||||
type. Some actions trigger specific behaviors after an activity is scheduled, such as:
|
||||
|
||||
- :guilabel:`Upload Document`: if selected, a link to upload a document is automatically added to
|
||||
the planned activity in the chatter.
|
||||
- :guilabel:`Call` or :guilabel:`Meeting`: if selected, users have the option to open their
|
||||
calendar to select a date and time for the activity.
|
||||
- :guilabel:`Request Signature`: if selected, a link to open a signature request pop-up window is
|
||||
automatically added to the planned activity in the chatter. This requires the Odoo *Sign*
|
||||
application to be installed.
|
||||
|
||||
.. note::
|
||||
Available activity types vary based on the installed applications in the database.
|
||||
|
||||
- :guilabel:`Folder`: select a specific :ref:`workspace <documents/workspaces>` folder to save a
|
||||
document to. This field **only** appears if :guilabel:`Upload Document` is selected for the
|
||||
:guilabel:`Action`.
|
||||
|
||||
Using the drop-down menu, select the :guilabel:`Folder` the document is saved to.
|
||||
|
||||
- :guilabel:`Default User`: select a user from the drop-down menu to automatically assign this
|
||||
activity to the selected user when this activity type is scheduled. If this field is left blank,
|
||||
the activity is assigned to the user who creates the activity.
|
||||
- :guilabel:`Default Summary`: enter a note to include whenever this activity type is created.
|
||||
|
||||
.. note::
|
||||
The information in the :guilabel:`Default User` and :guilabel:`Default Summary` fields are
|
||||
included when an activity is created. However, they can be altered before the activity is
|
||||
scheduled or saved.
|
||||
|
||||
- :guilabel:`Keep Done`: tick this checkbox to keep activities that have been marked as `Done`
|
||||
visible in the :ref:`activity view <activities/activity>`.
|
||||
- :guilabel:`Default Note`: enter any notes to appear with the activity.
|
||||
|
||||
Next Activity section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is possible to have another activity either suggested or triggered. To do so, configure the
|
||||
:guilabel:`Next Activity` section.
|
||||
|
||||
- :guilabel:`Chaining Type`: select either :guilabel:`Suggest Next Activity` or :guilabel:`Trigger
|
||||
Next Activity` from the drop-down menu. Depending on the selected option, either the
|
||||
:guilabel:`Suggest` or :guilabel:`Trigger` field is displayed.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Chaining Type` field does **not** appear if :guilabel:`Upload Document` is
|
||||
selected for the :guilabel:`Action`.
|
||||
|
||||
- :guilabel:`Suggest/Trigger`: depending on what is selected for the :guilabel:`Chaining Type`, this
|
||||
field either displays :guilabel:`Suggest` or :guilabel:`Trigger`. Using the drop-down menu, select
|
||||
the activity to recommend or schedule as a follow-up task to the activity type.
|
||||
- :guilabel:`Schedule`: configure when the next activity is suggested or triggered.
|
||||
|
||||
First, enter a numerical value indicating when the activity is suggested or triggered.
|
||||
|
||||
Next to this field, a :guilabel:`Days` field is visible. Click :guilabel:`Days`, the default
|
||||
option, to reveal a drop-down menu. Select the desired time-frame option from the list. The
|
||||
options are :guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`.
|
||||
|
||||
Lastly, using the drop-down menu, select whether the activity is scheduled or triggered either
|
||||
:guilabel:`after previous activity deadline` or :guilabel:`after completion date`.
|
||||
|
||||
.. image:: activities/new-activity.png
|
||||
:align: center
|
||||
:alt: A new Activity form with all the fields filled out.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../productivity/discuss`
|
||||
- :doc:`../productivity/discuss/team_communication`
|
||||
- :doc:`../sales/crm/optimize/utilize_activities`
|
||||
@@ -0,0 +1,257 @@
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
# Contacts
|
||||
|
||||
Contacts are created in the **Contacts** application for customers the company does business with
|
||||
through Odoo. A contact is a repository of vital business information, facilitating communication
|
||||
and business transactions.
|
||||
|
||||
## Contact form
|
||||
|
||||
To create a new contact, navigate to the {menuselection}`Contacts app`, and click
|
||||
{guilabel}`Create`. A new form appears where various contact information can be added.
|
||||
|
||||
### Contact type
|
||||
|
||||
Odoo allows for both {guilabel}`Individual` and {guilabel}`Company` contacts. Select either
|
||||
{guilabel}`Individual` or {guilabel}`Company`, depending on the type of contact that is being added.
|
||||
|
||||
### Name
|
||||
|
||||
First, fill in the name of the {guilabel}`Individual` or {guilabel}`Company`. This is how the name
|
||||
appears throughout the database. This field is **mandatory**.
|
||||
|
||||
:::{tip}
|
||||
{guilabel}`Individual` contacts can have a {guilabel}`Company` contact linked to it. After
|
||||
selecting {guilabel}`Individual`, a new {guilabel}`Company Name...` field appears below the
|
||||
first name field.
|
||||
:::
|
||||
|
||||
### Address
|
||||
|
||||
Next, enter the {guilabel}`Address` of the {guilabel}`Company` or {guilabel}`Individual`.
|
||||
|
||||
:::{tip}
|
||||
If the {guilabel}`Individual` option is chosen, then the *type of address* can be chosen from a
|
||||
drop-down menu. Options for this drop-down menu include: {guilabel}`Contact`, {guilabel}`Invoice
|
||||
Address`, {guilabel}`Delivery Address`, {guilabel}`Other Address`, and {guilabel}`Private
|
||||
Address`.
|
||||
:::
|
||||
|
||||
### Additional fields
|
||||
|
||||
Additional details are included on the initial form. The following fields are available:
|
||||
|
||||
- {guilabel}`VAT`: Value Added Tax number.
|
||||
- {guilabel}`Citizen Identification`: citizen or government identification number (only available
|
||||
on {guilabel}`Individual`).
|
||||
- {guilabel}`Job Position`: list the job position of the {guilabel}`Individual` (only available on
|
||||
{guilabel}`Individual`).
|
||||
- {guilabel}`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
|
||||
message by hovering over the field on the saved form, and clicking the desired option.
|
||||
- {guilabel}`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
|
||||
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
|
||||
- {guilabel}`Email`: enter the email address with the domain.
|
||||
- {guilabel}`Website`: enter the full website address, starting with `http` or `https`.
|
||||
- {guilabel}`Title`: select {guilabel}`Doctor`, {guilabel}`Madam`, {guilabel}`Miss`,
|
||||
{guilabel}`Mister`, {guilabel}`Professor`, or create a new one directly from this field.
|
||||
- {guilabel}`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
|
||||
menu, and selecting one. To create a new one, type the new tag in the field, and click
|
||||
{guilabel}`Create` from the resulting drop-down menu.
|
||||
|
||||
### Contacts & Addresses tab
|
||||
|
||||
At the bottom of the contact form are several tabs. On the {guilabel}`Contacts & Addresses` tab,
|
||||
contacts can be added that are associated with a {guilabel}`Company` and related addresses. For
|
||||
example, a specific contact person for the company can be listed here.
|
||||
|
||||
Multiple addresses can be added on both {guilabel}`Individual` and {guilabel}`Company` contacts. To
|
||||
do so, click {guilabel}`Add` in the {guilabel}`Contacts & Addresses` tab. Doing so reveals a
|
||||
{guilabel}`Create Contact` pop-up form, in which additional addresses can be configured.
|
||||
|
||||
```{image} contacts/contact-form-add-address.png
|
||||
:align: center
|
||||
:alt: Add a contact/address to the contact form.
|
||||
```
|
||||
|
||||
On the {guilabel}`Create Contact` pop-up form, start by clicking the default {guilabel}`Other
|
||||
Address` field at the top to reveal a drop-down menu of address-related options.
|
||||
|
||||
Select any of the following options:
|
||||
|
||||
- {guilabel}`Contact`: adds another contact to the existing contact form.
|
||||
- {guilabel}`Invoice Address`: adds a specific invoice address to the existing contact form.
|
||||
- {guilabel}`Delivery Address`: adds a specific delivery address to the existing contact form.
|
||||
- {guilabel}`Other Address`: adds an alternate address to the existing contact form.
|
||||
- {guilabel}`Private Address`: adds a private address to the existing contact form.
|
||||
|
||||
```{image} contacts/create-contact-window.png
|
||||
:align: center
|
||||
:alt: Create a new contact/address on a contact form.
|
||||
```
|
||||
|
||||
Once an option is selected, enter the corresponding contact information that should be used for the
|
||||
specified address type.
|
||||
|
||||
Add the {guilabel}`Contact Name`, {guilabel}`Address`, {guilabel}`Email`, along with the
|
||||
{guilabel}`Phone` and/or {guilabel}`Mobile` numbers below.
|
||||
|
||||
Set the {guilabel}`Job Position`, which appears if the {guilabel}`Contact` address type has been
|
||||
selected. This is similar to the {guilabel}`Individual` contact.
|
||||
|
||||
To add a note, click on the text field next to {guilabel}`Notes`, and write anything that is
|
||||
applicable to the customer or contact.
|
||||
|
||||
Then, click {guilabel}`Save & Close` to save the address, and close the {guilabel}`Create Contact`
|
||||
window. Or, click {guilabel}`Save & New` to save the address, and immediately input another one.
|
||||
|
||||
### Sales & Purchase tab
|
||||
|
||||
Next, is the {guilabel}`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
|
||||
**or** *Point of Sale* applications are installed.
|
||||
|
||||
The {guilabel}`Fiscal Position` can be set on the {guilabel}`Sales & Purchases` tab. Select a
|
||||
{guilabel}`Fiscal Position` from the drop-down menu.
|
||||
|
||||
#### Sales section
|
||||
|
||||
Under the {guilabel}`Sales` heading, a specific {guilabel}`Salesperson` can be assigned to a
|
||||
contact. To do that, click the {guilabel}`Salesperson` drop-down field, and select one. Create a new
|
||||
{guilabel}`Salesperson` by typing the user's name, and making the appropriate selection.
|
||||
|
||||
Certain {guilabel}`Payment Terms`, or a certain {guilabel}`Pricelist`, can also be set, if needed.
|
||||
Click the drop-down menu next to {guilabel}`Payment Terms`, and change it to one of the preselected
|
||||
{guilabel}`Payment Terms`, or {guilabel}`Create` a new one. Select the {guilabel}`Pricelist`
|
||||
drop-down menu to choose the appropriate {guilabel}`Pricelist`.
|
||||
|
||||
Click into the {guilabel}`Delivery Method` field to select an option from the drop-down menu.
|
||||
|
||||
#### Point Of Sale section
|
||||
|
||||
Under the {guilabel}`Point Of Sale` heading, enter a {guilabel}`Barcode` that can be used to
|
||||
identify the contact. Use the {guilabel}`Loyalty Points` field to track points the user won as part
|
||||
of a *Loyalty Program*.
|
||||
|
||||
#### Purchase section
|
||||
|
||||
Specify {guilabel}`Payment Terms`, {guilabel}`1099 Box` information, and a preferred
|
||||
{guilabel}`Payment Method` here. A {guilabel}`Receipt Reminder` can be set here, as well.
|
||||
|
||||
#### Misc section
|
||||
|
||||
Under the {guilabel}`Misc.` heading, use {guilabel}`Reference` field to add any additional
|
||||
information for this contact. If this contact should only be accessible for one company in a
|
||||
multi-company database, select it from the {guilabel}`Company` field drop-down list. Use the
|
||||
{guilabel}`Website` drop-down menu to restrict the publishing of this contact to one website (if
|
||||
working on a database with multiple websites). Select one or more {guilabel}`Website Tags` to assist
|
||||
in filtering published customers on the `/customers` website page. Select an {guilabel}`Industry`
|
||||
for this contact from the drop-down menu. Use the {guilabel}`SLA Policies` field to assign a
|
||||
*Helpdesk* SLA policy to this contact.
|
||||
|
||||
### Accounting tab
|
||||
|
||||
The {guilabel}`Accounting` tab appears when the *Accounting* application is installed. Here, a user
|
||||
can add any related {guilabel}`Bank Accounts`, or set default {guilabel}`Accounting entries`.
|
||||
|
||||
Under the {guilabel}`Miscellaneous` heading, use the {guilabel}`LEI` field to enter a Legal Entity
|
||||
Identifier, if necessary.
|
||||
|
||||
### Internal Notes tab
|
||||
|
||||
Following the {guilabel}`Accounting` tab is the {guilabel}`Internal Notes` tab, where notes can be
|
||||
left on this contact form, just like on the contact form noted above.
|
||||
|
||||
### Partner Assignment tab
|
||||
|
||||
Next is the {guilabel}`Partner Assignment` tab, which by default, includes a {guilabel}`Geolocation`
|
||||
section, and other partner options, including {guilabel}`Partner Activation` and {guilabel}`Partner
|
||||
Review` configurations. These are **only** present when the *Resellers* module is installed.
|
||||
|
||||
:::{seealso}
|
||||
Follow the {doc}`Resellers documentation <../sales/crm/track_leads/resellers>` for more
|
||||
information on publishing partners on the website.
|
||||
:::
|
||||
|
||||
### Membership tab
|
||||
|
||||
Finally, there is the {guilabel}`Membership` tab on contact forms, which can help users manage any
|
||||
memberships that are being offered to this specific contact. It should be noted that this tab
|
||||
**only** appears when the *Members* application is installed.
|
||||
|
||||
#### Activate membership
|
||||
|
||||
To activate a contact's membership, click {guilabel}`Buy Membership` in the {guilabel}`Membership`
|
||||
tab of a contact form. On the pop-up window that appears, select a {guilabel}`Membership` from the
|
||||
drop-down menu. Then, configure a {guilabel}`Member Price`. Click {guilabel}`Invoice Membership`
|
||||
when both fields are filled in.
|
||||
|
||||
Alternatively, to offer a free membership, tick the {guilabel}`Free Member` checkbox, in the
|
||||
{guilabel}`Membership` tab of a contact form.
|
||||
|
||||
:::{seealso}
|
||||
Follow the {doc}`Members documentation <../sales/members>` for more information on publishing
|
||||
members on the website.
|
||||
:::
|
||||
|
||||
## Smart buttons
|
||||
|
||||
At the top of the contact form, there are some additional options available, known as *smart
|
||||
buttons*.
|
||||
|
||||
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
|
||||
Odoo integrates information from every single app, so there are many smart buttons.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
|
||||
related to this customer from the *CRM* app are accessible.
|
||||
```
|
||||
|
||||
:::{tip}
|
||||
If the corresponding applications are installed, their related smart buttons appear
|
||||
automatically on a contact form.
|
||||
:::
|
||||
|
||||
A user can see any {guilabel}`Meetings`, {guilabel}`Sales`, {guilabel}`POS Orders`,
|
||||
{guilabel}`Subscriptions`, project {guilabel}`Tasks`, and the {guilabel}`More` smart button reveals
|
||||
additional options, via a drop-down menu. A user can even quickly access {guilabel}`Purchases`,
|
||||
{guilabel}`Helpdesk` tasks, {guilabel}`On-time Rate` for deliveries, {guilabel}`Invoiced`
|
||||
information, {guilabel}`Vendor Bills`, and the {guilabel}`Partner Ledger` connected to this contact.
|
||||
|
||||
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
|
||||
this, should there be any outstanding/on-file for this contact.
|
||||
|
||||
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
|
||||
clicking the {guilabel}`Go to Website` smart button.
|
||||
|
||||
### Archive contacts
|
||||
|
||||
If a user decides they no longer want to have this contact active, the record can be archived. To do
|
||||
that, go to the {icon}`fa-cog` {guilabel}`Action` menu at the top of the contact form, and click
|
||||
{guilabel}`Archive`.
|
||||
|
||||
Then, click {guilabel}`OK` from the resulting {guilabel}`Confirmation` pop-up window.
|
||||
|
||||
With this contact successfully archived, as indicated by a banner at the top, they do not show up
|
||||
in the main contacts page, but they can still be searched for with the {guilabel}`Archived` filter.
|
||||
|
||||
:::{tip}
|
||||
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
|
||||
click the {icon}`fa-cog` {guilabel}`Action` menu again at the top of the archived contact form,
|
||||
and click {guilabel}`Unarchive`. Upon doing so, the {guilabel}`Archived` banner is removed, and
|
||||
the contact is restored.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
|
||||
- [Odoo's eLearning Contacts tutorial](https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1)
|
||||
:::
|
||||
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
contacts/merge
|
||||
```
|
||||
|
||||
@@ -1,263 +0,0 @@
|
||||
:show-content:
|
||||
|
||||
========
|
||||
Contacts
|
||||
========
|
||||
|
||||
Contacts are created in the **Contacts** application for customers the company does business with
|
||||
through Odoo. A contact is a repository of vital business information, facilitating communication
|
||||
and business transactions.
|
||||
|
||||
Contact form
|
||||
============
|
||||
|
||||
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
|
||||
:guilabel:`Create`. A new form appears where various contact information can be added.
|
||||
|
||||
Contact type
|
||||
------------
|
||||
|
||||
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
|
||||
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
|
||||
|
||||
Name
|
||||
----
|
||||
|
||||
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
|
||||
appears throughout the database. This field is **mandatory**.
|
||||
|
||||
.. tip::
|
||||
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
|
||||
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
|
||||
first name field.
|
||||
|
||||
Address
|
||||
-------
|
||||
|
||||
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
|
||||
|
||||
.. tip::
|
||||
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
|
||||
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
|
||||
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
|
||||
Address`.
|
||||
|
||||
Additional fields
|
||||
-----------------
|
||||
|
||||
Additional details are included on the initial form. The following fields are available:
|
||||
|
||||
- :guilabel:`VAT`: Value Added Tax number.
|
||||
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
|
||||
on :guilabel:`Individual`).
|
||||
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
|
||||
:guilabel:`Individual`).
|
||||
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
|
||||
message by hovering over the field on the saved form, and clicking the desired option.
|
||||
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
|
||||
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
|
||||
- :guilabel:`Email`: enter the email address with the domain.
|
||||
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
|
||||
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
|
||||
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
|
||||
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
|
||||
menu, and selecting one. To create a new one, type the new tag in the field, and click
|
||||
:guilabel:`Create` from the resulting drop-down menu.
|
||||
|
||||
Contacts & Addresses tab
|
||||
------------------------
|
||||
|
||||
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
|
||||
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
|
||||
example, a specific contact person for the company can be listed here.
|
||||
|
||||
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
|
||||
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
|
||||
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
|
||||
|
||||
.. image:: contacts/contact-form-add-address.png
|
||||
:align: center
|
||||
:alt: Add a contact/address to the contact form.
|
||||
|
||||
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
|
||||
Address` field at the top to reveal a drop-down menu of address-related options.
|
||||
|
||||
Select any of the following options:
|
||||
|
||||
- :guilabel:`Contact`: adds another contact to the existing contact form.
|
||||
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
|
||||
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
|
||||
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
|
||||
- :guilabel:`Private Address`: adds a private address to the existing contact form.
|
||||
|
||||
.. image:: contacts/create-contact-window.png
|
||||
:align: center
|
||||
:alt: Create a new contact/address on a contact form.
|
||||
|
||||
Once an option is selected, enter the corresponding contact information that should be used for the
|
||||
specified address type.
|
||||
|
||||
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
|
||||
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
|
||||
|
||||
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
|
||||
selected. This is similar to the :guilabel:`Individual` contact.
|
||||
|
||||
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
|
||||
applicable to the customer or contact.
|
||||
|
||||
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
|
||||
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
|
||||
|
||||
Sales & Purchase tab
|
||||
--------------------
|
||||
|
||||
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
|
||||
**or** *Point of Sale* applications are installed.
|
||||
|
||||
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
|
||||
:guilabel:`Fiscal Position` from the drop-down menu.
|
||||
|
||||
Sales section
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
|
||||
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
|
||||
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
|
||||
|
||||
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
|
||||
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
|
||||
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
|
||||
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
|
||||
|
||||
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
|
||||
|
||||
Point Of Sale section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
|
||||
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
|
||||
of a *Loyalty Program*.
|
||||
|
||||
Purchase section
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
|
||||
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
|
||||
|
||||
Misc section
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
|
||||
information for this contact. If this contact should only be accessible for one company in a
|
||||
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
|
||||
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
|
||||
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
|
||||
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
|
||||
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
|
||||
*Helpdesk* SLA policy to this contact.
|
||||
|
||||
Accounting tab
|
||||
--------------
|
||||
|
||||
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
|
||||
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
|
||||
|
||||
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
|
||||
Identifier, if necessary.
|
||||
|
||||
Internal Notes tab
|
||||
------------------
|
||||
|
||||
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
|
||||
left on this contact form, just like on the contact form noted above.
|
||||
|
||||
Partner Assignment tab
|
||||
----------------------
|
||||
|
||||
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
|
||||
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
|
||||
Review` configurations. These are **only** present when the *Resellers* module is installed.
|
||||
|
||||
.. seealso::
|
||||
Follow the :doc:`Resellers documentation <../sales/crm/track_leads/resellers>` for more
|
||||
information on publishing partners on the website.
|
||||
|
||||
Membership tab
|
||||
--------------
|
||||
|
||||
Finally, there is the :guilabel:`Membership` tab on contact forms, which can help users manage any
|
||||
memberships that are being offered to this specific contact. It should be noted that this tab
|
||||
**only** appears when the *Members* application is installed.
|
||||
|
||||
Activate membership
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To activate a contact's membership, click :guilabel:`Buy Membership` in the :guilabel:`Membership`
|
||||
tab of a contact form. On the pop-up window that appears, select a :guilabel:`Membership` from the
|
||||
drop-down menu. Then, configure a :guilabel:`Member Price`. Click :guilabel:`Invoice Membership`
|
||||
when both fields are filled in.
|
||||
|
||||
Alternatively, to offer a free membership, tick the :guilabel:`Free Member` checkbox, in the
|
||||
:guilabel:`Membership` tab of a contact form.
|
||||
|
||||
.. seealso::
|
||||
Follow the :doc:`Members documentation <../sales/members>` for more information on publishing
|
||||
members on the website.
|
||||
|
||||
Smart buttons
|
||||
=============
|
||||
|
||||
At the top of the contact form, there are some additional options available, known as *smart
|
||||
buttons*.
|
||||
|
||||
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
|
||||
Odoo integrates information from every single app, so there are many smart buttons.
|
||||
|
||||
.. example::
|
||||
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
|
||||
related to this customer from the *CRM* app are accessible.
|
||||
|
||||
.. tip::
|
||||
If the corresponding applications are installed, their related smart buttons appear
|
||||
automatically on a contact form.
|
||||
|
||||
A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`,
|
||||
:guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals
|
||||
additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`,
|
||||
:guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced`
|
||||
information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact.
|
||||
|
||||
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
|
||||
this, should there be any outstanding/on-file for this contact.
|
||||
|
||||
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
|
||||
clicking the :guilabel:`Go to Website` smart button.
|
||||
|
||||
Archive contacts
|
||||
----------------
|
||||
|
||||
If a user decides they no longer want to have this contact active, the record can be archived. To do
|
||||
that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click
|
||||
:guilabel:`Archive`.
|
||||
|
||||
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
|
||||
|
||||
With this contact successfully archived, as indicated by a banner at the top, they do not show up
|
||||
in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter.
|
||||
|
||||
.. tip::
|
||||
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
|
||||
click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form,
|
||||
and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and
|
||||
the contact is restored.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
|
||||
- `Odoo's eLearning Contacts tutorial
|
||||
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
contacts/merge
|
||||
@@ -0,0 +1,80 @@
|
||||
# Merge contacts
|
||||
|
||||
Odoo's *Contacts* application allows user's to merge duplicate contacts, without losing any
|
||||
information in the process. This keeps the database organized, and prevents contacts from being
|
||||
contacted by more than one salesperson.
|
||||
|
||||
(contacts-merge-duplicate)=
|
||||
|
||||
## Merge duplicate contacts
|
||||
|
||||
:::{danger}
|
||||
Merging is an irreversible action. Do **not** merge contacts unless absolutely certain they
|
||||
should be combined.
|
||||
:::
|
||||
|
||||
Navigate to the {menuselection}`Contacts app`, and select the {icon}`oi-view-list`
|
||||
{guilabel}`(list)` icon. Select two or more duplicate contacts from the list, and tick the checkbox
|
||||
(on the far-left) for the contacts that should be merged. Then, click the {icon}`fa-cog`
|
||||
{guilabel}`Actions` icon, and select {guilabel}`Merge` from the resulting drop-down menu.
|
||||
|
||||
```{image} merge/merge-menu.png
|
||||
:align: center
|
||||
:alt: The merge contacts option in the Contacts application.
|
||||
```
|
||||
|
||||
This opens the {guilabel}`Merge` pop-up window. From here, review the details of the contacts before
|
||||
confirming they should be merged. If any contacts in the list should **not** be merged, click the
|
||||
{icon}`fa-times` {guilabel}`(delete)` icon at the far right of the contact.
|
||||
|
||||
:::{tip}
|
||||
Click the individual contact to open the record for that contact, and view additional
|
||||
information.
|
||||
:::
|
||||
|
||||
```{image} merge/merge-window.png
|
||||
:align: center
|
||||
:alt: The merge pop-up window in the Contacts application.
|
||||
```
|
||||
|
||||
Click the {guilabel}`Destination Contact` field, and select an option from the drop-down list. This
|
||||
field defaults to the contact record that was created first in the system.
|
||||
|
||||
After confirming the information on the pop-up window, click {guilabel}`Merge Contacts`.
|
||||
|
||||
## Deduplicate contacts
|
||||
|
||||
After the merge is finished, a pop-up window appears confirming it is complete. This pop-up window
|
||||
also contains a {guilabel}`Deduplicate the other Contacts` button. This feature searches for
|
||||
duplicated records, based on selected criteria, and merges them automatically, or after manual
|
||||
approval.
|
||||
|
||||
Click the {guilabel}`Deduplicate the other Contacts` button to open the {guilabel}`Deduplicate
|
||||
Contacts` pop-up window.
|
||||
|
||||
Select one or more fields to be used in the search for duplicated records. Duplicated contacts can
|
||||
be searched, based on the following criteria:
|
||||
|
||||
- {guilabel}`Email`
|
||||
- {guilabel}`Name`
|
||||
- {guilabel}`Is Company`
|
||||
- {guilabel}`VAT`
|
||||
- {guilabel}`Parent Company`
|
||||
|
||||
:::{note}
|
||||
If more than one field is selected, only records that have **all** fields in common are suggested
|
||||
as duplicates.
|
||||
:::
|
||||
|
||||
If necessary, select criteria to be used to exclude potential duplicates from the search. Potential
|
||||
duplicates can be excluded from the search, based on the following criteria:
|
||||
|
||||
- {guilabel}`A user associated to the contact`
|
||||
- {guilabel}`Journal Items associated to the contact`
|
||||
|
||||
After confirming the search criteria, click either {guilabel}`Merge with Manual Check`,
|
||||
{guilabel}`Merge Automatically`, or {guilabel}`Merge Automatically all process`.
|
||||
|
||||
If {guilabel}`Merge with Manual Check` is selected, complete the merge by following the {ref}`steps
|
||||
above <contacts/merge-duplicate>`.
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
==============
|
||||
Merge contacts
|
||||
==============
|
||||
|
||||
Odoo's *Contacts* application allows user's to merge duplicate contacts, without losing any
|
||||
information in the process. This keeps the database organized, and prevents contacts from being
|
||||
contacted by more than one salesperson.
|
||||
|
||||
.. _contacts/merge-duplicate:
|
||||
|
||||
Merge duplicate contacts
|
||||
========================
|
||||
|
||||
.. danger::
|
||||
Merging is an irreversible action. Do **not** merge contacts unless absolutely certain they
|
||||
should be combined.
|
||||
|
||||
Navigate to the :menuselection:`Contacts app`, and select the :icon:`oi-view-list`
|
||||
:guilabel:`(list)` icon. Select two or more duplicate contacts from the list, and tick the checkbox
|
||||
(on the far-left) for the contacts that should be merged. Then, click the :icon:`fa-cog`
|
||||
:guilabel:`Actions` icon, and select :guilabel:`Merge` from the resulting drop-down menu.
|
||||
|
||||
.. image:: merge/merge-menu.png
|
||||
:align: center
|
||||
:alt: The merge contacts option in the Contacts application.
|
||||
|
||||
This opens the :guilabel:`Merge` pop-up window. From here, review the details of the contacts before
|
||||
confirming they should be merged. If any contacts in the list should **not** be merged, click the
|
||||
:icon:`fa-times` :guilabel:`(delete)` icon at the far right of the contact.
|
||||
|
||||
.. tip::
|
||||
Click the individual contact to open the record for that contact, and view additional
|
||||
information.
|
||||
|
||||
.. image:: merge/merge-window.png
|
||||
:align: center
|
||||
:alt: The merge pop-up window in the Contacts application.
|
||||
|
||||
Click the :guilabel:`Destination Contact` field, and select an option from the drop-down list. This
|
||||
field defaults to the contact record that was created first in the system.
|
||||
|
||||
After confirming the information on the pop-up window, click :guilabel:`Merge Contacts`.
|
||||
|
||||
Deduplicate contacts
|
||||
====================
|
||||
|
||||
After the merge is finished, a pop-up window appears confirming it is complete. This pop-up window
|
||||
also contains a :guilabel:`Deduplicate the other Contacts` button. This feature searches for
|
||||
duplicated records, based on selected criteria, and merges them automatically, or after manual
|
||||
approval.
|
||||
|
||||
Click the :guilabel:`Deduplicate the other Contacts` button to open the :guilabel:`Deduplicate
|
||||
Contacts` pop-up window.
|
||||
|
||||
Select one or more fields to be used in the search for duplicated records. Duplicated contacts can
|
||||
be searched, based on the following criteria:
|
||||
|
||||
- :guilabel:`Email`
|
||||
- :guilabel:`Name`
|
||||
- :guilabel:`Is Company`
|
||||
- :guilabel:`VAT`
|
||||
- :guilabel:`Parent Company`
|
||||
|
||||
.. note::
|
||||
If more than one field is selected, only records that have **all** fields in common are suggested
|
||||
as duplicates.
|
||||
|
||||
If necessary, select criteria to be used to exclude potential duplicates from the search. Potential
|
||||
duplicates can be excluded from the search, based on the following criteria:
|
||||
|
||||
- :guilabel:`A user associated to the contact`
|
||||
- :guilabel:`Journal Items associated to the contact`
|
||||
|
||||
After confirming the search criteria, click either :guilabel:`Merge with Manual Check`,
|
||||
:guilabel:`Merge Automatically`, or :guilabel:`Merge Automatically all process`.
|
||||
|
||||
If :guilabel:`Merge with Manual Check` is selected, complete the merge by following the :ref:`steps
|
||||
above <contacts/merge-duplicate>`.
|
||||
@@ -0,0 +1,554 @@
|
||||
---
|
||||
substitutions:
|
||||
actions: '{icon}`fa-cog` {guilabel}`Actions`'
|
||||
list: '{icon}`oi-view-list` {guilabel}`(list)` icon'
|
||||
---
|
||||
|
||||
# Export and import data
|
||||
|
||||
In Odoo, it is sometimes necessary to export or import data for running reports, or for data
|
||||
modification. This document covers the export and import of data into and out of Odoo.
|
||||
|
||||
:::{important}
|
||||
Sometimes, users run into a 'time out' error, or a record does not process, due to its size. This
|
||||
can occur with large exports, or in cases where the import file is too large. To circumvent this
|
||||
limitation surrounding the size of the records, process exports or imports in smaller batches.
|
||||
:::
|
||||
|
||||
(export-data)=
|
||||
|
||||
## Export data from Odoo
|
||||
|
||||
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so
|
||||
can aid in reporting on activities, although, Odoo provides a precise and easy reporting tool with
|
||||
each available application.
|
||||
|
||||
With Odoo, the values can be exported from any field in any record. To do so, activate the list view
|
||||
({{ list }}), on the items that need to be exported, then select the records that should be exported. To
|
||||
select a record, tick the checkbox next to the corresponding record. Finally, click on {{ actions }},
|
||||
then {guilabel}`Export`.
|
||||
|
||||
```{image} export_import_data/list-view-export.png
|
||||
:alt: View of the different things to enable/click to export data.
|
||||
```
|
||||
|
||||
When clicking on {guilabel}`Export`, an {guilabel}`Export Data` pop-over window appears, with
|
||||
several options for the data to export:
|
||||
|
||||
```{image} export_import_data/export-data-overview.png
|
||||
:alt: Overview of options to consider when exporting data in Odoo.
|
||||
```
|
||||
|
||||
1. With the {guilabel}`I want to update data (import-compatable export)` option ticked, the system
|
||||
only shows the fields that can be imported. This is helpful in the case where the {ref}`existing
|
||||
records need to be updated <essentials/update-data>`. This works like a filter. Leaving the box
|
||||
unticked, gives many more field options because it shows all the fields, not just the ones that
|
||||
can be imported.
|
||||
2. When exporting, there is the option to export in two formats: `.csv` and `.xls`. With `.csv`,
|
||||
items are separated by a comma, while `.xls` holds information about all the worksheets in a
|
||||
file, including both content and formatting.
|
||||
3. These are the items that can be exported. Use the {guilabel}`> (right arrow)` icon to display
|
||||
more sub-field options. Use the {guilabel}`Search` bar to find specific fields. To use the
|
||||
{guilabel}`Search` option more efficiently, click on all the {guilabel}`> (right arrows)` to
|
||||
display all fields.
|
||||
4. The {guilabel}`+ (plus sign)` icon button is present to add fields to the {guilabel}`Fields to
|
||||
export` list.
|
||||
5. The {guilabel}`↕️ (up-down arrow)` to the left of the selected fields can be used to move the
|
||||
fields up and down, to change the order in which they are displayed in the exported file.
|
||||
Drag-and-drop using the {guilabel}`↕️ (up-down arrow)` icon.
|
||||
6. The {guilabel}`🗑️ (trash can)` icon is used to remove fields. Click on the {guilabel}`🗑️ (trash
|
||||
can)` icon to remove the field.
|
||||
7. For recurring reports, it is helpful to save export presets. Select all the needed fields, and
|
||||
click on the template drop-down menu. Once there, click on {guilabel}`New template`, and give a
|
||||
unique name to the export just created. Click the {guilabel}`💾 (floppy drive)` icon to save the
|
||||
configuration. The next time the same list needs to be exported, select the related template that
|
||||
was previously saved from the drop-down menu.
|
||||
|
||||
:::{tip}
|
||||
It is helpful to know the field's external identifier. For example, {guilabel}`Related Company`
|
||||
in the export user interface is equal to *parent_id* (external identifier). This is helpful
|
||||
because then, the only data exported is what should be modified and re-imported.
|
||||
:::
|
||||
|
||||
(import-data)=
|
||||
|
||||
## Import data into Odoo
|
||||
|
||||
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to
|
||||
be {ref}`updated in bulk <essentials/update-data>`. The following documentation covers how to import
|
||||
data into an Odoo database.
|
||||
|
||||
:::{warning}
|
||||
Imports are permanent and **cannot** be undone. However, it is possible to use filters (`created
|
||||
on` or `last modified`) to identify records changed or created by the import.
|
||||
:::
|
||||
|
||||
:::{tip}
|
||||
Activating {ref}`developer mode <developer-mode>` changes the visible import settings in the left
|
||||
menu. Doing so reveals an {menuselection}`Advanced` menu. Included in this advanced menu are two
|
||||
options: {guilabel}`Track history during import` and {guilabel}`Allow matching with subfields`.
|
||||
|
||||
```{image} export_import_data/advanced-import.png
|
||||
:alt: Advanced import options when developer mode is activated.
|
||||
```
|
||||
|
||||
If the model uses openchatter, the {guilabel}`Track history during import` option sets up
|
||||
subscriptions and sends notifications during the import, but leads to a slower import.
|
||||
|
||||
Should the {guilabel}`Allow matching with subfields` option be selected, then all subfields
|
||||
within a field are used to match under the {guilabel}`Odoo Field` while importing.
|
||||
:::
|
||||
|
||||
(essentials-export-import-data-get-started)=
|
||||
|
||||
### Get started
|
||||
|
||||
Data can be imported on any Odoo business object using either Excel (`.xlsx`) or {abbr}`CSV
|
||||
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
|
||||
journal entries, and orders.
|
||||
|
||||
Open the view of the object to which the data should be imported/populated, click the {icon}`fa-cog`
|
||||
({guilabel}`gear`) icon and select {guilabel}`Import records`.
|
||||
|
||||
```{image} export_import_data/import-button.png
|
||||
:alt: Action menu revealed with the import records option highlighted.
|
||||
```
|
||||
|
||||
Click {icon}`fa-download`{guilabel}`Import Template for Customers` at the center of the page to
|
||||
download a {ref}`template <essentials/export_import_data/adapt-a-template>` and populate it with
|
||||
the company's own data. Such templates can be imported in one click since the data mapping is
|
||||
already preconfigured.
|
||||
|
||||
To upload the downloaded template or your own file, follow the next steps:
|
||||
|
||||
1. Click {guilabel}`Upload Data File` and select the desired file.
|
||||
2. Adjust the {guilabel}`Formatting` options as needed (for CSV files only).
|
||||
3. Ensure all data in the {guilabel}`File Column` is correctly mapped to the appropriate
|
||||
{guilabel}`Odoo Field` and free of errors.
|
||||
4. (Optional) Click {guilabel}`Load Data File` to reload the same file or upload a different one.
|
||||
5. Click {guilabel}`Test` to verify that the data is valid.
|
||||
6. Click {guilabel}`Import`.
|
||||
|
||||
:::{note}
|
||||
The {guilabel}`Formatting` options do **not** appear when importing the proprietary Excel file
|
||||
type (i.e., `.xls` or `.xlsx`).
|
||||
:::
|
||||
|
||||
(essentials-export-import-data-adapt-a-template)=
|
||||
|
||||
### Adapt a template
|
||||
|
||||
Import templates are provided in the import tool of the most common data to import (contacts,
|
||||
products, bank statements, etc.). Open them with any spreadsheet software (*Microsoft Office*,
|
||||
*OpenOffice*, *Google Drive*, etc.).
|
||||
|
||||
Once the template is downloaded, proceed to follow these steps:
|
||||
|
||||
- Add, remove, and sort columns to best fit the data structure.
|
||||
- It is strongly advised to **not** remove the {guilabel}`External ID` (ID) column (see why in the
|
||||
next section).
|
||||
- Set a unique ID to every record by dragging down the ID sequencing in the {guilabel}`External ID`
|
||||
(ID) column.
|
||||
|
||||
```{image} export_import_data/dragdown.gif
|
||||
:alt: An animation of the mouse dragging down the ID column, so each record has a unique
|
||||
: ID.
|
||||
```
|
||||
|
||||
:::{note}
|
||||
When a new column is added, Odoo may not be able to map it automatically, if its label does not
|
||||
fit any field within Odoo. However, new columns can be mapped manually when the import is tested.
|
||||
Search the drop-down menu for the corresponding field.
|
||||
|
||||
```{image} export_import_data/field_list.png
|
||||
:alt: Drop-down menu expanded in the initial import screen on Odoo.
|
||||
```
|
||||
|
||||
Then, use this field's label in the import file to ensure future imports are successful.
|
||||
:::
|
||||
|
||||
:::{tip}
|
||||
Another useful way to find out the proper column names to import is to export a sample file
|
||||
using the fields that should be imported. This way, if there is not a sample import template,
|
||||
the names are accurate.
|
||||
:::
|
||||
|
||||
(essentials-external-id)=
|
||||
|
||||
### Import from another application
|
||||
|
||||
The {guilabel}`External ID` (ID) is a unique identifier for the line item. Feel free to use one
|
||||
from previous software to facilitate the transition to Odoo.
|
||||
|
||||
Setting an ID is not mandatory when importing, but it helps in many cases:
|
||||
|
||||
- {ref}`Update imports <essentials/update-data>`: import the same file several times without
|
||||
creating duplicates.
|
||||
- {ref}`Import relation fields <export_import_data/relation-fields>`.
|
||||
|
||||
To recreate relationships between different records, the unique identifier from the original
|
||||
application should be used to map it to the {guilabel}`External ID` (ID) column in Odoo.
|
||||
|
||||
When another record is imported that links to the first one, use **XXX/ID** (XXX/External ID) for
|
||||
the original unique identifier. This record can also be found using its name.
|
||||
|
||||
:::{warning}
|
||||
It should be noted that conflicts occur if two (or more) records have the same *External ID*.
|
||||
:::
|
||||
|
||||
### Field missing to map column
|
||||
|
||||
Odoo heuristically tries to find the type of field for each column inside the imported file, based
|
||||
on the first ten lines of the files.
|
||||
|
||||
For example, if there is a column only containing numbers, only the fields with the *integer* type
|
||||
are presented as options.
|
||||
|
||||
While this behavior might be beneficial in most cases, it is also possible that it could fail, or
|
||||
the column may be mapped to a field that is not proposed by default.
|
||||
|
||||
If this happens, check the {guilabel}`Show fields of relation fields (advanced) option`, then a
|
||||
complete list of fields becomes available for each column.
|
||||
|
||||
```{image} export_import_data/field_list.png
|
||||
:alt: Searching for the field to match the tax column.
|
||||
```
|
||||
|
||||
### Change data import format
|
||||
|
||||
:::{note}
|
||||
Odoo can automatically detect if a column is a date, and tries to guess the date format from a
|
||||
set of most commonly used date formats. While this process can work for many date formats, some
|
||||
date formats are not recognizable. This can cause confusion, due to day-month inversions; it is
|
||||
difficult to guess which part of a date format is the day, and which part is the month, in a
|
||||
date, such as `01-03-2016`.
|
||||
:::
|
||||
|
||||
When importing a {abbr}`CSV (Comma-separated Values)` file, Odoo provides {guilabel}`Formatting`
|
||||
options.
|
||||
|
||||
To view which date format Odoo has found from the file, check the {guilabel}`Date Format` that is
|
||||
shown when clicking on options under the file selector. If this format is incorrect, change it to
|
||||
the preferred format using *ISO 8601* to define the format.
|
||||
|
||||
:::{important}
|
||||
*ISO 8601* is an international standard, covering the worldwide exchange, along with the
|
||||
communication of date and time-related data. For example, the date format should be `YYYY-MM-DD`.
|
||||
So, in the case of July 24th 1981, it should be written as `1981-07-24`.
|
||||
:::
|
||||
|
||||
:::{tip}
|
||||
When importing Excel files (`.xls`, `.xlsx`), consider using *date cells* to store dates. This
|
||||
maintains locale date formats for display, regardless of how the date is formatted in Odoo. When
|
||||
importing a {abbr}`CSV (Comma-separated Values)` file, use Odoo's {guilabel}`Formatting` section
|
||||
to select the date format columns to import.
|
||||
:::
|
||||
|
||||
### Import numbers with currency signs
|
||||
|
||||
Odoo fully supports numbers with parenthesis to represent negative signs, as well as numbers with
|
||||
currency signs attached to them. Odoo also automatically detects which thousand/decimal separator is
|
||||
used. If a currency symbol unknown to Odoo is used, it might not be recognized as a number, and the
|
||||
import crashes.
|
||||
|
||||
:::{note}
|
||||
When importing a {abbr}`CSV (Comma-separated Values)` file, the {guilabel}`Formatting` menu
|
||||
appears on the left-hand column. Under these options, the {guilabel}`Thousands Separator` can be
|
||||
changed.
|
||||
:::
|
||||
|
||||
Examples of supported numbers (using 'thirty-two thousand' as the figure):
|
||||
|
||||
- 32.000,00
|
||||
- 32000,00
|
||||
- 32,000.00
|
||||
- -32000.00
|
||||
- (32000.00)
|
||||
- \$ 32.000,00
|
||||
- (32000.00 €)
|
||||
|
||||
Example that will not work:
|
||||
|
||||
- ABC 32.000,00
|
||||
- \$ (32.000,00)
|
||||
|
||||
:::{important}
|
||||
A {guilabel}`() (parenthesis)` around the number indicates that the number is a negative value.
|
||||
The currency symbol **must** be placed within the parenthesis for Odoo to recognize it as a
|
||||
negative currency value.
|
||||
:::
|
||||
|
||||
### Import preview table not displayed correctly
|
||||
|
||||
By default, the import preview is set on commas as field separators, and quotation marks as text
|
||||
delimiters. If the {abbr}`CSV (Comma-separated Values)` file does not have these settings, modify
|
||||
the {guilabel}`Formatting` options (displayed under the {guilabel}`Import` {abbr}`CSV
|
||||
(Comma-separated Values)` file bar after selecting the {abbr}`CSV (Comma-separated Values)` file).
|
||||
|
||||
:::{important}
|
||||
If the {abbr}`CSV (Comma-separated Values)` file has a tabulation as a separator, Odoo does
|
||||
**not** detect the separations. The file format options need to be modified in the spreadsheet
|
||||
application. See the following {ref}`Change CSV file format <export_import_data/change-csv>`
|
||||
section.
|
||||
:::
|
||||
|
||||
(export-import-data-change-csv)=
|
||||
|
||||
### Change CSV file format in spreadsheet application
|
||||
|
||||
When editing and saving {abbr}`CSV (Comma-separated Values)` files in spreadsheet applications, the
|
||||
computer's regional settings are applied for the separator and delimiter. Odoo suggests using
|
||||
*OpenOffice* or *LibreOffice*, as both applications allow modifications of all three options (from
|
||||
*LibreOffice* application, go to {menuselection}`'Save As' dialog box --> Check the box 'Edit filter
|
||||
settings' --> Save`).
|
||||
|
||||
Microsoft Excel can modify the encoding when saving ({menuselection}`'Save As' dialog box -->
|
||||
'Tools' drop-down menu --> Encoding tab`).
|
||||
|
||||
### Difference between Database ID and External ID
|
||||
|
||||
Some fields define a relationship with another object. For example, the country of a contact is a
|
||||
link to a record of the 'Country' object. When such fields are imported, Odoo has to recreate links
|
||||
between the different records. To help import such fields, Odoo provides three mechanisms.
|
||||
|
||||
:::{important}
|
||||
**Only one** mechanism should be used per field that is imported.
|
||||
:::
|
||||
|
||||
For example, to reference the country of a contact, Odoo proposes three different fields to import:
|
||||
|
||||
- {guilabel}`Country`: the name or code of the country
|
||||
- {guilabel}`Country/Database ID`: the unique Odoo ID for a record, defined by the ID PostgreSQL
|
||||
column
|
||||
- {guilabel}`Country/External ID`: the ID of this record referenced in another application (or the
|
||||
`.XML` file that imported it)
|
||||
|
||||
For the country of Belgium, for example, use one of these three ways to import:
|
||||
|
||||
- {guilabel}`Country`: `Belgium`
|
||||
- {guilabel}`Country/Database ID`: `21`
|
||||
- {guilabel}`Country/External ID`: `base.be`
|
||||
|
||||
According to the company's need, use one of these three ways to reference records in relations. Here
|
||||
is an example when one or the other should be used, according to the need:
|
||||
|
||||
- Use {guilabel}`Country`: this is the easiest way when data comes from {abbr}`CSV (Comma-separated
|
||||
Values)` files that have been created manually.
|
||||
- Use {guilabel}`Country/Database ID`: this should rarely be used. It is mostly used by developers
|
||||
as the main advantage is to never have conflicts (there may be several records with the same name,
|
||||
but they always have a unique Database ID)
|
||||
- Use {guilabel}`Country/External ID`: use *External ID* when importing data from a third-party
|
||||
application.
|
||||
|
||||
When *External IDs* are used, import {abbr}`CSV (Comma-separated Values)` files with the
|
||||
{guilabel}`External ID` (ID) column defining the *External ID* of each record that is imported.
|
||||
Then, a reference can be made to that record with columns, like `Field/External ID`. The following
|
||||
two {abbr}`CSV (Comma-separated Values)` files provide an example for products and their categories.
|
||||
|
||||
- {download}`CSV file for categories
|
||||
<export_import_data/External_id_3rd_party_application_product_categories.csv>`
|
||||
- {download}`CSV file for Products
|
||||
<export_import_data/External_id_3rd_party_application_products.csv>`
|
||||
|
||||
(export-import-data-relation-fields)=
|
||||
|
||||
### Import relation fields
|
||||
|
||||
An Odoo object is always related to many other objects (e.g. a product is linked to product
|
||||
categories, attributes, vendors, etc.). To import those relations, the records of the related object
|
||||
need to be imported first, from their own list menu.
|
||||
|
||||
This can be achieved by using either the name of the related record, or its ID, depending on the
|
||||
circumstances. The ID is expected when two records have the same name. In such a case add `/ ID`
|
||||
at the end of the column title (e.g. for product attributes: `Product Attributes / Attribute / ID`).
|
||||
|
||||
#### Options for multiple matches on fields
|
||||
|
||||
If, for example, there are two product categories with the child name `Sellable` (e.g. `Misc.
|
||||
Products/Sellable` & `Other Products/Sellable`), the validation is halted, but the data may still be
|
||||
imported. However, Odoo recommends that the data is not imported because it will all be linked to
|
||||
the first `Sellable` category found in the *Product Category* list (`Misc. Products/Sellable`).
|
||||
Odoo, instead, recommends modifying one of the duplicate's values, or the product category
|
||||
hierarchy.
|
||||
|
||||
However, if the company does not wish to change the configuration of product categories, Odoo
|
||||
recommends making use of the *External ID* for this field, 'Category'.
|
||||
|
||||
#### Import many2many relationship fields
|
||||
|
||||
The tags should be separated by a comma, without any spacing. For example, if a customer needs to be
|
||||
linked to both tags: `Manufacturer` and `Retailer` then 'Manufacturer,Retailer' needs to be encoded
|
||||
in the same column of the {abbr}`CSV (Comma-separated Values)` file.
|
||||
|
||||
- {download}`CSV file for Manufacturer, Retailer <export_import_data/m2m_customers_tags.csv>`
|
||||
|
||||
#### Import one2many relationships
|
||||
|
||||
If a company wants to import a sales order with several order lines, a specific row **must** be
|
||||
reserved in the {abbr}`CSV (Comma-separated Values)` file for each order line. The first order line
|
||||
is imported on the same row as the information relative to order. Any additional lines need an
|
||||
additional row that does not have any information in the fields relative to the order.
|
||||
|
||||
As an example, here is a {abbr}`CSV (Comma-separated Values)` file of some quotations that can be
|
||||
imported, based on demo data:
|
||||
|
||||
- {download}`File for some Quotations
|
||||
<export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`
|
||||
|
||||
The following {abbr}`CSV (Comma-separated Values)` file shows how to import purchase orders with
|
||||
their respective purchase order lines:
|
||||
|
||||
- {download}`Purchase orders with their respective purchase order lines
|
||||
<export_import_data/o2m_purchase_order_lines.csv>`
|
||||
|
||||
The following {abbr}`CSV (Comma-separated Values)` file shows how to import customers and their
|
||||
respective contacts:
|
||||
|
||||
- {download}`Customers and their respective contacts
|
||||
<export_import_data/o2m_customers_contacts.csv>`
|
||||
|
||||
### Import image files
|
||||
|
||||
To import image files along with the {ref}`uploaded <essentials/export_import_data/get-started>`
|
||||
CSV or Excel file, follow the next steps:
|
||||
|
||||
1. Add the image file names to the relevant {guilabel}`Image` column in the data file.
|
||||
2. {ref}`Upload the data file <essentials/export_import_data/get-started>` or reload it by
|
||||
clicking {guilabel}`Load Data File`.
|
||||
3. Click {guilabel}`Upload your files` under the {guilabel}`Files to import` section.
|
||||
4. Select the relevant image files. The number of files selected appears next to the button.
|
||||
5. Click {guilabel}`Test` to verify that all data is valid.
|
||||
6. Click {guilabel}`Import`. During the import process, Odoo performs a file check to automatically
|
||||
link the uploaded images to the imported data file. If there is no match, the data file is
|
||||
imported without any image.
|
||||
|
||||
:::{note}
|
||||
- The {guilabel}`Files to import` section is enabled if your product template has an
|
||||
{guilabel}`Image` column with all fields populated.
|
||||
- The image file names in the data file must correspond to the uploaded image files.
|
||||
- When importing a large number of images, you can specify the maximum batch size in megabytes
|
||||
and set a delay to prevent the system from becoming overloaded. To do so, {doc}`enable the
|
||||
developer mode <../general/developer_mode>` and fill in the {guilabel}`Max size per
|
||||
batch` and the {guilabel}`Delay after each batch` fields in the {guilabel}`Files to import`
|
||||
section. By default, the delay meets the RPC/API call limit defined in the [Odoo Cloud -
|
||||
Acceptable Use Policy](https://www.odoo.com/acceptable-use).
|
||||
:::
|
||||
|
||||
### Import records several times
|
||||
|
||||
If an imported file contains one of the columns: {guilabel}`External ID` or {guilabel}`Database ID`,
|
||||
records that have already been imported are modified, instead of being created. This is extremely
|
||||
useful as it allows users to import the same {abbr}`CSV (Comma-separated Values)` file several
|
||||
times, while having made some changes in between two imports.
|
||||
|
||||
Odoo takes care of creating or modifying each record, depending if it is new or not.
|
||||
|
||||
This feature allows a company to use the *Import/Export tool* in Odoo to modify a batch of records
|
||||
in a spreadsheet application.
|
||||
|
||||
### Value not provided for a specific field
|
||||
|
||||
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined
|
||||
field. But, if fields are set with empty values in the {abbr}`CSV (Comma-separated Values)` file,
|
||||
Odoo sets the empty value in the field, instead of assigning the default value.
|
||||
|
||||
### Export/import different tables from an SQL application to Odoo
|
||||
|
||||
If data needs to be imported from different tables, relations need to be recreated between records
|
||||
belonging to different tables. For instance, if companies and people are imported, the link between
|
||||
each person and the company they work for needs to be recreated.
|
||||
|
||||
To manage relations between tables, use the `External ID` facilities of Odoo. The `External ID` of a
|
||||
record is the unique identifier of this record in another application. The `External ID` must be
|
||||
unique across all records of all objects. It is a good practice to prefix this `External ID` with
|
||||
the name of the application or table. (like, 'company_1', 'person_1' - instead of '1')
|
||||
|
||||
As an example, suppose there is an SQL database with two tables that are to be imported: companies
|
||||
and people. Each person belongs to one company, so the link between a person and the company they
|
||||
work for must be recreated.
|
||||
|
||||
Test this example, with a {download}`sample of a PostgreSQL database
|
||||
<export_import_data/database_import_test.sql>`.
|
||||
|
||||
First, export all companies and their *External ID*. In PSQL, write the following command:
|
||||
|
||||
```sh
|
||||
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
|
||||
```
|
||||
|
||||
This SQL command creates the following {abbr}`CSV (Comma-separated Values)` file:
|
||||
|
||||
```text
|
||||
External ID,Name,Is a Company
|
||||
company_1,Bigees,True
|
||||
company_2,Organi,True
|
||||
company_3,Boum,True
|
||||
```
|
||||
|
||||
To create the {abbr}`CSV (Comma-separated Values)` file for people linked to companies, use the
|
||||
following SQL command in PSQL:
|
||||
|
||||
```sh
|
||||
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
|
||||
```
|
||||
|
||||
It produces the following {abbr}`CSV (Comma-separated Values)` file:
|
||||
|
||||
```text
|
||||
External ID,Name,Is a Company,Related Company/External ID
|
||||
person_1,Fabien,False,company_1
|
||||
person_2,Laurence,False,company_1
|
||||
person_3,Eric,False,company_2
|
||||
person_4,Ramsy,False,company_3
|
||||
```
|
||||
|
||||
In this file, Fabien and Laurence are working for the Bigees company (`company_1`), and Eric is
|
||||
working for the Organi company. The relation between people and companies is done using the
|
||||
*External ID* of the companies. The *External ID* is prefixed by the name of the table to avoid a
|
||||
conflict of ID between people and companies (`person_1` and `company_1`, who shared the same ID 1 in
|
||||
the original database).
|
||||
|
||||
The two files produced are ready to be imported in Odoo without any modifications. After having
|
||||
imported these two {abbr}`CSV (Comma-separated Values)` files, there are four contacts and three
|
||||
companies (the first two contacts are linked to the first company). Keep in mind to first import
|
||||
the companies, and then the people.
|
||||
|
||||
(essentials-update-data)=
|
||||
|
||||
## Update data in Odoo
|
||||
|
||||
Existing data can be updated in bulk through a data import, as long as the {ref}`External ID
|
||||
<essentials/external-id>` remains consistent.
|
||||
|
||||
### Prepare data export
|
||||
|
||||
To update data through an import, first navigate to the data to be updated, and select the {{ list }} to
|
||||
activate list view. On the far-left side of the list, tick the checkbox for any record to be
|
||||
updated. Then, click {{ actions }}, and select {icon}`fa-upload` {guilabel}`Export` from the drop-down
|
||||
menu.
|
||||
|
||||
On the resulting {guilabel}`Export Data` pop-up window, tick the checkbox labeled, {guilabel}`I want
|
||||
to update data (import-compatible export)`. This automatically includes the *External ID* in the
|
||||
export. Additionally, it limits the {guilabel}`Fields to export` list to **only** include fields
|
||||
that are able to be imported.
|
||||
|
||||
:::{note}
|
||||
The {guilabel}`External ID` field does **not** appear in the {guilabel}`Fields to export` list
|
||||
unless it is manually added, but it is still included in the export. However, if the {guilabel}`I
|
||||
want to update data (import-compatible export)` checkbox is ticked, it is included in the export.
|
||||
:::
|
||||
|
||||
Select the required fields to be included in the export using the {ref}`options <export-data>` on
|
||||
the pop-up window, then click {guilabel}`Export`.
|
||||
|
||||
### Import updated data
|
||||
|
||||
After exporting, make any necessary changes to the data file. When the file is ready, it can be
|
||||
{ref}`imported <import-data>` by following the same process as a normal data import.
|
||||
|
||||
:::{danger}
|
||||
When updating data, it is extremely important that the *External ID* remain consistent, as
|
||||
this is how the system identifies a record. If an ID is altered, or removed, the system may add a
|
||||
duplicate record, instead of updating the existing one.
|
||||
:::
|
||||
|
||||
@@ -1,549 +0,0 @@
|
||||
======================
|
||||
Export and import data
|
||||
======================
|
||||
|
||||
.. |list| replace:: :icon:`oi-view-list` :guilabel:`(list)` icon
|
||||
.. |actions| replace:: :icon:`fa-cog` :guilabel:`Actions`
|
||||
|
||||
In Odoo, it is sometimes necessary to export or import data for running reports, or for data
|
||||
modification. This document covers the export and import of data into and out of Odoo.
|
||||
|
||||
.. important::
|
||||
Sometimes, users run into a 'time out' error, or a record does not process, due to its size. This
|
||||
can occur with large exports, or in cases where the import file is too large. To circumvent this
|
||||
limitation surrounding the size of the records, process exports or imports in smaller batches.
|
||||
|
||||
.. _export-data:
|
||||
|
||||
Export data from Odoo
|
||||
=====================
|
||||
|
||||
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so
|
||||
can aid in reporting on activities, although, Odoo provides a precise and easy reporting tool with
|
||||
each available application.
|
||||
|
||||
With Odoo, the values can be exported from any field in any record. To do so, activate the list view
|
||||
(|list|), on the items that need to be exported, then select the records that should be exported. To
|
||||
select a record, tick the checkbox next to the corresponding record. Finally, click on |actions|,
|
||||
then :guilabel:`Export`.
|
||||
|
||||
.. image:: export_import_data/list-view-export.png
|
||||
:alt: View of the different things to enable/click to export data.
|
||||
|
||||
When clicking on :guilabel:`Export`, an :guilabel:`Export Data` pop-over window appears, with
|
||||
several options for the data to export:
|
||||
|
||||
.. image:: export_import_data/export-data-overview.png
|
||||
:alt: Overview of options to consider when exporting data in Odoo.
|
||||
|
||||
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
|
||||
only shows the fields that can be imported. This is helpful in the case where the :ref:`existing
|
||||
records need to be updated <essentials/update-data>`. This works like a filter. Leaving the box
|
||||
unticked, gives many more field options because it shows all the fields, not just the ones that
|
||||
can be imported.
|
||||
#. When exporting, there is the option to export in two formats: `.csv` and `.xls`. With `.csv`,
|
||||
items are separated by a comma, while `.xls` holds information about all the worksheets in a
|
||||
file, including both content and formatting.
|
||||
#. These are the items that can be exported. Use the :guilabel:`> (right arrow)` icon to display
|
||||
more sub-field options. Use the :guilabel:`Search` bar to find specific fields. To use the
|
||||
:guilabel:`Search` option more efficiently, click on all the :guilabel:`> (right arrows)` to
|
||||
display all fields.
|
||||
#. The :guilabel:`+ (plus sign)` icon button is present to add fields to the :guilabel:`Fields to
|
||||
export` list.
|
||||
#. The :guilabel:`↕️ (up-down arrow)` to the left of the selected fields can be used to move the
|
||||
fields up and down, to change the order in which they are displayed in the exported file.
|
||||
Drag-and-drop using the :guilabel:`↕️ (up-down arrow)` icon.
|
||||
#. The :guilabel:`🗑️ (trash can)` icon is used to remove fields. Click on the :guilabel:`🗑️ (trash
|
||||
can)` icon to remove the field.
|
||||
#. For recurring reports, it is helpful to save export presets. Select all the needed fields, and
|
||||
click on the template drop-down menu. Once there, click on :guilabel:`New template`, and give a
|
||||
unique name to the export just created. Click the :guilabel:`💾 (floppy drive)` icon to save the
|
||||
configuration. The next time the same list needs to be exported, select the related template that
|
||||
was previously saved from the drop-down menu.
|
||||
|
||||
.. tip::
|
||||
It is helpful to know the field's external identifier. For example, :guilabel:`Related Company`
|
||||
in the export user interface is equal to *parent_id* (external identifier). This is helpful
|
||||
because then, the only data exported is what should be modified and re-imported.
|
||||
|
||||
.. _import-data:
|
||||
|
||||
Import data into Odoo
|
||||
=====================
|
||||
|
||||
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to
|
||||
be :ref:`updated in bulk <essentials/update-data>`. The following documentation covers how to import
|
||||
data into an Odoo database.
|
||||
|
||||
.. warning::
|
||||
Imports are permanent and **cannot** be undone. However, it is possible to use filters (`created
|
||||
on` or `last modified`) to identify records changed or created by the import.
|
||||
|
||||
.. tip::
|
||||
Activating :ref:`developer mode <developer-mode>` changes the visible import settings in the left
|
||||
menu. Doing so reveals an :menuselection:`Advanced` menu. Included in this advanced menu are two
|
||||
options: :guilabel:`Track history during import` and :guilabel:`Allow matching with subfields`.
|
||||
|
||||
.. image:: export_import_data/advanced-import.png
|
||||
:alt: Advanced import options when developer mode is activated.
|
||||
|
||||
If the model uses openchatter, the :guilabel:`Track history during import` option sets up
|
||||
subscriptions and sends notifications during the import, but leads to a slower import.
|
||||
|
||||
Should the :guilabel:`Allow matching with subfields` option be selected, then all subfields
|
||||
within a field are used to match under the :guilabel:`Odoo Field` while importing.
|
||||
|
||||
.. _essentials/export_import_data/get-started:
|
||||
|
||||
Get started
|
||||
-----------
|
||||
|
||||
Data can be imported on any Odoo business object using either Excel (`.xlsx`) or :abbr:`CSV
|
||||
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
|
||||
journal entries, and orders.
|
||||
|
||||
Open the view of the object to which the data should be imported/populated, click the :icon:`fa-cog`
|
||||
(:guilabel:`gear`) icon and select :guilabel:`Import records`.
|
||||
|
||||
.. image:: export_import_data/import-button.png
|
||||
:alt: Action menu revealed with the import records option highlighted.
|
||||
|
||||
Click :icon:`fa-download`:guilabel:`Import Template for Customers` at the center of the page to
|
||||
download a :ref:`template <essentials/export_import_data/adapt-a-template>` and populate it with
|
||||
the company's own data. Such templates can be imported in one click since the data mapping is
|
||||
already preconfigured.
|
||||
|
||||
To upload the downloaded template or your own file, follow the next steps:
|
||||
|
||||
#. Click :guilabel:`Upload Data File` and select the desired file.
|
||||
#. Adjust the :guilabel:`Formatting` options as needed (for CSV files only).
|
||||
#. Ensure all data in the :guilabel:`File Column` is correctly mapped to the appropriate
|
||||
:guilabel:`Odoo Field` and free of errors.
|
||||
#. (Optional) Click :guilabel:`Load Data File` to reload the same file or upload a different one.
|
||||
#. Click :guilabel:`Test` to verify that the data is valid.
|
||||
#. Click :guilabel:`Import`.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Formatting` options do **not** appear when importing the proprietary Excel file
|
||||
type (i.e., `.xls` or `.xlsx`).
|
||||
|
||||
.. _essentials/export_import_data/adapt-a-template:
|
||||
|
||||
Adapt a template
|
||||
----------------
|
||||
|
||||
Import templates are provided in the import tool of the most common data to import (contacts,
|
||||
products, bank statements, etc.). Open them with any spreadsheet software (*Microsoft Office*,
|
||||
*OpenOffice*, *Google Drive*, etc.).
|
||||
|
||||
Once the template is downloaded, proceed to follow these steps:
|
||||
|
||||
- Add, remove, and sort columns to best fit the data structure.
|
||||
- It is strongly advised to **not** remove the :guilabel:`External ID` (ID) column (see why in the
|
||||
next section).
|
||||
- Set a unique ID to every record by dragging down the ID sequencing in the :guilabel:`External ID`
|
||||
(ID) column.
|
||||
|
||||
.. image:: export_import_data/dragdown.gif
|
||||
:alt: An animation of the mouse dragging down the ID column, so each record has a unique ID.
|
||||
|
||||
.. note::
|
||||
When a new column is added, Odoo may not be able to map it automatically, if its label does not
|
||||
fit any field within Odoo. However, new columns can be mapped manually when the import is tested.
|
||||
Search the drop-down menu for the corresponding field.
|
||||
|
||||
.. image:: export_import_data/field_list.png
|
||||
:alt: Drop-down menu expanded in the initial import screen on Odoo.
|
||||
|
||||
Then, use this field's label in the import file to ensure future imports are successful.
|
||||
|
||||
.. tip::
|
||||
Another useful way to find out the proper column names to import is to export a sample file
|
||||
using the fields that should be imported. This way, if there is not a sample import template,
|
||||
the names are accurate.
|
||||
|
||||
|
||||
.. _essentials/external-id:
|
||||
|
||||
Import from another application
|
||||
-------------------------------
|
||||
|
||||
The :guilabel:`External ID` (ID) is a unique identifier for the line item. Feel free to use one
|
||||
from previous software to facilitate the transition to Odoo.
|
||||
|
||||
Setting an ID is not mandatory when importing, but it helps in many cases:
|
||||
|
||||
- :ref:`Update imports <essentials/update-data>`: import the same file several times without
|
||||
creating duplicates.
|
||||
- :ref:`Import relation fields <export_import_data/relation-fields>`.
|
||||
|
||||
To recreate relationships between different records, the unique identifier from the original
|
||||
application should be used to map it to the :guilabel:`External ID` (ID) column in Odoo.
|
||||
|
||||
When another record is imported that links to the first one, use **XXX/ID** (XXX/External ID) for
|
||||
the original unique identifier. This record can also be found using its name.
|
||||
|
||||
.. warning::
|
||||
It should be noted that conflicts occur if two (or more) records have the same *External ID*.
|
||||
|
||||
Field missing to map column
|
||||
---------------------------
|
||||
|
||||
Odoo heuristically tries to find the type of field for each column inside the imported file, based
|
||||
on the first ten lines of the files.
|
||||
|
||||
For example, if there is a column only containing numbers, only the fields with the *integer* type
|
||||
are presented as options.
|
||||
|
||||
While this behavior might be beneficial in most cases, it is also possible that it could fail, or
|
||||
the column may be mapped to a field that is not proposed by default.
|
||||
|
||||
If this happens, check the :guilabel:`Show fields of relation fields (advanced) option`, then a
|
||||
complete list of fields becomes available for each column.
|
||||
|
||||
.. image:: export_import_data/field_list.png
|
||||
:alt: Searching for the field to match the tax column.
|
||||
|
||||
Change data import format
|
||||
-------------------------
|
||||
|
||||
.. note::
|
||||
Odoo can automatically detect if a column is a date, and tries to guess the date format from a
|
||||
set of most commonly used date formats. While this process can work for many date formats, some
|
||||
date formats are not recognizable. This can cause confusion, due to day-month inversions; it is
|
||||
difficult to guess which part of a date format is the day, and which part is the month, in a
|
||||
date, such as `01-03-2016`.
|
||||
|
||||
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
|
||||
options.
|
||||
|
||||
To view which date format Odoo has found from the file, check the :guilabel:`Date Format` that is
|
||||
shown when clicking on options under the file selector. If this format is incorrect, change it to
|
||||
the preferred format using *ISO 8601* to define the format.
|
||||
|
||||
.. important::
|
||||
*ISO 8601* is an international standard, covering the worldwide exchange, along with the
|
||||
communication of date and time-related data. For example, the date format should be `YYYY-MM-DD`.
|
||||
So, in the case of July 24th 1981, it should be written as `1981-07-24`.
|
||||
|
||||
.. tip::
|
||||
When importing Excel files (`.xls`, `.xlsx`), consider using *date cells* to store dates. This
|
||||
maintains locale date formats for display, regardless of how the date is formatted in Odoo. When
|
||||
importing a :abbr:`CSV (Comma-separated Values)` file, use Odoo's :guilabel:`Formatting` section
|
||||
to select the date format columns to import.
|
||||
|
||||
Import numbers with currency signs
|
||||
----------------------------------
|
||||
|
||||
Odoo fully supports numbers with parenthesis to represent negative signs, as well as numbers with
|
||||
currency signs attached to them. Odoo also automatically detects which thousand/decimal separator is
|
||||
used. If a currency symbol unknown to Odoo is used, it might not be recognized as a number, and the
|
||||
import crashes.
|
||||
|
||||
.. note::
|
||||
When importing a :abbr:`CSV (Comma-separated Values)` file, the :guilabel:`Formatting` menu
|
||||
appears on the left-hand column. Under these options, the :guilabel:`Thousands Separator` can be
|
||||
changed.
|
||||
|
||||
Examples of supported numbers (using 'thirty-two thousand' as the figure):
|
||||
|
||||
- 32.000,00
|
||||
- 32000,00
|
||||
- 32,000.00
|
||||
- -32000.00
|
||||
- (32000.00)
|
||||
- $ 32.000,00
|
||||
- (32000.00 €)
|
||||
|
||||
Example that will not work:
|
||||
|
||||
- ABC 32.000,00
|
||||
- $ (32.000,00)
|
||||
|
||||
.. important::
|
||||
A :guilabel:`() (parenthesis)` around the number indicates that the number is a negative value.
|
||||
The currency symbol **must** be placed within the parenthesis for Odoo to recognize it as a
|
||||
negative currency value.
|
||||
|
||||
Import preview table not displayed correctly
|
||||
--------------------------------------------
|
||||
|
||||
By default, the import preview is set on commas as field separators, and quotation marks as text
|
||||
delimiters. If the :abbr:`CSV (Comma-separated Values)` file does not have these settings, modify
|
||||
the :guilabel:`Formatting` options (displayed under the :guilabel:`Import` :abbr:`CSV
|
||||
(Comma-separated Values)` file bar after selecting the :abbr:`CSV (Comma-separated Values)` file).
|
||||
|
||||
.. important::
|
||||
If the :abbr:`CSV (Comma-separated Values)` file has a tabulation as a separator, Odoo does
|
||||
**not** detect the separations. The file format options need to be modified in the spreadsheet
|
||||
application. See the following :ref:`Change CSV file format <export_import_data/change-csv>`
|
||||
section.
|
||||
|
||||
.. _export_import_data/change-csv:
|
||||
|
||||
Change CSV file format in spreadsheet application
|
||||
-------------------------------------------------
|
||||
|
||||
When editing and saving :abbr:`CSV (Comma-separated Values)` files in spreadsheet applications, the
|
||||
computer's regional settings are applied for the separator and delimiter. Odoo suggests using
|
||||
*OpenOffice* or *LibreOffice*, as both applications allow modifications of all three options (from
|
||||
*LibreOffice* application, go to :menuselection:`'Save As' dialog box --> Check the box 'Edit filter
|
||||
settings' --> Save`).
|
||||
|
||||
Microsoft Excel can modify the encoding when saving (:menuselection:`'Save As' dialog box -->
|
||||
'Tools' drop-down menu --> Encoding tab`).
|
||||
|
||||
Difference between Database ID and External ID
|
||||
----------------------------------------------
|
||||
|
||||
Some fields define a relationship with another object. For example, the country of a contact is a
|
||||
link to a record of the 'Country' object. When such fields are imported, Odoo has to recreate links
|
||||
between the different records. To help import such fields, Odoo provides three mechanisms.
|
||||
|
||||
.. important::
|
||||
**Only one** mechanism should be used per field that is imported.
|
||||
|
||||
For example, to reference the country of a contact, Odoo proposes three different fields to import:
|
||||
|
||||
- :guilabel:`Country`: the name or code of the country
|
||||
- :guilabel:`Country/Database ID`: the unique Odoo ID for a record, defined by the ID PostgreSQL
|
||||
column
|
||||
- :guilabel:`Country/External ID`: the ID of this record referenced in another application (or the
|
||||
`.XML` file that imported it)
|
||||
|
||||
For the country of Belgium, for example, use one of these three ways to import:
|
||||
|
||||
- :guilabel:`Country`: `Belgium`
|
||||
- :guilabel:`Country/Database ID`: `21`
|
||||
- :guilabel:`Country/External ID`: `base.be`
|
||||
|
||||
According to the company's need, use one of these three ways to reference records in relations. Here
|
||||
is an example when one or the other should be used, according to the need:
|
||||
|
||||
- Use :guilabel:`Country`: this is the easiest way when data comes from :abbr:`CSV (Comma-separated
|
||||
Values)` files that have been created manually.
|
||||
- Use :guilabel:`Country/Database ID`: this should rarely be used. It is mostly used by developers
|
||||
as the main advantage is to never have conflicts (there may be several records with the same name,
|
||||
but they always have a unique Database ID)
|
||||
- Use :guilabel:`Country/External ID`: use *External ID* when importing data from a third-party
|
||||
application.
|
||||
|
||||
When *External IDs* are used, import :abbr:`CSV (Comma-separated Values)` files with the
|
||||
:guilabel:`External ID` (ID) column defining the *External ID* of each record that is imported.
|
||||
Then, a reference can be made to that record with columns, like `Field/External ID`. The following
|
||||
two :abbr:`CSV (Comma-separated Values)` files provide an example for products and their categories.
|
||||
|
||||
- :download:`CSV file for categories
|
||||
<export_import_data/External_id_3rd_party_application_product_categories.csv>`
|
||||
- :download:`CSV file for Products
|
||||
<export_import_data/External_id_3rd_party_application_products.csv>`
|
||||
|
||||
.. _export_import_data/relation-fields:
|
||||
|
||||
Import relation fields
|
||||
----------------------
|
||||
|
||||
An Odoo object is always related to many other objects (e.g. a product is linked to product
|
||||
categories, attributes, vendors, etc.). To import those relations, the records of the related object
|
||||
need to be imported first, from their own list menu.
|
||||
|
||||
This can be achieved by using either the name of the related record, or its ID, depending on the
|
||||
circumstances. The ID is expected when two records have the same name. In such a case add `/ ID`
|
||||
at the end of the column title (e.g. for product attributes: `Product Attributes / Attribute / ID`).
|
||||
|
||||
Options for multiple matches on fields
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If, for example, there are two product categories with the child name `Sellable` (e.g. `Misc.
|
||||
Products/Sellable` & `Other Products/Sellable`), the validation is halted, but the data may still be
|
||||
imported. However, Odoo recommends that the data is not imported because it will all be linked to
|
||||
the first `Sellable` category found in the *Product Category* list (`Misc. Products/Sellable`).
|
||||
Odoo, instead, recommends modifying one of the duplicate's values, or the product category
|
||||
hierarchy.
|
||||
|
||||
However, if the company does not wish to change the configuration of product categories, Odoo
|
||||
recommends making use of the *External ID* for this field, 'Category'.
|
||||
|
||||
Import many2many relationship fields
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The tags should be separated by a comma, without any spacing. For example, if a customer needs to be
|
||||
linked to both tags: `Manufacturer` and `Retailer` then 'Manufacturer,Retailer' needs to be encoded
|
||||
in the same column of the :abbr:`CSV (Comma-separated Values)` file.
|
||||
|
||||
- :download:`CSV file for Manufacturer, Retailer <export_import_data/m2m_customers_tags.csv>`
|
||||
|
||||
Import one2many relationships
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If a company wants to import a sales order with several order lines, a specific row **must** be
|
||||
reserved in the :abbr:`CSV (Comma-separated Values)` file for each order line. The first order line
|
||||
is imported on the same row as the information relative to order. Any additional lines need an
|
||||
additional row that does not have any information in the fields relative to the order.
|
||||
|
||||
As an example, here is a :abbr:`CSV (Comma-separated Values)` file of some quotations that can be
|
||||
imported, based on demo data:
|
||||
|
||||
- :download:`File for some Quotations
|
||||
<export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`
|
||||
|
||||
The following :abbr:`CSV (Comma-separated Values)` file shows how to import purchase orders with
|
||||
their respective purchase order lines:
|
||||
|
||||
- :download:`Purchase orders with their respective purchase order lines
|
||||
<export_import_data/o2m_purchase_order_lines.csv>`
|
||||
|
||||
The following :abbr:`CSV (Comma-separated Values)` file shows how to import customers and their
|
||||
respective contacts:
|
||||
|
||||
- :download:`Customers and their respective contacts
|
||||
<export_import_data/o2m_customers_contacts.csv>`
|
||||
|
||||
Import image files
|
||||
------------------
|
||||
|
||||
To import image files along with the :ref:`uploaded <essentials/export_import_data/get-started>`
|
||||
CSV or Excel file, follow the next steps:
|
||||
|
||||
#. Add the image file names to the relevant :guilabel:`Image` column in the data file.
|
||||
#. :ref:`Upload the data file <essentials/export_import_data/get-started>` or reload it by
|
||||
clicking :guilabel:`Load Data File`.
|
||||
#. Click :guilabel:`Upload your files` under the :guilabel:`Files to import` section.
|
||||
#. Select the relevant image files. The number of files selected appears next to the button.
|
||||
#. Click :guilabel:`Test` to verify that all data is valid.
|
||||
#. Click :guilabel:`Import`. During the import process, Odoo performs a file check to automatically
|
||||
link the uploaded images to the imported data file. If there is no match, the data file is
|
||||
imported without any image.
|
||||
|
||||
.. note::
|
||||
- The :guilabel:`Files to import` section is enabled if your product template has an
|
||||
:guilabel:`Image` column with all fields populated.
|
||||
- The image file names in the data file must correspond to the uploaded image files.
|
||||
- When importing a large number of images, you can specify the maximum batch size in megabytes
|
||||
and set a delay to prevent the system from becoming overloaded. To do so, :doc:`enable the
|
||||
developer mode <../general/developer_mode>` and fill in the :guilabel:`Max size per
|
||||
batch` and the :guilabel:`Delay after each batch` fields in the :guilabel:`Files to import`
|
||||
section. By default, the delay meets the RPC/API call limit defined in the `Odoo Cloud -
|
||||
Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_.
|
||||
|
||||
Import records several times
|
||||
----------------------------
|
||||
|
||||
If an imported file contains one of the columns: :guilabel:`External ID` or :guilabel:`Database ID`,
|
||||
records that have already been imported are modified, instead of being created. This is extremely
|
||||
useful as it allows users to import the same :abbr:`CSV (Comma-separated Values)` file several
|
||||
times, while having made some changes in between two imports.
|
||||
|
||||
Odoo takes care of creating or modifying each record, depending if it is new or not.
|
||||
|
||||
This feature allows a company to use the *Import/Export tool* in Odoo to modify a batch of records
|
||||
in a spreadsheet application.
|
||||
|
||||
Value not provided for a specific field
|
||||
---------------------------------------
|
||||
|
||||
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined
|
||||
field. But, if fields are set with empty values in the :abbr:`CSV (Comma-separated Values)` file,
|
||||
Odoo sets the empty value in the field, instead of assigning the default value.
|
||||
|
||||
Export/import different tables from an SQL application to Odoo
|
||||
--------------------------------------------------------------
|
||||
|
||||
If data needs to be imported from different tables, relations need to be recreated between records
|
||||
belonging to different tables. For instance, if companies and people are imported, the link between
|
||||
each person and the company they work for needs to be recreated.
|
||||
|
||||
To manage relations between tables, use the `External ID` facilities of Odoo. The `External ID` of a
|
||||
record is the unique identifier of this record in another application. The `External ID` must be
|
||||
unique across all records of all objects. It is a good practice to prefix this `External ID` with
|
||||
the name of the application or table. (like, 'company_1', 'person_1' - instead of '1')
|
||||
|
||||
As an example, suppose there is an SQL database with two tables that are to be imported: companies
|
||||
and people. Each person belongs to one company, so the link between a person and the company they
|
||||
work for must be recreated.
|
||||
|
||||
Test this example, with a :download:`sample of a PostgreSQL database
|
||||
<export_import_data/database_import_test.sql>`.
|
||||
|
||||
First, export all companies and their *External ID*. In PSQL, write the following command:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
|
||||
|
||||
This SQL command creates the following :abbr:`CSV (Comma-separated Values)` file:
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
External ID,Name,Is a Company
|
||||
company_1,Bigees,True
|
||||
company_2,Organi,True
|
||||
company_3,Boum,True
|
||||
|
||||
To create the :abbr:`CSV (Comma-separated Values)` file for people linked to companies, use the
|
||||
following SQL command in PSQL:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
|
||||
|
||||
It produces the following :abbr:`CSV (Comma-separated Values)` file:
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
External ID,Name,Is a Company,Related Company/External ID
|
||||
person_1,Fabien,False,company_1
|
||||
person_2,Laurence,False,company_1
|
||||
person_3,Eric,False,company_2
|
||||
person_4,Ramsy,False,company_3
|
||||
|
||||
In this file, Fabien and Laurence are working for the Bigees company (`company_1`), and Eric is
|
||||
working for the Organi company. The relation between people and companies is done using the
|
||||
*External ID* of the companies. The *External ID* is prefixed by the name of the table to avoid a
|
||||
conflict of ID between people and companies (`person_1` and `company_1`, who shared the same ID 1 in
|
||||
the original database).
|
||||
|
||||
The two files produced are ready to be imported in Odoo without any modifications. After having
|
||||
imported these two :abbr:`CSV (Comma-separated Values)` files, there are four contacts and three
|
||||
companies (the first two contacts are linked to the first company). Keep in mind to first import
|
||||
the companies, and then the people.
|
||||
|
||||
.. _essentials/update-data:
|
||||
|
||||
Update data in Odoo
|
||||
===================
|
||||
|
||||
Existing data can be updated in bulk through a data import, as long as the :ref:`External ID
|
||||
<essentials/external-id>` remains consistent.
|
||||
|
||||
Prepare data export
|
||||
-------------------
|
||||
|
||||
To update data through an import, first navigate to the data to be updated, and select the |list| to
|
||||
activate list view. On the far-left side of the list, tick the checkbox for any record to be
|
||||
updated. Then, click |actions|, and select :icon:`fa-upload` :guilabel:`Export` from the drop-down
|
||||
menu.
|
||||
|
||||
On the resulting :guilabel:`Export Data` pop-up window, tick the checkbox labeled, :guilabel:`I want
|
||||
to update data (import-compatible export)`. This automatically includes the *External ID* in the
|
||||
export. Additionally, it limits the :guilabel:`Fields to export` list to **only** include fields
|
||||
that are able to be imported.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`External ID` field does **not** appear in the :guilabel:`Fields to export` list
|
||||
unless it is manually added, but it is still included in the export. However, if the :guilabel:`I
|
||||
want to update data (import-compatible export)` checkbox is ticked, it is included in the export.
|
||||
|
||||
Select the required fields to be included in the export using the :ref:`options <export-data>` on
|
||||
the pop-up window, then click :guilabel:`Export`.
|
||||
|
||||
Import updated data
|
||||
-------------------
|
||||
|
||||
After exporting, make any necessary changes to the data file. When the file is ready, it can be
|
||||
:ref:`imported <import-data>` by following the same process as a normal data import.
|
||||
|
||||
.. danger::
|
||||
When updating data, it is extremely important that the *External ID* remain consistent, as
|
||||
this is how the system identifies a record. If an ID is altered, or removed, the system may add a
|
||||
duplicate record, instead of updating the existing one.
|
||||
@@ -0,0 +1,199 @@
|
||||
---
|
||||
substitutions:
|
||||
IAP: '{abbr}`IAP (In-app purchases)`'
|
||||
---
|
||||
|
||||
# In-app purchases (IAP)
|
||||
|
||||
In-app purchases (IAP) are optional services that enhance Odoo databases. Each service provides its
|
||||
own specific features and functionality. A full list of services is available on the [Odoo IAP
|
||||
Catalog](https://iap.odoo.com/iap/all-in-app-services).
|
||||
|
||||
```{image} in_app_purchase/iap.png
|
||||
:align: center
|
||||
:alt: The IAP catalog with various services available on IAP.Odoo.com.
|
||||
```
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
The :guilabel:`SMS` service sends text messages to contacts directly from the database, and the
|
||||
:guilabel:`Documents Digitization` service digitizes scanned or PDF vendor bills, expenses, and
|
||||
resumes with optical character recognition (OCR) and artificial intelligence (AI).
|
||||
```
|
||||
|
||||
{{ IAP }} services do **not** need to be configured or set up before use. Odoo users can simply click on
|
||||
the service in the app to activate it. However, each service requires its own prepaid credits, and
|
||||
when they run out, users **must** {ref}`buy more <iap/buying_credits>` in order to keep using it.
|
||||
|
||||
:::{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.
|
||||
:::
|
||||
|
||||
(in-app-purchase-portal)=
|
||||
|
||||
## IAP services
|
||||
|
||||
{{ IAP }} services are provided by Odoo, as well as third-parties, and have a wide range of uses.
|
||||
|
||||
The following {{ IAP }} services are offered by Odoo:
|
||||
|
||||
- {guilabel}`Documents Digitization`: digitizes scanned or PDF vendor bills, expenses, and resumes
|
||||
with OCR and AI.
|
||||
- {guilabel}`Partner Autocomplete`: automatically populates contact records with corporate data.
|
||||
- {guilabel}`SMS`: sends SMS text messages to contacts directly from the database.
|
||||
- {guilabel}`Lead Generation`: generates leads based on a set of criteria, and converts web visitors
|
||||
into quality leads and opportunities.
|
||||
- {guilabel}`Snailmail`: sends customer invoices and follow-up reports by post, worldwide.
|
||||
- {guilabel}`Signer identification with itsme®️`: ask document signatories in Odoo *Sign* to provide
|
||||
their identity using the *itsme®* identity platform, which is available in Belgium and the
|
||||
Netherlands.
|
||||
|
||||
For more information on every service currently available (offered from developers other than Odoo),
|
||||
visit the [Odoo IAP Catalog](https://iap.odoo.com/iap/all-in-app-services).
|
||||
|
||||
### Use IAP services
|
||||
|
||||
{{ IAP }} services are automatically integrated with Odoo, and do **not** require users to configure any
|
||||
settings. To use a service, simply interact with it wherever it appears in the database.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
The following flow focuses on the *SMS* |IAP| service being used from a contact's record.
|
||||
|
||||
This can be done by clicking the :guilabel:`📱 SMS` icon within the database.
|
||||
|
||||
.. image:: in_app_purchase/sms-icon.png
|
||||
:align: center
|
||||
:alt: The SMS icon on a typical contact information form located within an Odoo database.
|
||||
|
||||
One way to utilize the *SMS* |IAP| service with Odoo is showcased in the following steps:
|
||||
|
||||
First, navigate to the :menuselection:`Contacts application`, and click on a contact with a
|
||||
mobile phone number entered in either the :guilabel:`Phone` or :guilabel:`Mobile` field of the
|
||||
contact form.
|
||||
|
||||
Next, find the :guilabel:`📱 SMS` icon that appears to the right of the :guilabel:`Phone` or
|
||||
:guilabel:`Mobile` fields. Click the :guilabel:`📱 SMS` icon, and a :guilabel:`Send SMS Text
|
||||
Message` pop-up window appears.
|
||||
|
||||
Type a message in the :guilabel:`Message` field of the pop-up window. Then, click the
|
||||
:guilabel:`Send SMS` button. Odoo then sends the message, via SMS, to the contact, and logs what
|
||||
was sent in the *chatter* of the contact's form.
|
||||
|
||||
Upon sending the SMS message, the prepaid credits for the *SMS* |IAP| service are automatically
|
||||
deducted from the existing credits. If there are not enough credits to send the message, Odoo
|
||||
prompts the user to purchase more.
|
||||
```
|
||||
|
||||
:::{seealso}
|
||||
For more information on how to use various {{ IAP }} services, and for more in-depth instructions
|
||||
related to SMS functionality in Odoo, review the documentation below:
|
||||
|
||||
- {doc}`Lead mining <../sales/crm/acquire_leads/lead_mining>`
|
||||
- {doc}`Enrich your contacts base with Partner Autocomplete
|
||||
<../sales/crm/optimize/partner_autocomplete>`
|
||||
- {doc}`SMS Marketing <../marketing/sms_marketing>`
|
||||
:::
|
||||
|
||||
(in-app-purchase-credits)=
|
||||
|
||||
## IAP credits
|
||||
|
||||
Every time an {{ IAP }} service is used, the prepaid credits for that service are spent. Odoo prompts
|
||||
the purchase of more credits when there are not enough credits left to continue using a service.
|
||||
Email alerts can also be set up for when {ref}`credits are low <in_app_purchase/low-credits>`.
|
||||
|
||||
Credits are purchased in *Packs* from the [Odoo IAP Catalog](https://iap.odoo.com/iap/all-in-app-services), and pricing is specific to each service.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
The `SMS service <https://iap.odoo.com/iap/in-app-services/1>`_ has four packs available, in
|
||||
denominations of:
|
||||
|
||||
- :guilabel:`Starter Pack`: 10 credits
|
||||
- :guilabel:`Standard Pack`: 100 credits
|
||||
- :guilabel:`Advanced Pack`: 500 credits
|
||||
- :guilabel:`Expert Pack`: 1,000 credits
|
||||
|
||||
.. image:: in_app_purchase/packs.png
|
||||
:align: center
|
||||
:alt: Four different packs of credits for the SMS IAP service.
|
||||
|
||||
The number of credits consumed depends on the length of the SMS and the country of destination.
|
||||
|
||||
For more information, refer to the :doc:`SMS Pricing and FAQ
|
||||
<../marketing/sms_marketing/pricing_and_faq>` documentation.
|
||||
```
|
||||
|
||||
(iap-buying-credits)=
|
||||
|
||||
### Buy credits
|
||||
|
||||
If there are not enough credits to perform a task, the database automatically prompts the purchase
|
||||
of more credits.
|
||||
|
||||
Users can check the current balance of credits for each service, and manually purchase more credits,
|
||||
by navigating to the {menuselection}`Settings app --> Contacts section`, and beneath the
|
||||
{guilabel}`Odoo IAP` setting, click {guilabel}`View My Services`.
|
||||
|
||||
Doing so reveals an {guilabel}`IAP Service` page, listing the various {{ IAP }} services in the
|
||||
database. From here, click an {{ IAP }} service to open its {guilabel}`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
|
||||
#### Manually buy credits
|
||||
|
||||
To manually buy credits in Odoo, follow these steps:
|
||||
|
||||
First, go to the {menuselection}`Settings application` and type `IAP` in the {guilabel}`Search...`
|
||||
bar. Alternatively users can scroll down to the {guilabel}`Contacts` section. Under the
|
||||
{guilabel}`Contacts` section, where it says {guilabel}`Odoo IAP`, click {guilabel}`View My
|
||||
Services`.
|
||||
|
||||
```{image} in_app_purchase/view-services.png
|
||||
:align: center
|
||||
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
|
||||
```
|
||||
|
||||
Doing so reveals an {guilabel}`IAP Account` page, listing the various {{ IAP }} services in the
|
||||
database. From here, click an {{ IAP }} service to open its {guilabel}`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
|
||||
On the {guilabel}`Account Information` page, click the {guilabel}`Buy Credit` button. Doing so loads
|
||||
a {guilabel}`Buy Credits for (IAP Account)` page in a new tab. From here, click {guilabel}`Buy` on
|
||||
the desired pack of credits. Then, follow the prompts to enter payment details, and confirm the
|
||||
order.
|
||||
|
||||
```{image} in_app_purchase/buy-pack.png
|
||||
:align: center
|
||||
:alt: The SMS service page on IAP.Odoo.com with four packs of credits available for
|
||||
: purchase.
|
||||
```
|
||||
|
||||
Once the transaction is complete, the credits are available for use in the database.
|
||||
|
||||
(in-app-purchase-low-credits)=
|
||||
|
||||
#### Low-credit notification
|
||||
|
||||
It is possible to be notified when credits are low, in order to avoid running out of credits, while
|
||||
using an {{ IAP }} service. To do that, follow this process:
|
||||
|
||||
Go to the {menuselection}`Settings application`, and type `IAP` in the {guilabel}`Search...` bar.
|
||||
Under the {guilabel}`Contacts` section, where it says {guilabel}`Odoo IAP`, click {guilabel}`View My
|
||||
Services`.
|
||||
|
||||
The available {{ IAP }} accounts appear in a list view on the {guilabel}`IAP Account` page. From here,
|
||||
click on the desired {{ IAP }} account to view that service's {guilabel}`Account Information` page.
|
||||
|
||||
On the {guilabel}`Account Information` page, tick the {guilabel}`Warn Me` checkbox. Doing so reveals
|
||||
two fields on the form: {guilabel}`Threshold` and {guilabel}`Warning Email`.
|
||||
|
||||
In the {guilabel}`Threshold` field, enter an amount of credits Odoo should use as the
|
||||
minimum threshold for this service. In the {guilabel}`Warning Email` field, enter the email address
|
||||
that receives the notification.
|
||||
|
||||
Odoo sends a low-credit alert to the {guilabel}`Warning Email` when the balance of credits falls
|
||||
below the amount listed as the {guilabel}`Threshold`.
|
||||
|
||||
@@ -1,192 +0,0 @@
|
||||
======================
|
||||
In-app purchases (IAP)
|
||||
======================
|
||||
|
||||
.. |IAP| replace:: :abbr:`IAP (In-app purchases)`
|
||||
|
||||
In-app purchases (IAP) are optional services that enhance Odoo databases. Each service provides its
|
||||
own specific features and functionality. A full list of services is available on the `Odoo IAP
|
||||
Catalog <https://iap.odoo.com/iap/all-in-app-services>`_.
|
||||
|
||||
.. image:: in_app_purchase/iap.png
|
||||
:align: center
|
||||
:alt: The IAP catalog with various services available on IAP.Odoo.com.
|
||||
|
||||
.. example::
|
||||
The :guilabel:`SMS` service sends text messages to contacts directly from the database, and the
|
||||
:guilabel:`Documents Digitization` service digitizes scanned or PDF vendor bills, expenses, and
|
||||
resumes with optical character recognition (OCR) and artificial intelligence (AI).
|
||||
|
||||
|IAP| services do **not** need to be configured or set up before use. Odoo users can simply click on
|
||||
the service in the app to activate it. However, each service requires its own prepaid credits, and
|
||||
when they run out, users **must** :ref:`buy more <iap/buying_credits>` in order to keep using it.
|
||||
|
||||
.. 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.
|
||||
|
||||
.. _in_app_purchase/portal:
|
||||
|
||||
IAP services
|
||||
============
|
||||
|
||||
|IAP| services are provided by Odoo, as well as third-parties, and have a wide range of uses.
|
||||
|
||||
The following |IAP| services are offered by Odoo:
|
||||
|
||||
- :guilabel:`Documents Digitization`: digitizes scanned or PDF vendor bills, expenses, and resumes
|
||||
with OCR and AI.
|
||||
- :guilabel:`Partner Autocomplete`: automatically populates contact records with corporate data.
|
||||
- :guilabel:`SMS`: sends SMS text messages to contacts directly from the database.
|
||||
- :guilabel:`Lead Generation`: generates leads based on a set of criteria, and converts web visitors
|
||||
into quality leads and opportunities.
|
||||
- :guilabel:`Snailmail`: sends customer invoices and follow-up reports by post, worldwide.
|
||||
- :guilabel:`Signer identification with itsme®️`: ask document signatories in Odoo *Sign* to provide
|
||||
their identity using the *itsme®* identity platform, which is available in Belgium and the
|
||||
Netherlands.
|
||||
|
||||
For more information on every service currently available (offered from developers other than Odoo),
|
||||
visit the `Odoo IAP Catalog <https://iap.odoo.com/iap/all-in-app-services>`_.
|
||||
|
||||
Use IAP services
|
||||
----------------
|
||||
|
||||
|IAP| services are automatically integrated with Odoo, and do **not** require users to configure any
|
||||
settings. To use a service, simply interact with it wherever it appears in the database.
|
||||
|
||||
.. example::
|
||||
The following flow focuses on the *SMS* |IAP| service being used from a contact's record.
|
||||
|
||||
This can be done by clicking the :guilabel:`📱 SMS` icon within the database.
|
||||
|
||||
.. image:: in_app_purchase/sms-icon.png
|
||||
:align: center
|
||||
:alt: The SMS icon on a typical contact information form located within an Odoo database.
|
||||
|
||||
One way to utilize the *SMS* |IAP| service with Odoo is showcased in the following steps:
|
||||
|
||||
First, navigate to the :menuselection:`Contacts application`, and click on a contact with a
|
||||
mobile phone number entered in either the :guilabel:`Phone` or :guilabel:`Mobile` field of the
|
||||
contact form.
|
||||
|
||||
Next, find the :guilabel:`📱 SMS` icon that appears to the right of the :guilabel:`Phone` or
|
||||
:guilabel:`Mobile` fields. Click the :guilabel:`📱 SMS` icon, and a :guilabel:`Send SMS Text
|
||||
Message` pop-up window appears.
|
||||
|
||||
Type a message in the :guilabel:`Message` field of the pop-up window. Then, click the
|
||||
:guilabel:`Send SMS` button. Odoo then sends the message, via SMS, to the contact, and logs what
|
||||
was sent in the *chatter* of the contact's form.
|
||||
|
||||
Upon sending the SMS message, the prepaid credits for the *SMS* |IAP| service are automatically
|
||||
deducted from the existing credits. If there are not enough credits to send the message, Odoo
|
||||
prompts the user to purchase more.
|
||||
|
||||
.. seealso::
|
||||
For more information on how to use various |IAP| services, and for more in-depth instructions
|
||||
related to SMS functionality in Odoo, review the documentation below:
|
||||
|
||||
- :doc:`Lead mining <../sales/crm/acquire_leads/lead_mining>`
|
||||
- :doc:`Enrich your contacts base with Partner Autocomplete
|
||||
<../sales/crm/optimize/partner_autocomplete>`
|
||||
- :doc:`SMS Marketing <../marketing/sms_marketing>`
|
||||
|
||||
.. _in_app_purchase/credits:
|
||||
|
||||
IAP credits
|
||||
===========
|
||||
|
||||
Every time an |IAP| service is used, the prepaid credits for that service are spent. Odoo prompts
|
||||
the purchase of more credits when there are not enough credits left to continue using a service.
|
||||
Email alerts can also be set up for when :ref:`credits are low <in_app_purchase/low-credits>`.
|
||||
|
||||
Credits are purchased in *Packs* from the `Odoo IAP Catalog
|
||||
<https://iap.odoo.com/iap/all-in-app-services>`_, and pricing is specific to each service.
|
||||
|
||||
.. example::
|
||||
The `SMS service <https://iap.odoo.com/iap/in-app-services/1>`_ has four packs available, in
|
||||
denominations of:
|
||||
|
||||
- :guilabel:`Starter Pack`: 10 credits
|
||||
- :guilabel:`Standard Pack`: 100 credits
|
||||
- :guilabel:`Advanced Pack`: 500 credits
|
||||
- :guilabel:`Expert Pack`: 1,000 credits
|
||||
|
||||
.. image:: in_app_purchase/packs.png
|
||||
:align: center
|
||||
:alt: Four different packs of credits for the SMS IAP service.
|
||||
|
||||
The number of credits consumed depends on the length of the SMS and the country of destination.
|
||||
|
||||
For more information, refer to the :doc:`SMS Pricing and FAQ
|
||||
<../marketing/sms_marketing/pricing_and_faq>` documentation.
|
||||
|
||||
.. _iap/buying_credits:
|
||||
|
||||
Buy credits
|
||||
-----------
|
||||
|
||||
If there are not enough credits to perform a task, the database automatically prompts the purchase
|
||||
of more credits.
|
||||
|
||||
Users can check the current balance of credits for each service, and manually purchase more credits,
|
||||
by navigating to the :menuselection:`Settings app --> Contacts section`, and beneath the
|
||||
:guilabel:`Odoo IAP` setting, click :guilabel:`View My Services`.
|
||||
|
||||
Doing so reveals an :guilabel:`IAP Service` page, listing the various |IAP| services in the
|
||||
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
|
||||
Manually buy credits
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To manually buy credits in Odoo, follow these steps:
|
||||
|
||||
First, go to the :menuselection:`Settings application` and type `IAP` in the :guilabel:`Search...`
|
||||
bar. Alternatively users can scroll down to the :guilabel:`Contacts` section. Under the
|
||||
:guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, click :guilabel:`View My
|
||||
Services`.
|
||||
|
||||
.. image:: in_app_purchase/view-services.png
|
||||
:align: center
|
||||
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
|
||||
|
||||
Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
|
||||
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
|
||||
On the :guilabel:`Account Information` page, click the :guilabel:`Buy Credit` button. Doing so loads
|
||||
a :guilabel:`Buy Credits for (IAP Account)` page in a new tab. From here, click :guilabel:`Buy` on
|
||||
the desired pack of credits. Then, follow the prompts to enter payment details, and confirm the
|
||||
order.
|
||||
|
||||
.. image:: in_app_purchase/buy-pack.png
|
||||
:align: center
|
||||
:alt: The SMS service page on IAP.Odoo.com with four packs of credits available for purchase.
|
||||
|
||||
Once the transaction is complete, the credits are available for use in the database.
|
||||
|
||||
.. _in_app_purchase/low-credits:
|
||||
|
||||
Low-credit notification
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is possible to be notified when credits are low, in order to avoid running out of credits, while
|
||||
using an |IAP| service. To do that, follow this process:
|
||||
|
||||
Go to the :menuselection:`Settings application`, and type `IAP` in the :guilabel:`Search...` bar.
|
||||
Under the :guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, click :guilabel:`View My
|
||||
Services`.
|
||||
|
||||
The available |IAP| accounts appear in a list view on the :guilabel:`IAP Account` page. From here,
|
||||
click on the desired |IAP| account to view that service's :guilabel:`Account Information` page.
|
||||
|
||||
On the :guilabel:`Account Information` page, tick the :guilabel:`Warn Me` checkbox. Doing so reveals
|
||||
two fields on the form: :guilabel:`Threshold` and :guilabel:`Warning Email`.
|
||||
|
||||
In the :guilabel:`Threshold` field, enter an amount of credits Odoo should use as the
|
||||
minimum threshold for this service. In the :guilabel:`Warning Email` field, enter the email address
|
||||
that receives the notification.
|
||||
|
||||
Odoo sends a low-credit alert to the :guilabel:`Warning Email` when the balance of credits falls
|
||||
below the amount listed as the :guilabel:`Threshold`.
|
||||
+30
-25
@@ -1,27 +1,28 @@
|
||||
==================
|
||||
Keyboard shortcuts
|
||||
==================
|
||||
# Keyboard shortcuts
|
||||
|
||||
Users in Odoo can utilize several keyboard shortcuts to navigate through modules, execute actions,
|
||||
and manage data.
|
||||
|
||||
.. tip::
|
||||
Hold :kbd:`Ctrl` to view the keyboard shortcuts assigned to each element on the interface.
|
||||
:::{tip}
|
||||
Hold {kbd}`Ctrl` to view the keyboard shortcuts assigned to each element on the interface.
|
||||
|
||||
.. image:: keyboard_shortcuts/menu-shortcuts.png
|
||||
:align: center
|
||||
:alt: A selection of keyboard shortcuts in Odoo.
|
||||
```{image} keyboard_shortcuts/menu-shortcuts.png
|
||||
:align: center
|
||||
:alt: A selection of keyboard shortcuts in Odoo.
|
||||
```
|
||||
:::
|
||||
|
||||
.. important::
|
||||
Some keyboard shortcuts may not be available on different versions of Odoo or effective depending
|
||||
on browsers, extensions, or other individual settings.
|
||||
:::{important}
|
||||
Some keyboard shortcuts may not be available on different versions of Odoo or effective depending
|
||||
on browsers, extensions, or other individual settings.
|
||||
:::
|
||||
|
||||
Keyboard shortcuts by operating system
|
||||
======================================
|
||||
## Keyboard shortcuts by operating system
|
||||
|
||||
Below is a list of some of the most commonly used keyboard shortcuts within Odoo, listed by
|
||||
operating system.
|
||||
|
||||
```{eval-rst}
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
@@ -68,19 +69,23 @@ operating system.
|
||||
* - Open command palette
|
||||
- :kbd:`Ctrl` + :kbd:`K`
|
||||
- :kbd:`Command` + :kbd:`K`
|
||||
```
|
||||
|
||||
.. tip::
|
||||
After opening the command palette, search using the following keyboard shortcuts:
|
||||
:::{tip}
|
||||
After opening the command palette, search using the following keyboard shortcuts:
|
||||
|
||||
- :kbd:`/`: search for menus, applications, and modules.
|
||||
- :kbd:`@`: search for users.
|
||||
- :kbd:`#`: search for **Discuss** channels.
|
||||
- :kbd:`?`: search for **Knowledge** articles.
|
||||
- {kbd}`/`: search for menus, applications, and modules.
|
||||
- {kbd}`@`: search for users.
|
||||
- {kbd}`#`: search for **Discuss** channels.
|
||||
- {kbd}`?`: search for **Knowledge** articles.
|
||||
|
||||
Enter a name (or term) in the search bar, or use the arrow keys to scroll through the available
|
||||
options. Then, click :kbd:`Ctrl` + :kbd:`Enter` to open the selected app, module, or menu in a
|
||||
new tab.
|
||||
Enter a name (or term) in the search bar, or use the arrow keys to scroll through the available
|
||||
options. Then, click {kbd}`Ctrl` + {kbd}`Enter` to open the selected app, module, or menu in a
|
||||
new tab.
|
||||
|
||||
```{image} keyboard_shortcuts/command-palete.png
|
||||
:align: center
|
||||
:alt: The command palette in Odoo, with the menu search option selected.
|
||||
```
|
||||
:::
|
||||
|
||||
.. image:: keyboard_shortcuts/command-palete.png
|
||||
:align: center
|
||||
:alt: The command palette in Odoo, with the menu search option selected.
|
||||
+86
-76
@@ -1,70 +1,70 @@
|
||||
=========
|
||||
Reporting
|
||||
=========
|
||||
# Reporting
|
||||
|
||||
You can find several reports under the :guilabel:`Reporting` menu of most apps that let you analyze
|
||||
You can find several reports under the {guilabel}`Reporting` menu of most apps that let you analyze
|
||||
and visualize the data of your records.
|
||||
|
||||
.. _reporting/views:
|
||||
(reporting-views)=
|
||||
|
||||
Selecting a view
|
||||
================
|
||||
## Selecting a view
|
||||
|
||||
Depending on the report, Odoo can display the data in various ways. Sometimes, a unique view
|
||||
fully tailored to the report is available, while several views are available for others. However,
|
||||
two generic views are dedicated to reporting: the graph and pivot views.
|
||||
|
||||
.. _reporting/views/graph:
|
||||
(reporting-views-graph)=
|
||||
|
||||
Graph view
|
||||
----------
|
||||
### Graph view
|
||||
|
||||
The :ref:`graph view <reporting/using-graph>` is used to visualize your records' data, helping you
|
||||
identify patterns and trends. The view is often found under the :guilabel:`Reporting` menu of apps
|
||||
The {ref}`graph view <reporting/using-graph>` is used to visualize your records' data, helping you
|
||||
identify patterns and trends. The view is often found under the {guilabel}`Reporting` menu of apps
|
||||
but can be found elsewhere. Click the **graph view button** located at the top right to access
|
||||
it.
|
||||
|
||||
.. image:: reporting/graph-button.png
|
||||
:alt: Selecting the graph view
|
||||
```{image} reporting/graph-button.png
|
||||
:alt: Selecting the graph view
|
||||
```
|
||||
|
||||
.. _reporting/views/pivot:
|
||||
(reporting-views-pivot)=
|
||||
|
||||
Pivot view
|
||||
----------
|
||||
### Pivot view
|
||||
|
||||
The :ref:`pivot view <reporting/using-pivot>` is used to aggregate your records' data and break it
|
||||
down for analysis. The view is often found under the :guilabel:`Reporting` menu of apps but can be
|
||||
The {ref}`pivot view <reporting/using-pivot>` is used to aggregate your records' data and break it
|
||||
down for analysis. The view is often found under the {guilabel}`Reporting` menu of apps but can be
|
||||
found elsewhere. Click the **pivot view button** located at the top right to access it.
|
||||
|
||||
.. image:: reporting/pivot-button.png
|
||||
:alt: Selecting the pivot view
|
||||
```{image} reporting/pivot-button.png
|
||||
:alt: Selecting the pivot view
|
||||
```
|
||||
|
||||
.. _reporting/choosing-measures:
|
||||
(reporting-choosing-measures)=
|
||||
|
||||
Choosing measures
|
||||
=================
|
||||
## Choosing measures
|
||||
|
||||
After selecting a view, you should ensure only the relevant records are :doc:`filtered <search>`.
|
||||
After selecting a view, you should ensure only the relevant records are {doc}`filtered <search>`.
|
||||
Next, you should choose what is measured. By default, a measure is always selected. If you wish to
|
||||
edit it, click :guilabel:`Measures` and choose one or, only for pivots, multiple measures.
|
||||
edit it, click {guilabel}`Measures` and choose one or, only for pivots, multiple measures.
|
||||
|
||||
.. note::
|
||||
When you select a measure, Odoo aggregates the values recorded on that field for the filtered
|
||||
records. Only numerical fields (:ref:`integer <studio/fields/simple-fields/integer>`,
|
||||
:ref:`decimal <studio/fields/simple-fields/decimal>`, :ref:`monetary
|
||||
<studio/fields/simple-fields/monetary>`) can be measured. In addition, the :guilabel:`Count`
|
||||
option is used to count the total number of filtered records.
|
||||
:::{note}
|
||||
When you select a measure, Odoo aggregates the values recorded on that field for the filtered
|
||||
records. Only numerical fields ({ref}`integer <studio/fields/simple-fields/integer>`,
|
||||
{ref}`decimal <studio/fields/simple-fields/decimal>`, {ref}`monetary
|
||||
<studio/fields/simple-fields/monetary>`) can be measured. In addition, the {guilabel}`Count`
|
||||
option is used to count the total number of filtered records.
|
||||
:::
|
||||
|
||||
After choosing what you want to measure, you can define how the data should be :ref:`grouped
|
||||
After choosing what you want to measure, you can define how the data should be {ref}`grouped
|
||||
<search/group>` depending on the dimension you want to analyze. By default, the data is often
|
||||
grouped by *Date > Month*, which is used to analyze the evolution of a measure over the months.
|
||||
|
||||
.. tip::
|
||||
When you filter a single time period, the option to compare it against another one appears.
|
||||
:::{tip}
|
||||
When you filter a single time period, the option to compare it against another one appears.
|
||||
|
||||
.. image:: reporting/comparison.png
|
||||
:alt: Using the comparison option
|
||||
```{image} reporting/comparison.png
|
||||
:alt: Using the comparison option
|
||||
```
|
||||
:::
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
|
||||
.. tabs::
|
||||
@@ -85,21 +85,22 @@ grouped by *Date > Month*, which is used to analyze the evolution of a measure o
|
||||
|
||||
.. image:: reporting/single-group.png
|
||||
:alt: Adding a group on the Sales Analysis report
|
||||
```
|
||||
|
||||
.. _reporting/using-pivot:
|
||||
(reporting-using-pivot)=
|
||||
|
||||
Using the pivot view
|
||||
====================
|
||||
## Using the pivot view
|
||||
|
||||
Grouping data is quintessential to the pivot view. It enables drilling down the data to gain deeper
|
||||
insights. While you can use the :guilabel:`Group By` option to quickly add a group at the level of
|
||||
rows, as shown in the example above, you can also click the plus button (:guilabel:`➕`) next to the
|
||||
:guilabel:`Total` header at the level of rows *and* columns, and then select one of the
|
||||
**preconfigured groups**. To remove one, click the minus button (:guilabel:`➖`).
|
||||
insights. While you can use the {guilabel}`Group By` option to quickly add a group at the level of
|
||||
rows, as shown in the example above, you can also click the plus button ({guilabel}`➕`) next to the
|
||||
{guilabel}`Total` header at the level of rows *and* columns, and then select one of the
|
||||
**preconfigured groups**. To remove one, click the minus button ({guilabel}`➖`).
|
||||
|
||||
Once you have added a group, you can add new ones on the opposite axis or the newly created
|
||||
subgroups.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
You could further divide the measures on the previous Sales Analysis report example by the
|
||||
:guilabel:`Salesperson` group at the level of columns and by the :guilabel:`Order Date > Month`
|
||||
@@ -107,16 +108,17 @@ subgroups.
|
||||
|
||||
.. image:: reporting/multiple-groups.png
|
||||
:alt: Adding multiple groups on the Sales Analysis report
|
||||
```
|
||||
|
||||
.. tip::
|
||||
- Switch the rows and columns' groups by clicking the flip axis button (:guilabel:`⇄`).
|
||||
- Click on a measure's label to sort the values by ascending (⏶) or descending (⏷) order.
|
||||
- Download a `.xlsx` version of the pivot by clicking the download button (:guilabel:`⭳`).
|
||||
:::{tip}
|
||||
- Switch the rows and columns' groups by clicking the flip axis button ({guilabel}`⇄`).
|
||||
- Click on a measure's label to sort the values by ascending (⏶) or descending (⏷) order.
|
||||
- Download a `.xlsx` version of the pivot by clicking the download button ({guilabel}`⭳`).
|
||||
:::
|
||||
|
||||
.. _reporting/using-graph:
|
||||
(reporting-using-graph)=
|
||||
|
||||
Using the graph view
|
||||
====================
|
||||
## Using the graph view
|
||||
|
||||
Three graphs are available: the bar, line, and pie charts.
|
||||
|
||||
@@ -128,6 +130,7 @@ especially useful as they can deal with larger data sets.
|
||||
**Pie charts** are used to show the distribution or a comparison of a small number of categories
|
||||
when they form a meaningful whole.
|
||||
|
||||
```{eval-rst}
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Bar chart
|
||||
@@ -144,44 +147,51 @@ when they form a meaningful whole.
|
||||
|
||||
.. image:: reporting/pie.png
|
||||
:alt: Viewing the Sales Analysis report as a pie chart
|
||||
```
|
||||
|
||||
.. tip::
|
||||
For **bar** and **line** charts, you can use the stacked option when you have at least two
|
||||
groups, which then appear on top of each other instead of next to each other.
|
||||
:::{tip}
|
||||
For **bar** and **line** charts, you can use the stacked option when you have at least two
|
||||
groups, which then appear on top of each other instead of next to each other.
|
||||
|
||||
.. tabs::
|
||||
```{eval-rst}
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Stacked bar chart
|
||||
.. tab:: Stacked bar chart
|
||||
|
||||
.. image:: reporting/stacked-bar.png
|
||||
:alt: Stacked bar chart example
|
||||
.. image:: reporting/stacked-bar.png
|
||||
:alt: Stacked bar chart example
|
||||
|
||||
.. tab:: Regular bar chart
|
||||
.. tab:: Regular bar chart
|
||||
|
||||
.. image:: reporting/non-stacked-bar.png
|
||||
:alt: Non-stacked bar chart example
|
||||
.. image:: reporting/non-stacked-bar.png
|
||||
:alt: Non-stacked bar chart example
|
||||
|
||||
.. tab:: Stacked line chart
|
||||
.. tab:: Stacked line chart
|
||||
|
||||
.. image:: reporting/stacked-line.png
|
||||
:alt: Stacked line chart example
|
||||
.. image:: reporting/stacked-line.png
|
||||
:alt: Stacked line chart example
|
||||
|
||||
.. tab:: Regular line chart
|
||||
.. tab:: Regular line chart
|
||||
|
||||
.. image:: reporting/non-stacked-line.png
|
||||
:alt: Non-stacked line chart example
|
||||
.. image:: reporting/non-stacked-line.png
|
||||
:alt: Non-stacked line chart example
|
||||
```
|
||||
|
||||
For **line** charts, you can use the cumulative option to sum values, which is especially useful
|
||||
to show the change in growth over a time period.
|
||||
For **line** charts, you can use the cumulative option to sum values, which is especially useful
|
||||
to show the change in growth over a time period.
|
||||
|
||||
.. tabs::
|
||||
```{eval-rst}
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Cumulative line chart
|
||||
.. tab:: Cumulative line chart
|
||||
|
||||
.. image:: reporting/cumulative.png
|
||||
:alt: Cumulative line chart example
|
||||
.. image:: reporting/cumulative.png
|
||||
:alt: Cumulative line chart example
|
||||
|
||||
.. tab:: Regular line chart
|
||||
.. tab:: Regular line chart
|
||||
|
||||
.. image:: reporting/non-cumulative.png
|
||||
:alt: Regular line chart example
|
||||
```
|
||||
:::
|
||||
|
||||
.. image:: reporting/non-cumulative.png
|
||||
:alt: Regular line chart example
|
||||
+131
-117
@@ -1,21 +1,19 @@
|
||||
=================================
|
||||
Search, filter, and group records
|
||||
=================================
|
||||
# Search, filter, and group records
|
||||
|
||||
Odoo allows for the searching, filtering, and grouping of records in a view to display only the most
|
||||
relevant records. The search bar is located at the top of the view, start typing to :ref:`search for
|
||||
values <search/values>`, or click the :guilabel:`🔽 (down arrow)` icon to access the :ref:`Filter
|
||||
<search/filters>`, :ref:`Group By <search/group>`, and :ref:`Favorites <search/favorites>` drop-down
|
||||
relevant records. The search bar is located at the top of the view, start typing to {ref}`search for
|
||||
values <search/values>`, or click the {guilabel}`🔽 (down arrow)` icon to access the {ref}`Filter
|
||||
<search/filters>`, {ref}`Group By <search/group>`, and {ref}`Favorites <search/favorites>` drop-down
|
||||
menus.
|
||||
|
||||
.. _search/values:
|
||||
(search-values)=
|
||||
|
||||
Search for values
|
||||
=================
|
||||
## Search for values
|
||||
|
||||
Use the search field to quickly look for specific values, and add them as a filter. Type the value
|
||||
to search for, and select the desired option from the drop-down menu to apply the search filter.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
Instead of adding a :ref:`custom filter <search/custom-filters>` to select records where
|
||||
*Mitchell Admin* is the salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
||||
@@ -25,31 +23,32 @@ to search for, and select the desired option from the drop-down menu to apply th
|
||||
.. image:: search/search-values.png
|
||||
:align: center
|
||||
:alt: Searching for a specific value on the Sales Analysis report
|
||||
```
|
||||
|
||||
.. note::
|
||||
Using the search field is equivalent to using the *contains* operator when adding a :ref:`custom
|
||||
filter <search/custom-filters>`. If a partial value is entered, and the desired field is directly
|
||||
selected (without selecting the :guilabel:`⏵ (right arrow)`), *all* records containing the typed
|
||||
characters for the selected field are included.
|
||||
:::{note}
|
||||
Using the search field is equivalent to using the *contains* operator when adding a {ref}`custom
|
||||
filter <search/custom-filters>`. If a partial value is entered, and the desired field is directly
|
||||
selected (without selecting the {guilabel}`⏵ (right arrow)`), *all* records containing the typed
|
||||
characters for the selected field are included.
|
||||
:::
|
||||
|
||||
.. _search/filters:
|
||||
(search-filters)=
|
||||
|
||||
Filters
|
||||
=======
|
||||
## Filters
|
||||
|
||||
Filters are used to select records that meet specific criteria. The default selection of records is
|
||||
specific to each view, but can be modified by selecting one (or several) :ref:`preconfigured filters
|
||||
<search/preconfigured-filters>`, or by adding a :ref:`custom filter <search/custom-filters>`.
|
||||
specific to each view, but can be modified by selecting one (or several) {ref}`preconfigured filters
|
||||
<search/preconfigured-filters>`, or by adding a {ref}`custom filter <search/custom-filters>`.
|
||||
|
||||
.. _search/preconfigured-filters:
|
||||
(search-preconfigured-filters)=
|
||||
|
||||
Preconfigured filters
|
||||
---------------------
|
||||
### Preconfigured filters
|
||||
|
||||
Modify the default selection of records by clicking the :guilabel:`🔽 (down arrow)` icon from the
|
||||
search bar, and selecting one (or several) *preconfigured filters* from the :guilabel:`Filters`
|
||||
Modify the default selection of records by clicking the {guilabel}`🔽 (down arrow)` icon from the
|
||||
search bar, and selecting one (or several) *preconfigured filters* from the {guilabel}`Filters`
|
||||
drop-down menu.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
On the *Sales Analysis* report (:menuselection:`Sales app --> Reporting --> Sales`), only records
|
||||
that are at the *sales order* stage, with an *order date* within the last 365 days, are selected
|
||||
@@ -65,73 +64,79 @@ drop-down menu.
|
||||
.. image:: search/preconfigured-filters.png
|
||||
:align: center
|
||||
:alt: Using preconfigured filters on the Sales Analysis report
|
||||
```
|
||||
|
||||
.. note::
|
||||
The preconfigured :guilabel:`Filters` are grouped, and each group is separated by a horizontal
|
||||
line. Selecting preconfigured filters from the same group allows records to match *any* of the
|
||||
applied conditions. However, selecting filters from different groups requires records to match
|
||||
*all* of the applied conditions.
|
||||
:::{note}
|
||||
The preconfigured {guilabel}`Filters` are grouped, and each group is separated by a horizontal
|
||||
line. Selecting preconfigured filters from the same group allows records to match *any* of the
|
||||
applied conditions. However, selecting filters from different groups requires records to match
|
||||
*all* of the applied conditions.
|
||||
:::
|
||||
|
||||
.. _search/custom-filters:
|
||||
(search-custom-filters)=
|
||||
|
||||
Custom filters
|
||||
--------------
|
||||
### Custom filters
|
||||
|
||||
If the :ref:`preconfigured filters <search/preconfigured-filters>` are not specific enough, add a
|
||||
custom filter. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select
|
||||
:menuselection:`Filters --> Add Custom Filter`.
|
||||
If the {ref}`preconfigured filters <search/preconfigured-filters>` are not specific enough, add a
|
||||
custom filter. To do so, click the {guilabel}`🔽 (down arrow)` icon in the search bar, then select
|
||||
{menuselection}`Filters --> Add Custom Filter`.
|
||||
|
||||
The :guilabel:`Add Custom Filter` pop-up window displays the matching option, filter rule, and a
|
||||
toggle to :guilabel:`Include archived` records.
|
||||
The {guilabel}`Add Custom Filter` pop-up window displays the matching option, filter rule, and a
|
||||
toggle to {guilabel}`Include archived` records.
|
||||
|
||||
.. image:: search/custom-filter.png
|
||||
:align: center
|
||||
:alt: The Add Custom Filter pop-up window.
|
||||
```{image} search/custom-filter.png
|
||||
:align: center
|
||||
:alt: The Add Custom Filter pop-up window.
|
||||
```
|
||||
|
||||
The default matching configuration is to :guilabel:`Match any of the following rules`, indicating
|
||||
The default matching configuration is to {guilabel}`Match any of the following rules`, indicating
|
||||
that each filter rule is applied independently. To change the matching configuration to
|
||||
:guilabel:`Match all of the following rules`, at least two filter rules must be added to the custom
|
||||
{guilabel}`Match all of the following rules`, at least two filter rules must be added to the custom
|
||||
filter.
|
||||
|
||||
- :guilabel:`Match all 🔽 of the following rules`: **all** of the filter rules must be met.
|
||||
- {guilabel}`Match all 🔽 of the following rules`: **all** of the filter rules must be met.
|
||||
Logically, this is an *AND* (`&`) operation.
|
||||
- :guilabel:`Match any 🔽 of the following rules`: **any** of the filter rules can be met.
|
||||
- {guilabel}`Match any 🔽 of the following rules`: **any** of the filter rules can be met.
|
||||
Logically, this is an *OR* (`|`) operation.
|
||||
|
||||
By default, a single filter rule is added to the custom filter. The following describes the
|
||||
structure of a filter rule:
|
||||
|
||||
#. The first inline field is the *field name* to filter by. Some fields have refined parameters that
|
||||
are nested within another field. These fields have an :guilabel:`> (arrow)` icon beside them,
|
||||
1. The first inline field is the *field name* to filter by. Some fields have refined parameters that
|
||||
are nested within another field. These fields have an {guilabel}`> (arrow)` icon beside them,
|
||||
which can be selected to reveal the nested fields.
|
||||
#. The second inline field is the conditional *operator* used to compare the field name to the
|
||||
value. The :ref:`available conditional operators <reference/orm/domains>` are specific to the
|
||||
2. The second inline field is the conditional *operator* used to compare the field name to the
|
||||
value. The {ref}`available conditional operators <reference/orm/domains>` are specific to the
|
||||
field's data type.
|
||||
#. The third inline field is the variable *value* of the field name. The value input may appear as a
|
||||
3. The third inline field is the variable *value* of the field name. The value input may appear as a
|
||||
drop-down menu, a text input, a number input, a date/time input, a boolean selector, or it may be
|
||||
blank, depending on the operator used and the field's data type.
|
||||
|
||||
Three inline buttons are also available to the right of the rule's filter criteria:
|
||||
|
||||
#. :guilabel:`➕ (plus sign)`: adds a new rule below the existing rule.
|
||||
#. :guilabel:`(Add branch)`: adds a new group of rules below the existing rule, with the
|
||||
:guilabel:`any` and :guilabel:`all` matching options available to define how each rule within
|
||||
1. {guilabel}`➕ (plus sign)`: adds a new rule below the existing rule.
|
||||
|
||||
2. {guilabel}`(Add branch)`: adds a new group of rules below the existing rule, with the
|
||||
{guilabel}`any` and {guilabel}`all` matching options available to define how each rule within
|
||||
this branch is applied to the filter. If the matching option is set to the same as the parent
|
||||
group, the fields are moved to join the parent group.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
If the matching option is set to :guilabel:`Match all 🔽 of the following rules`, and a new
|
||||
branch is added with its matching option changed from :guilabel:`any 🔽 of` to :guilabel:`all
|
||||
🔽 of`, the newly-added branch disappears, and its group of rules are moved to the parent
|
||||
group.
|
||||
```
|
||||
|
||||
#. :guilabel:`🗑️ (garbage can)`: deletes the node. If a branch node is deleted, all children of
|
||||
3. {guilabel}`🗑️ (garbage can)`: deletes the node. If a branch node is deleted, all children of
|
||||
that node are deleted, as well.
|
||||
|
||||
A new filter rule can be added to the custom filter by clicking the :guilabel:`New Rule` button.
|
||||
A new filter rule can be added to the custom filter by clicking the {guilabel}`New Rule` button.
|
||||
|
||||
Once the filter criteria are defined, click :guilabel:`Add` to add the custom filter to the view.
|
||||
Once the filter criteria are defined, click {guilabel}`Add` to add the custom filter to the view.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
To target all leads and opportunities from the :menuselection:`CRM` app that are in the *Won*
|
||||
stage, and have an expected revenue greater than $1,000, the following should be entered:
|
||||
@@ -148,21 +153,23 @@ Once the filter criteria are defined, click :guilabel:`Add` to add the custom fi
|
||||
.. image:: search/custom-filter-example.png
|
||||
:align: center
|
||||
:alt: Adding a custom filter to filter specific records in CRM.
|
||||
```
|
||||
|
||||
.. tip::
|
||||
Activate :ref:`developer-mode` to reveal each field's technical name and data type, as well as
|
||||
the :guilabel:`# Code editor` text area below the filter rules, to view and edit the domain
|
||||
manually.
|
||||
:::{tip}
|
||||
Activate {ref}`developer-mode` to reveal each field's technical name and data type, as well as
|
||||
the {guilabel}`# Code editor` text area below the filter rules, to view and edit the domain
|
||||
manually.
|
||||
:::
|
||||
|
||||
.. _search/group:
|
||||
(search-group)=
|
||||
|
||||
Group records
|
||||
=============
|
||||
## Group records
|
||||
|
||||
The display of records in a view can be clustered together, according to one of the *preconfigured
|
||||
groups*. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select one of
|
||||
the :guilabel:`Group By` options from the drop-down menu.
|
||||
groups*. To do so, click the {guilabel}`🔽 (down arrow)` icon in the search bar, then select one of
|
||||
the {guilabel}`Group By` options from the drop-down menu.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
To group the records by salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
||||
Reporting --> Sales`), click the :guilabel:`Salesperson` option from the :guilabel:`Group By`
|
||||
@@ -172,67 +179,71 @@ the :guilabel:`Group By` options from the drop-down menu.
|
||||
.. image:: search/group.png
|
||||
:align: center
|
||||
:alt: Grouping records on the Sales Analysis report
|
||||
```
|
||||
|
||||
It is possible to *customize groups* by using a field present on the model. To do so, click
|
||||
:menuselection:`Add Custom Group`, and select a field from the drop-down menu.
|
||||
{menuselection}`Add Custom Group`, and select a field from the drop-down menu.
|
||||
|
||||
.. note::
|
||||
Several groups can be used at the same time. The first group that is selected is the main
|
||||
cluster, the next one that is added further divides the main group's categories, and so on.
|
||||
Furthermore, filters and groups can be used together to refine the view even more.
|
||||
:::{note}
|
||||
Several groups can be used at the same time. The first group that is selected is the main
|
||||
cluster, the next one that is added further divides the main group's categories, and so on.
|
||||
Furthermore, filters and groups can be used together to refine the view even more.
|
||||
:::
|
||||
|
||||
.. _search/comparison:
|
||||
(search-comparison)=
|
||||
|
||||
Comparison
|
||||
==========
|
||||
## Comparison
|
||||
|
||||
Certain reporting dashboards include a :guilabel:`Comparison` section in the drop-down menus of
|
||||
their :guilabel:`Search...` bars. This includes the :doc:`Overall Equipment Effectiveness
|
||||
Certain reporting dashboards include a {guilabel}`Comparison` section in the drop-down menus of
|
||||
their {guilabel}`Search...` bars. This includes the {doc}`Overall Equipment Effectiveness
|
||||
<../inventory_and_mrp/manufacturing/reporting/oee>` report for the *Manufacturing* app, and the
|
||||
:doc:`Purchase <../inventory_and_mrp/purchase/advanced/analyze>` report for the *Purchase* app,
|
||||
{doc}`Purchase <../inventory_and_mrp/purchase/advanced/analyze>` report for the *Purchase* app,
|
||||
among others.
|
||||
|
||||
The options in the :icon:`fa-adjust` :guilabel:`Comparison` section are used to compare data from
|
||||
two different time periods. There are two comparison options to choose from: :guilabel:`(Time
|
||||
Filter): Previous Period` and :guilabel:`(Time Filter): Previous Year`.
|
||||
The options in the {icon}`fa-adjust` {guilabel}`Comparison` section are used to compare data from
|
||||
two different time periods. There are two comparison options to choose from: {guilabel}`(Time
|
||||
Filter): Previous Period` and {guilabel}`(Time Filter): Previous Year`.
|
||||
|
||||
.. important::
|
||||
For some reports, the :guilabel:`Comparison` section **only** appears in the
|
||||
:guilabel:`Search...` bar drop-down menu if one (or more) time periods have been selected in the
|
||||
:guilabel:`Filters` column. This is because, if no time period is specified, there is nothing to
|
||||
compare.
|
||||
:::{important}
|
||||
For some reports, the {guilabel}`Comparison` section **only** appears in the
|
||||
{guilabel}`Search...` bar drop-down menu if one (or more) time periods have been selected in the
|
||||
{guilabel}`Filters` column. This is because, if no time period is specified, there is nothing to
|
||||
compare.
|
||||
|
||||
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
|
||||
:icon:`fa-pie-chart` :guilabel:`(pie chart)` graph type, or the :icon:`oi-view-pivot`
|
||||
:guilabel:`(pivot)` view, is selected. A :guilabel:`Comparison` option can be selected even if
|
||||
another view is enabled, but doing so does **not** change the way data is displayed on the
|
||||
report.
|
||||
Additionally, some reports only allow use of the {guilabel}`Comparison` feature when the
|
||||
{icon}`fa-pie-chart` {guilabel}`(pie chart)` graph type, or the {icon}`oi-view-pivot`
|
||||
{guilabel}`(pivot)` view, is selected. A {guilabel}`Comparison` option can be selected even if
|
||||
another view is enabled, but doing so does **not** change the way data is displayed on the
|
||||
report.
|
||||
:::
|
||||
|
||||
.. image:: search/comparison-section.png
|
||||
:align: center
|
||||
:alt: The Search... bar for the production analysis report.
|
||||
```{image} search/comparison-section.png
|
||||
:align: center
|
||||
:alt: The Search... bar for the production analysis report.
|
||||
```
|
||||
|
||||
To view data using one of the two comparisons, begin by selecting a time period in the
|
||||
:guilabel:`Filters` column of the :guilabel:`Search...` bar drop-down menu. Then, select either
|
||||
:guilabel:`(Time Filter): Previous Period` or :guilabel:`(Time Filter): Previous Year` in the
|
||||
:guilabel:`Comparison` section.
|
||||
{guilabel}`Filters` column of the {guilabel}`Search...` bar drop-down menu. Then, select either
|
||||
{guilabel}`(Time Filter): Previous Period` or {guilabel}`(Time Filter): Previous Year` in the
|
||||
{guilabel}`Comparison` section.
|
||||
|
||||
With one of the :guilabel:`Comparison` options enabled, the report compares the data for the
|
||||
With one of the {guilabel}`Comparison` options enabled, the report compares the data for the
|
||||
selected period, with the data for the same unit of time (month, quarter, year), one period or year
|
||||
prior. The way the data is displayed depends on the selected view:
|
||||
|
||||
- The :icon:`fa-bar-chart` :guilabel:`(bar chart)` shows two bars, side-by-side, for each unit of
|
||||
- The {icon}`fa-bar-chart` {guilabel}`(bar chart)` shows two bars, side-by-side, for each unit of
|
||||
time for the selected time period. The left bar represents the selected time period, while the
|
||||
right bar represents the previous time period.
|
||||
- The :icon:`fa-line-chart` :guilabel:`(line chart)` is displayed with two lines, one representing
|
||||
- The {icon}`fa-line-chart` {guilabel}`(line chart)` is displayed with two lines, one representing
|
||||
the selected time period, and the other representing the previous time period.
|
||||
- The :icon:`fa-pie-chart` :guilabel:`(pie chart)` appears as a large circle with a smaller circle
|
||||
- The {icon}`fa-pie-chart` {guilabel}`(pie chart)` appears as a large circle with a smaller circle
|
||||
inside. The larger circle represents the selected time period, while the smaller circle represents
|
||||
the previous time period.
|
||||
- The :icon:`oi-view-pivot` :guilabel:`(pivot table)` is displayed with each column split into two
|
||||
- The {icon}`oi-view-pivot` {guilabel}`(pivot table)` is displayed with each column split into two
|
||||
smaller columns. The right column represents the selected time period, while the left column
|
||||
represents the previous time period.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
In the :guilabel:`Production Analysis` report of the :menuselection:`Manufacturing` app, data for
|
||||
the second quarter of 2024 is compared to data for the second quarter of 2023. :guilabel:`Q2` is
|
||||
@@ -249,35 +260,38 @@ prior. The way the data is displayed depends on the selected view:
|
||||
.. image:: search/comparison.png
|
||||
:align: center
|
||||
:alt: The comparison view of the Production Analysis report.
|
||||
```
|
||||
|
||||
.. _search/favorites:
|
||||
(search-favorites)=
|
||||
|
||||
Favorites
|
||||
=========
|
||||
## Favorites
|
||||
|
||||
Favorites are a way to save a specific search for future use, or as the new default filter for the
|
||||
view.
|
||||
|
||||
To save the current view as a favorite, click the :guilabel:`🔽 (down arrow)` icon in the search
|
||||
bar, then select the :guilabel:`Save current search` drop-down menu to display the following
|
||||
To save the current view as a favorite, click the {guilabel}`🔽 (down arrow)` icon in the search
|
||||
bar, then select the {guilabel}`Save current search` drop-down menu to display the following
|
||||
options:
|
||||
|
||||
- Filter name: name of the favorited search.
|
||||
- :guilabel:`Default filter`: sets the favorited search as the default filter for the view.
|
||||
- :guilabel:`Shared`: makes the favorited search available to all users. By default, the favorited
|
||||
- {guilabel}`Default filter`: sets the favorited search as the default filter for the view.
|
||||
- {guilabel}`Shared`: makes the favorited search available to all users. By default, the favorited
|
||||
search is only available to the user who created it.
|
||||
|
||||
Once the options are set, click :guilabel:`Save` to save the favorited search.
|
||||
Once the options are set, click {guilabel}`Save` to save the favorited search.
|
||||
|
||||
.. image:: search/favorites.png
|
||||
:align: center
|
||||
:alt: Saving a favorite search on the Sales Analysis report
|
||||
```{image} search/favorites.png
|
||||
:align: center
|
||||
:alt: Saving a favorite search on the Sales Analysis report
|
||||
```
|
||||
|
||||
Saved favorites can be accessed by clicking the :guilabel:`🔽 (down arrow)` icon in the search bar,
|
||||
then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a saved
|
||||
favorite, click the :guilabel:`🗑️ (garbage can)` icon next to the favorited search.
|
||||
Saved favorites can be accessed by clicking the {guilabel}`🔽 (down arrow)` icon in the search bar,
|
||||
then selecting the saved filter in the {guilabel}`Favorites` drop-down menu. To remove a saved
|
||||
favorite, click the {guilabel}`🗑️ (garbage can)` icon next to the favorited search.
|
||||
|
||||
:::{tip}
|
||||
To view *all* favorited searches, first activate {ref}`developer-mode`, and navigate to
|
||||
{menuselection}`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
|
||||
all favorited searches can be viewed, edited, archived, or deleted.
|
||||
:::
|
||||
|
||||
.. tip::
|
||||
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to
|
||||
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
|
||||
all favorited searches can be viewed, edited, archived, or deleted.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
nosearch: true
|
||||
---
|
||||
|
||||
# Finance
|
||||
|
||||
```{toctree}
|
||||
finance/accounting
|
||||
finance/expenses
|
||||
finance/payment_providers
|
||||
finance/fiscal_localizations
|
||||
```
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
:nosearch:
|
||||
|
||||
=======
|
||||
Finance
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
|
||||
finance/accounting
|
||||
finance/expenses
|
||||
finance/payment_providers
|
||||
finance/fiscal_localizations
|
||||
+80
-76
@@ -1,8 +1,8 @@
|
||||
:show-content:
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
========================
|
||||
Accounting and Invoicing
|
||||
========================
|
||||
# Accounting and Invoicing
|
||||
|
||||
**Odoo Invoicing** is a standalone invoicing app to create invoices, send them to your customers,
|
||||
and manage payments.
|
||||
@@ -11,9 +11,11 @@ and manage payments.
|
||||
development with features such as AI-powered invoice recognition, synchronization with your bank
|
||||
accounts, smart matching suggestions, etc.
|
||||
|
||||
.. seealso::
|
||||
`Odoo Tutorials: Accounting <https://www.odoo.com/slides/accounting-19>`_
|
||||
:::{seealso}
|
||||
[Odoo Tutorials: Accounting](https://www.odoo.com/slides/accounting-19)
|
||||
:::
|
||||
|
||||
```{eval-rst}
|
||||
.. cards::
|
||||
|
||||
.. card:: Get started
|
||||
@@ -51,9 +53,9 @@ accounts, smart matching suggestions, etc.
|
||||
:target: accounting/reporting
|
||||
|
||||
Reporting, declarations, and analytic accounting
|
||||
```
|
||||
|
||||
Double-entry bookkeeping
|
||||
========================
|
||||
## Double-entry bookkeeping
|
||||
|
||||
Odoo automatically creates all the underlying journal entries for all accounting transactions (e.g.,
|
||||
customer invoices, vendor bills, point-of-sales orders, expenses, inventory valuations, etc.).
|
||||
@@ -63,74 +65,72 @@ opposite counterpart in a different account, with one account debited and the ot
|
||||
It ensures that all transactions are recorded accurately and consistently and that the accounts
|
||||
always balance.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
|
||||
:::{seealso}
|
||||
{doc}`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
|
||||
:::
|
||||
|
||||
Accrual and cash basis
|
||||
======================
|
||||
## Accrual and cash basis
|
||||
|
||||
Both accrual and cash basis accounting are supported in Odoo. This allows reporting income and
|
||||
expense either when the transaction occurs (accrual basis) or when the payment is made or received
|
||||
(cash basis).
|
||||
|
||||
.. seealso::
|
||||
:doc:`Cash basis <accounting/taxes/cash_basis>`
|
||||
:::{seealso}
|
||||
{doc}`Cash basis <accounting/taxes/cash_basis>`
|
||||
:::
|
||||
|
||||
.. _accounting/multi-company:
|
||||
(accounting-multi-company)=
|
||||
|
||||
Multi-company
|
||||
=============
|
||||
## Multi-company
|
||||
|
||||
Several companies can be managed within the same database. Each company has its :doc:`chart of
|
||||
Several companies can be managed within the same database. Each company has its {doc}`chart of
|
||||
accounts <accounting/get_started/chart_of_accounts>`, which is also useful to generate consolidation
|
||||
reports. Users can access several companies but can only work on a single company's accounting at a
|
||||
time.
|
||||
|
||||
Multi-currency environment
|
||||
==========================
|
||||
## Multi-currency environment
|
||||
|
||||
A :doc:`multi-currency <accounting/get_started/multi_currency>` environment with an automated
|
||||
A {doc}`multi-currency <accounting/get_started/multi_currency>` environment with an automated
|
||||
exchange rate to ease international transactions is available in Odoo. Every transaction is recorded
|
||||
in the company's default currency; for transactions occurring in another currency, Odoo stores both
|
||||
the value in the company's currency and the transactions' currency value. Odoo generates currency
|
||||
gains and losses after reconciling the journal items.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Manage a bank in a foreign currency <accounting/bank/foreign_currency>`
|
||||
:::{seealso}
|
||||
{doc}`Manage a bank in a foreign currency <accounting/bank/foreign_currency>`
|
||||
:::
|
||||
|
||||
Branch management
|
||||
=================
|
||||
## Branch management
|
||||
|
||||
Multiple branches can be managed thanks to multi-company hierarchies. This allows to post journal
|
||||
entries on each branch as well as setting up a common lock date managed by the main company.
|
||||
|
||||
International standards
|
||||
=======================
|
||||
## International standards
|
||||
|
||||
Odoo Accounting supports more than 70 countries. It provides the central standards and mechanisms
|
||||
common to all nations, and thanks to country-specific modules, local requirements are fulfilled.
|
||||
Fiscal positions exist to address regional specificities like the chart of accounts, taxes, or any
|
||||
other requirements.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Fiscal localization packages <fiscal_localizations>`
|
||||
:::{seealso}
|
||||
{doc}`Fiscal localization packages <fiscal_localizations>`
|
||||
:::
|
||||
|
||||
Accounts receivable and payable
|
||||
===============================
|
||||
## Accounts receivable and payable
|
||||
|
||||
By default, there is a single account for the account receivable entries and one for the account
|
||||
payable entries. As transactions are linked to your **contacts**, you can run a report per customer,
|
||||
vendor, or supplier.
|
||||
|
||||
The **Partner Ledger** report displays the balance of your customers and suppliers. It is available
|
||||
by going to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
|
||||
by going to {menuselection}`Accounting --> Reporting --> Partner Ledger`.
|
||||
|
||||
Reporting
|
||||
=========
|
||||
## Reporting
|
||||
|
||||
The following financial :doc:`reports <accounting/reporting>` are available and updated in
|
||||
The following financial {doc}`reports <accounting/reporting>` are available and updated in
|
||||
real-time:
|
||||
|
||||
```{eval-rst}
|
||||
+-----------------------------------------------+
|
||||
| Financial reports |
|
||||
+============+==================================+
|
||||
@@ -174,76 +174,80 @@ real-time:
|
||||
| +----------------------------------+
|
||||
| | 1099 report |
|
||||
+------------+----------------------------------+
|
||||
```
|
||||
|
||||
.. tip::
|
||||
:doc:`Create and customize reports <accounting/reporting/customize>` with Odoo's report engine.
|
||||
:::{tip}
|
||||
{doc}`Create and customize reports <accounting/reporting/customize>` with Odoo's report engine.
|
||||
:::
|
||||
|
||||
Tax report
|
||||
----------
|
||||
### Tax report
|
||||
|
||||
Odoo computes all accounting transactions for the specific tax period and uses these totals to
|
||||
calculate the tax obligation.
|
||||
|
||||
.. important::
|
||||
Once the tax report has been generated for a period, Odoo locks it and prevents the creation of
|
||||
new journal entries involving VAT. Any correction to customer invoices or vendor bills has to
|
||||
be recorded in the next period.
|
||||
:::{important}
|
||||
Once the tax report has been generated for a period, Odoo locks it and prevents the creation of
|
||||
new journal entries involving VAT. Any correction to customer invoices or vendor bills has to
|
||||
be recorded in the next period.
|
||||
:::
|
||||
|
||||
.. note::
|
||||
Depending on the country's localization, an XML version of the tax report can be generated to be
|
||||
uploaded to the VAT platform of the relevant taxation authority.
|
||||
:::{note}
|
||||
Depending on the country's localization, an XML version of the tax report can be generated to be
|
||||
uploaded to the VAT platform of the relevant taxation authority.
|
||||
:::
|
||||
|
||||
Bank synchronization
|
||||
====================
|
||||
## Bank synchronization
|
||||
|
||||
The bank synchronization system directly connects with your bank institution to automatically
|
||||
import all transactions into your database. It gives an overview of your cash flow without logging
|
||||
into an online banking system or waiting for paper bank statements.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Bank synchronization <accounting/bank/bank_synchronization>`
|
||||
:::{seealso}
|
||||
{doc}`Bank synchronization <accounting/bank/bank_synchronization>`
|
||||
:::
|
||||
|
||||
Inventory valuation
|
||||
===================
|
||||
## Inventory valuation
|
||||
|
||||
Both periodic (manual) and perpetual (automated) inventory valuations are supported in Odoo. The
|
||||
available methods are standard price, average price, :abbr:`LIFO (Last-In, First-Out)` and
|
||||
:abbr:`FIFO (First-In, First-Out).`
|
||||
available methods are standard price, average price, {abbr}`LIFO (Last-In, First-Out)` and
|
||||
{abbr}`FIFO (First-In, First-Out).`
|
||||
|
||||
.. seealso::
|
||||
:doc:`../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config`
|
||||
:::{seealso}
|
||||
{doc}`../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config`
|
||||
:::
|
||||
|
||||
Retained earnings
|
||||
=================
|
||||
## Retained earnings
|
||||
|
||||
Retained earnings are the portion of income retained by a business. Odoo calculates current year
|
||||
earnings in real-time, so no year-end journal or rollover is required. The profit
|
||||
and loss balance is automatically reported on the balance sheet report.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
|
||||
:::{seealso}
|
||||
{doc}`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
|
||||
:::
|
||||
|
||||
.. _fiduciaries:
|
||||
(fiduciaries)=
|
||||
|
||||
Fiduciaries
|
||||
===========
|
||||
## Fiduciaries
|
||||
|
||||
The :guilabel:`Accounting Firms` mode can be activated by going to :menuselection:`Accounting -->
|
||||
The {guilabel}`Accounting Firms` mode can be activated by going to {menuselection}`Accounting -->
|
||||
Configuration --> Settings --> Accounting Firms mode`. When enabled:
|
||||
|
||||
- The document's sequence becomes editable on all documents;
|
||||
- The :guilabel:`Total (tax incl.)` field appears to speed up and control the encoding by automating
|
||||
- The {guilabel}`Total (tax incl.)` field appears to speed up and control the encoding by automating
|
||||
line creation with the right account and tax;
|
||||
- :guilabel:`Invoice Date` and :guilabel:`Bill Date` are pre-filled when encoding a transaction.
|
||||
- A :guilabel:`Quick encoding` option is available for customer invoices and vendor bills.
|
||||
- {guilabel}`Invoice Date` and {guilabel}`Bill Date` are pre-filled when encoding a transaction.
|
||||
- A {guilabel}`Quick encoding` option is available for customer invoices and vendor bills.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
accounting/get_started
|
||||
accounting/taxes
|
||||
accounting/customer_invoices
|
||||
accounting/vendor_bills
|
||||
accounting/payments
|
||||
accounting/bank
|
||||
accounting/reporting
|
||||
```
|
||||
|
||||
accounting/get_started
|
||||
accounting/taxes
|
||||
accounting/customer_invoices
|
||||
accounting/vendor_bills
|
||||
accounting/payments
|
||||
accounting/bank
|
||||
accounting/reporting
|
||||
@@ -0,0 +1,205 @@
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
# Bank and cash accounts
|
||||
|
||||
You can manage as many bank or cash accounts as needed on your database. Configuring them correctly
|
||||
allows you to have all your banking data up-to-date and ready for {doc}`reconciliation
|
||||
<bank/reconciliation>` with your journal entries.
|
||||
|
||||
In Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated
|
||||
account. Both the journal and the account are automatically created and configured whenever you add
|
||||
a bank account.
|
||||
|
||||
:::{note}
|
||||
Cash journals and accounts must be configured manually.
|
||||
:::
|
||||
|
||||
Bank journals are displayed by default on the {guilabel}`Accounting Dashboard` in the form of cards
|
||||
which include action buttons.
|
||||
|
||||
```{image} bank/card.png
|
||||
:alt: Bank journals are displayed on the Accounting Dashboard and contain action buttons
|
||||
```
|
||||
|
||||
(accounting-bank-manage)=
|
||||
|
||||
## Manage bank and cash accounts
|
||||
|
||||
### Connect a bank for automatic synchronization
|
||||
|
||||
To connect your bank account to your database, go to {menuselection}`Accounting --> Configuration
|
||||
--> Add a Bank Account`, select your bank in the list, click on {guilabel}`Connect`, and follow the
|
||||
instructions.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`bank/bank_synchronization`
|
||||
:::
|
||||
|
||||
(accounting-bank-create)=
|
||||
|
||||
### Create a bank account
|
||||
|
||||
If your banking institution is not available in Odoo, or if you don't want to connect your bank
|
||||
account to your database, you can configure your bank account manually.
|
||||
|
||||
To manually add a bank account, go to {menuselection}`Accounting --> Configuration --> Add a Bank
|
||||
Account`, click on {guilabel}`Record transactions manually` (at the bottom right), fill out the bank
|
||||
information, and click {guilabel}`Create`.
|
||||
|
||||
:::{note}
|
||||
- Odoo automatically detects the bank account type (e.g., IBAN) and enables some features
|
||||
accordingly.
|
||||
- A default bank journal is available and can be used to configure your bank account by going to
|
||||
{menuselection}`Accounting --> Configuration --> Accounting: Journals --> Bank`. Open it and
|
||||
edit the different fields to match your bank account information.
|
||||
:::
|
||||
|
||||
### Create a cash journal
|
||||
|
||||
To create a new cash journal, go to {menuselection}`Accounting --> Configuration --> Accounting:
|
||||
Journals`, click on {guilabel}`Create` and select {guilabel}`Cash` in the {guilabel}`Type` field.
|
||||
|
||||
For more information on the accounting information fields, read the
|
||||
{ref}`accounting/bank/configuration` section of this page.
|
||||
|
||||
:::{note}
|
||||
A default cash journal is available and can be used straight away. You can review it by going to
|
||||
{menuselection}`Accounting --> Configuration --> Accounting: Journals --> Cash`.
|
||||
:::
|
||||
|
||||
### Edit an existing bank or cash journal
|
||||
|
||||
To edit an existing bank journal, go to {menuselection}`Accounting --> Configuration --> Accounting:
|
||||
Journals` and select the journal you want to modify.
|
||||
|
||||
(accounting-bank-configuration)=
|
||||
|
||||
## Configuration
|
||||
|
||||
You can edit the accounting information and bank account number according to your needs.
|
||||
|
||||
```{image} bank/bank-journal-config.png
|
||||
:alt: Manually configure your bank information
|
||||
```
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`get_started/multi_currency`
|
||||
- {doc}`bank/transactions`
|
||||
- [Bank configuration](https://www.youtube.com/watch?v=tVhhXw-VnGE)
|
||||
:::
|
||||
|
||||
(accounting-bank-suspense)=
|
||||
|
||||
### Suspense account
|
||||
|
||||
Bank statement transactions are posted on the suspense account until they are reconciled. At any
|
||||
moment, the suspense account's balance in the general ledger shows the balance of transactions that
|
||||
have not yet been reconciled.
|
||||
|
||||
:::{note}
|
||||
When a bank transaction is reconciled, the journal entry is modified to replace the bank suspense
|
||||
account with the account of the journal item it is reconciled with. This account is usually the
|
||||
{ref}`outstanding receipts or payments account <accounting/bank/outstanding-accounts>` if
|
||||
reconciling with a registered payment or the account receivable or payable if reconciling with
|
||||
an invoice or bill directly.
|
||||
:::
|
||||
|
||||
### Profit and loss accounts
|
||||
|
||||
The {guilabel}`Profit Account` is used to register a profit when the ending balance of a cash
|
||||
register differs from what the system computes, while the {guilabel}`Loss Account` is used to
|
||||
register a loss when the ending balance of a cash register differs from what the system computes.
|
||||
|
||||
### Currency
|
||||
|
||||
You can edit the currency used to enter the transactions.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`get_started/multi_currency`
|
||||
:::
|
||||
|
||||
(accounting-bank-account-number)=
|
||||
|
||||
### Account number
|
||||
|
||||
If you need to **edit your bank account details**, click on the external link arrow next to your
|
||||
{guilabel}`Account Number`. On the account page, click on the external link arrow next to your
|
||||
{guilabel}`Bank` and update your bank information accordingly. These details are used when
|
||||
registering payments.
|
||||
|
||||
```{image} bank/bank-account-number.png
|
||||
:alt: Edit your bank information
|
||||
```
|
||||
|
||||
### Bank feeds
|
||||
|
||||
{guilabel}`Bank Feeds` defines how the bank transactions are registered. Three options are
|
||||
available:
|
||||
|
||||
- {guilabel}`Undefined yet`, which should be selected when you don’t know yet if you will
|
||||
synchronize your bank account with your database or not.
|
||||
- {guilabel}`Import (CAMT, CODA, CSV, OFX, QIF)`, which should be selected if you want to import
|
||||
your bank statements and transactions using a different format.
|
||||
- {guilabel}`Automated Bank Synchronization`, which should be selected if your bank is synchronized
|
||||
with your database.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`bank/bank_synchronization`
|
||||
- {doc}`bank/transactions`
|
||||
:::
|
||||
|
||||
(accounting-bank-outstanding-accounts)=
|
||||
|
||||
## Outstanding accounts
|
||||
|
||||
By default, payments in Odoo do not create journal entries, but they can easily be configured to
|
||||
create journal entries using **outstanding accounts**.
|
||||
|
||||
- An **outstanding receipts account** is where incoming payments are posted until they are linked
|
||||
with incoming bank transactions.
|
||||
- An **outstanding payments account** is where outgoing payments are posted until they are linked
|
||||
with outgoing bank transactions.
|
||||
|
||||
These accounts are usually of {ref}`type <chart-of-account/type>` {guilabel}`Current Assets` and
|
||||
{guilabel}`Current Liabilities`.
|
||||
|
||||
Payments that are registered in Odoo are posted to the outstanding receipts and outstanding accounts
|
||||
until they are reconciled. At any moment, the outstanding receipts account's balance in the general
|
||||
ledger shows the balance of registered incoming payments that have not yet been reconciled, and the
|
||||
outstanding payments account's balance in the general ledger shows the balance of registered
|
||||
outgoing payments that have not yet been reconciled.
|
||||
|
||||
### Bank and cash journal configuration
|
||||
|
||||
To configure payments to create journal entries, set outstanding accounts for the journal's payment
|
||||
methods. This can be done for any journal with the {ref}`type <chart-of-account/type>`
|
||||
{guilabel}`Bank` or {guilabel}`Cash`.
|
||||
|
||||
To configure the outstanding accounts for a journal's payment methods, first go to
|
||||
{menuselection}`Accounting --> Configuration --> Journals` and select a bank or cash journal. In the
|
||||
{guilabel}`Incoming Payments` and {guilabel}`Outgoing Payments` tabs, set {guilabel}`Outstanding
|
||||
Receipts accounts` and {guilabel}`Outstanding Payments accounts` for each payment method that you
|
||||
want to create journal entries.
|
||||
|
||||
:::{note}
|
||||
- If the main bank account of the journal is added as an outstanding receipts account or
|
||||
outstanding payments account, when a payment is registered, the invoice or bill's status is
|
||||
directly set to {guilabel}`Paid`.
|
||||
- If the outstanding receipts or outstanding payments account for a payment method is left blank,
|
||||
registering a payment with that payment method will not create any journal entry.
|
||||
:::
|
||||
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
bank/bank_synchronization
|
||||
bank/transactions
|
||||
bank/reconciliation
|
||||
bank/reconciliation_models
|
||||
bank/internal_transfers
|
||||
bank/foreign_currency
|
||||
bank/loans
|
||||
```
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
:show-content:
|
||||
|
||||
======================
|
||||
Bank and cash accounts
|
||||
======================
|
||||
|
||||
You can manage as many bank or cash accounts as needed on your database. Configuring them correctly
|
||||
allows you to have all your banking data up-to-date and ready for :doc:`reconciliation
|
||||
<bank/reconciliation>` with your journal entries.
|
||||
|
||||
In Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated
|
||||
account. Both the journal and the account are automatically created and configured whenever you add
|
||||
a bank account.
|
||||
|
||||
.. note::
|
||||
Cash journals and accounts must be configured manually.
|
||||
|
||||
Bank journals are displayed by default on the :guilabel:`Accounting Dashboard` in the form of cards
|
||||
which include action buttons.
|
||||
|
||||
.. image:: bank/card.png
|
||||
:alt: Bank journals are displayed on the Accounting Dashboard and contain action buttons
|
||||
|
||||
.. _accounting/bank/manage:
|
||||
|
||||
Manage bank and cash accounts
|
||||
=============================
|
||||
|
||||
Connect a bank for automatic synchronization
|
||||
--------------------------------------------
|
||||
|
||||
To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration
|
||||
--> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the
|
||||
instructions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`bank/bank_synchronization`
|
||||
|
||||
.. _accounting/bank/create:
|
||||
|
||||
Create a bank account
|
||||
---------------------
|
||||
|
||||
If your banking institution is not available in Odoo, or if you don't want to connect your bank
|
||||
account to your database, you can configure your bank account manually.
|
||||
|
||||
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank
|
||||
Account`, click on :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
|
||||
information, and click :guilabel:`Create`.
|
||||
|
||||
.. note::
|
||||
- Odoo automatically detects the bank account type (e.g., IBAN) and enables some features
|
||||
accordingly.
|
||||
- A default bank journal is available and can be used to configure your bank account by going to
|
||||
:menuselection:`Accounting --> Configuration --> Accounting: Journals --> Bank`. Open it and
|
||||
edit the different fields to match your bank account information.
|
||||
|
||||
Create a cash journal
|
||||
---------------------
|
||||
|
||||
To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
|
||||
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
|
||||
|
||||
For more information on the accounting information fields, read the
|
||||
:ref:`accounting/bank/configuration` section of this page.
|
||||
|
||||
.. note::
|
||||
A default cash journal is available and can be used straight away. You can review it by going to
|
||||
:menuselection:`Accounting --> Configuration --> Accounting: Journals --> Cash`.
|
||||
|
||||
Edit an existing bank or cash journal
|
||||
-------------------------------------
|
||||
|
||||
To edit an existing bank journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
|
||||
Journals` and select the journal you want to modify.
|
||||
|
||||
.. _accounting/bank/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
You can edit the accounting information and bank account number according to your needs.
|
||||
|
||||
.. image:: bank/bank-journal-config.png
|
||||
:alt: Manually configure your bank information
|
||||
|
||||
.. seealso::
|
||||
- :doc:`get_started/multi_currency`
|
||||
- :doc:`bank/transactions`
|
||||
- `Bank configuration <https://www.youtube.com/watch?v=tVhhXw-VnGE>`_
|
||||
|
||||
.. _accounting/bank/suspense:
|
||||
|
||||
Suspense account
|
||||
----------------
|
||||
|
||||
Bank statement transactions are posted on the suspense account until they are reconciled. At any
|
||||
moment, the suspense account's balance in the general ledger shows the balance of transactions that
|
||||
have not yet been reconciled.
|
||||
|
||||
.. note::
|
||||
When a bank transaction is reconciled, the journal entry is modified to replace the bank suspense
|
||||
account with the account of the journal item it is reconciled with. This account is usually the
|
||||
:ref:`outstanding receipts or payments account <accounting/bank/outstanding-accounts>` if
|
||||
reconciling with a registered payment or the account receivable or payable if reconciling with
|
||||
an invoice or bill directly.
|
||||
|
||||
Profit and loss accounts
|
||||
------------------------
|
||||
|
||||
The :guilabel:`Profit Account` is used to register a profit when the ending balance of a cash
|
||||
register differs from what the system computes, while the :guilabel:`Loss Account` is used to
|
||||
register a loss when the ending balance of a cash register differs from what the system computes.
|
||||
|
||||
Currency
|
||||
--------
|
||||
|
||||
You can edit the currency used to enter the transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`get_started/multi_currency`
|
||||
|
||||
.. _accounting/bank/account-number:
|
||||
|
||||
Account number
|
||||
--------------
|
||||
|
||||
If you need to **edit your bank account details**, click on the external link arrow next to your
|
||||
:guilabel:`Account Number`. On the account page, click on the external link arrow next to your
|
||||
:guilabel:`Bank` and update your bank information accordingly. These details are used when
|
||||
registering payments.
|
||||
|
||||
.. image:: bank/bank-account-number.png
|
||||
:alt: Edit your bank information
|
||||
|
||||
Bank feeds
|
||||
----------
|
||||
|
||||
:guilabel:`Bank Feeds` defines how the bank transactions are registered. Three options are
|
||||
available:
|
||||
|
||||
- :guilabel:`Undefined yet`, which should be selected when you don’t know yet if you will
|
||||
synchronize your bank account with your database or not.
|
||||
- :guilabel:`Import (CAMT, CODA, CSV, OFX, QIF)`, which should be selected if you want to import
|
||||
your bank statements and transactions using a different format.
|
||||
- :guilabel:`Automated Bank Synchronization`, which should be selected if your bank is synchronized
|
||||
with your database.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank/bank_synchronization`
|
||||
- :doc:`bank/transactions`
|
||||
|
||||
.. _accounting/bank/outstanding-accounts:
|
||||
|
||||
Outstanding accounts
|
||||
====================
|
||||
|
||||
By default, payments in Odoo do not create journal entries, but they can easily be configured to
|
||||
create journal entries using **outstanding accounts**.
|
||||
|
||||
- An **outstanding receipts account** is where incoming payments are posted until they are linked
|
||||
with incoming bank transactions.
|
||||
- An **outstanding payments account** is where outgoing payments are posted until they are linked
|
||||
with outgoing bank transactions.
|
||||
|
||||
These accounts are usually of :ref:`type <chart-of-account/type>` :guilabel:`Current Assets` and
|
||||
:guilabel:`Current Liabilities`.
|
||||
|
||||
Payments that are registered in Odoo are posted to the outstanding receipts and outstanding accounts
|
||||
until they are reconciled. At any moment, the outstanding receipts account's balance in the general
|
||||
ledger shows the balance of registered incoming payments that have not yet been reconciled, and the
|
||||
outstanding payments account's balance in the general ledger shows the balance of registered
|
||||
outgoing payments that have not yet been reconciled.
|
||||
|
||||
Bank and cash journal configuration
|
||||
-----------------------------------
|
||||
|
||||
To configure payments to create journal entries, set outstanding accounts for the journal's payment
|
||||
methods. This can be done for any journal with the :ref:`type <chart-of-account/type>`
|
||||
:guilabel:`Bank` or :guilabel:`Cash`.
|
||||
|
||||
To configure the outstanding accounts for a journal's payment methods, first go to
|
||||
:menuselection:`Accounting --> Configuration --> Journals` and select a bank or cash journal. In the
|
||||
:guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs, set :guilabel:`Outstanding
|
||||
Receipts accounts` and :guilabel:`Outstanding Payments accounts` for each payment method that you
|
||||
want to create journal entries.
|
||||
|
||||
.. note::
|
||||
- If the main bank account of the journal is added as an outstanding receipts account or
|
||||
outstanding payments account, when a payment is registered, the invoice or bill's status is
|
||||
directly set to :guilabel:`Paid`.
|
||||
- If the outstanding receipts or outstanding payments account for a payment method is left blank,
|
||||
registering a payment with that payment method will not create any journal entry.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
bank/bank_synchronization
|
||||
bank/transactions
|
||||
bank/reconciliation
|
||||
bank/reconciliation_models
|
||||
bank/internal_transfers
|
||||
bank/foreign_currency
|
||||
bank/loans
|
||||
@@ -0,0 +1,201 @@
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
# Bank synchronization
|
||||
|
||||
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
||||
automatically into your database.
|
||||
|
||||
To check if your bank is compatible with Odoo, go to [Odoo Accounting Features](https://www.odoo.com/page/accounting-features), and click on
|
||||
{guilabel}`See list of supported institutions`.
|
||||
|
||||
Odoo supports more than 26,000 institutions around the world.
|
||||
|
||||
To connect to the banks, Odoo uses multiple web-services:
|
||||
|
||||
- **Plaid**: United States of America and Canada
|
||||
- **Yodlee**: Worldwide
|
||||
- {doc}`Salt Edge <bank_synchronization/saltedge>`: Worldwide
|
||||
- {doc}`Ponto <bank_synchronization/ponto>`: Europe
|
||||
- {doc}`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
|
||||
|
||||
:::{seealso}
|
||||
{doc}`transactions`
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
### On-Premise users
|
||||
|
||||
To be able to use this service, you need to have a valid Odoo Enterprise subscription.
|
||||
So make sure that your database is registered with your Odoo Enterprise contract.
|
||||
We also use a proxy between your database and the third party provider so, in case of
|
||||
a connection error, please check that you don't have a firewall or a proxy blocking the
|
||||
following address:
|
||||
|
||||
- <https://production.odoofin.com/>
|
||||
|
||||
### First synchronization
|
||||
|
||||
You can start synchronization either by going to the Accounting app and
|
||||
{menuselection}`Accounting --> Configuration --> Add a Bank Account`.
|
||||
|
||||
Now you can search for your bank institution. Select it and follow the steps to synchronize with it.
|
||||
|
||||
:::{note}
|
||||
If you have any issues during your first synchronization, please verify that your
|
||||
web browser doesn't block pop-ups and that your ad-blocker is disabled.
|
||||
:::
|
||||
|
||||
:::{important}
|
||||
When setting up the bank statement synchronization, Odoo automatically starts recording the
|
||||
accounting transactions from the last transaction’s date +1 day (if the last transaction day is
|
||||
31/12/2022, the recording starts on 01/01/2023). If the journal contains no transaction, Odoo
|
||||
retrieves transactions as far back as possible. You can limit how far back Odoo retrieves
|
||||
transactions by opening the Accounting app, going to {menuselection}`Accounting --> Lock Dates`,
|
||||
and setting a date in the {guilabel}`Journal Entries Lock Date` field.
|
||||
:::
|
||||
|
||||
You must provide a phone number during your first synchronization to secure your account. We ask for
|
||||
such information because we don't want your data falling into the wrong hands. Therefore, if we
|
||||
detect suspicious activities on your account, we block all requests coming from your account, and
|
||||
you need to reactivate it using that phone number.
|
||||
|
||||
The third-party provider may request more information in order to connect with your bank
|
||||
institution. This information is not stored on Odoo's servers.
|
||||
|
||||
By default, transactions fetched from an online source are grouped inside the same statement, and
|
||||
one bank statement is created per month. You can change the bank statement creation periodicity
|
||||
in your journal settings.
|
||||
|
||||
To view all your synchronizations, activate the {ref}`developer mode <developer-mode>` and go to
|
||||
{menuselection}`Accounting --> Configuration --> Online Synchronization`.
|
||||
|
||||
### Synchronize manually
|
||||
|
||||
After your first synchronization, the created journals are synchronized by default every 12 hours.
|
||||
If you wish, you can synchronize them manually by clicking on the {guilabel}`Synchronize Now` button
|
||||
on the dashboard.
|
||||
|
||||
Alternatively, activate the {ref}`developer mode <developer-mode>`, go to
|
||||
{menuselection}`Accounting --> Configuration --> Online Synchronization`, select your institution,
|
||||
and then click the {guilabel}`Fetch transactions` button.
|
||||
|
||||
:::{important}
|
||||
Some institutions do not allow transactions to be fetched automatically. For such institutions,
|
||||
during the automatic synchronization of the account, you receive an error message asking you to
|
||||
disable the automatic synchronization. This message can be found in the chatter of your online
|
||||
synchronizations. In this case, make sure to perform manual synchronizations.
|
||||
:::
|
||||
|
||||
## Issues
|
||||
|
||||
### Synchronization in error
|
||||
|
||||
To report a connection error to the [Odoo support](https://www.odoo.com/help), activate the
|
||||
{ref}`developer mode <developer-mode>`, go to {menuselection}`Accounting --> Configuration -->
|
||||
Online Synchronization`, select the connection that failed, and copy the error description and the
|
||||
reference.
|
||||
|
||||
### Synchronization disconnected
|
||||
|
||||
If your connection with the proxy is disconnected, you can reconnect with the proxy using the
|
||||
{guilabel}`Fetch Account` button.
|
||||
|
||||
:::{note}
|
||||
If you are unable to reconnect using the {guilabel}`Reconnect` button, please contact the
|
||||
[support](https://www.odoo.com/help) directly with your client id or the reference of the error
|
||||
listed in the chatter.
|
||||
:::
|
||||
|
||||
(migrationonlinesync)=
|
||||
|
||||
## Migration process for users having installed Odoo before December 2020
|
||||
|
||||
If you are on-premise, please first make sure that your source is up-to-date with the latest version
|
||||
of Odoo.
|
||||
|
||||
Users who have created a database before December 2020 need to install the new module manually to
|
||||
use the new functionalities.
|
||||
|
||||
To do so, go to {menuselection}`Apps --> Update Apps List`, remove the default filter in the search
|
||||
bar and type `account_online_synchronization`. You can then click on {guilabel}`Install`.
|
||||
Finally, make sure all your users refresh their Odoo page by pressing CTRL+F5.
|
||||
|
||||
:::{Note}
|
||||
- All previous synchronizations are disconnected during the installation and will not work
|
||||
anymore. To view them, activate the {ref}`developer mode <developer-mode>` and go to
|
||||
{menuselection}`Accounting --> Configuration --> Online Synchronization`). It is not possible
|
||||
to resynchronize these connections; you have to make new ones.
|
||||
- Do not uninstall the `account_online_sync` module, which is the previous module for online
|
||||
synchronization. The new one overrides it.
|
||||
- By default, the `account_online_synchronization` module is installed automatically with
|
||||
Accounting.
|
||||
:::
|
||||
|
||||
## FAQ
|
||||
|
||||
### The synchronization is not working in real-time. Is that normal?
|
||||
|
||||
The process is not intended to work in real-time as third party providers synchronize your accounts
|
||||
at different intervals. To force the synchronization and fetch the statements, go to your
|
||||
{guilabel}`Accounting Dashboard`, and click on the {guilabel}`Synchronize Now` button. Synchronize
|
||||
and fetch transactions by activating the {ref}`developer mode <developer-mode>` and going to
|
||||
{menuselection}`Accounting --> Configuration --> Online Synchronization`. Some providers only allow
|
||||
one refresh per day, so it is possible that clicking on {guilabel}`Synchronize Now` does not get
|
||||
your latest transactions if you already performed such action earlier in the day.
|
||||
|
||||
A transaction can be visible on your bank account but not be fetched if it has the status
|
||||
{guilabel}`Pending`. Only transactions with the {guilabel}`Posted` status will be retrieved. If the
|
||||
transaction is not **Posted** yet, you will have to wait until the status changes.
|
||||
|
||||
### Is the Online Bank Synchronization feature included in my contract?
|
||||
|
||||
- **Community Edition**: No, this feature is not included in the Community Version.
|
||||
- **Online Edition**: Yes, even if you benefit from the One App Free contract.
|
||||
- **Enterprise Edition**: Yes, if you have a valid enterprise contract linked to your database.
|
||||
|
||||
### Some banks have a status "Beta." What does this mean?
|
||||
|
||||
This means that banking institutions are not yet fully supported by our Third Party Provider. Bugs
|
||||
or other problems may arise. Odoo does not support technical problems that occur with banks in the
|
||||
Beta phase, but the user may still choose to connect. Connecting with these banks contributes to the
|
||||
development process since the Provider will have real data and feedback from the connection.
|
||||
|
||||
### Why do my transactions only synchronize when I refresh manually?
|
||||
|
||||
Some banks have additional security measures and require extra steps, such as an SMS/email
|
||||
authentication code or another type of MFA. Because of this, the integrator cannot pull transactions
|
||||
until the security code is provided.
|
||||
|
||||
### Not all of my past transactions are in Odoo, why?
|
||||
|
||||
For some institutions, transactions can only be fetched up to 3 months in the past.
|
||||
|
||||
### Why don't I see any transactions?
|
||||
|
||||
During your first synchronization, you selected the bank accounts you decided to synchronize with
|
||||
Odoo. If you didn't synchronize any of your accounts, activate the {ref}`developer mode
|
||||
<developer-mode>`, go to {menuselection}`Accounting --> Configuration --> Online Synchronization`,
|
||||
and click the {guilabel}`Fetch Account` button on the connection.
|
||||
|
||||
There may also be no new transactions.
|
||||
|
||||
If your bank account is properly linked to a journal and posted transactions are not visible in your
|
||||
database, please [submit a support ticket](https://www.odoo.com/help).
|
||||
|
||||
### How can I update my bank credentials?
|
||||
|
||||
To update your credentials, activate the {ref}`developer mode <developer-mode>` and go to
|
||||
{menuselection}`Accounting --> Configuration --> Online Synchronization`. Open the connection you
|
||||
want to update your credentials and click the {guilabel}`Update Credentials` button.
|
||||
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
bank_synchronization/saltedge
|
||||
bank_synchronization/ponto
|
||||
bank_synchronization/enablebanking
|
||||
```
|
||||
|
||||
@@ -1,211 +0,0 @@
|
||||
:show-content:
|
||||
|
||||
====================
|
||||
Bank synchronization
|
||||
====================
|
||||
|
||||
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
||||
automatically into your database.
|
||||
|
||||
To check if your bank is compatible with Odoo, go to `Odoo Accounting Features
|
||||
<https://www.odoo.com/page/accounting-features>`_, and click on
|
||||
:guilabel:`See list of supported institutions`.
|
||||
|
||||
Odoo supports more than 26,000 institutions around the world.
|
||||
|
||||
To connect to the banks, Odoo uses multiple web-services:
|
||||
|
||||
- **Plaid**: United States of America and Canada
|
||||
- **Yodlee**: Worldwide
|
||||
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Worldwide
|
||||
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
|
||||
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
|
||||
|
||||
.. seealso::
|
||||
:doc:`transactions`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
On-Premise users
|
||||
----------------
|
||||
|
||||
To be able to use this service, you need to have a valid Odoo Enterprise subscription.
|
||||
So make sure that your database is registered with your Odoo Enterprise contract.
|
||||
We also use a proxy between your database and the third party provider so, in case of
|
||||
a connection error, please check that you don't have a firewall or a proxy blocking the
|
||||
following address:
|
||||
|
||||
- https://production.odoofin.com/
|
||||
|
||||
First synchronization
|
||||
---------------------
|
||||
|
||||
You can start synchronization either by going to the Accounting app and
|
||||
:menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
|
||||
Now you can search for your bank institution. Select it and follow the steps to synchronize with it.
|
||||
|
||||
.. note::
|
||||
If you have any issues during your first synchronization, please verify that your
|
||||
web browser doesn't block pop-ups and that your ad-blocker is disabled.
|
||||
|
||||
.. important::
|
||||
When setting up the bank statement synchronization, Odoo automatically starts recording the
|
||||
accounting transactions from the last transaction’s date +1 day (if the last transaction day is
|
||||
31/12/2022, the recording starts on 01/01/2023). If the journal contains no transaction, Odoo
|
||||
retrieves transactions as far back as possible. You can limit how far back Odoo retrieves
|
||||
transactions by opening the Accounting app, going to :menuselection:`Accounting --> Lock Dates`,
|
||||
and setting a date in the :guilabel:`Journal Entries Lock Date` field.
|
||||
|
||||
You must provide a phone number during your first synchronization to secure your account. We ask for
|
||||
such information because we don't want your data falling into the wrong hands. Therefore, if we
|
||||
detect suspicious activities on your account, we block all requests coming from your account, and
|
||||
you need to reactivate it using that phone number.
|
||||
|
||||
The third-party provider may request more information in order to connect with your bank
|
||||
institution. This information is not stored on Odoo's servers.
|
||||
|
||||
By default, transactions fetched from an online source are grouped inside the same statement, and
|
||||
one bank statement is created per month. You can change the bank statement creation periodicity
|
||||
in your journal settings.
|
||||
|
||||
To view all your synchronizations, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`.
|
||||
|
||||
Synchronize manually
|
||||
--------------------
|
||||
|
||||
After your first synchronization, the created journals are synchronized by default every 12 hours.
|
||||
If you wish, you can synchronize them manually by clicking on the :guilabel:`Synchronize Now` button
|
||||
on the dashboard.
|
||||
|
||||
Alternatively, activate the :ref:`developer mode <developer-mode>`, go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`, select your institution,
|
||||
and then click the :guilabel:`Fetch transactions` button.
|
||||
|
||||
.. important::
|
||||
Some institutions do not allow transactions to be fetched automatically. For such institutions,
|
||||
during the automatic synchronization of the account, you receive an error message asking you to
|
||||
disable the automatic synchronization. This message can be found in the chatter of your online
|
||||
synchronizations. In this case, make sure to perform manual synchronizations.
|
||||
|
||||
Issues
|
||||
======
|
||||
|
||||
Synchronization in error
|
||||
------------------------
|
||||
|
||||
To report a connection error to the `Odoo support <https://www.odoo.com/help>`_, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, select the connection that failed, and copy the error description and the
|
||||
reference.
|
||||
|
||||
Synchronization disconnected
|
||||
----------------------------
|
||||
|
||||
If your connection with the proxy is disconnected, you can reconnect with the proxy using the
|
||||
:guilabel:`Fetch Account` button.
|
||||
|
||||
.. note::
|
||||
If you are unable to reconnect using the :guilabel:`Reconnect` button, please contact the
|
||||
`support <https://www.odoo.com/help>`_ directly with your client id or the reference of the error
|
||||
listed in the chatter.
|
||||
|
||||
.. _MigrationOnlineSync:
|
||||
|
||||
Migration process for users having installed Odoo before December 2020
|
||||
======================================================================
|
||||
|
||||
If you are on-premise, please first make sure that your source is up-to-date with the latest version
|
||||
of Odoo.
|
||||
|
||||
Users who have created a database before December 2020 need to install the new module manually to
|
||||
use the new functionalities.
|
||||
|
||||
To do so, go to :menuselection:`Apps --> Update Apps List`, remove the default filter in the search
|
||||
bar and type `account_online_synchronization`. You can then click on :guilabel:`Install`.
|
||||
Finally, make sure all your users refresh their Odoo page by pressing CTRL+F5.
|
||||
|
||||
.. Note::
|
||||
|
||||
- All previous synchronizations are disconnected during the installation and will not work
|
||||
anymore. To view them, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`). It is not possible
|
||||
to resynchronize these connections; you have to make new ones.
|
||||
- Do not uninstall the `account_online_sync` module, which is the previous module for online
|
||||
synchronization. The new one overrides it.
|
||||
- By default, the `account_online_synchronization` module is installed automatically with
|
||||
Accounting.
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
The synchronization is not working in real-time. Is that normal?
|
||||
----------------------------------------------------------------
|
||||
|
||||
The process is not intended to work in real-time as third party providers synchronize your accounts
|
||||
at different intervals. To force the synchronization and fetch the statements, go to your
|
||||
:guilabel:`Accounting Dashboard`, and click on the :guilabel:`Synchronize Now` button. Synchronize
|
||||
and fetch transactions by activating the :ref:`developer mode <developer-mode>` and going to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Some providers only allow
|
||||
one refresh per day, so it is possible that clicking on :guilabel:`Synchronize Now` does not get
|
||||
your latest transactions if you already performed such action earlier in the day.
|
||||
|
||||
A transaction can be visible on your bank account but not be fetched if it has the status
|
||||
:guilabel:`Pending`. Only transactions with the :guilabel:`Posted` status will be retrieved. If the
|
||||
transaction is not **Posted** yet, you will have to wait until the status changes.
|
||||
|
||||
Is the Online Bank Synchronization feature included in my contract?
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- **Community Edition**: No, this feature is not included in the Community Version.
|
||||
- **Online Edition**: Yes, even if you benefit from the One App Free contract.
|
||||
- **Enterprise Edition**: Yes, if you have a valid enterprise contract linked to your database.
|
||||
|
||||
Some banks have a status "Beta." What does this mean?
|
||||
-----------------------------------------------------
|
||||
|
||||
This means that banking institutions are not yet fully supported by our Third Party Provider. Bugs
|
||||
or other problems may arise. Odoo does not support technical problems that occur with banks in the
|
||||
Beta phase, but the user may still choose to connect. Connecting with these banks contributes to the
|
||||
development process since the Provider will have real data and feedback from the connection.
|
||||
|
||||
Why do my transactions only synchronize when I refresh manually?
|
||||
----------------------------------------------------------------
|
||||
|
||||
Some banks have additional security measures and require extra steps, such as an SMS/email
|
||||
authentication code or another type of MFA. Because of this, the integrator cannot pull transactions
|
||||
until the security code is provided.
|
||||
|
||||
Not all of my past transactions are in Odoo, why?
|
||||
-------------------------------------------------
|
||||
|
||||
For some institutions, transactions can only be fetched up to 3 months in the past.
|
||||
|
||||
Why don't I see any transactions?
|
||||
---------------------------------
|
||||
|
||||
During your first synchronization, you selected the bank accounts you decided to synchronize with
|
||||
Odoo. If you didn't synchronize any of your accounts, activate the :ref:`developer mode
|
||||
<developer-mode>`, go to :menuselection:`Accounting --> Configuration --> Online Synchronization`,
|
||||
and click the :guilabel:`Fetch Account` button on the connection.
|
||||
|
||||
There may also be no new transactions.
|
||||
|
||||
If your bank account is properly linked to a journal and posted transactions are not visible in your
|
||||
database, please `submit a support ticket <https://www.odoo.com/help>`_.
|
||||
|
||||
How can I update my bank credentials?
|
||||
-------------------------------------
|
||||
|
||||
To update your credentials, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Open the connection you
|
||||
want to update your credentials and click the :guilabel:`Update Credentials` button.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
bank_synchronization/saltedge
|
||||
bank_synchronization/ponto
|
||||
bank_synchronization/enablebanking
|
||||
@@ -0,0 +1,36 @@
|
||||
# Enable Banking
|
||||
|
||||
**Enable Banking** is a third-party provider aggregating banking information from bank accounts all
|
||||
in one place. It offers non-intrusive connectivity to ASPSPs' official APIs across Europe without
|
||||
storing data.
|
||||
|
||||
```{image} enablebanking/enablebanking.png
|
||||
:alt: Enable Banking logo
|
||||
```
|
||||
|
||||
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
|
||||
import them into your database.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../bank_synchronization`
|
||||
- [Enable Banking website](https://enablebanking.com/)
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
### Link bank accounts with Odoo
|
||||
|
||||
1. Start synchronization by clicking on {menuselection}`Accounting --> Configuration -->
|
||||
Add a Bank Account`;
|
||||
|
||||
2. Select your bank;
|
||||
|
||||
3. Make sure you give your consent to share your account information with Odoo by clicking
|
||||
{guilabel}`Continue authentication`;
|
||||
|
||||
```{image} enablebanking/enablebankingauth.png
|
||||
:alt: Enable Banking authentication page
|
||||
```
|
||||
|
||||
4. Finally, you are redirected to your bank's login page.
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
==============
|
||||
Enable Banking
|
||||
==============
|
||||
|
||||
**Enable Banking** is a third-party provider aggregating banking information from bank accounts all
|
||||
in one place. It offers non-intrusive connectivity to ASPSPs' official APIs across Europe without
|
||||
storing data.
|
||||
|
||||
.. image:: enablebanking/enablebanking.png
|
||||
:alt: Enable Banking logo
|
||||
|
||||
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
|
||||
import them into your database.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../bank_synchronization`
|
||||
- `Enable Banking website <https://enablebanking.com/>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Link bank accounts with Odoo
|
||||
----------------------------
|
||||
|
||||
#. Start synchronization by clicking on :menuselection:`Accounting --> Configuration -->
|
||||
Add a Bank Account`;
|
||||
#. Select your bank;
|
||||
#. Make sure you give your consent to share your account information with Odoo by clicking
|
||||
:guilabel:`Continue authentication`;
|
||||
|
||||
.. image:: enablebanking/enablebankingauth.png
|
||||
:alt: Enable Banking authentication page
|
||||
|
||||
#. Finally, you are redirected to your bank's login page.
|
||||
@@ -0,0 +1,112 @@
|
||||
# Ponto
|
||||
|
||||
**Ponto** is a service that allows companies and professionals to aggregate their accounts in one
|
||||
place and directly see all their transactions within one app. It is a third-party solution that is
|
||||
continuously expanding the number of bank institutions that can be synchronized with Odoo.
|
||||
|
||||
**Odoo** can synchronize directly with your bank to get all bank statements imported automatically
|
||||
into your database.
|
||||
|
||||
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
|
||||
and Odoo.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../bank_synchronization`
|
||||
- {doc}`../transactions`
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
### Link your bank accounts with Ponto
|
||||
|
||||
1. Go to [Ponto's website (https://myponto.com)](https://myponto.com).
|
||||
|
||||
2. Create an account if you don't have one yet.
|
||||
|
||||
3. Once you are logged in, create an *organization*.
|
||||
|
||||
```{image} ponto/ponto-organization.png
|
||||
:alt: Fill out the form to add an organization in Ponto.
|
||||
```
|
||||
|
||||
4. Go to {menuselection}`Accounts --> Live`, and click {guilabel}`Add account`. You might have to
|
||||
add your **Billing Information** first.
|
||||
|
||||
5. Select your country, your bank institutions, give your consent to Ponto, and follow the steps
|
||||
on-screen to link your bank account with your Ponto account.
|
||||
|
||||
```{image} ponto/ponto-add-account.png
|
||||
:alt: Add bank accounts to your Ponto account.
|
||||
```
|
||||
|
||||
6. Add all bank accounts you want to synchronize with your Odoo database and move to the next steps.
|
||||
|
||||
### Link your Ponto account with your Odoo database
|
||||
|
||||
1. Go to {menuselection}`Accounting --> Configuration --> Add a Bank Account`.
|
||||
|
||||
2. Search for your institution and select it so you can verify that the third party provider is
|
||||
Ponto.
|
||||
|
||||
3. Click {guilabel}`Connect` and follow the steps.
|
||||
|
||||
4. Select **all accounts** you want to access and synchronize in Odoo, even the ones coming from
|
||||
other banking institutions.
|
||||
|
||||
```{image} ponto/ponto-select-accounts.png
|
||||
:alt: Selection of the accounts you wish to synchronize with Odoo.
|
||||
```
|
||||
|
||||
5. Finish the flow.
|
||||
|
||||
:::{note}
|
||||
You have to authorize all the accounts you want to access in Odoo, but Odoo will filter the
|
||||
accounts based on the institution you selected in the second step.
|
||||
:::
|
||||
|
||||
### Update your synchronization credentials
|
||||
|
||||
To update your Ponto credentials or modify the synchronization settings, activate the
|
||||
{ref}`developer mode <developer-mode>`, go to {menuselection}`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution from which you want to fetch the other
|
||||
accounts. Click {guilabel}`Fetch Accounts` to start the flow.
|
||||
|
||||
:::{note}
|
||||
During the update, select **all accounts** you want to synchronize, even the ones coming from
|
||||
other banking institutions.
|
||||
:::
|
||||
|
||||
### Fetch new accounts
|
||||
|
||||
To add new online accounts to your connection, activate the {ref}`developer mode <developer-mode>`,
|
||||
go to {menuselection}`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution from which you want to fetch the other accounts. Click {guilabel}`Fetch Accounts` to
|
||||
start the flow.
|
||||
|
||||
:::{note}
|
||||
Don't forget to keep authorization for existing accounts (for all institutions that you have
|
||||
synchronized with Ponto).
|
||||
:::
|
||||
|
||||
## FAQ
|
||||
|
||||
### After my synchronization, no account appears
|
||||
|
||||
You selected an institution from the list and did not authorize any accounts from this institution.
|
||||
|
||||
### I have an error about that my authorization has expired
|
||||
|
||||
Every **6 months** (180 days) you must re-authorize the connection between your bank account
|
||||
and Ponto. This must be done from the [Ponto website](https://myponto.com). If you do not
|
||||
do this, the synchronization will stop for these accounts.
|
||||
|
||||
### I have some errors with my beta institution
|
||||
|
||||
Ponto provides institutions in *beta*, these institutions are not directly supported by Odoo
|
||||
and we advise you to contact Ponto directly.
|
||||
|
||||
:::{important}
|
||||
Using an institution in beta is beneficial for Ponto, it allows them to have real
|
||||
feedback on the connection with the institution.
|
||||
:::
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
=====
|
||||
Ponto
|
||||
=====
|
||||
|
||||
**Ponto** is a service that allows companies and professionals to aggregate their accounts in one
|
||||
place and directly see all their transactions within one app. It is a third-party solution that is
|
||||
continuously expanding the number of bank institutions that can be synchronized with Odoo.
|
||||
|
||||
**Odoo** can synchronize directly with your bank to get all bank statements imported automatically
|
||||
into your database.
|
||||
|
||||
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
|
||||
and Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../bank_synchronization`
|
||||
- :doc:`../transactions`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Link your bank accounts with Ponto
|
||||
----------------------------------
|
||||
|
||||
#. Go to `Ponto's website (https://myponto.com) <https://myponto.com>`_.
|
||||
#. Create an account if you don't have one yet.
|
||||
#. Once you are logged in, create an *organization*.
|
||||
|
||||
.. image:: ponto/ponto-organization.png
|
||||
:alt: Fill out the form to add an organization in Ponto.
|
||||
|
||||
#. Go to :menuselection:`Accounts --> Live`, and click :guilabel:`Add account`. You might have to
|
||||
add your **Billing Information** first.
|
||||
#. Select your country, your bank institutions, give your consent to Ponto, and follow the steps
|
||||
on-screen to link your bank account with your Ponto account.
|
||||
|
||||
.. image:: ponto/ponto-add-account.png
|
||||
:alt: Add bank accounts to your Ponto account.
|
||||
|
||||
#. Add all bank accounts you want to synchronize with your Odoo database and move to the next steps.
|
||||
|
||||
Link your Ponto account with your Odoo database
|
||||
-----------------------------------------------
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
#. Search for your institution and select it so you can verify that the third party provider is
|
||||
Ponto.
|
||||
#. Click :guilabel:`Connect` and follow the steps.
|
||||
#. Select **all accounts** you want to access and synchronize in Odoo, even the ones coming from
|
||||
other banking institutions.
|
||||
|
||||
.. image:: ponto/ponto-select-accounts.png
|
||||
:alt: Selection of the accounts you wish to synchronize with Odoo.
|
||||
|
||||
#. Finish the flow.
|
||||
|
||||
.. note::
|
||||
You have to authorize all the accounts you want to access in Odoo, but Odoo will filter the
|
||||
accounts based on the institution you selected in the second step.
|
||||
|
||||
Update your synchronization credentials
|
||||
---------------------------------------
|
||||
|
||||
To update your Ponto credentials or modify the synchronization settings, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution from which you want to fetch the other
|
||||
accounts. Click :guilabel:`Fetch Accounts` to start the flow.
|
||||
|
||||
.. note::
|
||||
During the update, select **all accounts** you want to synchronize, even the ones coming from
|
||||
other banking institutions.
|
||||
|
||||
Fetch new accounts
|
||||
------------------
|
||||
|
||||
To add new online accounts to your connection, activate the :ref:`developer mode <developer-mode>`,
|
||||
go to :menuselection:`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution from which you want to fetch the other accounts. Click :guilabel:`Fetch Accounts` to
|
||||
start the flow.
|
||||
|
||||
.. note::
|
||||
Don't forget to keep authorization for existing accounts (for all institutions that you have
|
||||
synchronized with Ponto).
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
After my synchronization, no account appears
|
||||
--------------------------------------------
|
||||
|
||||
You selected an institution from the list and did not authorize any accounts from this institution.
|
||||
|
||||
I have an error about that my authorization has expired
|
||||
-------------------------------------------------------
|
||||
|
||||
Every **6 months** (180 days) you must re-authorize the connection between your bank account
|
||||
and Ponto. This must be done from the `Ponto website <https://myponto.com>`_. If you do not
|
||||
do this, the synchronization will stop for these accounts.
|
||||
|
||||
I have some errors with my beta institution
|
||||
-------------------------------------------
|
||||
|
||||
Ponto provides institutions in *beta*, these institutions are not directly supported by Odoo
|
||||
and we advise you to contact Ponto directly.
|
||||
|
||||
.. important::
|
||||
Using an institution in beta is beneficial for Ponto, it allows them to have real
|
||||
feedback on the connection with the institution.
|
||||
@@ -0,0 +1,97 @@
|
||||
# Salt Edge
|
||||
|
||||
**Salt Edge** is a third-party provider that aggregates banking information
|
||||
from your bank accounts. It supports ~5000 institutions in more than 50
|
||||
countries.
|
||||
|
||||
Odoo can synchronize directly with your bank to get all bank statements imported
|
||||
automatically into your database.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../bank_synchronization`
|
||||
- {doc}`../transactions`
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
### Link your bank accounts with Odoo
|
||||
|
||||
1. Start synchronization by clicking on {menuselection}`Accounting --> Configuration
|
||||
--> Add a Bank Account`.
|
||||
|
||||
2. Select the institution you want to synchronize. You can see if Salt Edge is the
|
||||
third party provider of the institution by selecting it.
|
||||
|
||||
3. After giving your phone number, you are asked for an email address. This email
|
||||
address is used to create your Salt Edge account. Please make sure you enter a
|
||||
valid email address, as otherwise, you will not be able to access your Salt Edge
|
||||
account.
|
||||
|
||||
```{image} saltedge/saltedge-contact-email.png
|
||||
:alt: Email address to provide to Salt Edge for the creation of your account.
|
||||
```
|
||||
|
||||
4. After entering your email address, you are redirected to Salt Edge to continue
|
||||
the synchronization process.
|
||||
|
||||
```{image} saltedge/saltedge-login-page.png
|
||||
:alt: Salt Edge Login page.
|
||||
```
|
||||
|
||||
5. Make sure you give your consent by checking the consent checkbox.
|
||||
|
||||
```{image} saltedge/saltedge-give-consent.png
|
||||
:alt: Salt Edge give consent page.
|
||||
```
|
||||
|
||||
6. Complete the synchronization by following the steps.
|
||||
|
||||
### Update your credentials
|
||||
|
||||
To update your Salt Edge credentials or modify the synchronization settings, activate the
|
||||
{ref}`developer mode <developer-mode>`, go to {menuselection}`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution you want to update credentials. Click
|
||||
{guilabel}`Update Credentials` to start the flow and follow the steps.
|
||||
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access
|
||||
your information.
|
||||
|
||||
### Fetch new accounts
|
||||
|
||||
To add new online accounts to your connection, activate the {ref}`developer mode <developer-mode>`,
|
||||
go to {menuselection}`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution to fetch the new accounts. Click {guilabel}`Fetch Accounts` to start the flow and
|
||||
follow the steps.
|
||||
|
||||
:::{note}
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access your
|
||||
information.
|
||||
:::
|
||||
|
||||
## FAQ
|
||||
|
||||
### I have an error when I try to delete my synchronization within Odoo
|
||||
|
||||
Odoo can't permanently delete the connection you have created with the banking institution. However,
|
||||
it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The
|
||||
error you are seeing is probably a message telling you that the consent was revoked, but the record
|
||||
could not be deleted as it still exists within Salt edge. If you want to remove the connection
|
||||
completely, please connect to your [Salt Edge account](https://www.saltedge.com/dashboard)
|
||||
and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the
|
||||
record.
|
||||
|
||||
### I have an error saying that I have already synchronized this account
|
||||
|
||||
You have probably already synchronized your bank account with Salt Edge, please check on your
|
||||
[dashboard](https://www.saltedge.com/dashboard) that you don't already have a connection with the
|
||||
same credentials.
|
||||
|
||||
If you already have a synchronization with the same credentials present on your Salt Edge
|
||||
dashboard and this synchronization has not been created with Odoo, delete it and create it from your
|
||||
Odoo database.
|
||||
|
||||
If you already have a connection with the same credentials present on your Salt Edge dashboard
|
||||
and this synchronization was created with Odoo, activate the {ref}`developer
|
||||
mode <developer-mode>`, go to {menuselection}`Accounting --> Configuration --> Online
|
||||
Synchronization`, and click {guilabel}`Update Credentials` to reactivate the connection.
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
=========
|
||||
Salt Edge
|
||||
=========
|
||||
|
||||
**Salt Edge** is a third-party provider that aggregates banking information
|
||||
from your bank accounts. It supports ~5000 institutions in more than 50
|
||||
countries.
|
||||
|
||||
Odoo can synchronize directly with your bank to get all bank statements imported
|
||||
automatically into your database.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../bank_synchronization`
|
||||
- :doc:`../transactions`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Link your bank accounts with Odoo
|
||||
---------------------------------
|
||||
|
||||
#. Start synchronization by clicking on :menuselection:`Accounting --> Configuration
|
||||
--> Add a Bank Account`.
|
||||
#. Select the institution you want to synchronize. You can see if Salt Edge is the
|
||||
third party provider of the institution by selecting it.
|
||||
#. After giving your phone number, you are asked for an email address. This email
|
||||
address is used to create your Salt Edge account. Please make sure you enter a
|
||||
valid email address, as otherwise, you will not be able to access your Salt Edge
|
||||
account.
|
||||
|
||||
.. image:: saltedge/saltedge-contact-email.png
|
||||
:alt: Email address to provide to Salt Edge for the creation of your account.
|
||||
|
||||
#. After entering your email address, you are redirected to Salt Edge to continue
|
||||
the synchronization process.
|
||||
|
||||
.. image:: saltedge/saltedge-login-page.png
|
||||
:alt: Salt Edge Login page.
|
||||
|
||||
#. Make sure you give your consent by checking the consent checkbox.
|
||||
|
||||
.. image:: saltedge/saltedge-give-consent.png
|
||||
:alt: Salt Edge give consent page.
|
||||
|
||||
#. Complete the synchronization by following the steps.
|
||||
|
||||
|
||||
Update your credentials
|
||||
-----------------------
|
||||
|
||||
To update your Salt Edge credentials or modify the synchronization settings, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution you want to update credentials. Click
|
||||
:guilabel:`Update Credentials` to start the flow and follow the steps.
|
||||
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access
|
||||
your information.
|
||||
|
||||
Fetch new accounts
|
||||
------------------
|
||||
|
||||
To add new online accounts to your connection, activate the :ref:`developer mode <developer-mode>`,
|
||||
go to :menuselection:`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution to fetch the new accounts. Click :guilabel:`Fetch Accounts` to start the flow and
|
||||
follow the steps.
|
||||
|
||||
.. note::
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access your
|
||||
information.
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
I have an error when I try to delete my synchronization within Odoo
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Odoo can't permanently delete the connection you have created with the banking institution. However,
|
||||
it can revoke the consent you gave so that Odoo won't be able to access your account anymore. The
|
||||
error you are seeing is probably a message telling you that the consent was revoked, but the record
|
||||
could not be deleted as it still exists within Salt edge. If you want to remove the connection
|
||||
completely, please connect to your `Salt Edge account <https://www.saltedge.com/dashboard>`_
|
||||
and manually delete your synchronization. Once this is done, you can go back to Odoo to delete the
|
||||
record.
|
||||
|
||||
I have an error saying that I have already synchronized this account
|
||||
--------------------------------------------------------------------
|
||||
|
||||
You have probably already synchronized your bank account with Salt Edge, please check on your
|
||||
`dashboard <https://www.saltedge.com/dashboard>`_ that you don't already have a connection with the
|
||||
same credentials.
|
||||
|
||||
If you already have a synchronization with the same credentials present on your Salt Edge
|
||||
dashboard and this synchronization has not been created with Odoo, delete it and create it from your
|
||||
Odoo database.
|
||||
|
||||
If you already have a connection with the same credentials present on your Salt Edge dashboard
|
||||
and this synchronization was created with Odoo, activate the :ref:`developer
|
||||
mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration --> Online
|
||||
Synchronization`, and click :guilabel:`Update Credentials` to reactivate the connection.
|
||||
@@ -0,0 +1,117 @@
|
||||
# Manage a bank account in a foreign currency
|
||||
|
||||
In Odoo, every transaction is recorded in the default currency of the company, and reports are all
|
||||
based on that default currency. When you have a bank account in a foreign currency, for every
|
||||
transaction, Odoo stores two values:
|
||||
|
||||
- The debit/credit in the currency of the *company*;
|
||||
- The debit/credit in the currency of the *bank account*.
|
||||
|
||||
Currency rates are updated automatically using the web services of a banking institution. By
|
||||
default, Odoo uses the European Central Bank's web services but other options are available.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Activate multi-currencies
|
||||
|
||||
To work with multiple currencies, go to {menuselection}`Accounting --> Configuration --> Settings
|
||||
--> Currencies` and tick {guilabel}`Multi-Currencies`. Under {guilabel}`Post Exchange difference
|
||||
entries in:`, provide a {guilabel}`Journal`, a {guilabel}`Gain Account`, a {guilabel}`Loss Account`,
|
||||
and then click on {guilabel}`Save`.
|
||||
|
||||
### Configure currencies
|
||||
|
||||
Once Odoo is configured to support multiple currencies, they are all created by default, but not
|
||||
necessarily active. To activate the new currencies, click on {guilabel}`Activate Other Currencies`
|
||||
under the {guilabel}`Multi-Currencies` setting or go to {menuselection}`Accounting --> Configuration
|
||||
--> Accounting: Currencies`.
|
||||
|
||||
When the currencies are activated, you can choose to **automate** the currency rate update, or leave
|
||||
it on **manual**. To configure the rate update, go back to {menuselection}`Accounting -->
|
||||
Configuration --> Settings --> Currencies`, check {guilabel}`Automatic Currency Rates`, set
|
||||
{guilabel}`Interval` to your desired frequency, and then click on {guilabel}`Save`. You also have
|
||||
the option to choose the {guilabel}`Service` you wish to obtain currency rates from.
|
||||
|
||||
Click on the Update now button ({guilabel}`🗘`) besides the {guilabel}`Next Run` field to update
|
||||
the currency rates manually.
|
||||
|
||||
### Create a new bank account
|
||||
|
||||
In the accounting application, go to {menuselection}`Accounting --> Configuration --> Journals` and
|
||||
create a new one. Enter a {guilabel}`Journal Name` and set the {guilabel}`Type` to `Bank`. In the
|
||||
{guilabel}`Journal Entries` tab, enter a **short code**, a **currency**, and then finally click on
|
||||
the {guilabel}`Bank Account` field to create a new account. In the pop-up window of the account
|
||||
creation, enter a name, a code (ex.: 550007), set its type to `Bank and Cash`, set a currency type,
|
||||
and save. When you are back on the **journal**, click on the {guilabel}`Account Number` field, and
|
||||
in the pop-up window, fill out the {guilabel}`Account Number`, {guilabel}`Bank` of your account, and
|
||||
save.
|
||||
|
||||
```{image} foreign_currency/foreign-journal.png
|
||||
:align: center
|
||||
:alt: Example of a created bank journal.
|
||||
```
|
||||
|
||||
Upon creation of the journal, Odoo automatically links the bank account to the journal. It can be
|
||||
found under {menuselection}`Accounting --> Configuration --> Accounting: Chart of Accounts`.
|
||||
|
||||
## Vendor bill in a foreign currency
|
||||
|
||||
To pay a bill in a foreign currency, simply select the currency next to the {guilabel}`Journal`
|
||||
field and register the payment. Odoo automatically creates and posts the foreign **exchange gain or
|
||||
loss** as a new journal entry.
|
||||
|
||||
```{image} foreign_currency/foreign-bill-currency.png
|
||||
:align: center
|
||||
:alt: How to set a bill currency.
|
||||
```
|
||||
|
||||
:::{note}
|
||||
Note that you can pay a foreign bill with another currency. In that case, Odoo automatically
|
||||
converts between the two currencies.
|
||||
:::
|
||||
|
||||
## Unrealized Currency Gains/Losses Report
|
||||
|
||||
This report gives an overview of all unrealized amounts in a foreign currency on your balance sheet,
|
||||
and allows you to adjust an entry or manually set an exchange rate. To access this report, go to
|
||||
{menuselection}`Reporting --> Management: Unrealized Currency Gains/Losses`. From here, you have
|
||||
access to all open entries in your **balance sheet**.
|
||||
|
||||
```{image} foreign_currency/foreign-gains-losses.png
|
||||
:align: center
|
||||
:alt: View of the Unrealized Gains/Losses journal.
|
||||
```
|
||||
|
||||
If you wish to use a different currency rate than the one set in {menuselection}`Accounting -->
|
||||
Configuration --> Settings --> Currencies`, click the {guilabel}`Exchange Rates` button and change
|
||||
the rate of the foreign currencies in the report.
|
||||
|
||||
```{image} foreign_currency/foreign-exchange-rates.png
|
||||
:align: center
|
||||
:alt: Menu to manually change exchange rates.
|
||||
```
|
||||
|
||||
When manually changing **exchange rates**, a yellow banner appears allowing you to reset back to
|
||||
Odoo's rate. To do so, simply click on {guilabel}`Reset to Odoo's Rate`.
|
||||
|
||||
```{image} foreign_currency/foreign-reset-rates.png
|
||||
:align: center
|
||||
:alt: Banner to reset back to Odoo's rates.
|
||||
```
|
||||
|
||||
In order to update your **balance sheet** with the amount of the {guilabel}`adjustment` column,
|
||||
click on the {guilabel}`Adjustment Entry` button. In the pop-up window, select a
|
||||
{guilabel}`Journal`, {guilabel}`Expense Account` and {guilabel}`Income Account` to calculate and
|
||||
process the **unrealized gains and losses**.
|
||||
|
||||
You can set the date of the report in the {guilabel}`Date` field. Odoo automatically reverses the
|
||||
booking entry to the date set in {guilabel}`Reversal Date`.
|
||||
|
||||
Once posted, the {guilabel}`adjustment` column should indicate `0.00`, meaning all **unrealized
|
||||
gains/losses** have been adjusted.
|
||||
|
||||
```{image} foreign_currency/foreign-adjustment.png
|
||||
:align: center
|
||||
:alt: Unrealized Currency Gains/Losses report once adjusted.
|
||||
```
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
===========================================
|
||||
Manage a bank account in a foreign currency
|
||||
===========================================
|
||||
|
||||
In Odoo, every transaction is recorded in the default currency of the company, and reports are all
|
||||
based on that default currency. When you have a bank account in a foreign currency, for every
|
||||
transaction, Odoo stores two values:
|
||||
|
||||
- The debit/credit in the currency of the *company*;
|
||||
- The debit/credit in the currency of the *bank account*.
|
||||
|
||||
Currency rates are updated automatically using the web services of a banking institution. By
|
||||
default, Odoo uses the European Central Bank's web services but other options are available.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Activate multi-currencies
|
||||
-------------------------
|
||||
|
||||
To work with multiple currencies, go to :menuselection:`Accounting --> Configuration --> Settings
|
||||
--> Currencies` and tick :guilabel:`Multi-Currencies`. Under :guilabel:`Post Exchange difference
|
||||
entries in:`, provide a :guilabel:`Journal`, a :guilabel:`Gain Account`, a :guilabel:`Loss Account`,
|
||||
and then click on :guilabel:`Save`.
|
||||
|
||||
Configure currencies
|
||||
--------------------
|
||||
|
||||
Once Odoo is configured to support multiple currencies, they are all created by default, but not
|
||||
necessarily active. To activate the new currencies, click on :guilabel:`Activate Other Currencies`
|
||||
under the :guilabel:`Multi-Currencies` setting or go to :menuselection:`Accounting --> Configuration
|
||||
--> Accounting: Currencies`.
|
||||
|
||||
When the currencies are activated, you can choose to **automate** the currency rate update, or leave
|
||||
it on **manual**. To configure the rate update, go back to :menuselection:`Accounting -->
|
||||
Configuration --> Settings --> Currencies`, check :guilabel:`Automatic Currency Rates`, set
|
||||
:guilabel:`Interval` to your desired frequency, and then click on :guilabel:`Save`. You also have
|
||||
the option to choose the :guilabel:`Service` you wish to obtain currency rates from.
|
||||
|
||||
Click on the Update now button (:guilabel:`🗘`) besides the :guilabel:`Next Run` field to update
|
||||
the currency rates manually.
|
||||
|
||||
Create a new bank account
|
||||
-------------------------
|
||||
|
||||
In the accounting application, go to :menuselection:`Accounting --> Configuration --> Journals` and
|
||||
create a new one. Enter a :guilabel:`Journal Name` and set the :guilabel:`Type` to `Bank`. In the
|
||||
:guilabel:`Journal Entries` tab, enter a **short code**, a **currency**, and then finally click on
|
||||
the :guilabel:`Bank Account` field to create a new account. In the pop-up window of the account
|
||||
creation, enter a name, a code (ex.: 550007), set its type to `Bank and Cash`, set a currency type,
|
||||
and save. When you are back on the **journal**, click on the :guilabel:`Account Number` field, and
|
||||
in the pop-up window, fill out the :guilabel:`Account Number`, :guilabel:`Bank` of your account, and
|
||||
save.
|
||||
|
||||
.. image:: foreign_currency/foreign-journal.png
|
||||
:align: center
|
||||
:alt: Example of a created bank journal.
|
||||
|
||||
Upon creation of the journal, Odoo automatically links the bank account to the journal. It can be
|
||||
found under :menuselection:`Accounting --> Configuration --> Accounting: Chart of Accounts`.
|
||||
|
||||
Vendor bill in a foreign currency
|
||||
=================================
|
||||
|
||||
To pay a bill in a foreign currency, simply select the currency next to the :guilabel:`Journal`
|
||||
field and register the payment. Odoo automatically creates and posts the foreign **exchange gain or
|
||||
loss** as a new journal entry.
|
||||
|
||||
.. image:: foreign_currency/foreign-bill-currency.png
|
||||
:align: center
|
||||
:alt: How to set a bill currency.
|
||||
|
||||
.. note::
|
||||
Note that you can pay a foreign bill with another currency. In that case, Odoo automatically
|
||||
converts between the two currencies.
|
||||
|
||||
Unrealized Currency Gains/Losses Report
|
||||
=======================================
|
||||
|
||||
This report gives an overview of all unrealized amounts in a foreign currency on your balance sheet,
|
||||
and allows you to adjust an entry or manually set an exchange rate. To access this report, go to
|
||||
:menuselection:`Reporting --> Management: Unrealized Currency Gains/Losses`. From here, you have
|
||||
access to all open entries in your **balance sheet**.
|
||||
|
||||
.. image:: foreign_currency/foreign-gains-losses.png
|
||||
:align: center
|
||||
:alt: View of the Unrealized Gains/Losses journal.
|
||||
|
||||
If you wish to use a different currency rate than the one set in :menuselection:`Accounting -->
|
||||
Configuration --> Settings --> Currencies`, click the :guilabel:`Exchange Rates` button and change
|
||||
the rate of the foreign currencies in the report.
|
||||
|
||||
.. image:: foreign_currency/foreign-exchange-rates.png
|
||||
:align: center
|
||||
:alt: Menu to manually change exchange rates.
|
||||
|
||||
When manually changing **exchange rates**, a yellow banner appears allowing you to reset back to
|
||||
Odoo's rate. To do so, simply click on :guilabel:`Reset to Odoo's Rate`.
|
||||
|
||||
.. image:: foreign_currency/foreign-reset-rates.png
|
||||
:align: center
|
||||
:alt: Banner to reset back to Odoo's rates.
|
||||
|
||||
In order to update your **balance sheet** with the amount of the :guilabel:`adjustment` column,
|
||||
click on the :guilabel:`Adjustment Entry` button. In the pop-up window, select a
|
||||
:guilabel:`Journal`, :guilabel:`Expense Account` and :guilabel:`Income Account` to calculate and
|
||||
process the **unrealized gains and losses**.
|
||||
|
||||
You can set the date of the report in the :guilabel:`Date` field. Odoo automatically reverses the
|
||||
booking entry to the date set in :guilabel:`Reversal Date`.
|
||||
|
||||
Once posted, the :guilabel:`adjustment` column should indicate `0.00`, meaning all **unrealized
|
||||
gains/losses** have been adjusted.
|
||||
|
||||
.. image:: foreign_currency/foreign-adjustment.png
|
||||
:align: center
|
||||
:alt: Unrealized Currency Gains/Losses report once adjusted.
|
||||
+23
-21
@@ -1,35 +1,34 @@
|
||||
==================
|
||||
Internal transfers
|
||||
==================
|
||||
# Internal transfers
|
||||
|
||||
Internal money transfers can be handled in Odoo. At least two bank or cash accounts are needed to
|
||||
make internal transfers.
|
||||
|
||||
.. seealso::
|
||||
:ref:`How to add an additional bank account <accounting/bank/create>`
|
||||
:::{seealso}
|
||||
{ref}`How to add an additional bank account <accounting/bank/create>`
|
||||
:::
|
||||
|
||||
Configuration
|
||||
=============
|
||||
## Configuration
|
||||
|
||||
An internal transfer account is automatically created on your database based on your company's
|
||||
:doc:`localization <../../fiscal_localizations>` and depending on your country’s legislation. To
|
||||
modify the default :guilabel:`Internal Transfer` account, go to :menuselection:`Accounting -->
|
||||
Configuration --> Settings` and scroll down to the :guilabel:`Default Accounts` section.
|
||||
{doc}`localization <../../fiscal_localizations>` and depending on your country’s legislation. To
|
||||
modify the default {guilabel}`Internal Transfer` account, go to {menuselection}`Accounting -->
|
||||
Configuration --> Settings` and scroll down to the {guilabel}`Default Accounts` section.
|
||||
|
||||
Register an internal transfer from one bank to another
|
||||
======================================================
|
||||
## Register an internal transfer from one bank to another
|
||||
|
||||
When money is transferred from one bank or cash account to another, that amount appears as two
|
||||
transactions on the corresponding journals, whether the transactions are created manually, via
|
||||
import, or via :doc:`bank synchronization <bank_synchronization>`. When reconciling the transaction,
|
||||
select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconciliation_models>`
|
||||
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
|
||||
import, or via {doc}`bank synchronization <bank_synchronization>`. When reconciling the transaction,
|
||||
select the {guilabel}`Internal Transfers` {doc}`reconciliation model <reconciliation_models>`
|
||||
button. This reconciliation model button writes the transaction off to the {guilabel}`Internal
|
||||
Transfer` account.
|
||||
|
||||
.. tip::
|
||||
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
|
||||
the payment and the incoming transaction on the journal that receives the payment.
|
||||
:::{tip}
|
||||
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
|
||||
the payment and the incoming transaction on the journal that receives the payment.
|
||||
:::
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
Take, for example, a transfer of $1000 from Bank A to Bank B:
|
||||
|
||||
@@ -65,7 +64,10 @@ Transfer` account.
|
||||
* - **Internal transfer account**
|
||||
-
|
||||
- **$1,000**
|
||||
```
|
||||
|
||||
:::{seealso}
|
||||
{doc}`reconciliation`
|
||||
{doc}`reconciliation_models`
|
||||
:::
|
||||
|
||||
.. seealso::
|
||||
:doc:`reconciliation`
|
||||
:doc:`reconciliation_models`
|
||||
+16
-21
@@ -1,34 +1,30 @@
|
||||
================
|
||||
Loans management
|
||||
================
|
||||
# Loans management
|
||||
|
||||
Odoo's loan management gives a comprehensive list of all loans undertaken by your company in order
|
||||
to maintain a holistic and forecasted view of upcoming due dates (e.g., cash forecast). Set up
|
||||
amortization schedules—or import them—and let Odoo automatically handle monthly interest and
|
||||
principal adjustments so that your financial reports are always accurate with minimal effort.
|
||||
|
||||
Create a new loan
|
||||
-----------------
|
||||
## Create a new loan
|
||||
|
||||
Create a new loan by going to :menuselection:`Accounting --> Accounting --> Loans`. When creating a
|
||||
Create a new loan by going to {menuselection}`Accounting --> Accounting --> Loans`. When creating a
|
||||
new loan, there are three options for how to create amortization schedules:
|
||||
|
||||
- importing it from a supported file;
|
||||
- calculating it from multiple input values (e.g., the :guilabel:`Amount Borrowed`, the
|
||||
:guilabel:`Duration`, etc.) using the :guilabel:`Compute` button;
|
||||
- calculating it from multiple input values (e.g., the {guilabel}`Amount Borrowed`, the
|
||||
{guilabel}`Duration`, etc.) using the {guilabel}`Compute` button;
|
||||
- manually filling in the lines of the schedule.
|
||||
|
||||
In each case, three different fields are required for each line of the amortization schedule: the
|
||||
:guilabel:`Date`, the :guilabel:`Principal`, and the :guilabel:`Interest`.
|
||||
{guilabel}`Date`, the {guilabel}`Principal`, and the {guilabel}`Interest`.
|
||||
|
||||
The :guilabel:`Amount Borrowed`, :guilabel:`Interest`, and :guilabel:`Duration` fields will be red
|
||||
The {guilabel}`Amount Borrowed`, {guilabel}`Interest`, and {guilabel}`Duration` fields will be red
|
||||
if the sum of the lines does not match the total of the amortization schedule lines.
|
||||
|
||||
Loan entries mechanism
|
||||
----------------------
|
||||
## Loan entries mechanism
|
||||
|
||||
When the amount borrowed is credited to a bank account, it should be transferred to a long-term
|
||||
account (defined in the :guilabel:`Loan Settings` tab). Then, upon the validation of the loan, Odoo
|
||||
account (defined in the {guilabel}`Loan Settings` tab). Then, upon the validation of the loan, Odoo
|
||||
creates the necessary journal entries so that there is always a holistic and forecasted view of
|
||||
upcoming due dates. The entire process is completely automated with a long-term and short-term
|
||||
principal reclassification mechanism.
|
||||
@@ -36,13 +32,13 @@ principal reclassification mechanism.
|
||||
For each line of the amortization schedule, Odoo creates the following entries:
|
||||
|
||||
A payment entry on the same date that
|
||||
- debits the principal amount to the long-term account;
|
||||
: - debits the principal amount to the long-term account;
|
||||
- debits the interest amount to the expense account;
|
||||
- credits the payment amount to the short-term account: this is the amount that will be
|
||||
withdrawn by the bank.
|
||||
|
||||
A reclassification entry on the same date that
|
||||
- debits the sum of the principal amounts of the next 12 months to the long-term account;
|
||||
: - debits the sum of the principal amounts of the next 12 months to the long-term account;
|
||||
- credits the sum of the principal amounts of the next 12 months to the short-term account.
|
||||
|
||||
A reversed entry of the reclassification entry on *the next day* that simply reverses the previous
|
||||
@@ -51,20 +47,19 @@ one.
|
||||
With this mechanism, month after month, the short-term account is always up to date with the
|
||||
current short-term due amounts.
|
||||
|
||||
Closing a loan
|
||||
--------------
|
||||
## Closing a loan
|
||||
|
||||
By default, a loan will be closed whenever its last payment entry is posted. However, it can also
|
||||
be manually closed (e.g., because it is being paid off early) by clicking on the :guilabel:`Close`
|
||||
be manually closed (e.g., because it is being paid off early) by clicking on the {guilabel}`Close`
|
||||
button. A wizard will appear asking from which date the loan should be closed. All draft entries
|
||||
after this date will be deleted too.
|
||||
|
||||
A loan can also be cancelled. In that case, all entries will be deleted even if they were already
|
||||
posted.
|
||||
|
||||
Loans Analysis Report
|
||||
---------------------
|
||||
## Loans Analysis Report
|
||||
|
||||
By going to :menuselection:`Accounting --> Reporting --> Loans Analysis`, you can access a
|
||||
By going to {menuselection}`Accounting --> Reporting --> Loans Analysis`, you can access a
|
||||
report with a pivot view of your ongoing loans. By default, the report shows the principal,
|
||||
interest, and total payment for each year for the loan duration.
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
# Bank reconciliation
|
||||
|
||||
**Bank reconciliation** is the process of matching your {doc}`bank transactions <transactions>` with
|
||||
your business records, such as {doc}`customer invoices <../customer_invoices>`, {doc}`vendor bills
|
||||
<../vendor_bills>`, and {doc}`payments <../payments>`. Not only is this compulsory for most
|
||||
businesses, but it also offers several benefits, such as reduced risk of errors in financial
|
||||
reports, detection of fraudulent activities, and improved cash flow management.
|
||||
|
||||
Thanks to the bank {doc}`reconciliation models <reconciliation_models>`, Odoo pre-selects the
|
||||
matching entries automatically.
|
||||
|
||||
:::{seealso}
|
||||
- [Odoo Tutorials: Bank reconciliation](https://www.odoo.com/slides/slide/bank-reconciliation-2724)
|
||||
- {doc}`bank_synchronization`
|
||||
- {doc}`transactions`
|
||||
:::
|
||||
|
||||
## Bank reconciliation view
|
||||
|
||||
To access a bank journal's **reconciliation view**, go to your {guilabel}`Accounting Dashboard` and
|
||||
either:
|
||||
|
||||
- click the journal name (e.g., {guilabel}`Bank`) to display all transactions, including those
|
||||
previously reconciled or
|
||||
- click the {guilabel}`Reconcile items` button to display all transactions Odoo pre-selected for
|
||||
reconciliation. You can remove the {guilabel}`Not Matched` filter from the search bar to include
|
||||
previously reconciled transactions.
|
||||
|
||||
```{image} reconciliation/bank-card.png
|
||||
:alt: Reaching the bank reconciliation tool from your accounting dashboard
|
||||
```
|
||||
|
||||
The bank reconciliation view is structured into three distinct sections: transactions, counterpart
|
||||
entries, and resulting entry.
|
||||
|
||||
```{image} reconciliation/user-interface.png
|
||||
:alt: The user interface of the reconciliation view of a bank journal.
|
||||
```
|
||||
|
||||
Transactions
|
||||
|
||||
: The transactions section on the left shows all bank transactions, with the newest displayed
|
||||
first. Click a transaction to select it.
|
||||
|
||||
Counterpart entries
|
||||
|
||||
: The counterpart entries section on the bottom right displays the options to match the selected
|
||||
bank transaction. Multiple tabs are available, including
|
||||
{ref}`reconciliation/existing-entries`, {ref}`reconciliation/batch-payments`,
|
||||
{ref}`reconciliation/manual-operations`, and {guilabel}`Discuss`, which contains the chatter for
|
||||
the selected bank transaction.
|
||||
|
||||
Resulting entry
|
||||
|
||||
: The resulting entry section on the top right displays the selected bank transaction matched with
|
||||
the counterpart entries and includes any remaining debits or credits. In this section, you can
|
||||
validate the reconciliation or mark it as {guilabel}`To Check`. Any {ref}`reconciliation model
|
||||
buttons <reconciliation/button>` are also available in the resulting entry section.
|
||||
|
||||
## Reconcile transactions
|
||||
|
||||
Transactions can be matched automatically with the use of {doc}`reconciliation models
|
||||
<reconciliation_models>`, or they can be matched with {ref}`existing entries
|
||||
<reconciliation/existing-entries>`, {ref}`batch payments <reconciliation/batch-payments>`,
|
||||
{ref}`manual operations <reconciliation/manual-operations>`, and {ref}`reconciliation model buttons
|
||||
<reconciliation/button>`.
|
||||
|
||||
1. Select a transaction among unmatched bank transactions.
|
||||
2. Define the counterpart. There are several options for defining a counterpart, including
|
||||
{ref}`matching existing entries <reconciliation/existing-entries>`, {ref}`manual operations
|
||||
<reconciliation/manual-operations>`, {ref}`batch payments <reconciliation/batch-payments>`, and
|
||||
{ref}`reconciliation model buttons <reconciliation/button>`.
|
||||
3. If the resulting entry is not fully balanced, balance it by adding another existing counterpart
|
||||
entry or writing it off with a {ref}`manual operation <reconciliation/manual-operations>`.
|
||||
4. Click the {guilabel}`Validate` button to confirm the reconciliation and move to the next
|
||||
transaction.
|
||||
|
||||
:::{tip}
|
||||
If you are not sure how to reconcile a particular transaction and would like to deal with it
|
||||
later, use the {guilabel}`To Check` button instead. All transactions marked as {guilabel}`To
|
||||
Check` can be displayed using the {guilabel}`To Check` filter.
|
||||
:::
|
||||
|
||||
:::{note}
|
||||
Bank transactions are posted on the **journal's suspense account** until reconciliation. At this
|
||||
point, reconciliation modifies the transaction journal entry by replacing the bank suspense
|
||||
account with the corresponding receivable, payable, or outstanding account.
|
||||
:::
|
||||
|
||||
(reconciliation-existing-entries)=
|
||||
|
||||
### Match existing entries
|
||||
|
||||
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
|
||||
models. The entry order is based on {doc}`reconciliation models <reconciliation_models>`, with
|
||||
suggested entries appearing first.
|
||||
|
||||
:::{tip}
|
||||
The search bar within the {guilabel}`Match Existing Entries` tab allows you to search for
|
||||
specific journal items.
|
||||
:::
|
||||
|
||||
(reconciliation-batch-payments)=
|
||||
|
||||
### Batch payments
|
||||
|
||||
[Batch payments](payments/batch-payments) allow you to group different payments to ease
|
||||
reconciliation. Use the {guilabel}`Batch Payments` tab to find batch payments for customers and
|
||||
vendors. Similarly to the {guilabel}`Match Existing Entries` tab, the {guilabel}`Batch Payments` tab
|
||||
has a search bar that allows you to search for specific batch payments.
|
||||
|
||||
(reconciliation-manual-operations)=
|
||||
|
||||
### Manual operations
|
||||
|
||||
If there is not an existing entry to match the selected transaction, you may instead wish to
|
||||
reconcile the transaction manually by choosing the correct account and amount. Then, complete any
|
||||
of the relevant optional fields.
|
||||
|
||||
:::{tip}
|
||||
You can use the {guilabel}`fully paid` option to reconcile a payment, even in cases where only a
|
||||
partial payment is received. A new line appears in the resulting entry section to reflect the
|
||||
open balance registered on the Account Receivable by default. You can choose another
|
||||
account by clicking on the new line in the resulting entry section and selecting the
|
||||
{guilabel}`Account` to record the open balance.
|
||||
:::
|
||||
|
||||
:::{note}
|
||||
Lines are silently reconciled unless a write-off entry is required, which launches a
|
||||
reconciliation wizard.
|
||||
|
||||
```{image} reconciliation/fully-paid.png
|
||||
:alt: Click on fully paid to manually set an invoice as entirely paid.
|
||||
```
|
||||
:::
|
||||
|
||||
(reconciliation-button)=
|
||||
|
||||
### Reconciliation model buttons
|
||||
|
||||
Use a {doc}`reconciliation model <reconciliation_models>` button for manual operations that are
|
||||
frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and
|
||||
can also be used in combination with existing entries.
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
===================
|
||||
Bank reconciliation
|
||||
===================
|
||||
|
||||
**Bank reconciliation** is the process of matching your :doc:`bank transactions <transactions>` with
|
||||
your business records, such as :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills
|
||||
<../vendor_bills>`, and :doc:`payments <../payments>`. Not only is this compulsory for most
|
||||
businesses, but it also offers several benefits, such as reduced risk of errors in financial
|
||||
reports, detection of fraudulent activities, and improved cash flow management.
|
||||
|
||||
Thanks to the bank :doc:`reconciliation models <reconciliation_models>`, Odoo pre-selects the
|
||||
matching entries automatically.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Bank reconciliation
|
||||
<https://www.odoo.com/slides/slide/bank-reconciliation-2724>`_
|
||||
- :doc:`bank_synchronization`
|
||||
- :doc:`transactions`
|
||||
|
||||
Bank reconciliation view
|
||||
========================
|
||||
|
||||
To access a bank journal's **reconciliation view**, go to your :guilabel:`Accounting Dashboard` and
|
||||
either:
|
||||
|
||||
- click the journal name (e.g., :guilabel:`Bank`) to display all transactions, including those
|
||||
previously reconciled or
|
||||
- click the :guilabel:`Reconcile items` button to display all transactions Odoo pre-selected for
|
||||
reconciliation. You can remove the :guilabel:`Not Matched` filter from the search bar to include
|
||||
previously reconciled transactions.
|
||||
|
||||
.. image:: reconciliation/bank-card.png
|
||||
:alt: Reaching the bank reconciliation tool from your accounting dashboard
|
||||
|
||||
The bank reconciliation view is structured into three distinct sections: transactions, counterpart
|
||||
entries, and resulting entry.
|
||||
|
||||
.. image:: reconciliation/user-interface.png
|
||||
:alt: The user interface of the reconciliation view of a bank journal.
|
||||
|
||||
Transactions
|
||||
The transactions section on the left shows all bank transactions, with the newest displayed
|
||||
first. Click a transaction to select it.
|
||||
|
||||
Counterpart entries
|
||||
The counterpart entries section on the bottom right displays the options to match the selected
|
||||
bank transaction. Multiple tabs are available, including
|
||||
:ref:`reconciliation/existing-entries`, :ref:`reconciliation/batch-payments`,
|
||||
:ref:`reconciliation/manual-operations`, and :guilabel:`Discuss`, which contains the chatter for
|
||||
the selected bank transaction.
|
||||
|
||||
Resulting entry
|
||||
The resulting entry section on the top right displays the selected bank transaction matched with
|
||||
the counterpart entries and includes any remaining debits or credits. In this section, you can
|
||||
validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model
|
||||
buttons <reconciliation/button>` are also available in the resulting entry section.
|
||||
|
||||
Reconcile transactions
|
||||
======================
|
||||
|
||||
Transactions can be matched automatically with the use of :doc:`reconciliation models
|
||||
<reconciliation_models>`, or they can be matched with :ref:`existing entries
|
||||
<reconciliation/existing-entries>`, :ref:`batch payments <reconciliation/batch-payments>`,
|
||||
:ref:`manual operations <reconciliation/manual-operations>`, and :ref:`reconciliation model buttons
|
||||
<reconciliation/button>`.
|
||||
|
||||
#. Select a transaction among unmatched bank transactions.
|
||||
#. Define the counterpart. There are several options for defining a counterpart, including
|
||||
:ref:`matching existing entries <reconciliation/existing-entries>`, :ref:`manual operations
|
||||
<reconciliation/manual-operations>`, :ref:`batch payments <reconciliation/batch-payments>`, and
|
||||
:ref:`reconciliation model buttons <reconciliation/button>`.
|
||||
#. If the resulting entry is not fully balanced, balance it by adding another existing counterpart
|
||||
entry or writing it off with a :ref:`manual operation <reconciliation/manual-operations>`.
|
||||
#. Click the :guilabel:`Validate` button to confirm the reconciliation and move to the next
|
||||
transaction.
|
||||
|
||||
.. tip::
|
||||
If you are not sure how to reconcile a particular transaction and would like to deal with it
|
||||
later, use the :guilabel:`To Check` button instead. All transactions marked as :guilabel:`To
|
||||
Check` can be displayed using the :guilabel:`To Check` filter.
|
||||
|
||||
.. note::
|
||||
Bank transactions are posted on the **journal's suspense account** until reconciliation. At this
|
||||
point, reconciliation modifies the transaction journal entry by replacing the bank suspense
|
||||
account with the corresponding receivable, payable, or outstanding account.
|
||||
|
||||
.. _reconciliation/existing-entries:
|
||||
|
||||
Match existing entries
|
||||
----------------------
|
||||
|
||||
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
|
||||
models. The entry order is based on :doc:`reconciliation models <reconciliation_models>`, with
|
||||
suggested entries appearing first.
|
||||
|
||||
.. tip::
|
||||
The search bar within the :guilabel:`Match Existing Entries` tab allows you to search for
|
||||
specific journal items.
|
||||
|
||||
.. _reconciliation/batch-payments:
|
||||
|
||||
Batch payments
|
||||
--------------
|
||||
|
||||
`Batch payments <payments/batch-payments>`_ allow you to group different payments to ease
|
||||
reconciliation. Use the :guilabel:`Batch Payments` tab to find batch payments for customers and
|
||||
vendors. Similarly to the :guilabel:`Match Existing Entries` tab, the :guilabel:`Batch Payments` tab
|
||||
has a search bar that allows you to search for specific batch payments.
|
||||
|
||||
.. _reconciliation/manual-operations:
|
||||
|
||||
Manual operations
|
||||
-----------------
|
||||
|
||||
If there is not an existing entry to match the selected transaction, you may instead wish to
|
||||
reconcile the transaction manually by choosing the correct account and amount. Then, complete any
|
||||
of the relevant optional fields.
|
||||
|
||||
.. tip::
|
||||
You can use the :guilabel:`fully paid` option to reconcile a payment, even in cases where only a
|
||||
partial payment is received. A new line appears in the resulting entry section to reflect the
|
||||
open balance registered on the Account Receivable by default. You can choose another
|
||||
account by clicking on the new line in the resulting entry section and selecting the
|
||||
:guilabel:`Account` to record the open balance.
|
||||
|
||||
.. note::
|
||||
Lines are silently reconciled unless a write-off entry is required, which launches a
|
||||
reconciliation wizard.
|
||||
|
||||
.. image:: reconciliation/fully-paid.png
|
||||
:alt: Click on fully paid to manually set an invoice as entirely paid.
|
||||
|
||||
.. _reconciliation/button:
|
||||
|
||||
Reconciliation model buttons
|
||||
----------------------------
|
||||
|
||||
Use a :doc:`reconciliation model <reconciliation_models>` button for manual operations that are
|
||||
frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and
|
||||
can also be used in combination with existing entries.
|
||||
@@ -0,0 +1,127 @@
|
||||
# Reconciliation models
|
||||
|
||||
Reconciliation models are used to automate the {doc}`bank reconciliation <reconciliation>` process,
|
||||
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models
|
||||
can also be helpful in handling {doc}`cash discounts <../customer_invoices/cash_discounts>`.
|
||||
|
||||
Each model is created based on a {ref}`model type <models/type>` and {guilabel}`bank transaction
|
||||
conditions`.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`bank_synchronization`
|
||||
- [Odoo Tutorials: Reconciliation models](https://www.odoo.com/slides/slide/reconciliation-models-1841?fullscreen=1)
|
||||
:::
|
||||
|
||||
(models-type)=
|
||||
|
||||
## Reconciliation model types
|
||||
|
||||
The reconciliation models are available by going to {menuselection}`Accounting --> Configuration
|
||||
--> Banks: Reconciliation Models`. For each reconciliation model, a {guilabel}`Type` must be set.
|
||||
Three types of models exist:
|
||||
|
||||
- {guilabel}`Button to generate counterpart entry`: a button is created in the resulting entry
|
||||
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
|
||||
reconcile with the active transaction based on the rules set in the model. The rules specified in
|
||||
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
|
||||
distribution;
|
||||
- {guilabel}`Rule to suggest counterpart entry`: used for recurring transactions to match the
|
||||
transaction to a new entry based on conditions that must match the information on the transaction;
|
||||
- {guilabel}`Rule to match invoices/bills`: used for recurring transactions to match the transaction
|
||||
to existing invoices, bills, or payments based on conditions that must match the information on
|
||||
the transaction.
|
||||
|
||||
## Default reconciliation models
|
||||
|
||||
In Odoo, different models are available by default depending on the company's fiscal localization.
|
||||
These can be updated if needed. Users can also create their own reconciliation models by clicking
|
||||
{guilabel}`New`.
|
||||
|
||||
:::{important}
|
||||
If a record matches with several reconciliation models, the first one in the *sequence* of models
|
||||
is applied. You can rearrange the order by dragging and dropping the handle next to the name.
|
||||
|
||||
```{image} reconciliation_models/list-view.png
|
||||
:alt: Rearrange the sequence of models in the list view.
|
||||
```
|
||||
:::
|
||||
|
||||
### Invoices/Bills perfect match
|
||||
|
||||
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching
|
||||
existing invoices or bills with a bank transaction based on set conditions.
|
||||
|
||||
```{image} reconciliation_models/invoices-bills-perfect-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
```
|
||||
|
||||
Odoo automatically reconciles the payment when the {guilabel}`Auto-validate` option is selected, and
|
||||
the model conditions are perfectly met. In this case, it expects to find on the bank statement's
|
||||
line the invoice/payment's reference (as {guilabel}`Label` is selected) and the partner's name
|
||||
(as {guilabel}`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
|
||||
the payment automatically.
|
||||
|
||||
### Invoices/Bills partial match if underpaid
|
||||
|
||||
This model suggests a customer invoice or vendor bill that partially matches the payment when the
|
||||
amount received is slightly lower than the invoice amount, for example in the case of
|
||||
**cash discounts**. The difference is reconciled with the account indicated in the
|
||||
{guilabel}`counterpart entries` tab.
|
||||
|
||||
The reconciliation model {guilabel}`Type` is {guilabel}`Rule to match invoices/bills`, and the
|
||||
{guilabel}`Payment tolerance` should be set.
|
||||
|
||||
```{image} reconciliation_models/partial-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
```
|
||||
|
||||
:::{note}
|
||||
The {guilabel}`Payment tolerance` is only applicable to lower payments. It is disregarded when an
|
||||
overpayment is received.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
{doc}`../customer_invoices/cash_discounts`
|
||||
:::
|
||||
|
||||
### Line with bank fees
|
||||
|
||||
This model suggests a counterpart entry according to the rules set in the model. In this case, the
|
||||
reconciliation model {guilabel}`Type` is {guilabel}`Rule to suggest counterpart entry`, and the
|
||||
{guilabel}`Label` can be used for example, to identify the information referring to the
|
||||
{guilabel}`Bank fees` in the label of the transaction.
|
||||
|
||||
```{image} reconciliation_models/bank-fees.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
```
|
||||
|
||||
:::{note}
|
||||
[Regular expressions](https://regexone.com/), often abbreviated as **Regex**, can be used in
|
||||
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
|
||||
powerful but also complex, so it's essential to use it judiciously and with a good understanding
|
||||
of the patterns you're working with.
|
||||
|
||||
To use regular expressions in your reconciliation models, set the {guilabel}`Transaction Type`
|
||||
to {guilabel}`Match Regex` and add your expression. Odoo automatically retrieves the
|
||||
transactions that match your Regex expression and the conditions specified in your model.
|
||||
|
||||
```{image} reconciliation_models/regex.png
|
||||
:alt: Using Regex in Odoo
|
||||
```
|
||||
:::
|
||||
|
||||
## Partner mapping
|
||||
|
||||
Partner mapping allows you to establish rules for automatically matching transactions to the correct
|
||||
partner account, saving time and reducing the risk of errors that can occur during manual
|
||||
reconciliation. For example, you can create a partner mapping rule for incoming payments with
|
||||
specific reference numbers or keywords in the transaction description. When an incoming payment
|
||||
meets these criteria, Odoo automatically maps it to the corresponding customer's account.
|
||||
|
||||
To create a partner mapping rule, go to the {guilabel}`Partner Mapping` tab and enter the
|
||||
{guilabel}`Find Text in Label`, {guilabel}`Find Text in Notes`, and {guilabel}`Partner`.
|
||||
|
||||
```{image} reconciliation_models/partner-mapping.png
|
||||
:alt: defining partner mapping
|
||||
```
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
=====================
|
||||
Reconciliation models
|
||||
=====================
|
||||
|
||||
Reconciliation models are used to automate the :doc:`bank reconciliation <reconciliation>` process,
|
||||
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models
|
||||
can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`.
|
||||
|
||||
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction
|
||||
conditions`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank_synchronization`
|
||||
- `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-1841?fullscreen=1>`_
|
||||
|
||||
.. _models/type:
|
||||
|
||||
Reconciliation model types
|
||||
==========================
|
||||
|
||||
The reconciliation models are available by going to :menuselection:`Accounting --> Configuration
|
||||
--> Banks: Reconciliation Models`. For each reconciliation model, a :guilabel:`Type` must be set.
|
||||
Three types of models exist:
|
||||
|
||||
- :guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry
|
||||
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
|
||||
reconcile with the active transaction based on the rules set in the model. The rules specified in
|
||||
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
|
||||
distribution;
|
||||
- :guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the
|
||||
transaction to a new entry based on conditions that must match the information on the transaction;
|
||||
- :guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction
|
||||
to existing invoices, bills, or payments based on conditions that must match the information on
|
||||
the transaction.
|
||||
|
||||
Default reconciliation models
|
||||
=============================
|
||||
|
||||
In Odoo, different models are available by default depending on the company's fiscal localization.
|
||||
These can be updated if needed. Users can also create their own reconciliation models by clicking
|
||||
:guilabel:`New`.
|
||||
|
||||
.. important::
|
||||
If a record matches with several reconciliation models, the first one in the *sequence* of models
|
||||
is applied. You can rearrange the order by dragging and dropping the handle next to the name.
|
||||
|
||||
.. image:: reconciliation_models/list-view.png
|
||||
:alt: Rearrange the sequence of models in the list view.
|
||||
|
||||
Invoices/Bills perfect match
|
||||
----------------------------
|
||||
|
||||
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching
|
||||
existing invoices or bills with a bank transaction based on set conditions.
|
||||
|
||||
.. image:: reconciliation_models/invoices-bills-perfect-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
|
||||
Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and
|
||||
the model conditions are perfectly met. In this case, it expects to find on the bank statement's
|
||||
line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name
|
||||
(as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
|
||||
the payment automatically.
|
||||
|
||||
Invoices/Bills partial match if underpaid
|
||||
-----------------------------------------
|
||||
|
||||
This model suggests a customer invoice or vendor bill that partially matches the payment when the
|
||||
amount received is slightly lower than the invoice amount, for example in the case of
|
||||
**cash discounts**. The difference is reconciled with the account indicated in the
|
||||
:guilabel:`counterpart entries` tab.
|
||||
|
||||
The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the
|
||||
:guilabel:`Payment tolerance` should be set.
|
||||
|
||||
.. image:: reconciliation_models/partial-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an
|
||||
overpayment is received.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../customer_invoices/cash_discounts`
|
||||
|
||||
Line with bank fees
|
||||
-------------------
|
||||
|
||||
This model suggests a counterpart entry according to the rules set in the model. In this case, the
|
||||
reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the
|
||||
:guilabel:`Label` can be used for example, to identify the information referring to the
|
||||
:guilabel:`Bank fees` in the label of the transaction.
|
||||
|
||||
.. image:: reconciliation_models/bank-fees.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
|
||||
.. note::
|
||||
`Regular expressions <https://regexone.com/>`_, often abbreviated as **Regex**, can be used in
|
||||
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
|
||||
powerful but also complex, so it's essential to use it judiciously and with a good understanding
|
||||
of the patterns you're working with.
|
||||
|
||||
To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type`
|
||||
to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the
|
||||
transactions that match your Regex expression and the conditions specified in your model.
|
||||
|
||||
.. image:: reconciliation_models/regex.png
|
||||
:alt: Using Regex in Odoo
|
||||
|
||||
Partner mapping
|
||||
===============
|
||||
|
||||
Partner mapping allows you to establish rules for automatically matching transactions to the correct
|
||||
partner account, saving time and reducing the risk of errors that can occur during manual
|
||||
reconciliation. For example, you can create a partner mapping rule for incoming payments with
|
||||
specific reference numbers or keywords in the transaction description. When an incoming payment
|
||||
meets these criteria, Odoo automatically maps it to the corresponding customer's account.
|
||||
|
||||
To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the
|
||||
:guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`.
|
||||
|
||||
.. image:: reconciliation_models/partner-mapping.png
|
||||
:alt: defining partner mapping
|
||||
@@ -0,0 +1,139 @@
|
||||
# Transactions
|
||||
|
||||
Importing transactions from your bank statements allows keeping track of bank account transactions
|
||||
and reconciling them with the ones recorded in your accounting.
|
||||
|
||||
{doc}`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
|
||||
want to use it or if your bank is not yet supported, other options exist:
|
||||
|
||||
- {ref}`Import bank transactions <transactions/import>` delivered by your bank;
|
||||
- {ref}`Register bank transactions <transactions/register>` manually.
|
||||
|
||||
:::{note}
|
||||
{ref}`Grouping transactions by statement <transactions/statements>` is optional.
|
||||
:::
|
||||
|
||||
(transactions-import)=
|
||||
|
||||
## 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)
|
||||
|
||||
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 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.
|
||||
|
||||
After setting the necessary formatting options and mapping the file columns with their related Odoo
|
||||
fields, you can run a {guilabel}`Test` and {guilabel}`Import` your bank transactions.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`/applications/essentials/export_import_data`
|
||||
:::
|
||||
|
||||
(transactions-register)=
|
||||
|
||||
## Register bank transactions manually
|
||||
|
||||
You can also record your bank transactions manually. To do so, go to {guilabel}`Accounting
|
||||
Dashboard`, click on the {guilabel}`Bank` journal, and then on {guilabel}`New`. Make sure to fill
|
||||
out the {guilabel}`Partner` and {guilabel}`Label` fields to ease the reconciliation process.
|
||||
|
||||
(transactions-statements)=
|
||||
|
||||
## Statements
|
||||
|
||||
A **bank statement** is a document provided by a bank or financial institution that lists the
|
||||
transactions that have occurred in a particular bank account over a specified period of time.
|
||||
|
||||
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
|
||||
on your business flow, you may want to record them for control purposes.
|
||||
|
||||
:::{important}
|
||||
If you want to compare the ending balances of your bank statements with the ending balances of
|
||||
your financial records, *don't forget to create an opening transaction* to record the bank
|
||||
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 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 (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.
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
Open the list of transactions by clicking on the name of the bank journal and switching to the list
|
||||
view. Select all the transactions corresponding to the bank statement, and, in the
|
||||
{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`.
|
||||
:::
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
============
|
||||
Transactions
|
||||
============
|
||||
|
||||
Importing transactions from your bank statements allows keeping track of bank account transactions
|
||||
and reconciling them with the ones recorded in your accounting.
|
||||
|
||||
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
|
||||
want to use it or if your bank is not yet supported, other options exist:
|
||||
|
||||
- :ref:`Import bank transactions <transactions/import>` delivered by your bank;
|
||||
- :ref:`Register bank transactions <transactions/register>` manually.
|
||||
|
||||
.. note::
|
||||
:ref:`Grouping transactions by statement <transactions/statements>` is optional.
|
||||
|
||||
.. _transactions/import:
|
||||
|
||||
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)
|
||||
|
||||
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 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.
|
||||
|
||||
After setting the necessary formatting options and mapping the file columns with their related Odoo
|
||||
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/essentials/export_import_data`
|
||||
|
||||
.. _transactions/register:
|
||||
|
||||
Register bank transactions manually
|
||||
===================================
|
||||
|
||||
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
|
||||
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
|
||||
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
|
||||
|
||||
.. _transactions/statements:
|
||||
|
||||
Statements
|
||||
==========
|
||||
|
||||
A **bank statement** is a document provided by a bank or financial institution that lists the
|
||||
transactions that have occurred in a particular bank account over a specified period of time.
|
||||
|
||||
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
|
||||
on your business flow, you may want to record them for control purposes.
|
||||
|
||||
.. important::
|
||||
If you want to compare the ending balances of your bank statements with the ending balances of
|
||||
your financial records, *don't forget to create an opening transaction* to record the bank
|
||||
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 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 (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.
|
||||
|
||||
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
|
||||
-------------------------------------
|
||||
|
||||
Open the list of transactions by clicking on the name of the bank journal and switching to the list
|
||||
view. Select all the transactions corresponding to the bank statement, and, in the
|
||||
: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`.
|
||||
@@ -0,0 +1,239 @@
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
# 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.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`/applications/finance/accounting/customer_invoices/overview`
|
||||
:::
|
||||
|
||||
From draft invoice to profit and loss report, the process involves several steps once the goods (or
|
||||
services) have been ordered/shipped (or rendered) to a customer, depending on the invoicing policy:
|
||||
|
||||
- {ref}`accounting/invoice/creation`
|
||||
- {ref}`accounting/invoice/confirmation`
|
||||
- {ref}`accounting/invoice/sending`
|
||||
- {ref}`accounting/invoice/paymentandreconciliation`
|
||||
- {ref}`accounting/invoice/followup`
|
||||
- {ref}`accounting/invoice/reporting`
|
||||
|
||||
(accounting-invoice-creation)=
|
||||
|
||||
## Invoice creation
|
||||
|
||||
Draft invoices can be created directly from documents like sales orders or purchase orders or
|
||||
manually from the {guilabel}`Customer Invoices` journal in the {guilabel}`Accounting Dashboard`.
|
||||
|
||||
An invoice must include the required information to enable the customer to pay promptly for their
|
||||
goods and services. Make sure the following fields are appropriately completed:
|
||||
|
||||
- {guilabel}`Customer`: When a customer is selected, Odoo automatically pulls information from the
|
||||
customer record like the invoice address,
|
||||
{doc}`preferred payment terms <customer_invoices/payment_terms>`,
|
||||
{doc}`fiscal positions <taxes/fiscal_positions>`, receivable account, and more onto the invoice.
|
||||
To change these values for this specific invoice, edit them directly on the invoice. To change
|
||||
them for future invoices, change the values on the contact record.
|
||||
- {guilabel}`Invoice Date`: If not set manually, this field is automatically set as the current date
|
||||
upon confirmation.
|
||||
- {guilabel}`Due Date` or {doc}`payment terms <customer_invoices/payment_terms>`: To specify when
|
||||
the customer has to pay the invoice.
|
||||
- {guilabel}`Journal`: 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`, {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
|
||||
impact until they are {ref}`confirmed <accounting/invoice/confirmation>`.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
{doc}`/applications/sales/sales/invoicing/proforma`
|
||||
:::
|
||||
|
||||
(accounting-invoice-confirmation)=
|
||||
|
||||
## Invoice confirmation
|
||||
|
||||
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 invoice a unique number from a defined {doc}`sequence
|
||||
<customer_invoices/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.
|
||||
:::
|
||||
|
||||
(accounting-invoice-sending)=
|
||||
|
||||
## Invoice sending
|
||||
|
||||
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.
|
||||
|
||||
:::{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:
|
||||
|
||||
1. Click {guilabel}`Print & Send`.
|
||||
|
||||
2. 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.
|
||||
:::
|
||||
|
||||
3. 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.
|
||||
|
||||
4. 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)=
|
||||
|
||||
## Payment and reconciliation
|
||||
|
||||
In Odoo, an invoice is considered {guilabel}`Paid` when the associated accounting entry has been
|
||||
reconciled with a corresponding bank transaction.
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`payments`
|
||||
- {doc}`bank/reconciliation`
|
||||
:::
|
||||
|
||||
(accounting-invoice-followup)=
|
||||
|
||||
## Payment follow-up
|
||||
|
||||
Odoo's {doc}`follow-up actions <payments/follow_up>` help companies follow up on customer invoices.
|
||||
Different actions can be set up to remind customers to pay their outstanding invoices, depending on
|
||||
how much the customer is overdue. These actions are bundled into follow-up levels that trigger when
|
||||
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
|
||||
same customer, the actions are performed on the most overdue invoice.
|
||||
|
||||
(accounting-invoice-reporting)=
|
||||
|
||||
## Reporting
|
||||
|
||||
(accounting-invoice-partner-reports)=
|
||||
|
||||
### Partner reports
|
||||
|
||||
(accounting-invoices-partner-ledger)=
|
||||
|
||||
#### Partner Ledger
|
||||
|
||||
The {guilabel}`Partner Ledger` report shows the balance of customers and suppliers. To access it,
|
||||
go to {menuselection}`Accounting --> Reporting --> Partner Ledger`.
|
||||
|
||||
(accounting-invoices-aging-report)=
|
||||
|
||||
#### Aged Receivable
|
||||
|
||||
To review outstanding customer invoices and their related due dates, use the {ref}`Aged Receivable
|
||||
<accounting/reporting/aged-receivable>` report. To access it, go to {menuselection}`Accounting -->
|
||||
Reporting --> Aged Receivable`.
|
||||
|
||||
(accounting-invoices-aged-payable)=
|
||||
|
||||
#### Aged Payable
|
||||
|
||||
To review outstanding vendor bills and their related due dates, use the {ref}`Aged Payable
|
||||
<accounting/reporting/aged-payable>` report. To access it, go to {menuselection}`Accounting -->
|
||||
Reporting --> Aged Payable`.
|
||||
|
||||
(accounting-invoices-profit-and-loss)=
|
||||
|
||||
### Profit and Loss
|
||||
|
||||
The {ref}`Profit and Loss <accounting/reporting/profit-and-loss>` statement shows details of income
|
||||
and expenses.
|
||||
|
||||
(accounting-invoices-balance-sheet)=
|
||||
|
||||
### Balance sheet
|
||||
|
||||
The {ref}`Balance Sheet <accounting/reporting/balance-sheet>` summarizes the company's assets,
|
||||
liabilities, and equity at a specific time.
|
||||
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
customer_invoices/overview
|
||||
customer_invoices/customer_addresses
|
||||
customer_invoices/payment_terms
|
||||
customer_invoices/terms_conditions
|
||||
customer_invoices/cash_discounts
|
||||
customer_invoices/credit_notes
|
||||
customer_invoices/cash_rounding
|
||||
customer_invoices/deferred_revenues
|
||||
customer_invoices/electronic_invoicing
|
||||
customer_invoices/sequence
|
||||
customer_invoices/snailmail
|
||||
customer_invoices/epc_qr_code
|
||||
customer_invoices/incoterms
|
||||
```
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
:show-content:
|
||||
|
||||
=================
|
||||
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.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/finance/accounting/customer_invoices/overview`
|
||||
|
||||
From draft invoice to profit and loss report, the process involves several steps once the goods (or
|
||||
services) have been ordered/shipped (or rendered) to a customer, depending on the invoicing policy:
|
||||
|
||||
- :ref:`accounting/invoice/creation`
|
||||
- :ref:`accounting/invoice/confirmation`
|
||||
- :ref:`accounting/invoice/sending`
|
||||
- :ref:`accounting/invoice/paymentandreconciliation`
|
||||
- :ref:`accounting/invoice/followup`
|
||||
- :ref:`accounting/invoice/reporting`
|
||||
|
||||
.. _accounting/invoice/creation:
|
||||
|
||||
Invoice creation
|
||||
================
|
||||
|
||||
Draft invoices can be created directly from documents like sales orders or purchase orders or
|
||||
manually from the :guilabel:`Customer Invoices` journal in the :guilabel:`Accounting Dashboard`.
|
||||
|
||||
An invoice must include the required information to enable the customer to pay promptly for their
|
||||
goods and services. Make sure the following fields are appropriately completed:
|
||||
|
||||
- :guilabel:`Customer`: When a customer is selected, Odoo automatically pulls information from the
|
||||
customer record like the invoice address,
|
||||
:doc:`preferred payment terms <customer_invoices/payment_terms>`,
|
||||
:doc:`fiscal positions <taxes/fiscal_positions>`, receivable account, and more onto the invoice.
|
||||
To change these values for this specific invoice, edit them directly on the invoice. To change
|
||||
them for future invoices, change the values on the contact record.
|
||||
- :guilabel:`Invoice Date`: If not set manually, this field is automatically set as the current date
|
||||
upon confirmation.
|
||||
- :guilabel:`Due Date` or :doc:`payment terms <customer_invoices/payment_terms>`: To specify when
|
||||
the customer has to pay the invoice.
|
||||
- :guilabel:`Journal`: 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`, :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
|
||||
impact until they are :ref:`confirmed <accounting/invoice/confirmation>`.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/sales/sales/invoicing/proforma`
|
||||
|
||||
.. _accounting/invoice/confirmation:
|
||||
|
||||
Invoice confirmation
|
||||
====================
|
||||
|
||||
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 invoice a unique number from a defined :doc:`sequence
|
||||
<customer_invoices/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.
|
||||
|
||||
.. _accounting/invoice/sending:
|
||||
|
||||
Invoice sending
|
||||
===============
|
||||
|
||||
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.
|
||||
|
||||
.. 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:
|
||||
|
||||
Payment and reconciliation
|
||||
==========================
|
||||
|
||||
In Odoo, an invoice is considered :guilabel:`Paid` when the associated accounting entry has been
|
||||
reconciled with a corresponding bank transaction.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payments`
|
||||
- :doc:`bank/reconciliation`
|
||||
|
||||
.. _accounting/invoice/followup:
|
||||
|
||||
Payment follow-up
|
||||
=================
|
||||
|
||||
Odoo's :doc:`follow-up actions <payments/follow_up>` help companies follow up on customer invoices.
|
||||
Different actions can be set up to remind customers to pay their outstanding invoices, depending on
|
||||
how much the customer is overdue. These actions are bundled into follow-up levels that trigger when
|
||||
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
|
||||
same customer, the actions are performed on the most overdue invoice.
|
||||
|
||||
.. _accounting/invoice/reporting:
|
||||
|
||||
Reporting
|
||||
=========
|
||||
|
||||
.. _accounting/invoice/partner-reports:
|
||||
|
||||
Partner reports
|
||||
---------------
|
||||
|
||||
.. _accounting/invoices/partner-ledger:
|
||||
|
||||
Partner Ledger
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The :guilabel:`Partner Ledger` report shows the balance of customers and suppliers. To access it,
|
||||
go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
|
||||
|
||||
.. _accounting/invoices/aging-report:
|
||||
|
||||
Aged Receivable
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
To review outstanding customer invoices and their related due dates, use the :ref:`Aged Receivable
|
||||
<accounting/reporting/aged-receivable>` report. To access it, go to :menuselection:`Accounting -->
|
||||
Reporting --> Aged Receivable`.
|
||||
|
||||
.. _accounting/invoices/aged-payable:
|
||||
|
||||
Aged Payable
|
||||
~~~~~~~~~~~~
|
||||
|
||||
To review outstanding vendor bills and their related due dates, use the :ref:`Aged Payable
|
||||
<accounting/reporting/aged-payable>` report. To access it, go to :menuselection:`Accounting -->
|
||||
Reporting --> Aged Payable`.
|
||||
|
||||
.. _accounting/invoices/profit-and-loss:
|
||||
|
||||
Profit and Loss
|
||||
---------------
|
||||
|
||||
The :ref:`Profit and Loss <accounting/reporting/profit-and-loss>` statement shows details of income
|
||||
and expenses.
|
||||
|
||||
.. _accounting/invoices/balance-sheet:
|
||||
|
||||
Balance sheet
|
||||
-------------
|
||||
|
||||
The :ref:`Balance Sheet <accounting/reporting/balance-sheet>` summarizes the company's assets,
|
||||
liabilities, and equity at a specific time.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
customer_invoices/overview
|
||||
customer_invoices/customer_addresses
|
||||
customer_invoices/payment_terms
|
||||
customer_invoices/terms_conditions
|
||||
customer_invoices/cash_discounts
|
||||
customer_invoices/credit_notes
|
||||
customer_invoices/cash_rounding
|
||||
customer_invoices/deferred_revenues
|
||||
customer_invoices/electronic_invoicing
|
||||
customer_invoices/sequence
|
||||
customer_invoices/snailmail
|
||||
customer_invoices/epc_qr_code
|
||||
customer_invoices/incoterms
|
||||
+67
-63
@@ -1,88 +1,86 @@
|
||||
================================
|
||||
Cash discounts and tax reduction
|
||||
================================
|
||||
# Cash discounts and tax reduction
|
||||
|
||||
**Cash discounts** are reductions in the amount a customer must pay for goods or services offered as
|
||||
an incentive for paying their invoice promptly. These discounts are typically a percentage of the
|
||||
total invoice amount and are applied if the customer pays within a specified time. Cash discounts
|
||||
can help a company maintain a steady cash flow.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
You issue a €100 invoice on the 1st of January. The full payment is due within 30 days, and you
|
||||
also offer a 2% discount if your customer pays you within seven days.
|
||||
|
||||
The customer can pay €98 up to the 8th of January. After that date, they would have to pay €100
|
||||
by the 31st of January.
|
||||
```
|
||||
|
||||
A :ref:`tax reduction <cash-discounts/tax-reductions>` can also be applied depending on the country
|
||||
A {ref}`tax reduction <cash-discounts/tax-reductions>` can also be applied depending on the country
|
||||
or region.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payment_terms`
|
||||
- :doc:`../payments`
|
||||
:::{seealso}
|
||||
- {doc}`payment_terms`
|
||||
- {doc}`../payments`
|
||||
:::
|
||||
|
||||
.. _cash-discounts/configuration:
|
||||
(cash-discounts-configuration)=
|
||||
|
||||
Configuration
|
||||
=============
|
||||
## Configuration
|
||||
|
||||
To grant cash discounts to customers, you must first verify the :ref:`gain and loss accounts
|
||||
<cash-discounts/gain-loss-accounts>`. Then, configure :ref:`payment terms
|
||||
<cash-discounts/payment-terms>` and add a cash discount by checking the :guilabel:`Early Discount`
|
||||
checkbox and filling in the discount percentage, discount days, and :ref:`tax
|
||||
To grant cash discounts to customers, you must first verify the {ref}`gain and loss accounts
|
||||
<cash-discounts/gain-loss-accounts>`. Then, configure {ref}`payment terms
|
||||
<cash-discounts/payment-terms>` and add a cash discount by checking the {guilabel}`Early Discount`
|
||||
checkbox and filling in the discount percentage, discount days, and {ref}`tax
|
||||
reduction <cash-discounts/tax-reductions>` fields.
|
||||
|
||||
.. _cash-discounts/gain-loss-accounts:
|
||||
(cash-discounts-gain-loss-accounts)=
|
||||
|
||||
Cash discount gain/loss accounts
|
||||
--------------------------------
|
||||
### Cash discount gain/loss accounts
|
||||
|
||||
With a cash discount, the amount you earn depends on whether the customer benefits from the cash
|
||||
discount or not. This inevitably leads to gains and losses, which are recorded on default accounts.
|
||||
|
||||
To modify these accounts, go to :menuselection:`Accounting --> Configuration --> Settings`, and, in
|
||||
the :guilabel:`Default Accounts` section, select the accounts you want to use for the
|
||||
:guilabel:`Cash Discount Gain account` and :guilabel:`Cash Discount Loss account`.
|
||||
To modify these accounts, go to {menuselection}`Accounting --> Configuration --> Settings`, and, in
|
||||
the {guilabel}`Default Accounts` section, select the accounts you want to use for the
|
||||
{guilabel}`Cash Discount Gain account` and {guilabel}`Cash Discount Loss account`.
|
||||
|
||||
.. _cash-discounts/payment-terms:
|
||||
(cash-discounts-payment-terms)=
|
||||
|
||||
Payment terms
|
||||
-------------
|
||||
### Payment terms
|
||||
|
||||
Cash discounts are defined on :doc:`payment terms <payment_terms>`. Configure them to your liking by
|
||||
going to :menuselection:`Accounting --> Configuration --> Payment Terms`, and make sure to fill out
|
||||
the discount percentage, discount days, and :ref:`tax reduction <cash-discounts/tax-reductions>`
|
||||
Cash discounts are defined on {doc}`payment terms <payment_terms>`. Configure them to your liking by
|
||||
going to {menuselection}`Accounting --> Configuration --> Payment Terms`, and make sure to fill out
|
||||
the discount percentage, discount days, and {ref}`tax reduction <cash-discounts/tax-reductions>`
|
||||
fields.
|
||||
|
||||
.. image:: cash_discounts/payment-terms.png
|
||||
:alt: Configuration of payment terms named "2/7 Net 30". The field "Description on Invoices"
|
||||
reads: "Payment terms: 30 Days, 2% Early Payment Discount under 7 days".
|
||||
```{image} cash_discounts/payment-terms.png
|
||||
:alt: |-
|
||||
: Configuration of payment terms named "2/7 Net 30". The field "Description on Invoices"
|
||||
: reads: "Payment terms: 30 Days, 2% Early Payment Discount under 7 days".
|
||||
```
|
||||
|
||||
.. _cash-discounts/tax-reductions:
|
||||
(cash-discounts-tax-reductions)=
|
||||
|
||||
Tax reductions
|
||||
--------------
|
||||
### Tax reductions
|
||||
|
||||
Depending on the country or region, the base amount used to compute the tax can vary, which can lead
|
||||
to a **tax reduction**. Since tax reductions are set on individual payment terms, each term can use
|
||||
a specific tax reduction.
|
||||
|
||||
To configure how the tax reduction is applied, go to a payment term with the :guilabel:`Early
|
||||
To configure how the tax reduction is applied, go to a payment term with the {guilabel}`Early
|
||||
Discount` checkbox enabled, and select one of the three following options:
|
||||
|
||||
- Always (upon invoice)
|
||||
The tax is always reduced. The base amount used to compute the tax is the discounted amount,
|
||||
: The tax is always reduced. The base amount used to compute the tax is the discounted amount,
|
||||
whether the customer benefits from the discount or not.
|
||||
|
||||
- On early payment
|
||||
The tax is reduced only if the customer pays early. The base amount used to compute the tax is the
|
||||
: The tax is reduced only if the customer pays early. The base amount used to compute the tax is the
|
||||
same as the sale: if the customer benefits from the reduction, then the tax is reduced. This means
|
||||
that, depending on the customer, the tax amount can vary after the invoice is issued.
|
||||
|
||||
- Never
|
||||
The tax is never reduced. The base amount used to compute the tax is the full amount, whether the
|
||||
: The tax is never reduced. The base amount used to compute the tax is the full amount, whether the
|
||||
customer benefits from the discount or not.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
|
||||
You issue a €100 invoice (tax-excluded) on the 1st of January, with a 21% tax rate. The full
|
||||
@@ -135,44 +133,50 @@ Discount` checkbox enabled, and select one of the three following options:
|
||||
* - 31st of January
|
||||
- €121.00
|
||||
- €100 + (21% of €100)
|
||||
```
|
||||
|
||||
.. note::
|
||||
- :ref:`Tax grids <tax-returns/tax-grids>`, which are used for the tax report, are correctly
|
||||
computed according to the :ref:`type of tax reduction <cash-discounts/tax-reductions>` you
|
||||
configured.
|
||||
- The **type of cash discount tax reduction** may be correctly pre-configured, depending on your
|
||||
:ref:`fiscal localization package <fiscal_localizations/packages>`.
|
||||
:::{note}
|
||||
- {ref}`Tax grids <tax-returns/tax-grids>`, which are used for the tax report, are correctly
|
||||
computed according to the {ref}`type of tax reduction <cash-discounts/tax-reductions>` you
|
||||
configured.
|
||||
- The **type of cash discount tax reduction** may be correctly pre-configured, depending on your
|
||||
{ref}`fiscal localization package <fiscal_localizations/packages>`.
|
||||
:::
|
||||
|
||||
.. _cash-discounts/customer-invoice:
|
||||
(cash-discounts-customer-invoice)=
|
||||
|
||||
Apply a cash discount to a customer invoice
|
||||
===========================================
|
||||
## Apply a cash discount to a customer invoice
|
||||
|
||||
On a customer invoice, apply a cash discount by selecting the :ref:`payment terms you created
|
||||
On a customer invoice, apply a cash discount by selecting the {ref}`payment terms you created
|
||||
<cash-discounts/payment-terms>`. Odoo automatically computes the correct amounts, tax amounts, due
|
||||
dates, and accounting records.
|
||||
|
||||
Under the :guilabel:`Journal Items` tab, you can display the discount details by clicking on the
|
||||
"toggle" button and adding the :guilabel:`Discount Date` and :guilabel:`Discount Amount` columns.
|
||||
Under the {guilabel}`Journal Items` tab, you can display the discount details by clicking on the
|
||||
"toggle" button and adding the {guilabel}`Discount Date` and {guilabel}`Discount Amount` columns.
|
||||
|
||||
.. image:: cash_discounts/invoice-journal-entry.png
|
||||
:alt: An invoice of €100.00 with "2/7 Net 30" selected as payment terms. The "Journal Items" tab
|
||||
is open, and the "Discount Date" and "Discount Amount" columns are displayed.
|
||||
```{image} cash_discounts/invoice-journal-entry.png
|
||||
:alt: "An invoice of \u20AC100.00 with \"2/7 Net 30\" selected as payment terms. The\
|
||||
: \ \"Journal Items\" tab\nis open, and the \"Discount Date\" and \"Discount Amount\"\
|
||||
: \ columns are displayed."
|
||||
```
|
||||
|
||||
The discount amount and due date are also displayed on the generated invoice report sent to the
|
||||
customer if the :guilabel:`Show installment dates` option is checked on the payment terms.
|
||||
customer if the {guilabel}`Show installment dates` option is checked on the payment terms.
|
||||
|
||||
.. image:: cash_discounts/invoice-print.png
|
||||
:alt: An invoice of €100.00 with the following text added to the terms and conditions: "30
|
||||
Days, 2% Early Payment Discount under 7 days. 118.58 € due if paid before 01/08/2023."
|
||||
```{image} cash_discounts/invoice-print.png
|
||||
:alt: "An invoice of \u20AC100.00 with the following text added to the terms and conditions:\
|
||||
: \ \"30\nDays, 2% Early Payment Discount under 7 days. 118.58 \u20AC due if paid\
|
||||
: \ before 01/08/2023.\""
|
||||
```
|
||||
|
||||
Payment reconciliation
|
||||
----------------------
|
||||
### Payment reconciliation
|
||||
|
||||
When you record a :doc:`payment <../payments>` or :doc:`reconcile your bank transactions
|
||||
When you record a {doc}`payment <../payments>` or {doc}`reconcile your bank transactions
|
||||
<../bank/reconciliation>`, Odoo takes the customer payment's date into account to determine if the
|
||||
customer can benefit from the cash discount or not.
|
||||
|
||||
.. note::
|
||||
If your customer pays the discount amount *after* the discount date, you can always decide to
|
||||
mark the invoice as fully paid with a write-off or as partially paid.
|
||||
:::{note}
|
||||
If your customer pays the discount amount *after* the discount date, you can always decide to
|
||||
mark the invoice as fully paid with a write-off or as partially paid.
|
||||
:::
|
||||
|
||||
+9
-12
@@ -1,6 +1,4 @@
|
||||
=============
|
||||
Cash rounding
|
||||
=============
|
||||
# Cash rounding
|
||||
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
of currency, or the smallest coin, is higher than the minimum unit
|
||||
@@ -10,16 +8,16 @@ For example, some countries require their companies to round up or
|
||||
down the total amount of an invoice to the nearest five cents, when
|
||||
the payment is made in cash.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
## Configuration
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`
|
||||
Go to {menuselection}`Accounting --> Configuration --> Settings`
|
||||
and enable *Cash Rounding*, then click on *Save*.
|
||||
|
||||
.. image:: cash_rounding/cash_rounding01.png
|
||||
:align: center
|
||||
```{image} cash_rounding/cash_rounding01.png
|
||||
:align: center
|
||||
```
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Cash Roundings`,
|
||||
Go to {menuselection}`Accounting --> Configuration --> Cash Roundings`,
|
||||
and click on *Create*.
|
||||
|
||||
Define here your *Rounding Precision*, *Rounding Strategy*, and
|
||||
@@ -29,12 +27,11 @@ Odoo supports two **rounding strategies**:
|
||||
|
||||
1. **Add a rounding line**: a *rounding* line is added on the invoice.
|
||||
You have to define which account records the cash roundings.
|
||||
|
||||
2. **Modify tax amount**: the rounding is applied in the taxes section.
|
||||
|
||||
Apply roundings
|
||||
===============
|
||||
## Apply roundings
|
||||
|
||||
When editing a draft invoice, open the *Other Info* tab, go to the
|
||||
*Accounting Information* section, and select the appropriate *Cash
|
||||
Rounding Method*.
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
# Credit notes and refunds
|
||||
|
||||
A **credit/debit note**, or **credit/debit memo**, is a document issued to a customer that notifies
|
||||
them that they have been *credited/debited* a certain amount.
|
||||
|
||||
Several use cases can lead to a credit note, such as:
|
||||
|
||||
> - a mistake in the invoice
|
||||
> - a return of the goods, or a rejection of the services
|
||||
> - the goods delivered are damaged
|
||||
|
||||
Debit notes are less common but are most frequently used to track debts owed by customers or to
|
||||
vendors because of modifications to confirmed customer invoices or vendor bills.
|
||||
|
||||
:::{note}
|
||||
Issuing a credit/debit note is the only legal way to cancel, refund, or modify a validated
|
||||
invoice. Do not forget to **register the payment** afterward if you need to send money back to
|
||||
your customer and/or validate the
|
||||
{doc}`return </applications/sales/sales/products_prices/returns>` if a storable product is
|
||||
returned.
|
||||
:::
|
||||
|
||||
(accounting-issue-credit-note)=
|
||||
|
||||
## Issue a credit note
|
||||
|
||||
You can create a credit note from scratch by going to {menuselection}`Accounting --> Customers -->
|
||||
Credit Notes`, and by clicking on {guilabel}`Create`. Filling out a credit note form works the same
|
||||
way as an invoice form.
|
||||
|
||||
However, most of the time, credit notes are generated directly from the related invoices. To do so,
|
||||
go to {menuselection}`Accounting --> Customers --> Invoices`, open the related **customer invoice**,
|
||||
and click on {guilabel}`Credit Note`.
|
||||
|
||||
You can choose between three options:
|
||||
|
||||
> - {guilabel}`Partial Refund`
|
||||
> - {guilabel}`Full Refund`
|
||||
> - {guilabel}`Full refund and new draft invoice`
|
||||
|
||||
:::{note}
|
||||
A credit note sequence starts with `R` and is followed by the number of the related document
|
||||
(e.g., RINV/2019/0004 is related to the invoice INV/2019/0004).
|
||||
:::
|
||||
|
||||
### Partial refund
|
||||
|
||||
When selecting the {guilabel}`Partial Refund` option, Odoo creates a draft credit note already
|
||||
prefilled with all the necessary information from the original invoice. This is the option to choose
|
||||
if you wish to do a partial refund or if you want to modify any detail of the credit note.
|
||||
|
||||
:::{note}
|
||||
This is the only option for invoices marked as *in payment* or *paid*.
|
||||
:::
|
||||
|
||||
### Full refund
|
||||
|
||||
When selecting the {guilabel}`Full Refund` option, Odoo creates a credit note, automatically
|
||||
validates it, and reconciles it with the related invoice.
|
||||
|
||||
```{image} credit_notes/credit_notes02.png
|
||||
:alt: Full refund credit note.
|
||||
```
|
||||
|
||||
This is the option to choose for a full refund or to **cancel** a *validated* invoice.
|
||||
|
||||
### Full refund and new draft invoice
|
||||
|
||||
When selecting the {guilabel}`Full refund and new draft invoice` option, Odoo creates a credit note,
|
||||
automatically validates it, reconciles it with the related invoice, and opens a new draft invoice
|
||||
prefilled with the same details from the original invoice.
|
||||
|
||||
This is the option to **modify** the content of a *validated* invoice.
|
||||
|
||||
(accounting-issue-debit-note)=
|
||||
|
||||
## Issue a debit note
|
||||
|
||||
You can create a debit note from scratch by going to {menuselection}`Accounting --> Customers -->
|
||||
Invoices` or by clicking on the related invoice you wish to issue a debit note for. On the invoice
|
||||
form view, click {guilabel}`Cog icon (⚙) --> Debit Note`, fill in the information, and click
|
||||
{guilabel}`Create Debit Note`.
|
||||
|
||||
## Record a vendor refund
|
||||
|
||||
**Vendor refunds** are recorded the same way as credit notes:
|
||||
|
||||
You can either create a credit note from scratch by going to {menuselection}`Accounting --> Vendors
|
||||
--> Refund`, and by clicking on {guilabel}`Create`; or by opening the related **vendor bill**, and
|
||||
clicking on {guilabel}`Credit Note`.
|
||||
|
||||
## Record a debit note
|
||||
|
||||
**Debit notes** from vendors are recorded in a similar way to how they are issued to customers:
|
||||
|
||||
Go to {menuselection}`Accounting --> Vendors --> Bills`, open the related bill you wish to record a
|
||||
debit note for, and click {guilabel}`Cog icon (⚙) --> Debit Note`. Fill in the information, and click
|
||||
{guilabel}`Create Debit Note`.
|
||||
|
||||
## Journal entries
|
||||
|
||||
Issuing a credit/debit note from an invoice/bill creates a **reverse entry** that zeroes out the
|
||||
journal items generated by the original invoice.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
The journal invoice of an entry:
|
||||
|
||||
.. image:: credit_notes/credit_notes03.png
|
||||
:alt: Invoice journal entry.
|
||||
|
||||
And here is the credit note’s journal entry generated to reverse
|
||||
the original invoice above:
|
||||
|
||||
.. image:: credit_notes/credit_notes04.png
|
||||
:alt: Credit note journal entry reverses the invoice journal entry.
|
||||
```
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
========================
|
||||
Credit notes and refunds
|
||||
========================
|
||||
|
||||
A **credit/debit note**, or **credit/debit memo**, is a document issued to a customer that notifies
|
||||
them that they have been *credited/debited* a certain amount.
|
||||
|
||||
Several use cases can lead to a credit note, such as:
|
||||
|
||||
- a mistake in the invoice
|
||||
- a return of the goods, or a rejection of the services
|
||||
- the goods delivered are damaged
|
||||
|
||||
Debit notes are less common but are most frequently used to track debts owed by customers or to
|
||||
vendors because of modifications to confirmed customer invoices or vendor bills.
|
||||
|
||||
.. note::
|
||||
Issuing a credit/debit note is the only legal way to cancel, refund, or modify a validated
|
||||
invoice. Do not forget to **register the payment** afterward if you need to send money back to
|
||||
your customer and/or validate the
|
||||
:doc:`return </applications/sales/sales/products_prices/returns>` if a storable product is
|
||||
returned.
|
||||
|
||||
.. _accounting/issue-credit-note:
|
||||
|
||||
Issue a credit note
|
||||
===================
|
||||
|
||||
You can create a credit note from scratch by going to :menuselection:`Accounting --> Customers -->
|
||||
Credit Notes`, and by clicking on :guilabel:`Create`. Filling out a credit note form works the same
|
||||
way as an invoice form.
|
||||
|
||||
However, most of the time, credit notes are generated directly from the related invoices. To do so,
|
||||
go to :menuselection:`Accounting --> Customers --> Invoices`, open the related **customer invoice**,
|
||||
and click on :guilabel:`Credit Note`.
|
||||
|
||||
You can choose between three options:
|
||||
|
||||
- :guilabel:`Partial Refund`
|
||||
- :guilabel:`Full Refund`
|
||||
- :guilabel:`Full refund and new draft invoice`
|
||||
|
||||
.. note::
|
||||
A credit note sequence starts with `R` and is followed by the number of the related document
|
||||
(e.g., RINV/2019/0004 is related to the invoice INV/2019/0004).
|
||||
|
||||
Partial refund
|
||||
--------------
|
||||
|
||||
When selecting the :guilabel:`Partial Refund` option, Odoo creates a draft credit note already
|
||||
prefilled with all the necessary information from the original invoice. This is the option to choose
|
||||
if you wish to do a partial refund or if you want to modify any detail of the credit note.
|
||||
|
||||
.. note::
|
||||
This is the only option for invoices marked as *in payment* or *paid*.
|
||||
|
||||
Full refund
|
||||
-----------
|
||||
|
||||
When selecting the :guilabel:`Full Refund` option, Odoo creates a credit note, automatically
|
||||
validates it, and reconciles it with the related invoice.
|
||||
|
||||
.. image:: credit_notes/credit_notes02.png
|
||||
:alt: Full refund credit note.
|
||||
|
||||
This is the option to choose for a full refund or to **cancel** a *validated* invoice.
|
||||
|
||||
Full refund and new draft invoice
|
||||
---------------------------------
|
||||
|
||||
When selecting the :guilabel:`Full refund and new draft invoice` option, Odoo creates a credit note,
|
||||
automatically validates it, reconciles it with the related invoice, and opens a new draft invoice
|
||||
prefilled with the same details from the original invoice.
|
||||
|
||||
This is the option to **modify** the content of a *validated* invoice.
|
||||
|
||||
.. _accounting/issue-debit-note:
|
||||
|
||||
Issue a debit note
|
||||
==================
|
||||
|
||||
You can create a debit note from scratch by going to :menuselection:`Accounting --> Customers -->
|
||||
Invoices` or by clicking on the related invoice you wish to issue a debit note for. On the invoice
|
||||
form view, click :guilabel:`Cog icon (⚙) --> Debit Note`, fill in the information, and click
|
||||
:guilabel:`Create Debit Note`.
|
||||
|
||||
Record a vendor refund
|
||||
======================
|
||||
|
||||
**Vendor refunds** are recorded the same way as credit notes:
|
||||
|
||||
You can either create a credit note from scratch by going to :menuselection:`Accounting --> Vendors
|
||||
--> Refund`, and by clicking on :guilabel:`Create`; or by opening the related **vendor bill**, and
|
||||
clicking on :guilabel:`Credit Note`.
|
||||
|
||||
Record a debit note
|
||||
===================
|
||||
|
||||
**Debit notes** from vendors are recorded in a similar way to how they are issued to customers:
|
||||
|
||||
Go to :menuselection:`Accounting --> Vendors --> Bills`, open the related bill you wish to record a
|
||||
debit note for, and click :guilabel:`Cog icon (⚙) --> Debit Note`. Fill in the information, and click
|
||||
:guilabel:`Create Debit Note`.
|
||||
|
||||
Journal entries
|
||||
===============
|
||||
|
||||
Issuing a credit/debit note from an invoice/bill creates a **reverse entry** that zeroes out the
|
||||
journal items generated by the original invoice.
|
||||
|
||||
|
||||
.. example::
|
||||
The journal invoice of an entry:
|
||||
|
||||
.. image:: credit_notes/credit_notes03.png
|
||||
:alt: Invoice journal entry.
|
||||
|
||||
And here is the credit note’s journal entry generated to reverse
|
||||
the original invoice above:
|
||||
|
||||
.. image:: credit_notes/credit_notes04.png
|
||||
:alt: Credit note journal entry reverses the invoice journal entry.
|
||||
@@ -0,0 +1,43 @@
|
||||
# Delivery and invoice addresses
|
||||
|
||||
Companies often have multiple locations, and it is common that a customer invoice should be sent to
|
||||
one address and the delivery should be sent to another. Odoo's **Customer Addresses** feature is
|
||||
designed to handle this scenario by making it easy to specify which address to use for each case.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`overview`
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
To specify a sales order's invoice and delivery addresses, first go to {menuselection}`Accounting
|
||||
--> Configuration --> Settings`. In the {guilabel}`Customer Invoices` section, enable
|
||||
{guilabel}`Customer Addresses` and click {guilabel}`Save`.
|
||||
|
||||
On quotations and sales orders, there are now fields for {guilabel}`Invoice Address` and
|
||||
{guilabel}`Delivery Address`. If the customer has an invoice or delivery address listed on their
|
||||
{ref}`contact record <sales/send_quotations/contact-form-config>`, the corresponding field uses that
|
||||
address, by default, but any contact's address can be used instead.
|
||||
|
||||
:::{seealso}
|
||||
For more information, refer to the documentation on {ref}`Contact Form Configuration
|
||||
<sales/send_quotations/contact-form-config>`.
|
||||
:::
|
||||
|
||||
## Invoice and deliver to different addresses
|
||||
|
||||
Delivery orders and their delivery slip reports use the address set as the {guilabel}`Delivery
|
||||
Address` on the sales order. By default, invoice reports show both the shipping address and the
|
||||
invoice address to assure the customer that the delivery is going to the correct location.
|
||||
|
||||
Emails also go to different addresses. The quotation and sales order are sent to the main contact's
|
||||
email, as usual, but the invoice is sent to the email of the address set as the
|
||||
{guilabel}`Invoice Address` on the sales order.
|
||||
|
||||
:::{note}
|
||||
- Reports, such as the delivery slip and invoice report, can be {doc}`customized using Studio
|
||||
</applications/studio/pdf_reports>`.
|
||||
- If {doc}`Send by Post <snailmail>` is checked when you click {guilabel}`Send & Print`, the
|
||||
invoice will be mailed to the invoice address.
|
||||
:::
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
==============================
|
||||
Delivery and invoice addresses
|
||||
==============================
|
||||
|
||||
Companies often have multiple locations, and it is common that a customer invoice should be sent to
|
||||
one address and the delivery should be sent to another. Odoo's **Customer Addresses** feature is
|
||||
designed to handle this scenario by making it easy to specify which address to use for each case.
|
||||
|
||||
.. seealso::
|
||||
:doc:`overview`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To specify a sales order's invoice and delivery addresses, first go to :menuselection:`Accounting
|
||||
--> Configuration --> Settings`. In the :guilabel:`Customer Invoices` section, enable
|
||||
:guilabel:`Customer Addresses` and click :guilabel:`Save`.
|
||||
|
||||
On quotations and sales orders, there are now fields for :guilabel:`Invoice Address` and
|
||||
:guilabel:`Delivery Address`. If the customer has an invoice or delivery address listed on their
|
||||
:ref:`contact record <sales/send_quotations/contact-form-config>`, the corresponding field uses that
|
||||
address, by default, but any contact's address can be used instead.
|
||||
|
||||
.. seealso::
|
||||
For more information, refer to the documentation on :ref:`Contact Form Configuration
|
||||
<sales/send_quotations/contact-form-config>`.
|
||||
|
||||
|
||||
Invoice and deliver to different addresses
|
||||
==========================================
|
||||
|
||||
Delivery orders and their delivery slip reports use the address set as the :guilabel:`Delivery
|
||||
Address` on the sales order. By default, invoice reports show both the shipping address and the
|
||||
invoice address to assure the customer that the delivery is going to the correct location.
|
||||
|
||||
Emails also go to different addresses. The quotation and sales order are sent to the main contact's
|
||||
email, as usual, but the invoice is sent to the email of the address set as the
|
||||
:guilabel:`Invoice Address` on the sales order.
|
||||
|
||||
.. note::
|
||||
- Reports, such as the delivery slip and invoice report, can be :doc:`customized using Studio
|
||||
</applications/studio/pdf_reports>`.
|
||||
- If :doc:`Send by Post <snailmail>` is checked when you click :guilabel:`Send & Print`, the
|
||||
invoice will be mailed to the invoice address.
|
||||
+61
-53
@@ -1,6 +1,4 @@
|
||||
=================
|
||||
Deferred revenues
|
||||
=================
|
||||
# Deferred revenues
|
||||
|
||||
**Deferred revenues**, or **unearned revenues**, are invoices addressed to customers
|
||||
for goods yet to be delivered or services yet to be rendered.
|
||||
@@ -12,106 +10,113 @@ These future revenues must be deferred on the company's balance sheet among the
|
||||
until they can be **recognized**, at once or over a defined period, on the profit and loss
|
||||
statement.
|
||||
|
||||
For example, let's say a business sells a software license of $1200 for 1 year. They immediately
|
||||
For example, let's say a business sells a software license of \$1200 for 1 year. They immediately
|
||||
invoice it to the customer but can't consider it earned yet, as the future months of licensing have
|
||||
not yet been delivered. Therefore, they post this new revenue in a deferred revenue account and
|
||||
recognize it on a monthly basis. Each month, for the next 12 months, $100 will be recognized as
|
||||
recognize it on a monthly basis. Each month, for the next 12 months, \$100 will be recognized as
|
||||
revenue.
|
||||
|
||||
Odoo Accounting handles deferred revenues by spreading them in multiple entries that are posted
|
||||
periodically.
|
||||
|
||||
.. note::
|
||||
The server checks once a day if an entry must be posted. It might then take up to 24 hours before
|
||||
you see a change from :guilabel:`Draft` to :guilabel:`Posted`.
|
||||
:::{note}
|
||||
The server checks once a day if an entry must be posted. It might then take up to 24 hours before
|
||||
you see a change from {guilabel}`Draft` to {guilabel}`Posted`.
|
||||
:::
|
||||
|
||||
Configuration
|
||||
=============
|
||||
## Configuration
|
||||
|
||||
Make sure the default settings are correctly configured for your business. To do so, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`. The following options are available:
|
||||
{menuselection}`Accounting --> Configuration --> Settings`. The following options are available:
|
||||
|
||||
Journal
|
||||
The deferral entries are posted in this journal.
|
||||
|
||||
: The deferral entries are posted in this journal.
|
||||
|
||||
Deferred Revenue
|
||||
Revenues are deferred on this Current Liability account until they are recognized.
|
||||
|
||||
: Revenues are deferred on this Current Liability account until they are recognized.
|
||||
|
||||
Generate Entries
|
||||
By default, Odoo :ref:`automatically generates <customer_invoices/deferred/generate_on_validation>`
|
||||
|
||||
: By default, Odoo {ref}`automatically generates <customer_invoices/deferred/generate_on_validation>`
|
||||
the deferral entries when you post a customer invoice. However, you can also choose to
|
||||
:ref:`generate them manually <customer_invoices/deferred/generate_manually>` by selecting the
|
||||
:guilabel:`Manually & Grouped` option instead.
|
||||
{ref}`generate them manually <customer_invoices/deferred/generate_manually>` by selecting the
|
||||
{guilabel}`Manually & Grouped` option instead.
|
||||
|
||||
Based on
|
||||
Suppose an invoice of $1200 must be deferred over 12 months.
|
||||
|
||||
- The :guilabel:`Months` option accounts for $100 each month prorated to the number of days in
|
||||
that month (e.g., $50 for the first month if the :guilabel:`Start Date` is set to the 15th of
|
||||
: Suppose an invoice of \$1200 must be deferred over 12 months.
|
||||
|
||||
- The {guilabel}`Months` option accounts for \$100 each month prorated to the number of days in
|
||||
that month (e.g., \$50 for the first month if the {guilabel}`Start Date` is set to the 15th of
|
||||
the month).
|
||||
|
||||
- The :guilabel:`Full Months` option considers each month started to be full (e.g., $100 for the
|
||||
first month even if the :guilabel:`Start Date` is set to the 15th of the month); this means that
|
||||
with the :guilabel:`Full Months` option, a full $100 is recognized in the first partial month,
|
||||
- The {guilabel}`Full Months` option considers each month started to be full (e.g., \$100 for the
|
||||
first month even if the {guilabel}`Start Date` is set to the 15th of the month); this means that
|
||||
with the {guilabel}`Full Months` option, a full \$100 is recognized in the first partial month,
|
||||
eliminating the need for a 13th month to recognize any remainder as would be the case when using
|
||||
the :guilabel:`Months` option.
|
||||
the {guilabel}`Months` option.
|
||||
- The {guilabel}`Days` option accounts for different amounts depending on the number of days in
|
||||
each month (e.g., ~\$102 for January and ~\$92 for February).
|
||||
|
||||
- The :guilabel:`Days` option accounts for different amounts depending on the number of days in
|
||||
each month (e.g., ~$102 for January and ~$92 for February).
|
||||
(customer-invoices-deferred-generate-on-validation)=
|
||||
|
||||
.. _customer_invoices/deferred/generate_on_validation:
|
||||
## Generate deferral entries on validation
|
||||
|
||||
Generate deferral entries on validation
|
||||
=======================================
|
||||
|
||||
.. tip::
|
||||
Make sure the :guilabel:`Start Date` and :guilabel:`End Date` fields are visible in the
|
||||
:guilabel:`Invoice Lines` tab. In most cases, the :guilabel:`Start Date` should be in the same
|
||||
month as the :guilabel:`Invoice Date`. Deferred revenue entries are posted from the invoice
|
||||
date and are displayed in the report accordingly.
|
||||
:::{tip}
|
||||
Make sure the {guilabel}`Start Date` and {guilabel}`End Date` fields are visible in the
|
||||
{guilabel}`Invoice Lines` tab. In most cases, the {guilabel}`Start Date` should be in the same
|
||||
month as the {guilabel}`Invoice Date`. Deferred revenue entries are posted from the invoice
|
||||
date and are displayed in the report accordingly.
|
||||
:::
|
||||
|
||||
For each line of the invoice that should be deferred, specify the start and end dates of the
|
||||
deferral period.
|
||||
|
||||
If the :guilabel:`Generate Entries` field in the **Settings** is set to :guilabel:`On invoice/bill
|
||||
If the {guilabel}`Generate Entries` field in the **Settings** is set to {guilabel}`On invoice/bill
|
||||
validation`, Odoo automatically generates the deferral entries when the invoice is validated. Click
|
||||
the :guilabel:`Deferred Entries` smart button to see them.
|
||||
the {guilabel}`Deferred Entries` smart button to see them.
|
||||
|
||||
One entry, dated on the same day as the invoice's accounting date, moves the invoice amounts from
|
||||
the income account to the deferred account. The other entries are deferral entries which, month
|
||||
after month, move the invoice amounts from the deferred account to the income account to recognize
|
||||
the revenue.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
You can defer a January invoice of $1200 over 12 months by specifying a start date of 01/01/2023
|
||||
and an end date of 12/31/2023. At the end of August, $800 is recognized as an income,
|
||||
whereas $400 remains on the deferred account.
|
||||
```
|
||||
|
||||
Reporting
|
||||
=========
|
||||
## Reporting
|
||||
|
||||
The deferred revenue report computes an overview of the necessary deferral entries for each account.
|
||||
To access it, go to :menuselection:`Accounting --> Reporting --> Deferred Revenue`.
|
||||
To access it, go to {menuselection}`Accounting --> Reporting --> Deferred Revenue`.
|
||||
|
||||
To view the journal items of each account, click on the account name and then :guilabel:`Journal
|
||||
To view the journal items of each account, click on the account name and then {guilabel}`Journal
|
||||
Items`.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenue_report.png
|
||||
:alt: Deferred revenue report
|
||||
```{image} deferred_revenues/deferred_revenue_report.png
|
||||
:alt: Deferred revenue report
|
||||
```
|
||||
|
||||
.. note::
|
||||
Only invoices whose accounting date is before the end of the period of the report
|
||||
are taken into account.
|
||||
:::{note}
|
||||
Only invoices whose accounting date is before the end of the period of the report
|
||||
are taken into account.
|
||||
:::
|
||||
|
||||
.. _customer_invoices/deferred/generate_manually:
|
||||
(customer-invoices-deferred-generate-manually)=
|
||||
|
||||
Generate grouped deferral entries manually
|
||||
==========================================
|
||||
## Generate grouped deferral entries manually
|
||||
|
||||
If you have a lot of deferred revenues and wish to reduce the number of journal entries created, you
|
||||
can generate deferral entries manually. To do so, set the :guilabel:`Generate Entries` field in the
|
||||
**Settings** to :guilabel:`Manually & Grouped`. Odoo then aggregates the deferred amounts in a
|
||||
can generate deferral entries manually. To do so, set the {guilabel}`Generate Entries` field in the
|
||||
**Settings** to {guilabel}`Manually & Grouped`. Odoo then aggregates the deferred amounts in a
|
||||
single entry.
|
||||
|
||||
At the end of each month, go to :menuselection:`Accounting --> Reporting --> Deferred Revenue` and
|
||||
click the :guilabel:`Generate Entries` button. This generates two deferral entries:
|
||||
At the end of each month, go to {menuselection}`Accounting --> Reporting --> Deferred Revenue` and
|
||||
click the {guilabel}`Generate Entries` button. This generates two deferral entries:
|
||||
|
||||
- One dated at the end of the month which aggregates, for each account, all the deferred amounts
|
||||
of that month. This means that a part of the deferred revenue is recognized at the end of that
|
||||
@@ -119,6 +124,7 @@ click the :guilabel:`Generate Entries` button. This generates two deferral entri
|
||||
- The reversal of this created entry, dated on the following day (i.e., the first day of the
|
||||
next month) to cancel the previous entry.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
There are two invoices:
|
||||
|
||||
@@ -185,3 +191,5 @@ click the :guilabel:`Generate Entries` button. This generates two deferral entri
|
||||
|
||||
Therefore, at the end of December, invoices A and B are fully recognized as income
|
||||
only once in spite of all the created entries thanks to the reversal mechanism.
|
||||
```
|
||||
|
||||
@@ -0,0 +1,318 @@
|
||||
# Electronic invoicing ({abbr}`EDI (electronic data interchange)`)
|
||||
|
||||
EDI, or electronic data interchange, is the inter-company communication of business documents, such
|
||||
as purchase orders and invoices, in a standard format. Sending documents according to an EDI
|
||||
standard ensures that the machine receiving the message can interpret the information correctly.
|
||||
Various EDI file formats exist and are available depending on your company's country.
|
||||
|
||||
EDI feature enables automating the administration between companies and might also be required by
|
||||
some governments for fiscal control or to facilitate the administration.
|
||||
|
||||
Electronic invoicing of your documents such as customer invoices, credit notes or vendor bills is
|
||||
one of the application of EDI.
|
||||
|
||||
Odoo supports e-invoicing in many countries. Refer to the country's page for more details:
|
||||
|
||||
- {doc}`Argentina <electronic_invoicing/argentina>`
|
||||
- {doc}`Austria <electronic_invoicing/austria>`
|
||||
- {doc}`Belgium <electronic_invoicing/belgium>`
|
||||
- {doc}`Brazil <electronic_invoicing/brazil>`
|
||||
- {doc}`Chile <electronic_invoicing/chile>`
|
||||
- {doc}`Colombia <electronic_invoicing/colombia>`
|
||||
- {doc}`Croatia <electronic_invoicing/croatia>`
|
||||
- {doc}`Denmark <electronic_invoicing/denmark>`
|
||||
- {doc}`Ecuador <electronic_invoicing/ecuador>`
|
||||
- {doc}`Estonia <electronic_invoicing/estonia>`
|
||||
- {doc}`Finland <electronic_invoicing/finland>`
|
||||
- {doc}`France <electronic_invoicing/france>`
|
||||
- {doc}`Germany <electronic_invoicing/germany>`
|
||||
- {doc}`Hungary <electronic_invoicing/hungary>`
|
||||
- {doc}`Ireland <electronic_invoicing/ireland>`
|
||||
- {doc}`Italy <electronic_invoicing/italy>`
|
||||
- {doc}`Latvia <electronic_invoicing/latvia>`
|
||||
- {doc}`Lithuania <electronic_invoicing/lithuania>`
|
||||
- {doc}`Luxembourg <electronic_invoicing/luxembourg>`
|
||||
- {doc}`Mexico <electronic_invoicing/mexico>`
|
||||
- {doc}`Netherlands <electronic_invoicing/netherlands>`
|
||||
- {doc}`Norway <electronic_invoicing/norway>`
|
||||
- {doc}`Peru <electronic_invoicing/peru>`
|
||||
- {doc}`Poland <electronic_invoicing/poland>`
|
||||
- {doc}`Portugal <electronic_invoicing/portugal>`
|
||||
- {doc}`Romania <electronic_invoicing/romania>`
|
||||
- {doc}`Slovenia <electronic_invoicing/slovenia>`
|
||||
- {doc}`Spain <electronic_invoicing/spain>`
|
||||
- {doc}`Spain - Basque Country <electronic_invoicing/basque_country>`
|
||||
- {doc}`Uruguay <electronic_invoicing/uruguay>`
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Fiscal localizations documentation <../../fiscal_localizations>`
|
||||
:::
|
||||
|
||||
(e-invoicing-configuration)=
|
||||
|
||||
## Configuration
|
||||
|
||||
By default, the format available in the {ref}`send window <e-invoicing/generation>` depends on your
|
||||
customer's country.
|
||||
|
||||
You can define a specific e-invoicing format for each customer. To do so, go to
|
||||
{menuselection}`Accounting --> Customers --> Customers`, open the customer form, go to the
|
||||
{guilabel}`Accounting` tab and select the appropriate format.
|
||||
|
||||
```{image} electronic_invoicing/customer-form.png
|
||||
:alt: Select an EDI format for a specific customer
|
||||
```
|
||||
|
||||
### National electronic invoicing
|
||||
|
||||
Depending on your company's country (e.g., {doc}`Italy <../../fiscal_localizations/italy>`,
|
||||
{doc}`Spain <../../fiscal_localizations/spain>`, {doc}`Mexico
|
||||
<../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in
|
||||
a specific format for all your invoices. In this case, you can define a default e-invoicing format
|
||||
for your sales journal.
|
||||
|
||||
To do so, go to {menuselection}`Accounting --> Configuration --> Journals`, open your sales journal,
|
||||
go to the {guilabel}`Advanced Settings` tab, and enable the formats you need for this journal.
|
||||
|
||||
(e-invoicing-generation)=
|
||||
|
||||
## E-invoices generation
|
||||
|
||||
From a confirmed invoice, click {guilabel}`Send & Print` to open the send window. Check the
|
||||
e-invoicing option to generate and attach the e-invoice file.
|
||||
|
||||
```{image} electronic_invoicing/send-window.png
|
||||
:alt: The Peppol option is checked and an e-invoicing XML file is attached to the email.
|
||||
```
|
||||
|
||||
## Peppol
|
||||
|
||||
The [Peppol](https://peppol.org/about/) network ensures the exchange of documents and information
|
||||
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
|
||||
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
|
||||
documents.
|
||||
|
||||
Odoo is an **access point** and an {abbr}`SMP (Service Metadata Publisher)`, enabling electronic
|
||||
invoicing transactions without the need to send invoices and bills by email or post.
|
||||
|
||||
If not done yet, {ref}`install <general/install>` the {guilabel}`Peppol` module (`account_peppol`).
|
||||
|
||||
:::{important}
|
||||
- Peppol registration is **free** and available in Odoo Community
|
||||
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
|
||||
**Refunds** via Peppol.
|
||||
- You can send and receive in one of the following supported document formats:
|
||||
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
|
||||
- The following
|
||||
**countries**
|
||||
are eligible for
|
||||
**Peppol registration in Odoo**
|
||||
:
|
||||
Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
|
||||
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
|
||||
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
|
||||
:::
|
||||
|
||||
### Registration
|
||||
|
||||
Go to {menuselection}`Accounting --> Configuration --> Settings`. If you do not have the
|
||||
Peppol module installed, first tick the {guilabel}`Enable PEPPOL` checkbox and then **manually
|
||||
save**. Click {guilabel}`Start sending via Peppol` to open the registration form.
|
||||
|
||||
:::{note}
|
||||
This registration form also pops up if you choose to {guilabel}`Send & Print` an
|
||||
invoice via Peppol without completing the registration process.
|
||||
:::
|
||||
|
||||
```{image} electronic_invoicing/peppol-registration-settings.png
|
||||
:alt: Peppol registration button
|
||||
```
|
||||
|
||||
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
|
||||
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
|
||||
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
|
||||
Odoo database and receive other documents in another software, register as a **sender**.
|
||||
|
||||
:::{tip}
|
||||
- You can always register as a sender first and register to receive documents later.
|
||||
- When registering, you can specify if you would also like to receive documents.
|
||||
:::
|
||||
|
||||
```{image} electronic_invoicing/peppol-registration-wizard.png
|
||||
:alt: Peppol registration form
|
||||
```
|
||||
|
||||
Fill in the following information:
|
||||
|
||||
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
|
||||
service provider, insert the {guilabel}`Migration key` from the previous provider (the field
|
||||
becomes visible after you tick the checkbox).
|
||||
- {guilabel}`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
For example, the preferred EAS code for most companies in Belgium is `0208`.
|
||||
- {guilabel}`Endpoint`: this is usually a Company Registry number or a VAT number.
|
||||
- {guilabel}`Phone`: phone number including the country code (e.g., `+32` in Belgium).
|
||||
- {guilabel}`Email`: this is the email Odoo can use to contact you regarding your Peppol
|
||||
registration.
|
||||
|
||||
If you want to explore or demo Peppol, you can choose to register in {guilabel}`Demo` mode.
|
||||
Otherwise, select {guilabel}`Live`.
|
||||
|
||||
:::{tip}
|
||||
- Selecting {guilabel}`Demo` simulates everything in Odoo. There is no sending, receiving, or
|
||||
partner verification.
|
||||
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
|
||||
allows to register on Peppol and send/receive test invoices to/from other participants.
|
||||
To do so, enable the {ref}`developer-mode`, open the **Settings** app, go to
|
||||
{menuselection}`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
|
||||
Click the parameter and change the {guilabel}`Value` to `test`. Go back to the Peppol setup
|
||||
menu in the **Settings** app. The option {guilabel}`Test` is now available.
|
||||
|
||||
```{image} electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode parameter
|
||||
```
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- [Peppol EAS - European Commision](https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/)
|
||||
- [Peppol Endpoint - OpenPeppol eDEC Code Lists](https://docs.peppol.eu/edelivery/codelists/)
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
:::
|
||||
|
||||
When set up, request a verification code to be sent to you by clicking {guilabel}`Send a
|
||||
registration code by SMS`. A text message containing a code is sent to the phone number provided to
|
||||
finalize the verification process.
|
||||
|
||||
```{image} electronic_invoicing/peppol-phone-verification.png
|
||||
:alt: phone validation
|
||||
```
|
||||
|
||||
Once you enter the code and click {guilabel}`Register`, your Peppol participant status is updated.
|
||||
If you chose to only send documents, then the status changes to {guilabel}`Can send but
|
||||
not receive`.
|
||||
If you opted to receive documents as well, the status changes to {guilabel}`Can send, pending
|
||||
registration to receive`. In that case, it should be automatically activated within a day.
|
||||
|
||||
Then, set the default journal for receiving vendor bills in the {guilabel}`Incoming Invoices
|
||||
Journal`.
|
||||
|
||||
:::{tip}
|
||||
To manually trigger the cron that checks the registration status, enable the
|
||||
{ref}`developer-mode`, then go to {menuselection}`Settings --> Technical --> Scheduled Actions`,
|
||||
and search for the {guilabel}`PEPPOL: update participant status` action.
|
||||
:::
|
||||
|
||||
Your receiver application status should be updated soon after you are registered on the Peppol
|
||||
network.
|
||||
|
||||
```{image} electronic_invoicing/peppol-receiver.png
|
||||
:alt: receiver application
|
||||
```
|
||||
|
||||
All invoices and vendor bills can now be sent directly using the Peppol network.
|
||||
|
||||
:::{important}
|
||||
To update the email that Odoo can use to contact you, modify the email and click
|
||||
{guilabel}`Update contact details`.
|
||||
:::
|
||||
|
||||
### Configure Peppol services
|
||||
|
||||
Once you are registered on Odoo SMP, the {guilabel}`Configure Peppol Services` button
|
||||
becomes visible to allow you to enable or disable document formats that other participants
|
||||
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
|
||||
on the installed modules).
|
||||
|
||||
### Contact verification
|
||||
|
||||
Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they
|
||||
are also registered as a Peppol participant.
|
||||
|
||||
To do so, go to {menuselection}`Accounting --> Customers --> Customers` and open the customer's
|
||||
form. Then go to {menuselection}`Accounting tab --> Electronic Invoicing`, select the correct
|
||||
format, and make sure their {guilabel}`Peppol EAS code` and the {guilabel}`Endpoint` are filled in.
|
||||
Then, click {guilabel}`Verify`. If the contact exists on the network, their Peppol endpoint validity
|
||||
is set to Valid.
|
||||
|
||||
```{image} electronic_invoicing/peppol-contact-verify.png
|
||||
:alt: verify contact registration
|
||||
```
|
||||
|
||||
:::{important}
|
||||
While Odoo prefills both the EAS code and the Endpoint number based on the information available
|
||||
for a contact, it is better to confirm these details directly with the contact.
|
||||
:::
|
||||
|
||||
It is possible to verify the Peppol participant status of several customers at once.
|
||||
To do so, go to {menuselection}`Accounting --> Customers --> Customers` and switch to the list view.
|
||||
Select the customers you want to verify and then click {menuselection}`Actions --> Verify Peppol`.
|
||||
|
||||
If the participant is registered on the Peppol network but cannot receive the format you selected
|
||||
for them, the {guilabel}`Peppol endpoint validity` label changes to {guilabel}`Cannot
|
||||
receive this format`.
|
||||
|
||||
```{image} electronic_invoicing/peppol-participant-format.png
|
||||
:alt: verify contact ubl format
|
||||
```
|
||||
|
||||
### Send invoices
|
||||
|
||||
Once ready to send an invoice via the Peppol network, simply click {guilabel}`Send & Print` on the
|
||||
invoice form. To queue multiple invoices, select them in the list view and click
|
||||
{menuselection}`Actions --> Send & Print`; they will be sent in a batch later on. Both
|
||||
{guilabel}`BIS Billing 3.0` and {guilabel}`Send via PEPPOL` checkboxes need to be ticked.
|
||||
|
||||
```{image} electronic_invoicing/peppol-send-print.png
|
||||
:alt: Send peppol invoice
|
||||
```
|
||||
|
||||
Posted invoices that can be sent via Peppol are marked as {guilabel}`Peppol Ready`.
|
||||
To display them, use the {guilabel}`Peppol Ready` filter or access the Accounting dashboard and
|
||||
click {guilabel}`Peppol ready invoices` on the corresponding sales journal.
|
||||
|
||||
```{image} electronic_invoicing/peppol-ready-invoices.png
|
||||
:alt: Filter Peppol ready invoices
|
||||
```
|
||||
|
||||
Once the invoices are sent via Peppol, the status is changed to {guilabel}`Processing`. The
|
||||
status is changed to `Done` after they have been successfully delivered to the contact's Access
|
||||
Point.
|
||||
|
||||
```{image} electronic_invoicing/peppol-message-processing.png
|
||||
:alt: Peppol message status
|
||||
```
|
||||
|
||||
:::{tip}
|
||||
By default, the Peppol status column is hidden on the Invoices list view. You can choose to have
|
||||
it displayed by selecting it from the optional columns, accessible from the top right corner of
|
||||
the Invoices list view.
|
||||
:::
|
||||
|
||||
A cron runs regularly to check the status of these invoices. It is possible to check the status
|
||||
before the cron runs by clicking {guilabel}`Fetch Peppol invoice status` in the corresponding
|
||||
sales journal on the Accounting dashboard.
|
||||
|
||||
```{image} electronic_invoicing/peppol-fetch-message-status.png
|
||||
:alt: Fetch invoice Peppol status
|
||||
```
|
||||
|
||||
### Receive vendor bills
|
||||
|
||||
Once a day, a cron checks whether any new documents have been sent to you via the Peppol network.
|
||||
These documents are imported, and the corresponding vendor bills are created automatically as
|
||||
drafts.
|
||||
|
||||
```{image} electronic_invoicing/peppol-receive-bills.png
|
||||
:alt: peppol receive bills
|
||||
```
|
||||
|
||||
If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the
|
||||
Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click
|
||||
{guilabel}`Fetch from Peppol`.
|
||||
|
||||
```{image} electronic_invoicing/peppol-fetch-bills.png
|
||||
:alt: Fetch bills from Peppol
|
||||
```
|
||||
|
||||
@@ -1,299 +0,0 @@
|
||||
================================================================
|
||||
Electronic invoicing (:abbr:`EDI (electronic data interchange)`)
|
||||
================================================================
|
||||
|
||||
EDI, or electronic data interchange, is the inter-company communication of business documents, such
|
||||
as purchase orders and invoices, in a standard format. Sending documents according to an EDI
|
||||
standard ensures that the machine receiving the message can interpret the information correctly.
|
||||
Various EDI file formats exist and are available depending on your company's country.
|
||||
|
||||
EDI feature enables automating the administration between companies and might also be required by
|
||||
some governments for fiscal control or to facilitate the administration.
|
||||
|
||||
Electronic invoicing of your documents such as customer invoices, credit notes or vendor bills is
|
||||
one of the application of EDI.
|
||||
|
||||
Odoo supports e-invoicing in many countries. Refer to the country's page for more details:
|
||||
|
||||
- :doc:`Argentina <electronic_invoicing/argentina>`
|
||||
- :doc:`Austria <electronic_invoicing/austria>`
|
||||
- :doc:`Belgium <electronic_invoicing/belgium>`
|
||||
- :doc:`Brazil <electronic_invoicing/brazil>`
|
||||
- :doc:`Chile <electronic_invoicing/chile>`
|
||||
- :doc:`Colombia <electronic_invoicing/colombia>`
|
||||
- :doc:`Croatia <electronic_invoicing/croatia>`
|
||||
- :doc:`Denmark <electronic_invoicing/denmark>`
|
||||
- :doc:`Ecuador <electronic_invoicing/ecuador>`
|
||||
- :doc:`Estonia <electronic_invoicing/estonia>`
|
||||
- :doc:`Finland <electronic_invoicing/finland>`
|
||||
- :doc:`France <electronic_invoicing/france>`
|
||||
- :doc:`Germany <electronic_invoicing/germany>`
|
||||
- :doc:`Hungary <electronic_invoicing/hungary>`
|
||||
- :doc:`Ireland <electronic_invoicing/ireland>`
|
||||
- :doc:`Italy <electronic_invoicing/italy>`
|
||||
- :doc:`Latvia <electronic_invoicing/latvia>`
|
||||
- :doc:`Lithuania <electronic_invoicing/lithuania>`
|
||||
- :doc:`Luxembourg <electronic_invoicing/luxembourg>`
|
||||
- :doc:`Mexico <electronic_invoicing/mexico>`
|
||||
- :doc:`Netherlands <electronic_invoicing/netherlands>`
|
||||
- :doc:`Norway <electronic_invoicing/norway>`
|
||||
- :doc:`Peru <electronic_invoicing/peru>`
|
||||
- :doc:`Poland <electronic_invoicing/poland>`
|
||||
- :doc:`Portugal <electronic_invoicing/portugal>`
|
||||
- :doc:`Romania <electronic_invoicing/romania>`
|
||||
- :doc:`Slovenia <electronic_invoicing/slovenia>`
|
||||
- :doc:`Spain <electronic_invoicing/spain>`
|
||||
- :doc:`Spain - Basque Country <electronic_invoicing/basque_country>`
|
||||
- :doc:`Uruguay <electronic_invoicing/uruguay>`
|
||||
|
||||
.. seealso::
|
||||
:doc:`Fiscal localizations documentation <../../fiscal_localizations>`
|
||||
|
||||
.. _e-invoicing/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
By default, the format available in the :ref:`send window <e-invoicing/generation>` depends on your
|
||||
customer's country.
|
||||
|
||||
You can define a specific e-invoicing format for each customer. To do so, go to
|
||||
:menuselection:`Accounting --> Customers --> Customers`, open the customer form, go to the
|
||||
:guilabel:`Accounting` tab and select the appropriate format.
|
||||
|
||||
.. image:: electronic_invoicing/customer-form.png
|
||||
:alt: Select an EDI format for a specific customer
|
||||
|
||||
National electronic invoicing
|
||||
-----------------------------
|
||||
|
||||
Depending on your company's country (e.g., :doc:`Italy <../../fiscal_localizations/italy>`,
|
||||
:doc:`Spain <../../fiscal_localizations/spain>`, :doc:`Mexico
|
||||
<../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in
|
||||
a specific format for all your invoices. In this case, you can define a default e-invoicing format
|
||||
for your sales journal.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your sales journal,
|
||||
go to the :guilabel:`Advanced Settings` tab, and enable the formats you need for this journal.
|
||||
|
||||
.. _e-invoicing/generation:
|
||||
|
||||
E-invoices generation
|
||||
=====================
|
||||
|
||||
From a confirmed invoice, click :guilabel:`Send & Print` to open the send window. Check the
|
||||
e-invoicing option to generate and attach the e-invoice file.
|
||||
|
||||
.. image:: electronic_invoicing/send-window.png
|
||||
:alt: The Peppol option is checked and an e-invoicing XML file is attached to the email.
|
||||
|
||||
Peppol
|
||||
======
|
||||
|
||||
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
|
||||
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
|
||||
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
|
||||
documents.
|
||||
|
||||
Odoo is an **access point** and an :abbr:`SMP (Service Metadata Publisher)`, enabling electronic
|
||||
invoicing transactions without the need to send invoices and bills by email or post.
|
||||
|
||||
If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
|
||||
|
||||
.. important::
|
||||
- Peppol registration is **free** and available in Odoo Community
|
||||
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
|
||||
**Refunds** via Peppol.
|
||||
- You can send and receive in one of the following supported document formats:
|
||||
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
|
||||
- | The following **countries** are eligible for **Peppol registration in Odoo**:
|
||||
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
|
||||
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
|
||||
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
|
||||
|
||||
Registration
|
||||
------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
|
||||
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
|
||||
save**. Click :guilabel:`Start sending via Peppol` to open the registration form.
|
||||
|
||||
.. note::
|
||||
This registration form also pops up if you choose to :guilabel:`Send & Print` an
|
||||
invoice via Peppol without completing the registration process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-settings.png
|
||||
:alt: Peppol registration button
|
||||
|
||||
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
|
||||
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
|
||||
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
|
||||
Odoo database and receive other documents in another software, register as a **sender**.
|
||||
|
||||
.. tip::
|
||||
- You can always register as a sender first and register to receive documents later.
|
||||
- When registering, you can specify if you would also like to receive documents.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-wizard.png
|
||||
:alt: Peppol registration form
|
||||
|
||||
Fill in the following information:
|
||||
|
||||
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
|
||||
service provider, insert the :guilabel:`Migration key` from the previous provider (the field
|
||||
becomes visible after you tick the checkbox).
|
||||
- :guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
For example, the preferred EAS code for most companies in Belgium is `0208`.
|
||||
- :guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number.
|
||||
- :guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium).
|
||||
- :guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol
|
||||
registration.
|
||||
|
||||
If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode.
|
||||
Otherwise, select :guilabel:`Live`.
|
||||
|
||||
.. tip::
|
||||
- Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or
|
||||
partner verification.
|
||||
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
|
||||
allows to register on Peppol and send/receive test invoices to/from other participants.
|
||||
To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to
|
||||
:menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
|
||||
Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup
|
||||
menu in the **Settings** app. The option :guilabel:`Test` is now available.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode parameter
|
||||
|
||||
.. seealso::
|
||||
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
|
||||
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
|
||||
When set up, request a verification code to be sent to you by clicking :guilabel:`Send a
|
||||
registration code by SMS`. A text message containing a code is sent to the phone number provided to
|
||||
finalize the verification process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-phone-verification.png
|
||||
:alt: phone validation
|
||||
|
||||
Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated.
|
||||
If you chose to only send documents, then the status changes to :guilabel:`Can send but
|
||||
not receive`.
|
||||
If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending
|
||||
registration to receive`. In that case, it should be automatically activated within a day.
|
||||
|
||||
Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices
|
||||
Journal`.
|
||||
|
||||
.. tip::
|
||||
To manually trigger the cron that checks the registration status, enable the
|
||||
:ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`,
|
||||
and search for the :guilabel:`PEPPOL: update participant status` action.
|
||||
|
||||
Your receiver application status should be updated soon after you are registered on the Peppol
|
||||
network.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-receiver.png
|
||||
:alt: receiver application
|
||||
|
||||
All invoices and vendor bills can now be sent directly using the Peppol network.
|
||||
|
||||
.. important::
|
||||
To update the email that Odoo can use to contact you, modify the email and click
|
||||
:guilabel:`Update contact details`.
|
||||
|
||||
Configure Peppol services
|
||||
-------------------------
|
||||
|
||||
Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button
|
||||
becomes visible to allow you to enable or disable document formats that other participants
|
||||
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
|
||||
on the installed modules).
|
||||
|
||||
Contact verification
|
||||
--------------------
|
||||
|
||||
Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they
|
||||
are also registered as a Peppol participant.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and open the customer's
|
||||
form. Then go to :menuselection:`Accounting tab --> Electronic Invoicing`, select the correct
|
||||
format, and make sure their :guilabel:`Peppol EAS code` and the :guilabel:`Endpoint` are filled in.
|
||||
Then, click :guilabel:`Verify`. If the contact exists on the network, their Peppol endpoint validity
|
||||
is set to Valid.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-contact-verify.png
|
||||
:alt: verify contact registration
|
||||
|
||||
.. important::
|
||||
While Odoo prefills both the EAS code and the Endpoint number based on the information available
|
||||
for a contact, it is better to confirm these details directly with the contact.
|
||||
|
||||
It is possible to verify the Peppol participant status of several customers at once.
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
|
||||
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
|
||||
|
||||
If the participant is registered on the Peppol network but cannot receive the format you selected
|
||||
for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot
|
||||
receive this format`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-participant-format.png
|
||||
:alt: verify contact ubl format
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
Once ready to send an invoice via the Peppol network, simply click :guilabel:`Send & Print` on the
|
||||
invoice form. To queue multiple invoices, select them in the list view and click
|
||||
:menuselection:`Actions --> Send & Print`; they will be sent in a batch later on. Both
|
||||
:guilabel:`BIS Billing 3.0` and :guilabel:`Send via PEPPOL` checkboxes need to be ticked.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-send-print.png
|
||||
:alt: Send peppol invoice
|
||||
|
||||
Posted invoices that can be sent via Peppol are marked as :guilabel:`Peppol Ready`.
|
||||
To display them, use the :guilabel:`Peppol Ready` filter or access the Accounting dashboard and
|
||||
click :guilabel:`Peppol ready invoices` on the corresponding sales journal.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-ready-invoices.png
|
||||
:alt: Filter Peppol ready invoices
|
||||
|
||||
Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The
|
||||
status is changed to `Done` after they have been successfully delivered to the contact's Access
|
||||
Point.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-message-processing.png
|
||||
:alt: Peppol message status
|
||||
|
||||
.. tip::
|
||||
By default, the Peppol status column is hidden on the Invoices list view. You can choose to have
|
||||
it displayed by selecting it from the optional columns, accessible from the top right corner of
|
||||
the Invoices list view.
|
||||
|
||||
A cron runs regularly to check the status of these invoices. It is possible to check the status
|
||||
before the cron runs by clicking :guilabel:`Fetch Peppol invoice status` in the corresponding
|
||||
sales journal on the Accounting dashboard.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-fetch-message-status.png
|
||||
:alt: Fetch invoice Peppol status
|
||||
|
||||
Receive vendor bills
|
||||
--------------------
|
||||
|
||||
Once a day, a cron checks whether any new documents have been sent to you via the Peppol network.
|
||||
These documents are imported, and the corresponding vendor bills are created automatically as
|
||||
drafts.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-receive-bills.png
|
||||
:alt: peppol receive bills
|
||||
|
||||
If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the
|
||||
Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click
|
||||
:guilabel:`Fetch from Peppol`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-fetch-bills.png
|
||||
:alt: Fetch bills from Peppol
|
||||
+27
-27
@@ -1,40 +1,38 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
======================================
|
||||
Odoo electronic invoicing in Argentina
|
||||
======================================
|
||||
# Odoo electronic invoicing in Argentina
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Argentina's regulatory standards and compatible with the requirements set
|
||||
forth by the `Administración Federal de Ingresos Públicos (AFIP) <https://www.afip.gob.ar/>`_.
|
||||
forth by the [Administración Federal de Ingresos Públicos (AFIP)](https://www.afip.gob.ar/).
|
||||
|
||||
Legal framework for e-invoicing in Argentina
|
||||
============================================
|
||||
## Legal framework for e-invoicing in Argentina
|
||||
|
||||
In Argentina, e-invoicing is regulated by the :abbr:`AFIP (Administración Federal de Ingresos
|
||||
In Argentina, e-invoicing is regulated by the {abbr}`AFIP (Administración Federal de Ingresos
|
||||
Públicos)` and is mandatory for most businesses to ensure tax compliance and transparency. The
|
||||
primary regulations governing e-invoicing include:
|
||||
|
||||
- `General Resolution No. 4290/2018 <https://biblioteca.afip.gob.ar/search/query/norma.aspx?p=t:RAG|n:4290|o:3|a:2018|f:02/08/2018>`_
|
||||
- [General Resolution No. 4290/2018](https://biblioteca.afip.gob.ar/search/query/norma.aspx?p=t:RAG|n:4290|o:3|a:2018|f:02/08/2018)
|
||||
which establishes the mandatory use of electronic invoices for specific economic activities and
|
||||
turnover thresholds.
|
||||
- Fiscal code regulations: Requires electronic invoices for all VAT-registered businesses, including
|
||||
B2B, :abbr:`B2G (business-to-government)`, and B2C transactions.
|
||||
- Implementation of :abbr:`CAE (Código de Autorización Electrónico)`: Every electronic invoice must
|
||||
include a :abbr:`CAE (Código de Autorización Electrónico)` issued by the :abbr:`AFIP
|
||||
B2B, {abbr}`B2G (business-to-government)`, and B2C transactions.
|
||||
- Implementation of {abbr}`CAE (Código de Autorización Electrónico)`: Every electronic invoice must
|
||||
include a {abbr}`CAE (Código de Autorización Electrónico)` issued by the {abbr}`AFIP
|
||||
(Administración Federal de Ingresos Públicos)`, ensuring its validity and authenticity.
|
||||
|
||||
Compliance with Argentinian e-invoicing regulations
|
||||
===================================================
|
||||
## Compliance with Argentinian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies the process of adhering to Argentina's e-invoicing regulations, offering
|
||||
features designed to ensure compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports Argentina's authorized e-invoice formats, including :abbr:`FE
|
||||
(Factura Electrónica)` with :abbr:`AFIP (Administración Federal de Ingresos Públicos)`-compliant
|
||||
digital validation, XML with :abbr:`CAE (Código de Autorización Electrónico)` authorization for
|
||||
real-time integration with :abbr:`AFIP (Administración Federal de Ingresos Públicos)`, and
|
||||
digitally signed PDF invoices featuring :abbr:`CAE (Código de Autorización Electrónico)` and
|
||||
- **Supported formats**: Odoo supports Argentina's authorized e-invoice formats, including {abbr}`FE
|
||||
(Factura Electrónica)` with {abbr}`AFIP (Administración Federal de Ingresos Públicos)`-compliant
|
||||
digital validation, XML with {abbr}`CAE (Código de Autorización Electrónico)` authorization for
|
||||
real-time integration with {abbr}`AFIP (Administración Federal de Ingresos Públicos)`, and
|
||||
digitally signed PDF invoices featuring {abbr}`CAE (Código de Autorización Electrónico)` and
|
||||
QR codes for secure validation.
|
||||
- **Secure storage and retrieval**: Complying with Argentina’s ten-year storage requirement, Odoo
|
||||
provides tamper-proof archiving and easy retrieval for audits or tax inspections.
|
||||
@@ -42,13 +40,15 @@ features designed to ensure compliance:
|
||||
regulations by automatically calculating VAT, incorporating it into invoices, and adhering to
|
||||
legal reporting requirements for accurate tax submissions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Argentinian fiscal localization documentation <../../../fiscal_localizations/argentina>`
|
||||
:::{seealso}
|
||||
{doc}`Argentinian fiscal localization documentation <../../../fiscal_localizations/argentina>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Argentine e-invoicing laws and how Odoo’s invoicing
|
||||
module supports compliance with AFIP regulations and the Fiscal Code. It is not intended as legal
|
||||
advice. We recommend consulting with a tax advisor or legal professional familiar with
|
||||
Argentinian e-invoicing regulations to ensure compliance tailored to your specific business
|
||||
needs.
|
||||
:::
|
||||
|
||||
This page provides a general overview of Argentine e-invoicing laws and how Odoo’s invoicing
|
||||
module supports compliance with AFIP regulations and the Fiscal Code. It is not intended as legal
|
||||
advice. We recommend consulting with a tax advisor or legal professional familiar with
|
||||
Argentinian e-invoicing regulations to ensure compliance tailored to your specific business
|
||||
needs.
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Austria
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Austria's regulatory standards, and compatible with the European [Peppol](https://peppol.org/about/) framework.
|
||||
|
||||
## Legal framework for e-invoicing in Austria
|
||||
|
||||
In Austria, businesses must adhere to e-invoicing laws that ensure secure, authentic, and storable
|
||||
transactions. The main regulation governing e-invoicing requirements in Austria is the [Austrian VAT
|
||||
Act (UStG)](https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10004873)
|
||||
and its related e-invoicing standards for public procurement ([BGBI. I Nr. 32/2019](https://360.lexisnexis.at/d/rechtsnorm-ris/32_bundesgesetz_mit_dem_das_beamten_dienstrechtsge/b_bgbl_2019_2019_I_32_46c550bf37)),
|
||||
which aligns with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055).
|
||||
These laws mandate that all businesses engaged in {abbr}`B2G (business-to-government)` transactions
|
||||
must use e-invoicing, and increasingly, e-invoicing is encouraged for B2B transactions to improve
|
||||
tax compliance and transparency.
|
||||
|
||||
## Compliance with Austrian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported format**: Odoo supports standard e-invoice formats such as PDF with digital signatures
|
||||
and XML in {abbr}`UBL (Universal Business Language)` format, which are fully compatible with
|
||||
e-rechnung.gv.at, Austria's central electronic invoicing platform for public procurement
|
||||
transactions. Any platform can be used if connected to the authentication services of the Federal
|
||||
Service Portal ({abbr}`USP (Unternehmensserviceportal)`) e-rechnung.gv.at for e-invoicing
|
||||
transmission.
|
||||
- **Secure storage and retrieval**: In accordance with the Austrian requirement to store invoices
|
||||
for a minimum of seven years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring that they can be easily retrieved during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing helps businesses stay in line with
|
||||
Austrian VAT requirements by automatically calculating and including VAT in invoices and ensuring
|
||||
that each invoice follows the legal format for B2B and {abbr}`B2G (business-to-government)`
|
||||
transactions.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Austria fiscal localization documentation <../../../fiscal_localizations/austria>`
|
||||
:::
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Austrian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Austrian VAT Act (UStG) and related regulations. It does does not constitute
|
||||
legal advice. We recommend consulting with a tax advisor or legal professional familiar with
|
||||
Austrian e-invoicing regulations to ensure full compliance tailored to your specific business
|
||||
requirements.
|
||||
:::
|
||||
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Austria
|
||||
====================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Austria's regulatory standards, and compatible with the European `Peppol
|
||||
<https://peppol.org/about/>`_ framework.
|
||||
|
||||
Legal framework for e-invoicing in Austria
|
||||
==========================================
|
||||
|
||||
In Austria, businesses must adhere to e-invoicing laws that ensure secure, authentic, and storable
|
||||
transactions. The main regulation governing e-invoicing requirements in Austria is the `Austrian VAT
|
||||
Act (UStG) <https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10004873>`_
|
||||
and its related e-invoicing standards for public procurement (`BGBI. I Nr. 32/2019 <https://360.lexisnexis.at/d/rechtsnorm-ris/32_bundesgesetz_mit_dem_das_beamten_dienstrechtsge/b_bgbl_2019_2019_I_32_46c550bf37>`_),
|
||||
which aligns with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_.
|
||||
These laws mandate that all businesses engaged in :abbr:`B2G (business-to-government)` transactions
|
||||
must use e-invoicing, and increasingly, e-invoicing is encouraged for B2B transactions to improve
|
||||
tax compliance and transparency.
|
||||
|
||||
Compliance with Austrian e-invoicing regulations
|
||||
================================================
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported format**: Odoo supports standard e-invoice formats such as PDF with digital signatures
|
||||
and XML in :abbr:`UBL (Universal Business Language)` format, which are fully compatible with
|
||||
e-rechnung.gv.at, Austria's central electronic invoicing platform for public procurement
|
||||
transactions. Any platform can be used if connected to the authentication services of the Federal
|
||||
Service Portal (:abbr:`USP (Unternehmensserviceportal)`) e-rechnung.gv.at for e-invoicing
|
||||
transmission.
|
||||
- **Secure storage and retrieval**: In accordance with the Austrian requirement to store invoices
|
||||
for a minimum of seven years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring that they can be easily retrieved during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing helps businesses stay in line with
|
||||
Austrian VAT requirements by automatically calculating and including VAT in invoices and ensuring
|
||||
that each invoice follows the legal format for B2B and :abbr:`B2G (business-to-government)`
|
||||
transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Austria fiscal localization documentation <../../../fiscal_localizations/austria>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides an overview of Austrian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Austrian VAT Act (UStG) and related regulations. It does does not constitute
|
||||
legal advice. We recommend consulting with a tax advisor or legal professional familiar with
|
||||
Austrian e-invoicing regulations to ensure full compliance tailored to your specific business
|
||||
requirements.
|
||||
+16
-17
@@ -1,27 +1,25 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
===============================================
|
||||
Odoo electronic invoicing in the Basque Country
|
||||
===============================================
|
||||
# Odoo electronic invoicing in the Basque Country
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Basque Country's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in the Basque Country
|
||||
=====================================================
|
||||
## Legal framework for e-invoicing in the Basque Country
|
||||
|
||||
In the Basque Country, electronic invoicing is governed by Spanish national legislation and regional
|
||||
implementations, including the `Ley de Facturación Electrónica <https://www.facturae.gob.es/face/Paginas/FACE.aspx>`_
|
||||
and compliance with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_.
|
||||
For :abbr:`B2G (business-to-government)` transactions, e-invoicing is mandatory, and suppliers must
|
||||
implementations, including the [Ley de Facturación Electrónica](https://www.facturae.gob.es/face/Paginas/FACE.aspx)
|
||||
and compliance with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055).
|
||||
For {abbr}`B2G (business-to-government)` transactions, e-invoicing is mandatory, and suppliers must
|
||||
submit e-invoices through the FACe platform or the regional system, e-Factura Euskadi, specifically
|
||||
designed for the Basque Country. These platforms ensure the secure submission of invoices to public
|
||||
administrations. While B2B e-invoicing is not yet mandatory, its use is growing, supported by the
|
||||
implementation of the TicketBAI system, which is specific to the Basque Country and promotes tax
|
||||
transparency.
|
||||
|
||||
Compliance with Basque e-invoicing regulations
|
||||
==============================================
|
||||
## Compliance with Basque e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully prepared to help businesses meet the Basque Country's e-invoicing
|
||||
requirements while complying with broader Spanish and EU standards. Here is how Odoo ensures
|
||||
@@ -41,10 +39,11 @@ compliance:
|
||||
invoices adhere to Basque Country VAT requirements for B2G and B2B transactions while facilitating
|
||||
compliance with the SII (Immediate Supply of Information) system for real-time VAT reporting.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of e-invoicing laws in the Basque Country and how Odoo Invoicing
|
||||
supports compliance with the Ley de Facturación Electrónica, e-Factura Euskadi, TicketBAI system,
|
||||
and FACe platform. It is not intended as legal advice. We recommend consulting with a tax advisor
|
||||
or legal professional familiar with e-invoicing regulations in the Basque Country to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of e-invoicing laws in the Basque Country and how Odoo Invoicing
|
||||
supports compliance with the Ley de Facturación Electrónica, e-Factura Euskadi, TicketBAI system,
|
||||
and FACe platform. It is not intended as legal advice. We recommend consulting with a tax advisor
|
||||
or legal professional familiar with e-invoicing regulations in the Basque Country to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+24
-25
@@ -1,34 +1,31 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Belgium
|
||||
====================================
|
||||
# Odoo electronic invoicing in Belgium
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Belgium's regulatory standards, and compatible with the European `Peppol
|
||||
<https://peppol.org/about/>`_ framework.
|
||||
solutions tailored to Belgium's regulatory standards, and compatible with the European [Peppol](https://peppol.org/about/) framework.
|
||||
|
||||
Legal framework for e-invoicing in Belgium
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Belgium
|
||||
|
||||
In Belgium, businesses must adhere to e-invoicing laws that ensure secure, authentic, and storable
|
||||
transactions. The primary regulation governing e-invoicing requirements in Belgium is the `Belgian
|
||||
VAT Code <https://finances.belgium.be/fr/sur_le_spf/r%C3%A9glementation/r%C3%A9glementation-2023/tva>`_
|
||||
and its related `e-invoicing standards for public procurement <https://www.ejustice.just.fgov.be/cgi_loi/article.pl?language=fr&sum_date=&pd_search=2023-09-21&numac_search=2023045155&page=1&lg_txt=F&caller=list&2023045155=0&trier=promulgation&fr=f&nm_ecran=2023045155&choix1=et&choix2=et>`_,
|
||||
which align with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_.
|
||||
These laws mandate that all businesses engaged in :abbr:`B2G (business-to-government)` transactions
|
||||
transactions. The primary regulation governing e-invoicing requirements in Belgium is the [Belgian
|
||||
VAT Code](https://finances.belgium.be/fr/sur_le_spf/r%C3%A9glementation/r%C3%A9glementation-2023/tva)
|
||||
and its related [e-invoicing standards for public procurement](https://www.ejustice.just.fgov.be/cgi_loi/article.pl?language=fr&sum_date=&pd_search=2023-09-21&numac_search=2023045155&page=1&lg_txt=F&caller=list&2023045155=0&trier=promulgation&fr=f&nm_ecran=2023045155&choix1=et&choix2=et),
|
||||
which align with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055).
|
||||
These laws mandate that all businesses engaged in {abbr}`B2G (business-to-government)` transactions
|
||||
must use e-invoicing via Mercurius, Belgium's official electronic invoicing platform for public
|
||||
procurement transactions. Additionally, Belgium is part of the Peppol network, which provides a
|
||||
standardized framework for cross-border e-invoicing across Europe. Increasingly, e-invoicing is also
|
||||
encouraged for B2B transactions to enhance tax compliance and transparency.
|
||||
|
||||
Compliance with Belgian e-invoicing regulations
|
||||
===============================================
|
||||
## Compliance with Belgian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Peppol-compliant formats**: Odoo supports the standardized XML (:abbr:`UBL (Universal Business
|
||||
- **Peppol-compliant formats**: Odoo supports the standardized XML ({abbr}`UBL (Universal Business
|
||||
Language)`) format for Peppol, ensuring compliance with both Belgian and European e-invoicing
|
||||
standards. This ensures your invoices meet the legal requirements for public procurement in
|
||||
Belgium and other EU countries. Odoo enables businesses to send e-invoices directly to government
|
||||
@@ -39,15 +36,17 @@ invoices. Here is how Odoo ensures compliance:
|
||||
that they can be easily retrieved during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing helps businesses comply with Belgian
|
||||
VAT requirements by automatically calculating and including VAT in invoices and ensuring that each
|
||||
invoice follows the legal format for B2B and :abbr:`B2G (business-to-government)` transactions.
|
||||
invoice follows the legal format for B2B and {abbr}`B2G (business-to-government)` transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Belgium fiscal localization documentation <../../../fiscal_localizations/belgium>`
|
||||
:::{seealso}
|
||||
{doc}`Belgium fiscal localization documentation <../../../fiscal_localizations/belgium>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Belgian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Belgian VAT Code, Peppol standards, and related regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Belgian e-invoicing regulations to ensure full compliance tailored to your specific
|
||||
business requirements.
|
||||
:::
|
||||
|
||||
This page provides an overview of Belgian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Belgian VAT Code, Peppol standards, and related regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Belgian e-invoicing regulations to ensure full compliance tailored to your specific
|
||||
business requirements.
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Brazil
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Brazil's regulatory standards and compatible with the requirements set
|
||||
forth by the [Secretaria da Fazenda (SEFAZ)](https://www.gov.br/receitafederal/pt-br).
|
||||
|
||||
## Legal framework for e-invoicing in Brazil
|
||||
|
||||
In Brazil, e-invoicing is highly regulated and mandatory for most businesses to ensure tax
|
||||
compliance and transparency. The key regulations governing e-invoicing include:
|
||||
|
||||
- {abbr}`NF-e (Nota Fiscal Eletrônica)`: A mandatory e-invoice for goods and services used in B2B
|
||||
and {abbr}`B2G (business-to-government)` transactions.
|
||||
- {abbr}`CT-e (Conhecimento de Transporte Eletrônico)`: Specific to freight and logistics services.
|
||||
- {abbr}`NFS-e (Nota Fiscal de Serviços Eletrônica)`: Issued for service-based transactions, with
|
||||
implementation varying by municipality.
|
||||
- Integration with {abbr}`SEFAZ (Secretaria da Fazenda)`: Every electronic invoice must be
|
||||
authorized by {abbr}`SEFAZ (Secretaria da Fazenda)` and issued with a unique authorization code
|
||||
(Autorização de Uso).
|
||||
|
||||
## Compliance with Brazilian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies the process of adhering to Brazil’s complex e-invoicing regulations,
|
||||
offering features designed to ensure compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports Brazil's authorized e-invoice formats, including {abbr}`NF-e
|
||||
(Nota Fiscal Eletrônica)` for goods and services compliant with {abbr}`SEFAZ (Secretaria da
|
||||
Fazenda)`, {abbr}`NFS-e (Nota Fiscal de Serviços Eletrônica)` customizable for municipal
|
||||
requirements, {abbr}`CT-e (Conhecimento de Transporte Eletrônico)` for logistics and
|
||||
transportation, and digital PDF invoices with {abbr}`SEFAZ (Secretaria da Fazenda)` authorization
|
||||
codes and QR codes.
|
||||
- **Secure storage and retrieval**: Complying with Brazil's five-year storage requirement, Odoo
|
||||
offers tamper-proof archiving for easy retrieval during audits or inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for ICMS, IPI, and
|
||||
ISS, ensuring compliance with regional tax rules and generating reports compatible with
|
||||
{abbr}`SEFAZ (Secretaria da Fazenda)` and municipal requirements.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Brazilian fiscal localization documentation <../../../fiscal_localizations/brazil>`
|
||||
:::
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Brazilian e-invoicing laws and how Odoo’s invoicing
|
||||
module supports compliance with {abbr}`SEFAZ (Secretaria da Fazenda)` regulations. It is not
|
||||
intended as legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Brazilian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in Brazil
|
||||
===================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Brazil's regulatory standards and compatible with the requirements set
|
||||
forth by the `Secretaria da Fazenda (SEFAZ) <https://www.gov.br/receitafederal/pt-br>`_.
|
||||
|
||||
Legal framework for e-invoicing in Brazil
|
||||
=========================================
|
||||
|
||||
In Brazil, e-invoicing is highly regulated and mandatory for most businesses to ensure tax
|
||||
compliance and transparency. The key regulations governing e-invoicing include:
|
||||
|
||||
- :abbr:`NF-e (Nota Fiscal Eletrônica)`: A mandatory e-invoice for goods and services used in B2B
|
||||
and :abbr:`B2G (business-to-government)` transactions.
|
||||
- :abbr:`CT-e (Conhecimento de Transporte Eletrônico)`: Specific to freight and logistics services.
|
||||
- :abbr:`NFS-e (Nota Fiscal de Serviços Eletrônica)`: Issued for service-based transactions, with
|
||||
implementation varying by municipality.
|
||||
- Integration with :abbr:`SEFAZ (Secretaria da Fazenda)`: Every electronic invoice must be
|
||||
authorized by :abbr:`SEFAZ (Secretaria da Fazenda)` and issued with a unique authorization code
|
||||
(Autorização de Uso).
|
||||
|
||||
Compliance with Brazilian e-invoicing regulations
|
||||
=================================================
|
||||
|
||||
Odoo Invoicing simplifies the process of adhering to Brazil’s complex e-invoicing regulations,
|
||||
offering features designed to ensure compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports Brazil's authorized e-invoice formats, including :abbr:`NF-e
|
||||
(Nota Fiscal Eletrônica)` for goods and services compliant with :abbr:`SEFAZ (Secretaria da
|
||||
Fazenda)`, :abbr:`NFS-e (Nota Fiscal de Serviços Eletrônica)` customizable for municipal
|
||||
requirements, :abbr:`CT-e (Conhecimento de Transporte Eletrônico)` for logistics and
|
||||
transportation, and digital PDF invoices with :abbr:`SEFAZ (Secretaria da Fazenda)` authorization
|
||||
codes and QR codes.
|
||||
- **Secure storage and retrieval**: Complying with Brazil's five-year storage requirement, Odoo
|
||||
offers tamper-proof archiving for easy retrieval during audits or inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for ICMS, IPI, and
|
||||
ISS, ensuring compliance with regional tax rules and generating reports compatible with
|
||||
:abbr:`SEFAZ (Secretaria da Fazenda)` and municipal requirements.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Brazilian fiscal localization documentation <../../../fiscal_localizations/brazil>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides a general overview of Brazilian e-invoicing laws and how Odoo’s invoicing
|
||||
module supports compliance with :abbr:`SEFAZ (Secretaria da Fazenda)` regulations. It is not
|
||||
intended as legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Brazilian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Chile
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Chile's regulatory requirements and compatible with standards set by the
|
||||
[Servicio de Impuestos Internos (SII)](https://homer.sii.cl/).
|
||||
|
||||
## Legal framework for e-invoicing in Chile
|
||||
|
||||
Chile is a pioneer in mandatory electronic invoicing, with comprehensive regulations to ensure tax
|
||||
compliance and enhance transparency. Key elements include:
|
||||
|
||||
- **Factura Electrónica**: Mandatory for most businesses to issue invoices digitally through the
|
||||
{abbr}`SII (Servicio de Impuestos Internos)`'s system.
|
||||
- **Boleta Electrónica**: Required for retail transactions to report sales and tax information.
|
||||
- **Guía de Despacho Electrónica**: Necessary for tracking the transport of goods.
|
||||
- **Integration with SII**: All electronic invoices must be validated by the {abbr}`SII (Servicio
|
||||
de Impuestos Internos)`, assigned a unique Folio authorization code, and reported for tax
|
||||
purposes.
|
||||
|
||||
## Compliance with Chilean e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies adherence to Chile's e-invoicing requirements with features designed to
|
||||
ensure compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports all major Chilean e-invoice formats, including Factura
|
||||
Electrónica, Boleta Electrónica, and Guía de Despacho Electrónica, ensuring {abbr}`SII (Servicio
|
||||
de Impuestos Internos)` compatibility with digital validation and Folio assignment.
|
||||
- **Integration with SII**: Odoo seamlessly connects with {abbr}`SII (Servicio de Impuestos
|
||||
Internos)`'s systems, automating invoice submission and ensuring real-time validation for
|
||||
compliant issuance.
|
||||
- **Secure storage and retrieval**: Complying with Chile's mandatory storage period of six years,
|
||||
Odoo provides tamper-proof archiving for invoices, enabling easy access for audits or tax
|
||||
inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates calculations for VAT (IVA) and other
|
||||
applicable taxes, ensuring accurate invoicing and adherence to Chile's tax reporting standards.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Chilean fiscal localization documentation <../../../fiscal_localizations/chile>`
|
||||
:::
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Chilean e-invoicing laws and how Odoo supports
|
||||
compliance with {abbr}`SII (Servicio de Impuestos Internos)` regulations. It is not intended as
|
||||
legal or tax advice. We recommend consulting a tax advisor or legal professional familiar with
|
||||
Chilean e-invoicing regulations to ensure compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
==================================
|
||||
Odoo electronic invoicing in Chile
|
||||
==================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Chile's regulatory requirements and compatible with standards set by the
|
||||
`Servicio de Impuestos Internos (SII) <https://homer.sii.cl/>`_.
|
||||
|
||||
Legal framework for e-invoicing in Chile
|
||||
========================================
|
||||
|
||||
Chile is a pioneer in mandatory electronic invoicing, with comprehensive regulations to ensure tax
|
||||
compliance and enhance transparency. Key elements include:
|
||||
|
||||
- **Factura Electrónica**: Mandatory for most businesses to issue invoices digitally through the
|
||||
:abbr:`SII (Servicio de Impuestos Internos)`'s system.
|
||||
- **Boleta Electrónica**: Required for retail transactions to report sales and tax information.
|
||||
- **Guía de Despacho Electrónica**: Necessary for tracking the transport of goods.
|
||||
- **Integration with SII**: All electronic invoices must be validated by the :abbr:`SII (Servicio
|
||||
de Impuestos Internos)`, assigned a unique Folio authorization code, and reported for tax
|
||||
purposes.
|
||||
|
||||
Compliance with Chilean e-invoicing regulations
|
||||
===============================================
|
||||
|
||||
Odoo Invoicing simplifies adherence to Chile's e-invoicing requirements with features designed to
|
||||
ensure compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports all major Chilean e-invoice formats, including Factura
|
||||
Electrónica, Boleta Electrónica, and Guía de Despacho Electrónica, ensuring :abbr:`SII (Servicio
|
||||
de Impuestos Internos)` compatibility with digital validation and Folio assignment.
|
||||
- **Integration with SII**: Odoo seamlessly connects with :abbr:`SII (Servicio de Impuestos
|
||||
Internos)`'s systems, automating invoice submission and ensuring real-time validation for
|
||||
compliant issuance.
|
||||
- **Secure storage and retrieval**: Complying with Chile's mandatory storage period of six years,
|
||||
Odoo provides tamper-proof archiving for invoices, enabling easy access for audits or tax
|
||||
inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates calculations for VAT (IVA) and other
|
||||
applicable taxes, ensuring accurate invoicing and adherence to Chile's tax reporting standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Chilean fiscal localization documentation <../../../fiscal_localizations/chile>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides a general overview of Chilean e-invoicing laws and how Odoo supports
|
||||
compliance with :abbr:`SII (Servicio de Impuestos Internos)` regulations. It is not intended as
|
||||
legal or tax advice. We recommend consulting a tax advisor or legal professional familiar with
|
||||
Chilean e-invoicing regulations to ensure compliance tailored to your specific business needs.
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Colombia
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Colombia's regulatory requirements and fully compatible with the
|
||||
guidelines established by the [Dirección de Impuestos y Aduanas Nacionales (DIAN)](https://www.dian.gov.co/).
|
||||
|
||||
## Legal framework for e-invoicing in Colombia
|
||||
|
||||
Colombia has implemented mandatory e-invoicing for most businesses to enhance tax compliance and
|
||||
improve transparency. Key elements include:
|
||||
|
||||
- **Factura Electrónica**: Mandatory for B2B, B2C, and {abbr}`B2G (business-to-government)`
|
||||
transactions, requiring compliance with {abbr}`DIAN (Dirección de Impuestos y Aduanas
|
||||
Nacionales)`'s technical specifications.
|
||||
- **Integration with DIAN**: All electronic invoices must be submitted to {abbr}`DIAN (Dirección de
|
||||
Impuestos y Aduanas Nacionales)` for validation, where they are assigned a unique {abbr}`CUFE
|
||||
(Código Único de Factura Electrónica)` authorization code.
|
||||
- **Adoption of XML Standards**: Colombian e-invoicing uses XML as the standard format for
|
||||
electronic invoices, ensuring interoperability and standardized reporting.
|
||||
|
||||
## Compliance with Colombian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies the complexities of e-invoicing compliance in Colombia, offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports Factura Electrónica in {abbr}`DIAN (Dirección de Impuestos y
|
||||
Aduanas Nacionales)`-compliant XML formats, including legally required {abbr}`CUFE (Código Único
|
||||
de Factura Electrónica)` codes and additional fields for B2B, B2C, and {abbr}`B2G
|
||||
(business-to-government)` transactions.
|
||||
- **Secure storage and retrieval**: In compliance with Colombia's six-year mandatory storage
|
||||
requirement, Odoo provides tamper-proof invoice archiving, ensuring easy access for audits or
|
||||
inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
|
||||
other applicable taxes, ensuring accuracy and compliance with DIAN's tax reporting standards.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Colombian fiscal localization documentation <../../../fiscal_localizations/colombia>`
|
||||
:::
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Colombian e-invoicing regulations and how Odoo supports
|
||||
compliance with DIAN requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Colombian e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
=====================================
|
||||
Odoo electronic invoicing in Colombia
|
||||
=====================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Colombia's regulatory requirements and fully compatible with the
|
||||
guidelines established by the `Dirección de Impuestos y Aduanas Nacionales (DIAN)
|
||||
<https://www.dian.gov.co/>`_.
|
||||
|
||||
Legal framework for e-invoicing in Colombia
|
||||
===========================================
|
||||
|
||||
Colombia has implemented mandatory e-invoicing for most businesses to enhance tax compliance and
|
||||
improve transparency. Key elements include:
|
||||
|
||||
- **Factura Electrónica**: Mandatory for B2B, B2C, and :abbr:`B2G (business-to-government)`
|
||||
transactions, requiring compliance with :abbr:`DIAN (Dirección de Impuestos y Aduanas
|
||||
Nacionales)`'s technical specifications.
|
||||
- **Integration with DIAN**: All electronic invoices must be submitted to :abbr:`DIAN (Dirección de
|
||||
Impuestos y Aduanas Nacionales)` for validation, where they are assigned a unique :abbr:`CUFE
|
||||
(Código Único de Factura Electrónica)` authorization code.
|
||||
- **Adoption of XML Standards**: Colombian e-invoicing uses XML as the standard format for
|
||||
electronic invoices, ensuring interoperability and standardized reporting.
|
||||
|
||||
Compliance with Colombian e-invoicing regulations
|
||||
=================================================
|
||||
|
||||
Odoo Invoicing simplifies the complexities of e-invoicing compliance in Colombia, offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports Factura Electrónica in :abbr:`DIAN (Dirección de Impuestos y
|
||||
Aduanas Nacionales)`-compliant XML formats, including legally required :abbr:`CUFE (Código Único
|
||||
de Factura Electrónica)` codes and additional fields for B2B, B2C, and :abbr:`B2G
|
||||
(business-to-government)` transactions.
|
||||
- **Secure storage and retrieval**: In compliance with Colombia's six-year mandatory storage
|
||||
requirement, Odoo provides tamper-proof invoice archiving, ensuring easy access for audits or
|
||||
inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
|
||||
other applicable taxes, ensuring accuracy and compliance with DIAN's tax reporting standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Colombian fiscal localization documentation <../../../fiscal_localizations/colombia>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides a general overview of Colombian e-invoicing regulations and how Odoo supports
|
||||
compliance with DIAN requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Colombian e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
+20
-21
@@ -1,35 +1,33 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Croatia
|
||||
====================================
|
||||
# Odoo electronic invoicing in Croatia
|
||||
|
||||
Odoo Invoicing is our trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Croatia's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Croatia
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Croatia
|
||||
|
||||
In Croatia, businesses must comply with e-invoicing regulations to ensure secure, authentic, and
|
||||
storable transactions. The main legal framework governing e-invoicing in Croatia is the
|
||||
Fiscalization Act and its related requirements for public procurement, which are aligned with `EU
|
||||
Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_ on
|
||||
e-invoicing in public procurement. Under these regulations, all businesses involved in :abbr:`B2G
|
||||
(business-to-government)` transactions are required to use electronic invoicing via the :abbr:`CIS
|
||||
Fiscalization Act and its related requirements for public procurement, which are aligned with [EU
|
||||
Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055) on
|
||||
e-invoicing in public procurement. Under these regulations, all businesses involved in {abbr}`B2G
|
||||
(business-to-government)` transactions are required to use electronic invoicing via the {abbr}`CIS
|
||||
(Central Invoice System)`, Croatia’s official platform for public sector e-invoicing. Croatia is
|
||||
also part of the Peppol network, facilitating standardized cross-border e-invoicing within the
|
||||
European Union. Furthermore, e-invoicing is increasingly encouraged for B2B transactions, promoting
|
||||
greater transparency and tax compliance.
|
||||
|
||||
Compliance with Croatian e-invoicing regulations
|
||||
================================================
|
||||
## Compliance with Croatian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports standard e-invoice formats, such as PDF with digital
|
||||
signatures and XML in :abbr:`UBL (Universal Business Language)` format, which are fully compatible
|
||||
with Croatia's :abbr:`CIS (Central Invoice System)` for public procurement transactions.
|
||||
signatures and XML in {abbr}`UBL (Universal Business Language)` format, which are fully compatible
|
||||
with Croatia's {abbr}`CIS (Central Invoice System)` for public procurement transactions.
|
||||
Additionally, Odoo enables transmission of e-invoices through any platform connected to the Peppol
|
||||
network, as the *Servis eRačun za državu* reached via Peppol, ensuring compliance with both
|
||||
Croatian and EU standards.
|
||||
@@ -38,13 +36,14 @@ invoices. Here is how Odoo ensures compliance:
|
||||
they can be easily retrieved during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing helps businesses stay in line with
|
||||
Croatian VAT requirements by automatically calculating and including VAT in invoices and ensuring
|
||||
that each invoice follows the legal format for both B2B and :abbr:`B2G (business-to-government)`
|
||||
that each invoice follows the legal format for both B2B and {abbr}`B2G (business-to-government)`
|
||||
transactions.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Croatian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Fiscalization Act, Peppol standards, and other relevant regulations. It does
|
||||
not constitute legal adviceWe recommend consulting with a tax advisor or legal professional
|
||||
familiar with Croatian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Croatian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Fiscalization Act, Peppol standards, and other relevant regulations. It does
|
||||
not constitute legal adviceWe recommend consulting with a tax advisor or legal professional
|
||||
familiar with Croatian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+16
-17
@@ -1,26 +1,24 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Denmark
|
||||
====================================
|
||||
# Odoo electronic invoicing in Denmark
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Denmark's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Denmark
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Denmark
|
||||
|
||||
In Denmark, e-invoicing is governed by `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
mandating the use of e-invoicing for :abbr:`B2G (business-to-government)` transactions. Danish
|
||||
In Denmark, e-invoicing is governed by [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
mandating the use of e-invoicing for {abbr}`B2G (business-to-government)` transactions. Danish
|
||||
public sector entities require invoices to be submitted through NemHandel, the national e-invoicing
|
||||
platform, using the OIOUBL format (a local version of :abbr:`UBL (Universal Business Language)` and
|
||||
platform, using the OIOUBL format (a local version of {abbr}`UBL (Universal Business Language)` and
|
||||
XML). Denmark is also a key member of the Peppol network, enabling streamlined, standardized, and
|
||||
secure cross-border e-invoicing for transactions within the European Union. While e-invoicing is not
|
||||
mandatory for B2B transactions, its adoption is growing as businesses seek greater efficiency and
|
||||
compliance.
|
||||
|
||||
Compliance with Danish e-invoicing regulations
|
||||
==============================================
|
||||
## Compliance with Danish e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
@@ -38,10 +36,11 @@ invoices. Here is how Odoo ensures compliance:
|
||||
ensures invoices are formatted to meet Denmark’s legal requirements for B2G and B2B transactions,
|
||||
helping businesses comply with local tax laws.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Danish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with NemHandel, OIOUBL standards, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Danish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Danish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with NemHandel, OIOUBL standards, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Danish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
+19
-20
@@ -1,36 +1,33 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Ecuador
|
||||
====================================
|
||||
# Odoo electronic invoicing in Ecuador
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Ecuador's regulatory requirements and fully compatible with the
|
||||
guidelines established by the `Servicio de Rentas Internas (SRI)
|
||||
<https://www.sri.gob.ec/web/intersri/home>`_.
|
||||
guidelines established by the [Servicio de Rentas Internas (SRI)](https://www.sri.gob.ec/web/intersri/home).
|
||||
|
||||
Legal framework for e-invoicing in Ecuador
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Ecuador
|
||||
|
||||
Ecuador has implemented mandatory electronic invoicing for most businesses aimed to enhance tax
|
||||
compliance and transparency. Key elements include:
|
||||
|
||||
- **Factura Electrónica**: All businesses must issue electronic invoices in XML format for B2B, B2C,
|
||||
and :abbr:`B2G (business-to-government)` transactions, ensuring compliance with :abbr:`SRI
|
||||
and {abbr}`B2G (business-to-government)` transactions, ensuring compliance with {abbr}`SRI
|
||||
(Servicio de Rentas Internas)`'s technical specifications.
|
||||
- **Transmission Requirements**: E-invoices must be transmitted to the SRI within 24 hours of
|
||||
issuance.
|
||||
- **Record Storage**: E-invoices, including the :abbr:`SRI (Servicio de Rentas Internas)`'s
|
||||
- **Record Storage**: E-invoices, including the {abbr}`SRI (Servicio de Rentas Internas)`'s
|
||||
acceptance messages, must be stored for a minimum of seven years.
|
||||
|
||||
Compliance with Ecuadorian e-invoicing regulations
|
||||
==================================================
|
||||
## Compliance with Ecuadorian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies compliance with Ecuador's e-invoicing requirements by offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports the Ecuadorian e-invoice format (XML) and ensures
|
||||
compatibility with the :abbr:`SRI (Servicio de Rentas Internas)`'s system for validation and
|
||||
compatibility with the {abbr}`SRI (Servicio de Rentas Internas)`'s system for validation and
|
||||
authorization, including the necessary digital signature.
|
||||
- **Secure storage and retrieval**: In compliance with Ecuador's seven-year storage requirement,
|
||||
Odoo offers tamper-proof archiving so that invoices can be easily accessed during audits or
|
||||
@@ -39,12 +36,14 @@ features:
|
||||
other applicable taxes, ensuring accurate invoicing and adherence to Ecuador's tax reporting
|
||||
standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Ecuadorian fiscal localization documentation <../../../fiscal_localizations/ecuador>`
|
||||
:::{seealso}
|
||||
{doc}`Ecuadorian fiscal localization documentation <../../../fiscal_localizations/ecuador>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Ecuadorian e-invoicing regulations and how Odoo supports
|
||||
compliance with SRI requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Ecuador's e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides a general overview of Ecuadorian e-invoicing regulations and how Odoo supports
|
||||
compliance with SRI requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Ecuador's e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
+19
-20
@@ -1,32 +1,30 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Estonia
|
||||
====================================
|
||||
# Odoo electronic invoicing in Estonia
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Estonia's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Estonia
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Estonia
|
||||
|
||||
In Estonia, businesses must comply with e-invoicing regulations to ensure secure, authentic, and
|
||||
storable transactions. The main legal framework governing e-invoicing in Estonia is the `Accounting
|
||||
Act <https://www.riigiteataja.ee/en/eli/ee/514052021001/consolide/current>`_ and its provisions
|
||||
related to e-invoicing, which align with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_
|
||||
on e-invoicing in public procurement. Since 2019, :abbr:`B2G (business-to-government)` transactions
|
||||
storable transactions. The main legal framework governing e-invoicing in Estonia is the [Accounting
|
||||
Act](https://www.riigiteataja.ee/en/eli/ee/514052021001/consolide/current) and its provisions
|
||||
related to e-invoicing, which align with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055)
|
||||
on e-invoicing in public procurement. Since 2019, {abbr}`B2G (business-to-government)` transactions
|
||||
must use electronic invoices via Estonia's Rik's e-Invoicing System, the government's platform for
|
||||
public sector e-invoicing. Estonia is also part of the Peppol network, which ensures standardized
|
||||
cross-border e-invoicing across Europe. Additionally, the use of e-invoicing is encouraged for B2B
|
||||
transactions, promoting better transparency, efficiency, and compliance with VAT requirements.
|
||||
|
||||
Compliance with Estonian e-invoicing regulations
|
||||
================================================
|
||||
## Compliance with Estonian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports standard e-invoice formats, such as XML in :abbr:`UBL
|
||||
- **Supported formats**: Odoo supports standard e-invoice formats, such as XML in {abbr}`UBL
|
||||
(Universal Business Language)` format, which is fully compatible with Estonia's Rik’s e-Invoicing
|
||||
System for public procurement transactions. Additionally, Odoo enables seamless transmission of
|
||||
e-invoices through platforms connected to the Peppol network, ensuring compliance with Estonian
|
||||
@@ -35,13 +33,14 @@ invoices. Here is how Odoo ensures compliance:
|
||||
minimum of seven years, Odoo securely archives all invoices in a tamper-proof system, making them
|
||||
easily retrievable during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
invoices are formatted to meet Denmark’s legal requirements for :abbr:`B2G
|
||||
invoices are formatted to meet Denmark’s legal requirements for {abbr}`B2G
|
||||
(business-to-government)` and B2B transactions, helping businesses compliant with local tax laws.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Estonian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Accounting Act, Peppol standards, and other relevant regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Estonian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Estonian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Accounting Act, Peppol standards, and other relevant regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Estonian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+19
-20
@@ -1,34 +1,32 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Finland
|
||||
====================================
|
||||
# Odoo electronic invoicing in Finland
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Finland's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Finland
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Finland
|
||||
|
||||
In Finland, businesses must comply with e-invoicing regulations to ensure secure, authentic, and
|
||||
storable transactions. The primary legal framework governing e-invoicing is the `Act on Electronic
|
||||
Invoicing (241/2019) <https://www.finlex.fi/fi/laki/alkup/2019/20190241#Pidp446241968>`_, which
|
||||
aligns with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_
|
||||
on electronic invoicing in public procurement. Under Finnish law, all :abbr:`B2G
|
||||
storable transactions. The primary legal framework governing e-invoicing is the [Act on Electronic
|
||||
Invoicing (241/2019)](https://www.finlex.fi/fi/laki/alkup/2019/20190241#Pidp446241968), which
|
||||
aligns with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055)
|
||||
on electronic invoicing in public procurement. Under Finnish law, all {abbr}`B2G
|
||||
(business-to-government)` transactions require the use of electronic invoices via Apix Messaging or
|
||||
other Peppol-connected platforms, Finland’s standard for public sector e-invoicing. Finland is also
|
||||
part of the Peppol network, ensuring interoperability and standardization for cross-border
|
||||
e-invoicing within the EU. Additionally, e-invoicing is widely adopted for B2B transactions,
|
||||
promoting efficient processes and improved tax compliance.
|
||||
|
||||
Compliance with Finnish e-invoicing regulations
|
||||
===============================================
|
||||
## Compliance with Finnish e-invoicing regulations
|
||||
|
||||
Odoo invoicing module makes it easy for businesses to adhere to Finland's e-invoicing regulations.
|
||||
Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the e-invoicing formats widely used in Finland, including
|
||||
TEAPPSXML, Finvoice, and the standardized XML in :abbr:`UBL (Universal Business Language)` format
|
||||
TEAPPSXML, Finvoice, and the standardized XML in {abbr}`UBL (Universal Business Language)` format
|
||||
required for Peppol compliance. This ensures compatibility with Finnish platforms such as Handi
|
||||
for public sector invoicing and eKuitti for enhanced receipt management and e-invoicing.
|
||||
- **Secure storage and retrieval**: In accordance with Finnish regulations requiring businesses to
|
||||
@@ -36,12 +34,13 @@ Here is how Odoo ensures compliance:
|
||||
system, allowing for easy retrieval during audits.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing ensures compliance with Finnish VAT
|
||||
requirements by automatically calculating and including VAT in invoices and formatting them to
|
||||
meet the legal standards for both B2B and :abbr:`B2G (business-to-government)` transactions.
|
||||
meet the legal standards for both B2B and {abbr}`B2G (business-to-government)` transactions.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Finnish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Act on Electronic Invoicing, Peppol standards, and other relevant
|
||||
regulations. It is not intended as legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Finnish e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Finnish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Act on Electronic Invoicing, Peppol standards, and other relevant
|
||||
regulations. It is not intended as legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Finnish e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
+21
-22
@@ -1,32 +1,29 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in France
|
||||
===================================
|
||||
# Odoo electronic invoicing in France
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to France's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in France
|
||||
=========================================
|
||||
## Legal framework for e-invoicing in France
|
||||
|
||||
In France, electronic invoicing is regulated by the `Ordonnance n° 2019-359
|
||||
<https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000038410002>`_, which is aligned with `EU Directive
|
||||
2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_, and requires
|
||||
mandatory :abbr:`B2G (business-to-government)` e-invoicing through the Chorus Pro platform. Starting
|
||||
In France, electronic invoicing is regulated by the [Ordonnance n° 2019-359](https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000038410002), which is aligned with [EU Directive
|
||||
2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055), and requires
|
||||
mandatory {abbr}`B2G (business-to-government)` e-invoicing through the Chorus Pro platform. Starting
|
||||
in 2024, B2B e-invoicing will be progressively implemented, becoming mandatory for all businesses by
|
||||
2026. This reform aims to combat tax fraud, improve VAT collection, and enhance business
|
||||
2026\. This reform aims to combat tax fraud, improve VAT collection, and enhance business
|
||||
transparency. The Factur-X hybrid format (a combination of PDF and XML data) is widely used in
|
||||
France, ensuring compliance with both local and European e-invoicing standards.
|
||||
|
||||
Compliance with French e-invoicing regulations
|
||||
==============================================
|
||||
## Compliance with French e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the Factur-X hybrid format (PDF with embedded XML) required
|
||||
for compliance with French e-invoicing standards. It is also compatible with :abbr:`UBL (Universal
|
||||
for compliance with French e-invoicing standards. It is also compatible with {abbr}`UBL (Universal
|
||||
Business Language)` XML for transactions via the Peppol network, facilitating both local and
|
||||
international invoicing. Odoo enables businesses, through Chorus Pro France’s official e-invoicing
|
||||
platform, to submit compliant e-invoices directly to public authorities and soon to private sector
|
||||
@@ -38,13 +35,15 @@ invoices. Here is how Odoo ensures compliance:
|
||||
invoices meet French VAT requirements and are formatted correctly for both B2G and B2B
|
||||
transactions, supporting seamless compliance with evolving standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`France fiscal localization documentation <../../../fiscal_localizations/france>`
|
||||
:::{seealso}
|
||||
{doc}`France fiscal localization documentation <../../../fiscal_localizations/france>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of French e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Chorus Pro platform, Factur-X standard, Peppol network, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with French e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of French e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Chorus Pro platform, Factur-X standard, Peppol network, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with French e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
+22
-22
@@ -1,25 +1,23 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Germany
|
||||
====================================
|
||||
# Odoo electronic invoicing in Germany
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Germany's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Germany
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Germany
|
||||
|
||||
In Germany, e-invoicing is governed by the `E-Rechnungsgesetz <https://www.bgbl.de/xaver/bgbl/start.xav?start=%2F%2F*%5B%40attr_id%3D%27bgbl117s0770.pdf%27%5D#__bgbl__%2F%2F*%5B%40attr_id%3D%27bgbl117s0770.pdf%27%5D__1733401471138>`_,
|
||||
which is aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
requiring e-invoicing for all :abbr:`B2G (business-to-government)` transactions. Invoices to public
|
||||
In Germany, e-invoicing is governed by the [E-Rechnungsgesetz](https://www.bgbl.de/xaver/bgbl/start.xav?start=%2F%2F*%5B%40attr_id%3D%27bgbl117s0770.pdf%27%5D#__bgbl__%2F%2F*%5B%40attr_id%3D%27bgbl117s0770.pdf%27%5D__1733401471138),
|
||||
which is aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
requiring e-invoicing for all {abbr}`B2G (business-to-government)` transactions. Invoices to public
|
||||
sector entities must comply with the XRechnung format or the Peppol BIS Billing 3.0 standard.
|
||||
Submission is typically handled through platforms like :abbr:`ZRE (Zentraler Rechnungseingang)` or
|
||||
:abbr:`OZG-RE (Onlinezugangsgesetz-Rechnungseingang)`. While B2B e-invoicing is not yet mandatory,
|
||||
Submission is typically handled through platforms like {abbr}`ZRE (Zentraler Rechnungseingang)` or
|
||||
{abbr}`OZG-RE (Onlinezugangsgesetz-Rechnungseingang)`. While B2B e-invoicing is not yet mandatory,
|
||||
its adoption is increasing as businesses seek to enhance compliance, efficiency, and transparency.
|
||||
|
||||
Compliance with German e-invoicing regulations
|
||||
==============================================
|
||||
## Compliance with German e-invoicing regulations
|
||||
|
||||
Odoo Invoicing makes it easy for businesses to send, store, and ensure the integrity of their
|
||||
invoices. Here is how Odoo ensures compliance:
|
||||
@@ -31,17 +29,19 @@ invoices. Here is how Odoo ensures compliance:
|
||||
stored for at least ten years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring they are easily accessible for audits and compliance checks.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations, ensuring
|
||||
compliance with German VAT requirements and proper formatting for both :abbr:`B2G
|
||||
compliance with German VAT requirements and proper formatting for both {abbr}`B2G
|
||||
(business-to-government)` and B2B transactions, supporting efficient reporting and legal
|
||||
adherence.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Germany fiscal localization documentation <../../../fiscal_localizations/germany>`
|
||||
:::{seealso}
|
||||
{doc}`Germany fiscal localization documentation <../../../fiscal_localizations/germany>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of German e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with E-Rechnungsgesetz, XRechnung, Peppol standards, and other relevant regulations.
|
||||
It does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with German e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of German e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with E-Rechnungsgesetz, XRechnung, Peppol standards, and other relevant regulations.
|
||||
It does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with German e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
+14
-15
@@ -1,26 +1,24 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Hungary
|
||||
====================================
|
||||
# Odoo electronic invoicing in Hungary
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Hungary's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Hungary
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Hungary
|
||||
|
||||
In Hungary, businesses must adhere to e-invoicing regulations to ensure secure, authentic, and
|
||||
storable transactions. The primary legal framework is the Hungarian VAT Act (Act CXXVII of 2007),
|
||||
which mandates real-time reporting of invoices to the NAV Online invoice system, Hungary's
|
||||
government e-invoicing platform. As of 2021, all B2B and B2C invoices must be reported in real-time,
|
||||
regardless of value. Hungary's regulations do not currently require :abbr:`B2G
|
||||
regardless of value. Hungary's regulations do not currently require {abbr}`B2G
|
||||
(business-to-government)` e-invoicing, but public sector invoicing is encouraged via the Peppol
|
||||
network. Common formats for e-invoicing include XML for NAV submissions and other structured formats
|
||||
to streamline compliance.
|
||||
|
||||
Compliance with Hungarian e-invoicing regulations
|
||||
=================================================
|
||||
## Compliance with Hungarian e-invoicing regulations
|
||||
|
||||
Odoo invoicing module is designed to help businesses meet Hungary's e-invoicing and VAT reporting
|
||||
requirements. Here is how Odoo ensures compliance:
|
||||
@@ -37,10 +35,11 @@ requirements. Here is how Odoo ensures compliance:
|
||||
invoices meet the strict requirements of the Hungarian VAT Act, simplifying compliance for B2B and
|
||||
B2C transactions.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Hungarian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Hungarian VAT Act, NAV Online Invoice System, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Hungarian e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Hungarian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Hungarian VAT Act, NAV Online Invoice System, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Hungarian e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+19
-20
@@ -1,31 +1,29 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Ireland
|
||||
====================================
|
||||
# Odoo electronic invoicing in Ireland
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Ireland's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Ireland
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Ireland
|
||||
|
||||
In Ireland, businesses must comply with e-invoicing regulations to ensure secure, authentic, and
|
||||
storable transactions. The legal framework for e-invoicing is primarily shaped by `EU Directive
|
||||
2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_, which
|
||||
mandates the use of electronic invoicing in :abbr:`B2G (business-to-government)` transactions. Irish
|
||||
storable transactions. The legal framework for e-invoicing is primarily shaped by [EU Directive
|
||||
2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055), which
|
||||
mandates the use of electronic invoicing in {abbr}`B2G (business-to-government)` transactions. Irish
|
||||
public sector bodies must accept electronic invoices that comply with the European Standard EN
|
||||
16931. E-invoicing in the public sector is facilitated through the Peppol network, providing a
|
||||
16931\. E-invoicing in the public sector is facilitated through the Peppol network, providing a
|
||||
streamlined and standardized platform for invoicing. While not mandatory for B2B transactions,
|
||||
e-invoicing is increasingly encouraged to enhance efficiency, transparency, and compliance.
|
||||
|
||||
Compliance with Irish e-invoicing regulations
|
||||
=============================================
|
||||
## Compliance with Irish e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is equipped to meet Ireland's e-invoicing requirements, ensuring businesses
|
||||
can operate with confidence. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the XML and :abbr:`UBL (Universal Business Language)` formats
|
||||
- **Supported formats**: Odoo supports the XML and {abbr}`UBL (Universal Business Language)` formats
|
||||
required for Peppol compliance and ensures compatibility with the European Standard EN 16931,
|
||||
which is the basis for public sector e-invoicing in Ireland. Odoo seamlessly integrates with the
|
||||
Peppol network, enabling businesses to send compliant e-invoices directly to Irish public sector
|
||||
@@ -35,12 +33,13 @@ can operate with confidence. Here is how Odoo ensures compliance:
|
||||
system, ensuring they can be easily accessed during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing ensures full compliance with Irish VAT
|
||||
regulations by automatically calculating and including VAT in invoices, while formatting them to
|
||||
meet the legal requirements for both B2B and :abbr:`B2G (business-to-government)` transactions.
|
||||
meet the legal requirements for both B2B and {abbr}`B2G (business-to-government)` transactions.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Irish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Irish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Irish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Irish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Italy
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Italy's regulatory standards.
|
||||
|
||||
## Legal framework for e-invoicing in Italy
|
||||
|
||||
Italy has one of the most advanced e-invoicing frameworks in Europe, governed by the [Italian budget
|
||||
law](https://www.gazzettaufficiale.it/eli/id/2022/12/29/22G00211/sg) and regulations issued by the
|
||||
Agenzia delle Entrate. Since 2019, e-invoicing is mandatory for B2B, B2C, and {abbr}`B2G
|
||||
(business-to-government)` transactions. All e-invoices must be submitted through the {abbr}`Sdi
|
||||
(Sistema di Interscambio)`, the Italian government's centralized exchange system. The format for
|
||||
e-invoices is FatturaPA, a structured XML format specifically designed for compliance with Italian
|
||||
regulations. As part of its compliance with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
Italy also supports Peppol standards for cross-border e-invoicing.
|
||||
|
||||
## Compliance with Italian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully equipped to meet Italy's e-invoicing requirements. Here is how Odoo ensures
|
||||
compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the FatturaPA XML format required by the {abbr}`Sdi (Sistema
|
||||
di Interscambio)` for all domestic e-invoices, as well as {abbr}`UBL (Universal Business
|
||||
Language)` XML for cross-border invoicing via the Peppol network, ensuring compliance with both
|
||||
Italian and EU standards. Odoo has an easy access to the {abbr}`Sdi (Sistema di Interscambio)`
|
||||
platform, allowing businesses to send, validate, and track invoices in real-time, ensuring
|
||||
seamless compliance with Italian regulations.
|
||||
- **Secure storage and retrieval**: In accordance with Italian law, which requires invoices to be
|
||||
stored for a minimum of ten years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring they can be easily retrieved for audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
invoices adhere to the strict formatting and reporting requirements of Italian law for B2B, B2C,
|
||||
and {abbr}`B2G (business-to-government)` transactions.
|
||||
|
||||
::::{seealso}
|
||||
> {doc}`Italy fiscal localization documentation <../../../fiscal_localizations/italy>`
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Italian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Italian Budget Law, {abbr}`Sdi (Sistema di Interscambio)`, FatturaPA format,
|
||||
Peppol standards, and other relevant regulations. It does not constitute legal advice. We
|
||||
recommend consulting with a tax advisor or legal professional familiar with Italian e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
:::
|
||||
::::
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
==================================
|
||||
Odoo electronic invoicing in Italy
|
||||
==================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Italy's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Italy
|
||||
========================================
|
||||
|
||||
Italy has one of the most advanced e-invoicing frameworks in Europe, governed by the `Italian budget
|
||||
law <https://www.gazzettaufficiale.it/eli/id/2022/12/29/22G00211/sg>`_ and regulations issued by the
|
||||
Agenzia delle Entrate. Since 2019, e-invoicing is mandatory for B2B, B2C, and :abbr:`B2G
|
||||
(business-to-government)` transactions. All e-invoices must be submitted through the :abbr:`Sdi
|
||||
(Sistema di Interscambio)`, the Italian government's centralized exchange system. The format for
|
||||
e-invoices is FatturaPA, a structured XML format specifically designed for compliance with Italian
|
||||
regulations. As part of its compliance with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
Italy also supports Peppol standards for cross-border e-invoicing.
|
||||
|
||||
Compliance with Italian e-invoicing regulations
|
||||
===============================================
|
||||
|
||||
Odoo Invoicing is fully equipped to meet Italy's e-invoicing requirements. Here is how Odoo ensures
|
||||
compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the FatturaPA XML format required by the :abbr:`Sdi (Sistema
|
||||
di Interscambio)` for all domestic e-invoices, as well as :abbr:`UBL (Universal Business
|
||||
Language)` XML for cross-border invoicing via the Peppol network, ensuring compliance with both
|
||||
Italian and EU standards. Odoo has an easy access to the :abbr:`Sdi (Sistema di Interscambio)`
|
||||
platform, allowing businesses to send, validate, and track invoices in real-time, ensuring
|
||||
seamless compliance with Italian regulations.
|
||||
- **Secure storage and retrieval**: In accordance with Italian law, which requires invoices to be
|
||||
stored for a minimum of ten years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring they can be easily retrieved for audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
invoices adhere to the strict formatting and reporting requirements of Italian law for B2B, B2C,
|
||||
and :abbr:`B2G (business-to-government)` transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Italy fiscal localization documentation <../../../fiscal_localizations/italy>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides an overview of Italian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Italian Budget Law, :abbr:`Sdi (Sistema di Interscambio)`, FatturaPA format,
|
||||
Peppol standards, and other relevant regulations. It does not constitute legal advice. We
|
||||
recommend consulting with a tax advisor or legal professional familiar with Italian e-invoicing
|
||||
regulations to ensure compliance tailored to your specific business needs.
|
||||
+18
-19
@@ -1,29 +1,27 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in Latvia
|
||||
===================================
|
||||
# Odoo electronic invoicing in Latvia
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Latvia's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Latvia
|
||||
=========================================
|
||||
## Legal framework for e-invoicing in Latvia
|
||||
|
||||
In Latvia, electronic invoicing is governed by the `Law on Accounting <https://eur-lex.europa.eu/legal-content/LV/TXT/PDF/?uri=CELEX:72014L0055LVA_270633>`_
|
||||
and regulations aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
mandating the use of e-invoicing in :abbr:`B2G (business-to-government)` transactions. All public
|
||||
In Latvia, electronic invoicing is governed by the [Law on Accounting](https://eur-lex.europa.eu/legal-content/LV/TXT/PDF/?uri=CELEX:72014L0055LVA_270633)
|
||||
and regulations aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
mandating the use of e-invoicing in {abbr}`B2G (business-to-government)` transactions. All public
|
||||
sector invoices must be sent in the European Standard EN 16931 format through platforms such as
|
||||
eInvoicing.lv, Latvia’s official e-invoicing infrastructure. Latvia is also connected to the Peppol
|
||||
network, facilitating standardized cross-border e-invoicing across the European Union.
|
||||
|
||||
Compliance with Latvian e-invoicing regulations
|
||||
===============================================
|
||||
## Compliance with Latvian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is designed to help businesses comply with Latvia's specific e-invoicing
|
||||
requirements. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the XML :abbr:`UBL (Universal Business Language)` format,
|
||||
- **Supported formats**: Odoo supports the XML {abbr}`UBL (Universal Business Language)` format,
|
||||
compliant with European Standard EN 16931, which is required for public sector e-invoicing in
|
||||
Latvia. Odoo also facilitates e-invoicing through the Peppol network, ensuring seamless
|
||||
cross-border compatibility. Odoo integrates with Latvian e-invoicing platforms, such as
|
||||
@@ -33,13 +31,14 @@ requirements. Here is how Odoo ensures compliance:
|
||||
stored for a minimum of five years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring they can be easily accessed during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
invoices adhere to the legal requirements for :abbr:`B2G (business-to-government)` and B2B
|
||||
invoices adhere to the legal requirements for {abbr}`B2G (business-to-government)` and B2B
|
||||
transactions, helping businesses comply with Latvian VAT laws.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Latvian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Law on Accounting, European Standard EN 16931, eInvoicing.lv, Peppol
|
||||
standards, and other relevant regulations. It does not constitute legal advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Latvian e-invoicing regulations
|
||||
to ensure compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Latvian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Law on Accounting, European Standard EN 16931, eInvoicing.lv, Peppol
|
||||
standards, and other relevant regulations. It does not constitute legal advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Latvian e-invoicing regulations
|
||||
to ensure compliance tailored to your specific business needs.
|
||||
+16
-17
@@ -1,26 +1,24 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
======================================
|
||||
Odoo electronic invoicing in Lithuania
|
||||
======================================
|
||||
# Odoo electronic invoicing in Lithuania
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Lithuania's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Lithuania
|
||||
============================================
|
||||
## Legal framework for e-invoicing in Lithuania
|
||||
|
||||
In Lithuania, e-invoicing is regulated under the `Law on Accounting <https://www.e-tar.lt/portal/lt/legalAct/207ad17030a011e78397ae072f58c508>`_
|
||||
and aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_
|
||||
for mandatory :abbr:`B2G (business-to-government)` e-invoicing. Businesses working with public
|
||||
In Lithuania, e-invoicing is regulated under the [Law on Accounting](https://www.e-tar.lt/portal/lt/legalAct/207ad17030a011e78397ae072f58c508)
|
||||
and aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055)
|
||||
for mandatory {abbr}`B2G (business-to-government)` e-invoicing. Businesses working with public
|
||||
sector entities must use e-invoicing, and invoices must be submitted through the E.sąskaita
|
||||
platform, Lithuania’s centralized invoicing system for public procurement. Lithuania also
|
||||
participates in the Peppol network, enabling seamless cross-border e-invoicing. While B2B
|
||||
e-invoicing is currently optional, its use is encouraged to enhance tax compliance and operational
|
||||
efficiency.
|
||||
|
||||
Compliance with Lithuanian e-invoicing regulations
|
||||
==================================================
|
||||
## Compliance with Lithuanian e-invoicing regulations
|
||||
|
||||
Odoo invoicing module is fully equipped to meet Lithuania's e-invoicing requirements and ensure
|
||||
compliance with local and EU standards. Here is how Odoo ensures compliance:
|
||||
@@ -37,10 +35,11 @@ compliance with local and EU standards. Here is how Odoo ensures compliance:
|
||||
invoices meet Lithuania’s VAT requirements for both B2G and B2B transactions, reducing the risk of
|
||||
non-compliance.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Lithuanian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Law on Accounting, E.sąskaita platform, Peppol standards, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Lithuanian e-invoicing regulations to ensure compliance tailored
|
||||
to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Lithuanian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Law on Accounting, E.sąskaita platform, Peppol standards, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Lithuanian e-invoicing regulations to ensure compliance tailored
|
||||
to your specific business needs.
|
||||
+20
-20
@@ -1,30 +1,28 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
=======================================
|
||||
Odoo electronic invoicing in Luxembourg
|
||||
=======================================
|
||||
# Odoo electronic invoicing in Luxembourg
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Luxembourg's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Luxembourg
|
||||
=============================================
|
||||
## Legal framework for e-invoicing in Luxembourg
|
||||
|
||||
In Luxembourg, e-invoicing is regulated in accordance with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
requiring the use of electronic invoicing in :abbr:`B2G (business-to-government)` transactions.
|
||||
In Luxembourg, e-invoicing is regulated in accordance with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
requiring the use of electronic invoicing in {abbr}`B2G (business-to-government)` transactions.
|
||||
Public sector entities in Luxembourg must accept e-invoices in the European Standard EN 16931
|
||||
format. The government supports e-invoicing through the Peppol network, ensuring streamlined
|
||||
communication and compliance for cross-border transactions. While e-invoicing is not yet mandatory
|
||||
for B2B transactions, its adoption is encouraged to promote operational efficiency and tax
|
||||
compliance across industries.
|
||||
|
||||
Compliance with Luxembourgish e-invoicing regulations
|
||||
=====================================================
|
||||
## Compliance with Luxembourgish e-invoicing regulations
|
||||
|
||||
Odoo invoicing is equipped to support businesses in adhering to Luxembourg's e-invoicing standards.
|
||||
Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the XML :abbr:`UBL (Universal Business Language)` format,
|
||||
- **Supported formats**: Odoo supports the XML {abbr}`UBL (Universal Business Language)` format,
|
||||
compliant with European Standard EN 16931, meeting the requirements for public sector e-invoicing
|
||||
in Luxembourg. It also facilitates e-invoicing through the Peppol network, ensuring
|
||||
interoperability for cross-border invoicing.
|
||||
@@ -33,15 +31,17 @@ Here is how Odoo ensures compliance:
|
||||
access during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing ensures full compliance with
|
||||
Luxembourg's VAT regulations by automating VAT calculations and formatting invoices to meet the
|
||||
legal standards for :abbr:`B2G (business-to-government)` and B2B transactions.
|
||||
legal standards for {abbr}`B2G (business-to-government)` and B2B transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Luxembourg fiscal localization documentation <../../../fiscal_localizations/luxembourg>`
|
||||
:::{seealso}
|
||||
{doc}`Luxembourg fiscal localization documentation <../../../fiscal_localizations/luxembourg>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Luxembourg's e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, European Standard EN 16931, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Luxembourg’s e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Luxembourg's e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, European Standard EN 16931, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Luxembourg’s e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
# Odoo electronic invoicing in Mexico
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Mexico's regulatory requirements and fully compatible with the guidelines
|
||||
established by the {abbr}`SAT (Servicio de Administración Tributaria)`.
|
||||
|
||||
## Legal framework for e-invoicing in Mexico
|
||||
|
||||
Mexico has one of the most advanced e-invoicing systems globally, with electronic invoicing
|
||||
{abbr}`CFDI (Comprobante Fiscal Digital por Internet)` being mandatory for most taxpayers. Key
|
||||
elements include:
|
||||
|
||||
- **CFDI**: A mandatory electronic invoice format for B2B, B2C, and {abbr}`B2G
|
||||
(business-to-government)` transactions, fully compliant with SAT requirements.
|
||||
- **Digital tax receipt validation**: All {abbr}`CFDIs (Comprobante Fiscal Digital por Internet)`
|
||||
must be digitally signed and validated by {abbr}`SAT (Servicio de Administración
|
||||
Tributaria)`-authorized {abbr}`PACs (authorized certification providers)` before issuance.
|
||||
- **Complementos**: Specific complements are required for certain transaction types, such as
|
||||
payroll or foreign trade.
|
||||
- **XML Format**: The XML format is mandatory, ensuring interoperability and compliance with
|
||||
{abbr}`SAT (Servicio de Administración Tributaria)`'s technical standards.
|
||||
|
||||
## Compliance with Mexican e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies compliance with Mexico’s e-invoicing requirements by offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports {abbr}`CFDI (Comprobante Fiscal Digital por Internet)` in
|
||||
{abbr}`SAT (Servicio de Administración Tributaria)`-compliant XML formats, including all
|
||||
mandatory fields, digital signatures, and complements for specialized transactions.
|
||||
- **Integration with PACs**: Odoo integrates with {abbr}`SAT (Servicio de Administración
|
||||
Tributaria)`-authorized {abbr}`PACs (authorized certification providers)` to automate the
|
||||
validation, certification, and issuance of {abbr}`CFDIs (Comprobante Fiscal Digital por
|
||||
Internet)`, ensuring real-time compliance.
|
||||
- **Secure storage and retrieval**: In compliance with Mexico's five-year mandatory storage
|
||||
requirement, Odoo provides tamper-proof archiving for easy access to invoices during audits
|
||||
or inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
|
||||
other applicable taxes, ensuring accuracy and compliance with {abbr}`SAT (Servicio de
|
||||
Administración Tributaria)`'s tax reporting standards.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Mexican fiscal localization documentation <../../../fiscal_localizations/mexico>`
|
||||
:::
|
||||
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Mexican e-invoicing regulations and how Odoo supports
|
||||
compliance with {abbr}`SAT (Servicio de Administración Tributaria)` requirements. It is not
|
||||
intended as legal or tax advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Mexico's e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
:orphan:
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in Mexico
|
||||
===================================
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Mexico's regulatory requirements and fully compatible with the guidelines
|
||||
established by the :abbr:`SAT (Servicio de Administración Tributaria)`.
|
||||
|
||||
Legal framework for e-invoicing in Mexico
|
||||
=========================================
|
||||
|
||||
Mexico has one of the most advanced e-invoicing systems globally, with electronic invoicing
|
||||
:abbr:`CFDI (Comprobante Fiscal Digital por Internet)` being mandatory for most taxpayers. Key
|
||||
elements include:
|
||||
|
||||
- **CFDI**: A mandatory electronic invoice format for B2B, B2C, and :abbr:`B2G
|
||||
(business-to-government)` transactions, fully compliant with SAT requirements.
|
||||
- **Digital tax receipt validation**: All :abbr:`CFDIs (Comprobante Fiscal Digital por Internet)`
|
||||
must be digitally signed and validated by :abbr:`SAT (Servicio de Administración
|
||||
Tributaria)`-authorized :abbr:`PACs (authorized certification providers)` before issuance.
|
||||
- **Complementos**: Specific complements are required for certain transaction types, such as
|
||||
payroll or foreign trade.
|
||||
- **XML Format**: The XML format is mandatory, ensuring interoperability and compliance with
|
||||
:abbr:`SAT (Servicio de Administración Tributaria)`'s technical standards.
|
||||
|
||||
Compliance with Mexican e-invoicing regulations
|
||||
===============================================
|
||||
|
||||
Odoo Invoicing simplifies compliance with Mexico’s e-invoicing requirements by offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` in
|
||||
:abbr:`SAT (Servicio de Administración Tributaria)`-compliant XML formats, including all
|
||||
mandatory fields, digital signatures, and complements for specialized transactions.
|
||||
- **Integration with PACs**: Odoo integrates with :abbr:`SAT (Servicio de Administración
|
||||
Tributaria)`-authorized :abbr:`PACs (authorized certification providers)` to automate the
|
||||
validation, certification, and issuance of :abbr:`CFDIs (Comprobante Fiscal Digital por
|
||||
Internet)`, ensuring real-time compliance.
|
||||
- **Secure storage and retrieval**: In compliance with Mexico's five-year mandatory storage
|
||||
requirement, Odoo provides tamper-proof archiving for easy access to invoices during audits
|
||||
or inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
|
||||
other applicable taxes, ensuring accuracy and compliance with :abbr:`SAT (Servicio de
|
||||
Administración Tributaria)`'s tax reporting standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Mexican fiscal localization documentation <../../../fiscal_localizations/mexico>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides a general overview of Mexican e-invoicing regulations and how Odoo supports
|
||||
compliance with :abbr:`SAT (Servicio de Administración Tributaria)` requirements. It is not
|
||||
intended as legal or tax advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Mexico's e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+21
-21
@@ -1,30 +1,28 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
============================================
|
||||
Odoo electronic invoicing in the Netherlands
|
||||
============================================
|
||||
# Odoo electronic invoicing in the Netherlands
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to the Netherlands' regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in the Netherlands
|
||||
==================================================
|
||||
## Legal framework for e-invoicing in the Netherlands
|
||||
|
||||
In the Netherlands, e-invoicing is regulated under `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
requiring :abbr:`B2G (business-to-government)` transactions to adhere to the European Standard EN
|
||||
16931. Public sector entities must accept e-invoices through platforms such as Digipoort, the Dutch
|
||||
In the Netherlands, e-invoicing is regulated under [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
requiring {abbr}`B2G (business-to-government)` transactions to adhere to the European Standard EN
|
||||
16931\. Public sector entities must accept e-invoices through platforms such as Digipoort, the Dutch
|
||||
government's official gateway for electronic data exchange. The Netherlands is also a prominent
|
||||
member of the Peppol network, which enables secure and standardized e-invoicing for cross-border
|
||||
transactions across Europe. While e-invoicing is not yet mandatory for B2B transactions, it is
|
||||
strongly encouraged to enhance transparency and efficiency in business processes.
|
||||
|
||||
Compliance with Dutch e-invoicing regulations
|
||||
=============================================
|
||||
## Compliance with Dutch e-invoicing regulations
|
||||
|
||||
Odoo invoicing is equipped to support businesses with the Netherlands' e-invoicing requirements.
|
||||
Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports :abbr:`UBL (Universal Business Language)` XML, which is the
|
||||
- **Supported formats**: Odoo supports {abbr}`UBL (Universal Business Language)` XML, which is the
|
||||
standard format for e-invoicing in the Netherlands. It ensures compatibility with both Digipoort
|
||||
for domestic B2G transactions and the Peppol network for international e-invoicing.
|
||||
- **Secure storage and retrieval**: In accordance with Dutch regulations, which require businesses
|
||||
@@ -32,15 +30,17 @@ Here is how Odoo ensures compliance:
|
||||
tamper-proof system, ensuring they are accessible during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and formats
|
||||
invoices to meet Dutch VAT requirements, ensuring compliance with legal standards for both
|
||||
:abbr:`B2G (business-to-government)` and B2B transactions.
|
||||
{abbr}`B2G (business-to-government)` and B2B transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Netherlands fiscal localization documentation <../../../fiscal_localizations/netherlands>`
|
||||
:::{seealso}
|
||||
{doc}`Netherlands fiscal localization documentation <../../../fiscal_localizations/netherlands>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Dutch e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, Digipoort, Peppol standards, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Dutch e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Dutch e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with EU Directive 2014/55/EU, Digipoort, Peppol standards, and other relevant
|
||||
regulations. It does not constitute legal advice. We recommend consulting with a tax advisor or
|
||||
legal professional familiar with Dutch e-invoicing regulations to ensure compliance tailored to
|
||||
your specific business needs.
|
||||
+17
-18
@@ -1,31 +1,29 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in Norway
|
||||
===================================
|
||||
# Odoo electronic invoicing in Norway
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Norway's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Norway
|
||||
=========================================
|
||||
## Legal framework for e-invoicing in Norway
|
||||
|
||||
In Norway, e-invoicing is governed by regulations aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
requiring :abbr:`B2G (business-to-government)` transactions to comply with mandatory e-invoicing
|
||||
In Norway, e-invoicing is governed by regulations aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
requiring {abbr}`B2G (business-to-government)` transactions to comply with mandatory e-invoicing
|
||||
standards. Norwegian public sector entities mandate the use of the EHF (Elektronisk Handelsformat)
|
||||
standard for e-invoices, ensuring uniformity and security. Norway is a member of the Peppol network,
|
||||
which supports standardized and interoperable cross-border e-invoicing throughout Europe. Although
|
||||
not mandatory for B2B transactions, e-invoicing is widely encouraged and adopted across the private
|
||||
sector to boost efficiency, transparency, and compliance.
|
||||
|
||||
Compliance with Norwegian e-invoicing regulations
|
||||
=================================================
|
||||
## Compliance with Norwegian e-invoicing regulations
|
||||
|
||||
Odoo invoicing is designed to fully support businesses in meeting Norway's e-invoicing standards.
|
||||
Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the EHF (Elektronisk Handelsformat) standard, which is
|
||||
required for public sector e-invoicing in Norway. Odoo is also compatible with :abbr:`UBL
|
||||
required for public sector e-invoicing in Norway. Odoo is also compatible with {abbr}`UBL
|
||||
(Universal Business Language)` XML for transactions through the Peppol network, ensuring adherence
|
||||
to both Norwegian and EU e-invoicing requirements.
|
||||
- **Secure storage and retrieval**: In compliance with Norwegian regulations that mandate the
|
||||
@@ -33,12 +31,13 @@ Here is how Odoo ensures compliance:
|
||||
tamper-proof system, ensuring accessibility and security during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations, ensuring
|
||||
that invoices meet Norwegian VAT requirements while adhering to the correct format for both
|
||||
:abbr:`B2G (business-to-government)` and B2B transactions.
|
||||
{abbr}`B2G (business-to-government)` and B2B transactions.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Norwegian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the EHF standard, Peppol network, and other relevant regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Norwegian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Norwegian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the EHF standard, Peppol network, and other relevant regulations. It does not
|
||||
constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Norwegian e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+23
-24
@@ -1,55 +1,54 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
=================================
|
||||
Odoo electronic invoicing in Peru
|
||||
=================================
|
||||
# Odoo electronic invoicing in Peru
|
||||
|
||||
Odoo Invoicing provides secure, efficient, and legally compliant e-invoicing solutions tailored to
|
||||
meet Peru’s regulatory requirements and fully compatible with the guidelines established by the
|
||||
`Superintendencia Nacional de Aduanas y de Administración Tributaria (SUNAT)
|
||||
<https://www.sunat.gob.pe/>`_.
|
||||
[Superintendencia Nacional de Aduanas y de Administración Tributaria (SUNAT)](https://www.sunat.gob.pe/).
|
||||
|
||||
Legal framework for e-invoicing in Peru
|
||||
=======================================
|
||||
## Legal framework for e-invoicing in Peru
|
||||
|
||||
Peru has mandated electronic invoicing for most taxpayers to enhance tax compliance, reduce fraud,
|
||||
and improve transparency. Key elements include:
|
||||
|
||||
- **Comprobante de Pago Electrónico (CPE)**: A mandatory electronic document required for B2B, B2C,
|
||||
and :abbr:`B2G (business-to-government)` transactions, fully compliant with :abbr:`SUNAT
|
||||
and {abbr}`B2G (business-to-government)` transactions, fully compliant with {abbr}`SUNAT
|
||||
(Superintendencia Nacional de Aduanas y de Administración Tributaria)`'s technical specifications.
|
||||
- **Integration with SUNAT**: E-invoices must be submitted to :abbr:`SUNAT (Superintendencia
|
||||
- **Integration with SUNAT**: E-invoices must be submitted to {abbr}`SUNAT (Superintendencia
|
||||
Nacional de Aduanas y de Administración Tributaria)` for validation and authorization. Upon
|
||||
approval, :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
|
||||
approval, {abbr}`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
|
||||
assigns a unique identification code to the invoice.
|
||||
- **XML Format**: All electronic invoices must be issued in XML format, ensuring standardization and
|
||||
interoperability.
|
||||
- **Mandatory adoption timeline**: Electronic invoicing is mandatory for most businesses, with
|
||||
specific deadlines for smaller entities.
|
||||
|
||||
Compliance with Peruvian e-invoicing regulations
|
||||
================================================
|
||||
## Compliance with Peruvian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies compliance with Peru’s e-invoicing requirements by offering tailored
|
||||
features:
|
||||
|
||||
- **Supported formats**: Odoo supports the Peruvian :abbr:`CPE (Comprobante de Pago Electrónico` in
|
||||
:abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`-compliant XML
|
||||
- **Supported formats**: Odoo supports the Peruvian {abbr}`CPE (Comprobante de Pago Electrónico` in
|
||||
{abbr}`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`-compliant XML
|
||||
formats, including all required fields and authorization codes.
|
||||
- **Secure storage and retrieval**: In compliance with Peru's five-year mandatory storage
|
||||
requirement, Odoo offers tamper-proof archiving, ensuring easy access for audits or inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for :abbr:`IGV
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for {abbr}`IGV
|
||||
(Impuesto General a las Ventas) and other applicable taxes, ensuring accuracy and compliance
|
||||
with :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`'s
|
||||
reporting standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Peruvian fiscal localization documentation <../../../fiscal_localizations/peru>`
|
||||
:::{seealso}
|
||||
{doc}`Peruvian fiscal localization documentation <../../../fiscal_localizations/peru>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Peruvian e-invoicing regulations and how Odoo supports
|
||||
compliance with {abbr}`SUNAT (Superintendencia Nacional de Aduanas y de Administración
|
||||
Tributaria)` requirements. It is not intended as legal or tax advice. We recommend consulting
|
||||
with a tax advisor or legal professional familiar with Peru's e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides a general overview of Peruvian e-invoicing regulations and how Odoo supports
|
||||
compliance with :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración
|
||||
Tributaria)` requirements. It is not intended as legal or tax advice. We recommend consulting
|
||||
with a tax advisor or legal professional familiar with Peru's e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+16
-17
@@ -1,25 +1,23 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
===================================
|
||||
Odoo electronic invoicing in Poland
|
||||
===================================
|
||||
# Odoo electronic invoicing in Poland
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Poland's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Poland
|
||||
=========================================
|
||||
## Legal framework for e-invoicing in Poland
|
||||
|
||||
In Poland, e-invoicing is governed by the `Polish VAT Act <https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20230001598>`_
|
||||
In Poland, e-invoicing is governed by the [Polish VAT Act](https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20230001598)
|
||||
and the National e-Invoicing System (KSeF – Krajowy System e-Faktur), which became operational in
|
||||
2022. While :abbr:`B2G (business-to-government)` e-invoicing is mandatory under `EU Directive
|
||||
2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_, B2B
|
||||
2022\. While {abbr}`B2G (business-to-government)` e-invoicing is mandatory under [EU Directive
|
||||
2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055), B2B
|
||||
e-invoicing is mandatory for all businesses starting July 2024, following Poland's adoption of the
|
||||
e-invoicing scheme. E-invoices must be issued in the FA_VAT (structured XML) format and transmitted
|
||||
through the KSeF platform, ensuring compliance with tax reporting and transparency goals.
|
||||
|
||||
Compliance with Polish e-invoicing regulations
|
||||
==============================================
|
||||
## Compliance with Polish e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully equipped to help businesses comply with Poland's evolving e-invoicing
|
||||
requirements. Here is how Odoo ensures compliance:
|
||||
@@ -36,10 +34,11 @@ requirements. Here is how Odoo ensures compliance:
|
||||
invoices meet Polish VAT requirements for both B2G and B2B transactions, streamlining compliance
|
||||
and tax reporting processes.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Polish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Act, KSeF platform, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Polish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Polish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Act, KSeF platform, Peppol standards, and other relevant regulations. It
|
||||
does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Polish e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
+20
-21
@@ -1,31 +1,29 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
=====================================
|
||||
Odoo electronic invoicing in Portugal
|
||||
=====================================
|
||||
# Odoo electronic invoicing in Portugal
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Portugal's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Portugal
|
||||
===========================================
|
||||
## Legal framework for e-invoicing in Portugal
|
||||
|
||||
In Portugal, e-invoicing is regulated under the Portuguese VAT Code and in compliance with `EU
|
||||
Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_ for
|
||||
:abbr:`B2G (business-to-government)` transactions. E-invoicing has been mandatory for public sector
|
||||
suppliers since 2021. Businesses must use structured e-invoices in the :abbr:`CIUS-PT (Customizable
|
||||
In Portugal, e-invoicing is regulated under the Portuguese VAT Code and in compliance with [EU
|
||||
Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055) for
|
||||
{abbr}`B2G (business-to-government)` transactions. E-invoicing has been mandatory for public sector
|
||||
suppliers since 2021. Businesses must use structured e-invoices in the {abbr}`CIUS-PT (Customizable
|
||||
Invoice User Specification for Portugal)` format, which aligns with European standards. While B2B
|
||||
e-invoicing is not yet mandatory, its adoption is encouraged to improve tax compliance and
|
||||
efficiency. Additionally, e-invoices must be validated and certified under Portugal's SAF-T (PT)
|
||||
system, which integrates with the tax authority for reporting.
|
||||
|
||||
Compliance with Portuguese e-invoicing regulations
|
||||
==================================================
|
||||
## Compliance with Portuguese e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully equipped to meet Portugal's e-invoicing and tax reporting requirements. Here
|
||||
is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the :abbr:`CIUS-PT (Customizable Invoice User Specification
|
||||
- **Supported formats**: Odoo supports the {abbr}`CIUS-PT (Customizable Invoice User Specification
|
||||
for Portugal)` format, ensuring compatibility with Portugal's public procurement e-invoicing
|
||||
requirements. For cross-border transactions, Odoo also supports the Peppol BIS Billing 3.0 format,
|
||||
facilitating seamless compliance with EU standards. Integration with SAF-T (PT) and Tax Authority
|
||||
@@ -35,14 +33,15 @@ is how Odoo ensures compliance:
|
||||
invoices to be stored for at least ten years, Odoo securely archives all invoices in a
|
||||
tamper-proof system, ensuring they are accessible for audits and inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
that invoices meet Portuguese VAT requirements for both :abbr:`B2G (business-to-government)` and
|
||||
that invoices meet Portuguese VAT requirements for both {abbr}`B2G (business-to-government)` and
|
||||
B2B transactions, supporting efficient and accurate tax reporting.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Portuguese e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Code, {abbr}`CIUS-PT (Customizable Invoice User Specification for
|
||||
Portugal)` format, SAF-T (PT) system, Peppol standards, and other relevant regulations. It does
|
||||
not constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Portuguese e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Portuguese e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Code, :abbr:`CIUS-PT (Customizable Invoice User Specification for
|
||||
Portugal)` format, SAF-T (PT) system, Peppol standards, and other relevant regulations. It does
|
||||
not constitute legal advice. We recommend consulting with a tax advisor or legal professional
|
||||
familiar with Portuguese e-invoicing regulations to ensure compliance tailored to your specific
|
||||
business needs.
|
||||
+23
-23
@@ -1,31 +1,29 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Romania
|
||||
====================================
|
||||
# Odoo electronic invoicing in Romania
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Romania's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Romania
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Romania
|
||||
|
||||
In Romania, e-invoicing is regulated under the `Fiscal Code <http://www.dreptonline.ro/carti/start_carte.php?id_carte=324>`_
|
||||
and aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
which mandates e-invoicing for :abbr:`B2G (business-to-government)` transactions. Romania has
|
||||
In Romania, e-invoicing is regulated under the [Fiscal Code](http://www.dreptonline.ro/carti/start_carte.php?id_carte=324)
|
||||
and aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
which mandates e-invoicing for {abbr}`B2G (business-to-government)` transactions. Romania has
|
||||
implemented the RO e-Factura system, the national platform for issuing and receiving electronic
|
||||
invoices in a standardized format. The use of RO e-Factura is mandatory for :abbr:`B2G
|
||||
invoices in a standardized format. The use of RO e-Factura is mandatory for {abbr}`B2G
|
||||
(business-to-government)` transactions and for specific high-risk B2B sectors, with further
|
||||
expansion anticipated. Romania is also integrated with the Peppol network, facilitating cross-border
|
||||
e-invoicing and compliance within the European Union.
|
||||
|
||||
Compliance with Romanian e-invoicing regulations
|
||||
================================================
|
||||
## Compliance with Romanian e-invoicing regulations
|
||||
|
||||
Odoo invoicing module is fully equipped to help businesses comply with Romania’s specific
|
||||
e-invoicing requirements. Here’s how Odoo supports compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports XML in :abbr:`UBL (Universal Business Language)` and the
|
||||
- **Supported formats**: Odoo supports XML in {abbr}`UBL (Universal Business Language)` and the
|
||||
structured formats required by RO e-Factura, ensuring compliance with Romania's e-invoicing
|
||||
standards for B2G and high-risk B2B transactions. Additionally, Odoo supports formats compatible
|
||||
with the Peppol network, enabling seamless cross-border invoicing. Odoo integrates with the RO
|
||||
@@ -34,21 +32,23 @@ e-invoicing requirements. Here’s how Odoo supports compliance:
|
||||
with eTransport requirements by generating and managing the data necessary for reporting the
|
||||
movement of high-fiscal risk goods. This includes shipment details such as the nature of the
|
||||
goods, vehicle information, and delivery destinations, ensuring timely submission to the
|
||||
:abbr:`ANAF (Romanian National Agency for Fiscal Administration)`.
|
||||
{abbr}`ANAF (Romanian National Agency for Fiscal Administration)`.
|
||||
- **Secure storage and retrieval**: In compliance with Romanian regulations, which require invoices
|
||||
to be stored for a minimum of ten years, Odoo securely archives all invoices in a tamper-proof
|
||||
system, ensuring accessibility during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and formats
|
||||
invoices to comply with Romanian VAT requirements, ensuring accuracy and adherence to legal
|
||||
standards for both :abbr:`B2G (business-to-government)` and B2B transactions.
|
||||
standards for both {abbr}`B2G (business-to-government)` and B2B transactions.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Romania fiscal localization documentation <../../../fiscal_localizations/romania>`
|
||||
:::{seealso}
|
||||
{doc}`Romania fiscal localization documentation <../../../fiscal_localizations/romania>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Romanian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Fiscal Code, RO e-Factura, Peppol standards, and other relevant regulations.
|
||||
It does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Romanian e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Romanian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Fiscal Code, RO e-Factura, Peppol standards, and other relevant regulations.
|
||||
It does not constitute legal advice. We recommend consulting with a tax advisor or legal
|
||||
professional familiar with Romanian e-invoicing regulations to ensure compliance tailored to your
|
||||
specific business needs.
|
||||
+16
-17
@@ -1,25 +1,23 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
=====================================
|
||||
Odoo electronic invoicing in Slovenia
|
||||
=====================================
|
||||
# Odoo electronic invoicing in Slovenia
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Slovenia's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Slovenia
|
||||
===========================================
|
||||
## Legal framework for e-invoicing in Slovenia
|
||||
|
||||
In Slovenia, e-invoicing is regulated under the `Slovenian VAT Act <https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina/2019-01-2291?sop=2019-01-2291>`_
|
||||
and complies with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
mandating the use of e-invoices for :abbr:`B2G (business-to-government)` transactions. Suppliers to
|
||||
In Slovenia, e-invoicing is regulated under the [Slovenian VAT Act](https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina/2019-01-2291?sop=2019-01-2291)
|
||||
and complies with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
mandating the use of e-invoices for {abbr}`B2G (business-to-government)` transactions. Suppliers to
|
||||
public sector entities must submit e-invoices in the e-SLOG XML format, which is the national
|
||||
standard for e-invoicing. These invoices are transmitted via the UJP (Uradni list Republike
|
||||
Slovenije - Agency for Public Payments) e-invoicing platform. While B2B e-invoicing remains
|
||||
optional, its adoption is encouraged to promote transparency and tax compliance.
|
||||
|
||||
Compliance with Slovenian e-invoicing regulations
|
||||
=================================================
|
||||
## Compliance with Slovenian e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully equipped to support businesses in meeting Slovenia’s e-invoicing
|
||||
requirements. Here is how Odoo ensures compliance:
|
||||
@@ -36,10 +34,11 @@ requirements. Here is how Odoo ensures compliance:
|
||||
invoices meet Slovenian VAT requirements for both B2G and B2B transactions, simplifying tax
|
||||
reporting and ensuring accuracy.
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Slovenian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Act, e-SLOG XML format, UJP platform, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Slovenian e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Slovenian e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the VAT Act, e-SLOG XML format, UJP platform, Peppol standards, and other
|
||||
relevant regulations. It does not constitute legal advice. We recommend consulting with a tax
|
||||
advisor or legal professional familiar with Slovenian e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+22
-22
@@ -1,32 +1,30 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
==================================
|
||||
Odoo electronic invoicing in Spain
|
||||
==================================
|
||||
# Odoo electronic invoicing in Spain
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to Spain's regulatory standards.
|
||||
|
||||
Legal framework for e-invoicing in Spain
|
||||
========================================
|
||||
## Legal framework for e-invoicing in Spain
|
||||
|
||||
In Spain, e-invoicing is governed by the `Ley de Facturación Electrónica <https://www.facturae.gob.es/face/Paginas/FACE.aspx>`_
|
||||
and aligned with `EU Directive 2014/55/EU <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055>`_,
|
||||
mandating e-invoicing for :abbr:`B2G (business-to-government)` transactions. All invoices to public
|
||||
In Spain, e-invoicing is governed by the [Ley de Facturación Electrónica](https://www.facturae.gob.es/face/Paginas/FACE.aspx)
|
||||
and aligned with [EU Directive 2014/55/EU](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0055),
|
||||
mandating e-invoicing for {abbr}`B2G (business-to-government)` transactions. All invoices to public
|
||||
sector entities must be submitted through the FACe platform, Spain’s official electronic invoicing
|
||||
hub, using the required Facturae format. Additionally, the :abbr:`SII (Immediate Supply of
|
||||
hub, using the required Facturae format. Additionally, the {abbr}`SII (Immediate Supply of
|
||||
Information)` system mandates near real-time reporting of VAT-related invoice data for certain
|
||||
companies, reinforcing transparency and compliance. While e-invoicing is not yet mandatory for B2B
|
||||
transactions, its adoption is expected to expand in the near future.
|
||||
|
||||
Compliance with Spanish e-invoicing regulations
|
||||
===============================================
|
||||
## Compliance with Spanish e-invoicing regulations
|
||||
|
||||
Odoo Invoicing is fully equipped to help businesses meet Spain's e-invoicing and VAT reporting
|
||||
requirements. Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the Facturae (XML) format required by the FACe platform for
|
||||
public sector e-invoicing in Spain. It is also compatible with XML in :abbr:`UBL (Universal
|
||||
public sector e-invoicing in Spain. It is also compatible with XML in {abbr}`UBL (Universal
|
||||
Business Language)` formats used within the Peppol network for cross-border transactions. Odoo
|
||||
integrates with FACe, allowing businesses to submit e-invoices directly to Spanish public
|
||||
authorities. Odoo also facilitates compliance with the SII system, enabling automated and near
|
||||
@@ -35,16 +33,18 @@ requirements. Here is how Odoo ensures compliance:
|
||||
stored for a minimum of four years, Odoo securely archives all invoices in a tamper-proof system,
|
||||
ensuring easy access during audits or inspections.
|
||||
- **Automatic VAT calculation and reporting**: Odoo Invoicing automates VAT calculations and ensures
|
||||
invoices are formatted to meet Spanish requirements for both :abbr:`B2G (business-to-government)`
|
||||
invoices are formatted to meet Spanish requirements for both {abbr}`B2G (business-to-government)`
|
||||
and B2B transactions, helping businesses comply with national and EU standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Spain fiscal localization documentation <../../../fiscal_localizations/spain>`
|
||||
:::{seealso}
|
||||
{doc}`Spain fiscal localization documentation <../../../fiscal_localizations/spain>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides an overview of Spanish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Ley de Facturación Electrónica, FACe platform, SII system, Peppol standards,
|
||||
and other relevant regulations. It does not constitute legal advice. We recommend consulting with
|
||||
a tax advisor or legal professional familiar with Spanish e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
:::
|
||||
|
||||
This page provides an overview of Spanish e-invoicing laws and how Odoo Invoicing supports
|
||||
compliance with the Ley de Facturación Electrónica, FACe platform, SII system, Peppol standards,
|
||||
and other relevant regulations. It does not constitute legal advice. We recommend consulting with
|
||||
a tax advisor or legal professional familiar with Spanish e-invoicing regulations to ensure
|
||||
compliance tailored to your specific business needs.
|
||||
+24
-25
@@ -1,26 +1,24 @@
|
||||
:orphan:
|
||||
---
|
||||
orphan: true
|
||||
---
|
||||
|
||||
====================================
|
||||
Odoo electronic invoicing in Uruguay
|
||||
====================================
|
||||
# Odoo electronic invoicing in Uruguay
|
||||
|
||||
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
|
||||
solutions tailored to meet Uruguay's regulatory requirements and fully compatible with the
|
||||
guidelines established by the `Dirección General Impositiva (DGI)
|
||||
<https://www.gub.uy/direccion-general-impositiva/>`_.
|
||||
guidelines established by the [Dirección General Impositiva (DGI)](https://www.gub.uy/direccion-general-impositiva/).
|
||||
|
||||
Legal framework for e-invoicing in Uruguay
|
||||
==========================================
|
||||
## Legal framework for e-invoicing in Uruguay
|
||||
|
||||
Uruguay has mandated electronic invoicing under the :abbr:`CFE (Comprobante Fiscal Electrónico)`
|
||||
Uruguay has mandated electronic invoicing under the {abbr}`CFE (Comprobante Fiscal Electrónico)`
|
||||
system, which applies to most businesses to promote tax transparency and streamline financial
|
||||
transactions. Key elements include:
|
||||
|
||||
- **Comprobante Fiscal Electrónico**: A mandatory e-invoice format required for B2B, B2C, and
|
||||
:abbr:`B2G (business-to-government)` transactions, fully compliant with :abbr:`DGI (Dirección
|
||||
{abbr}`B2G (business-to-government)` transactions, fully compliant with {abbr}`DGI (Dirección
|
||||
General Impositiva)`'s technical standards.
|
||||
- **Integration with DGI**: All :abbr:`CFE (Comprobante Fiscal Electrónico)` must be submitted to
|
||||
the :abbr:`DGI (Dirección General Impositiva)` for validation. Upon approval, the :abbr:`CFE
|
||||
- **Integration with DGI**: All {abbr}`CFE (Comprobante Fiscal Electrónico)` must be submitted to
|
||||
the {abbr}`DGI (Dirección General Impositiva)` for validation. Upon approval, the {abbr}`CFE
|
||||
(Comprobante Fiscal Electrónico)` receives a unique identification code and authorization for
|
||||
issuance.
|
||||
- **XML Format**: Uruguay mandates the use of XML as the standard format for e-invoices, ensuring
|
||||
@@ -28,30 +26,31 @@ transactions. Key elements include:
|
||||
- **Adoption Timeline**: E-invoicing is mandatory for most businesses, with specific deadlines for
|
||||
smaller enterprises to transition into the system.
|
||||
|
||||
Compliance with Uruguayan e-invoicing regulations
|
||||
=================================================
|
||||
## Compliance with Uruguayan e-invoicing regulations
|
||||
|
||||
Odoo Invoicing simplifies the complexities of compliance with Uruguay's e-invoicing requirements by
|
||||
offering tailored features:
|
||||
|
||||
- **Supported formats**: Odoo supports the :abbr:`CFE (Comprobante Fiscal Electrónico)` format in
|
||||
:abbr:`DGI (Dirección General Impositiva)`-compliant XML, including all legally required fields,
|
||||
- **Supported formats**: Odoo supports the {abbr}`CFE (Comprobante Fiscal Electrónico)` format in
|
||||
{abbr}`DGI (Dirección General Impositiva)`-compliant XML, including all legally required fields,
|
||||
such as the unique identification code, authorization number, and digital signature. Odoo allows
|
||||
the automated submission, validation, and issuance through the :abbr:`DGI (Dirección General
|
||||
the automated submission, validation, and issuance through the {abbr}`DGI (Dirección General
|
||||
Impositiva)`'s e-invoicing platform to ensure compliance in real time.
|
||||
- **Secure storage and retrieval**: In line with Uruguay’s mandatory five-year storage requirement,
|
||||
Odoo provides tamper-proof archiving solutions, ensuring easy access to invoices for audits or
|
||||
inspections.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for IVA (Value-Added
|
||||
Tax) and other applicable taxes, ensuring accuracy and compliance with :abbr:`DGI (Dirección
|
||||
Tax) and other applicable taxes, ensuring accuracy and compliance with {abbr}`DGI (Dirección
|
||||
General Impositiva)`'s reporting standards.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Uruguayan fiscal localization documentation <../../../fiscal_localizations/uruguay>`
|
||||
:::{seealso}
|
||||
{doc}`Uruguayan fiscal localization documentation <../../../fiscal_localizations/uruguay>`
|
||||
:::
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
:::{admonition} Disclaimer
|
||||
This page provides a general overview of Uruguayan e-invoicing regulations and how Odoo supports
|
||||
compliance with DGI requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Uruguay's e-invoicing
|
||||
regulations to ensure full compliance tailored to your specific business requirements.
|
||||
:::
|
||||
|
||||
This page provides a general overview of Uruguayan e-invoicing regulations and how Odoo supports
|
||||
compliance with DGI requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Uruguay's e-invoicing
|
||||
regulations to ensure full compliance tailored to your specific business requirements.
|
||||
@@ -0,0 +1,63 @@
|
||||
# EPC QR codes
|
||||
|
||||
European Payments Council quick response codes, or **EPC QR codes**, are two-dimensional barcodes
|
||||
that customers can scan with their **mobile banking applications** to initiate a **SEPA credit
|
||||
transfer (SCT)** and pay their invoices instantly.
|
||||
|
||||
In addition to bringing ease of use and speed, it greatly reduces typing errors that would
|
||||
potentially make for payment issues.
|
||||
|
||||
:::{note}
|
||||
This feature is only available for companies in several European countries such as Austria,
|
||||
Belgium, Finland, Germany, and the Netherlands.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../bank`
|
||||
- [Odoo Academy: QR Code on Invoices for European Customers](https://www.odoo.com/r/VuU)
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
Go to {menuselection}`Accounting --> Configuration --> Settings` and activate the {guilabel}`QR
|
||||
Codes` feature in the {guilabel}`Customer Payments` section.
|
||||
|
||||
### Configure your bank account's journal
|
||||
|
||||
Make sure that your {guilabel}`Bank Account` is correctly configured in Odoo with your IBAN and BIC.
|
||||
|
||||
To do so, go to {menuselection}`Accounting --> Configuration --> Journals`, open your bank journal,
|
||||
then fill out the {guilabel}`Account Number` and {guilabel}`Bank` under the {guilabel}`Bank Account
|
||||
Number` column.
|
||||
|
||||
```{image} epc_qr_code/bank-journal.png
|
||||
:alt: Bank account number column in the bank journal
|
||||
```
|
||||
|
||||
## Issue invoices with EPC QR codes
|
||||
|
||||
EPC QR codes are added automatically to your invoices. Customers whose bank supports making payments
|
||||
via EPC QR codes will be able to scan the code and pay the invoice.
|
||||
|
||||
Go to {menuselection}`Accounting --> Customers --> Invoices`, and create a new invoice.
|
||||
|
||||
Before posting it, open the {guilabel}`Other Info` tab. Odoo automatically fills out the
|
||||
{guilabel}`Recipient Bank` field with your IBAN.
|
||||
|
||||
:::{note}
|
||||
In the {guilabel}`Other Info` tab, the account indicated in the {guilabel}`Recipient Bank` field
|
||||
is used to receive your customer's payment. Odoo automatically populates this field with your
|
||||
IBAN by default and uses it to generate the EPC QR code.
|
||||
:::
|
||||
|
||||
When the invoice is printed or previewed, the QR code is included at the bottom.
|
||||
|
||||
```{image} epc_qr_code/invoice-qr-code.png
|
||||
:alt: QR code on a customer invoice
|
||||
```
|
||||
|
||||
:::{tip}
|
||||
If you want to issue an invoice without an EPC QR code, remove the IBAN indicated in the
|
||||
{guilabel}`Recipient Bank` field, under the {guilabel}`Other Info` tab of the invoice.
|
||||
:::
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
============
|
||||
EPC QR codes
|
||||
============
|
||||
|
||||
European Payments Council quick response codes, or **EPC QR codes**, are two-dimensional barcodes
|
||||
that customers can scan with their **mobile banking applications** to initiate a **SEPA credit
|
||||
transfer (SCT)** and pay their invoices instantly.
|
||||
|
||||
In addition to bringing ease of use and speed, it greatly reduces typing errors that would
|
||||
potentially make for payment issues.
|
||||
|
||||
.. note::
|
||||
This feature is only available for companies in several European countries such as Austria,
|
||||
Belgium, Finland, Germany, and the Netherlands.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../bank`
|
||||
- `Odoo Academy: QR Code on Invoices for European Customers <https://www.odoo.com/r/VuU>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings` and activate the :guilabel:`QR
|
||||
Codes` feature in the :guilabel:`Customer Payments` section.
|
||||
|
||||
Configure your bank account's journal
|
||||
-------------------------------------
|
||||
|
||||
Make sure that your :guilabel:`Bank Account` is correctly configured in Odoo with your IBAN and BIC.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your bank journal,
|
||||
then fill out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Bank Account
|
||||
Number` column.
|
||||
|
||||
.. image:: epc_qr_code/bank-journal.png
|
||||
:alt: Bank account number column in the bank journal
|
||||
|
||||
Issue invoices with EPC QR codes
|
||||
================================
|
||||
|
||||
EPC QR codes are added automatically to your invoices. Customers whose bank supports making payments
|
||||
via EPC QR codes will be able to scan the code and pay the invoice.
|
||||
|
||||
Go to :menuselection:`Accounting --> Customers --> Invoices`, and create a new invoice.
|
||||
|
||||
Before posting it, open the :guilabel:`Other Info` tab. Odoo automatically fills out the
|
||||
:guilabel:`Recipient Bank` field with your IBAN.
|
||||
|
||||
.. note::
|
||||
In the :guilabel:`Other Info` tab, the account indicated in the :guilabel:`Recipient Bank` field
|
||||
is used to receive your customer's payment. Odoo automatically populates this field with your
|
||||
IBAN by default and uses it to generate the EPC QR code.
|
||||
|
||||
When the invoice is printed or previewed, the QR code is included at the bottom.
|
||||
|
||||
.. image:: epc_qr_code/invoice-qr-code.png
|
||||
:alt: QR code on a customer invoice
|
||||
|
||||
.. tip::
|
||||
If you want to issue an invoice without an EPC QR code, remove the IBAN indicated in the
|
||||
:guilabel:`Recipient Bank` field, under the :guilabel:`Other Info` tab of the invoice.
|
||||
@@ -0,0 +1,58 @@
|
||||
# Incoterms
|
||||
|
||||
{abbr}`Incoterms (International Commercial Terms)` are standardized trade terms used in
|
||||
international transactions to define the rights and responsibilities of buyers and sellers. They
|
||||
establish the obligations related to the delivery of goods, the transfer of risks, and the
|
||||
distribution of costs between the parties involved. Incoterms specify important details, such as the
|
||||
point at which the risk and costs transfer from the seller to the buyer, the responsibility for
|
||||
transportation, insurance, customs clearance, and other relevant aspects of the transaction.
|
||||
|
||||
:::{note}
|
||||
By default, all 11 Incoterms are available in Odoo:
|
||||
|
||||
- **EXW**: Ex works
|
||||
- **FCA**: Free carrier
|
||||
- **FAS**: Free alongside ship
|
||||
- **FOB**: Free on board
|
||||
- **CFR**: Cost and freight
|
||||
- **CIF**: Cost, insurance and freight
|
||||
- **CPT**: Carriage paid to
|
||||
- **CIP**: Carriage and insurance paid to
|
||||
- **DPU**: Delivered at place unloaded
|
||||
- **DAP**: Delivered at place
|
||||
- **DDP**: Delivered duty paid
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`../reporting/intrastat`
|
||||
- {doc}`../customer_invoices`
|
||||
- {doc}`../vendor_bills`
|
||||
:::
|
||||
|
||||
(incoterms-invoices)=
|
||||
|
||||
## Define an Incoterm
|
||||
|
||||
To define an Incoterm manually, create an invoice or bill, click the {guilabel}`Other Info` tab, and
|
||||
select the {guilabel}`Incoterm`.
|
||||
|
||||
### Incoterm location
|
||||
|
||||
A location relevant to the chosen Incoterm can be added to the invoice or bill under
|
||||
{guilabel}`Other Info` in the {guilabel}`Incoterm Location` field.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
If the chosen Incoterm code is `CIF` (Cost, Insurance, Freight), the associated location might be
|
||||
the destination port where the goods will be delivered.
|
||||
```
|
||||
|
||||
(incoterms-default)=
|
||||
|
||||
## Default Incoterm configuration
|
||||
|
||||
You can set a default Incoterm rule to **automatically** populate the Incoterm field on all newly
|
||||
created invoices and bills. Under {menuselection}`Accounting/Invoicing --> Configuration -->
|
||||
Settings`, scroll down to the {guilabel}`Customer Invoices` section, and select an Incoterm in the
|
||||
{guilabel}`Default Incoterm` field.
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
=========
|
||||
Incoterms
|
||||
=========
|
||||
|
||||
:abbr:`Incoterms (International Commercial Terms)` are standardized trade terms used in
|
||||
international transactions to define the rights and responsibilities of buyers and sellers. They
|
||||
establish the obligations related to the delivery of goods, the transfer of risks, and the
|
||||
distribution of costs between the parties involved. Incoterms specify important details, such as the
|
||||
point at which the risk and costs transfer from the seller to the buyer, the responsibility for
|
||||
transportation, insurance, customs clearance, and other relevant aspects of the transaction.
|
||||
|
||||
.. note::
|
||||
By default, all 11 Incoterms are available in Odoo:
|
||||
|
||||
- **EXW**: Ex works
|
||||
- **FCA**: Free carrier
|
||||
- **FAS**: Free alongside ship
|
||||
- **FOB**: Free on board
|
||||
- **CFR**: Cost and freight
|
||||
- **CIF**: Cost, insurance and freight
|
||||
- **CPT**: Carriage paid to
|
||||
- **CIP**: Carriage and insurance paid to
|
||||
- **DPU**: Delivered at place unloaded
|
||||
- **DAP**: Delivered at place
|
||||
- **DDP**: Delivered duty paid
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../reporting/intrastat`
|
||||
- :doc:`../customer_invoices`
|
||||
- :doc:`../vendor_bills`
|
||||
|
||||
.. _incoterms/invoices:
|
||||
|
||||
Define an Incoterm
|
||||
==================
|
||||
|
||||
To define an Incoterm manually, create an invoice or bill, click the :guilabel:`Other Info` tab, and
|
||||
select the :guilabel:`Incoterm`.
|
||||
|
||||
Incoterm location
|
||||
-----------------
|
||||
|
||||
A location relevant to the chosen Incoterm can be added to the invoice or bill under
|
||||
:guilabel:`Other Info` in the :guilabel:`Incoterm Location` field.
|
||||
|
||||
.. example::
|
||||
If the chosen Incoterm code is `CIF` (Cost, Insurance, Freight), the associated location might be
|
||||
the destination port where the goods will be delivered.
|
||||
|
||||
.. _incoterms/default:
|
||||
|
||||
Default Incoterm configuration
|
||||
==============================
|
||||
|
||||
You can set a default Incoterm rule to **automatically** populate the Incoterm field on all newly
|
||||
created invoices and bills. Under :menuselection:`Accounting/Invoicing --> Configuration -->
|
||||
Settings`, scroll down to the :guilabel:`Customer Invoices` section, and select an Incoterm in the
|
||||
:guilabel:`Default Incoterm` field.
|
||||
+51
-65
@@ -1,6 +1,4 @@
|
||||
===================
|
||||
Invoicing processes
|
||||
===================
|
||||
# Invoicing processes
|
||||
|
||||
Depending on your business and the application you use, there are
|
||||
different ways to automate the customer invoice creation in Odoo.
|
||||
@@ -12,23 +10,19 @@ batch (by regular mail or email).
|
||||
Depending on your business, you may opt for one of the following way to
|
||||
create draft invoices:
|
||||
|
||||
Sales
|
||||
=====
|
||||
## Sales
|
||||
|
||||
Sales Order ‣ Invoice
|
||||
---------------------
|
||||
### Sales Order ‣ Invoice
|
||||
|
||||
In most companies, salespeople create quotations that become sales order
|
||||
once they are validated. Then, draft invoices are created based on the
|
||||
sales order. You have different options like:
|
||||
|
||||
- Invoice manually: use a button on the sale order to trigger the draft
|
||||
invoice
|
||||
|
||||
- Invoice before delivery: invoice the full order before triggering the
|
||||
delivery order
|
||||
|
||||
- Invoice based on delivery order: see next section
|
||||
- Invoice manually: use a button on the sale order to trigger the draft
|
||||
invoice
|
||||
- Invoice before delivery: invoice the full order before triggering the
|
||||
delivery order
|
||||
- Invoice based on delivery order: see next section
|
||||
|
||||
Invoice before delivery is usually used by the eCommerce application
|
||||
when the customer pays at the order and we deliver afterwards.
|
||||
@@ -41,11 +35,11 @@ lines, invoice a fixed advance.
|
||||
|
||||
This process is good for both services and physical products.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/sales/sales/invoicing/proforma`
|
||||
:::{seealso}
|
||||
- {doc}`/applications/sales/sales/invoicing/proforma`
|
||||
:::
|
||||
|
||||
Sales Order ‣ Delivery Order ‣ Invoice
|
||||
--------------------------------------
|
||||
### Sales Order ‣ Delivery Order ‣ Invoice
|
||||
|
||||
Retailers and eCommerce usually invoice based on delivery orders,
|
||||
instead of sales order. This approach is suitable for businesses where
|
||||
@@ -57,22 +51,20 @@ really delivered. If you do back orders (deliver partially and the rest
|
||||
later), the customer will receive two invoices, one for each delivery
|
||||
order.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/sales/sales/invoicing/invoicing_policy`
|
||||
:::{seealso}
|
||||
- {doc}`/applications/sales/sales/invoicing/invoicing_policy`
|
||||
:::
|
||||
|
||||
eCommerce Order ‣ Invoice
|
||||
-------------------------
|
||||
### eCommerce Order ‣ Invoice
|
||||
|
||||
An eCommerce order will also trigger the creation of the order when it
|
||||
is fully paid. If you allow paying orders by check or wire transfer,
|
||||
Odoo only creates an order and the invoice will be triggered once the
|
||||
payment is received.
|
||||
|
||||
Contracts
|
||||
=========
|
||||
## Contracts
|
||||
|
||||
Regular Contracts ‣ Invoices
|
||||
----------------------------
|
||||
### Regular Contracts ‣ Invoices
|
||||
|
||||
If you use contracts, you can trigger invoice based on time and material
|
||||
spent, expenses or fixed lines of services/products. Every month, the
|
||||
@@ -80,36 +72,35 @@ salesperson will trigger invoice based on activities on the contract.
|
||||
|
||||
Activities can be:
|
||||
|
||||
- fixed products/services, coming from a sale order linked to this contract
|
||||
- materials purchased (that you will re-invoice)
|
||||
- time and material based on timesheets or purchases (subcontracting)
|
||||
- expenses like travel and accommodation that you re-invoice to the customer
|
||||
- fixed products/services, coming from a sale order linked to this contract
|
||||
- materials purchased (that you will re-invoice)
|
||||
- time and material based on timesheets or purchases (subcontracting)
|
||||
- expenses like travel and accommodation that you re-invoice to the customer
|
||||
|
||||
You can invoice at the end of the contract or trigger intermediate
|
||||
invoices. This approach is used by services companies that invoice
|
||||
mostly based on time and material. For services companies that invoice
|
||||
on fix price, they use a regular sales order.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/sales/sales/invoicing/time_materials`
|
||||
- :doc:`/applications/sales/sales/invoicing/expense`
|
||||
- :doc:`/applications/sales/sales/invoicing/milestone`
|
||||
:::{seealso}
|
||||
- {doc}`/applications/sales/sales/invoicing/time_materials`
|
||||
- {doc}`/applications/sales/sales/invoicing/expense`
|
||||
- {doc}`/applications/sales/sales/invoicing/milestone`
|
||||
:::
|
||||
|
||||
Recurring Contracts ‣ Invoices
|
||||
------------------------------
|
||||
### Recurring Contracts ‣ Invoices
|
||||
|
||||
For subscriptions, an invoice is triggered periodically, automatically.
|
||||
The frequency of the invoicing and the services/products invoiced are
|
||||
defined on the contract.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/sales/subscriptions`
|
||||
:::{seealso}
|
||||
- {doc}`/applications/sales/subscriptions`
|
||||
:::
|
||||
|
||||
Others
|
||||
======
|
||||
## Others
|
||||
|
||||
Creating an invoice manually
|
||||
----------------------------
|
||||
### Creating an invoice manually
|
||||
|
||||
Users can also create invoices manually without using contracts or a
|
||||
sales order. It's a recommended approach if you do not need to manage
|
||||
@@ -119,37 +110,30 @@ services.
|
||||
Even if you generate the invoice from a sales order, you may need to
|
||||
create invoices manually in exceptional use cases:
|
||||
|
||||
- if you need to create a refund
|
||||
- if you need to create a refund
|
||||
- If you need to give a discount
|
||||
- if you need to change an invoice created from a sales order
|
||||
- if you need to invoice something not related to your core business
|
||||
|
||||
- If you need to give a discount
|
||||
|
||||
- if you need to change an invoice created from a sales order
|
||||
|
||||
- if you need to invoice something not related to your core business
|
||||
|
||||
Specific modules
|
||||
----------------
|
||||
### Specific modules
|
||||
|
||||
Some specific modules are also able to generate draft invoices:
|
||||
|
||||
- **membership**: invoice your members every year
|
||||
- **membership**: invoice your members every year
|
||||
- **repairs**: invoice your after-sale services
|
||||
|
||||
- **repairs**: invoice your after-sale services
|
||||
|
||||
Resequencing of the invoices
|
||||
----------------------------
|
||||
### Resequencing of the invoices
|
||||
|
||||
It remains possible to resequence the invoices but with some restrictions:
|
||||
|
||||
#. The feature does not work when entries are previous to a lock date.
|
||||
#. The feature does not work if the sequence is inconsistent with the month of the entry.
|
||||
#. It does not work if the sequence leads to a duplicate.
|
||||
#. The order of the invoice remains unchanged.
|
||||
#. It is useful for people who use a numbering from another software and who want to continue the
|
||||
1. The feature does not work when entries are previous to a lock date.
|
||||
2. The feature does not work if the sequence is inconsistent with the month of the entry.
|
||||
3. It does not work if the sequence leads to a duplicate.
|
||||
4. The order of the invoice remains unchanged.
|
||||
5. It is useful for people who use a numbering from another software and who want to continue the
|
||||
current year without starting over from the beginning.
|
||||
|
||||
Invoice digitization with optical character recognition (OCR)
|
||||
-------------------------------------------------------------
|
||||
### Invoice digitization with optical character recognition (OCR)
|
||||
|
||||
**Invoice digitization** is the process of automatically encoding traditional paper invoices into
|
||||
invoices forms in your accounting.
|
||||
@@ -158,5 +142,7 @@ Odoo uses OCR and artificial intelligence technologies to recognize the content
|
||||
Vendor bills and customer invoices forms are automatically created and populated based on scanned
|
||||
invoices.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/finance/accounting/vendor_bills/invoice_digitization`
|
||||
:::{seealso}
|
||||
- {doc}`/applications/finance/accounting/vendor_bills/invoice_digitization`
|
||||
:::
|
||||
|
||||
+60
-48
@@ -1,6 +1,4 @@
|
||||
===================================
|
||||
Payment terms and installment plans
|
||||
===================================
|
||||
# Payment terms and installment plans
|
||||
|
||||
**Payment terms** specify all the conditions of a sale's payment to help ensure customers pay their
|
||||
invoices correctly and on time.
|
||||
@@ -15,6 +13,7 @@ vendor bills. Payment terms cover:
|
||||
An **installment plan** allows the customers to pay an invoice in parts, with the amounts and
|
||||
payment dates defined beforehand by the seller.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
Immediate Payment
|
||||
The full payment is due on the day of the invoice's issuance.
|
||||
@@ -28,55 +27,65 @@ payment dates defined beforehand by the seller.
|
||||
2% 10, Net 30 EOM
|
||||
A 2% :doc:`cash discount <cash_discounts>` if the payment is received within ten days.
|
||||
Otherwise, the full payment is due at the end of the month following the invoice date.
|
||||
```
|
||||
|
||||
.. note::
|
||||
- Payment terms are not to be confused with :doc:`down payment invoices
|
||||
</applications/sales/sales/invoicing/down_payment>`. If, for a specific order, you issue
|
||||
multiple invoices to your customer, that is neither a payment term nor an installment plan but
|
||||
an invoicing policy.
|
||||
- This page is about the *payment terms* feature, not :doc:`terms & conditions
|
||||
<terms_conditions>`, which can be used to declare contractual obligations regarding content
|
||||
use, return policies, and other policies surrounding the sale of goods and services.
|
||||
:::{note}
|
||||
- Payment terms are not to be confused with {doc}`down payment invoices
|
||||
</applications/sales/sales/invoicing/down_payment>`. If, for a specific order, you issue
|
||||
multiple invoices to your customer, that is neither a payment term nor an installment plan but
|
||||
an invoicing policy.
|
||||
- This page is about the *payment terms* feature, not {doc}`terms & conditions
|
||||
<terms_conditions>`, which can be used to declare contractual obligations regarding content
|
||||
use, return policies, and other policies surrounding the sale of goods and services.
|
||||
:::
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: payment terms <https://www.odoo.com/slides/slide/payment-terms-1679>`_
|
||||
- :doc:`cash_discounts`
|
||||
:::{seealso}
|
||||
- [Odoo Tutorials: payment terms](https://www.odoo.com/slides/slide/payment-terms-1679)
|
||||
- {doc}`cash_discounts`
|
||||
:::
|
||||
|
||||
Configuration
|
||||
=============
|
||||
## Configuration
|
||||
|
||||
To create new payment terms, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Payment Terms` and click on
|
||||
:guilabel:`New`.
|
||||
#. Enter a name in the :guilabel:`Payment Terms` field. This field is the name displayed both
|
||||
1. Go to {menuselection}`Accounting --> Configuration --> Payment Terms` and click on
|
||||
{guilabel}`New`.
|
||||
|
||||
2. Enter a name in the {guilabel}`Payment Terms` field. This field is the name displayed both
|
||||
internally and on sales orders.
|
||||
#. Tick the :guilabel:`Early Discount` checkbox and fill out the discount percentage, discount days,
|
||||
and :ref:`tax reduction <cash-discounts/tax-reductions>` fields to add a :doc:`cash discount
|
||||
|
||||
3. Tick the {guilabel}`Early Discount` checkbox and fill out the discount percentage, discount days,
|
||||
and {ref}`tax reduction <cash-discounts/tax-reductions>` fields to add a {doc}`cash discount
|
||||
<cash_discounts>`, if desired.
|
||||
#. In the :guilabel:`Due Terms` section, add a set of rules (terms) to define what needs to be paid
|
||||
|
||||
4. In the {guilabel}`Due Terms` section, add a set of rules (terms) to define what needs to be paid
|
||||
and by which due date(s). Defining terms automatically calculates the payments' due date(s). This
|
||||
is particularly helpful for managing **installment plans** (:dfn:`payment terms with multiple
|
||||
is particularly helpful for managing **installment plans** ({dfn}`payment terms with multiple
|
||||
terms`).
|
||||
|
||||
To add a term, click on :guilabel:`Add a line`, define the discount's value and type in the
|
||||
:guilabel:`Due` fields, then fill out the :guilabel:`After` fields to determine the due date.
|
||||
#. Enter the text to be displayed on the document (sales order, invoice, etc.) in the gray textbox
|
||||
in the :guilabel:`Preview` column.
|
||||
#. Tick the :guilabel:`Show installment dates` checkbox to display a breakdown of each payment and
|
||||
To add a term, click on {guilabel}`Add a line`, define the discount's value and type in the
|
||||
{guilabel}`Due` fields, then fill out the {guilabel}`After` fields to determine the due date.
|
||||
|
||||
5. Enter the text to be displayed on the document (sales order, invoice, etc.) in the gray textbox
|
||||
in the {guilabel}`Preview` column.
|
||||
|
||||
6. Tick the {guilabel}`Show installment dates` checkbox to display a breakdown of each payment and
|
||||
its due date on the invoice report, if desired.
|
||||
|
||||
.. tip::
|
||||
To instead specify a number of days *before the end of the month*, use a negative value in the
|
||||
:guilabel:`After` field.
|
||||
:::{tip}
|
||||
To instead specify a number of days *before the end of the month*, use a negative value in the
|
||||
{guilabel}`After` field.
|
||||
:::
|
||||
|
||||
To test that your payment terms are configured correctly, enter an invoice date on the
|
||||
:guilabel:`Example` line to generate the payments that would be due and their due dates
|
||||
{guilabel}`Example` line to generate the payments that would be due and their due dates
|
||||
using these payment terms.
|
||||
|
||||
.. important::
|
||||
Terms are computed in the order of their due dates.
|
||||
:::{important}
|
||||
Terms are computed in the order of their due dates.
|
||||
:::
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
In the following example, 30% is due on the day of issuance, and the remaining 70% is due at the
|
||||
end of the following month.
|
||||
@@ -84,40 +93,41 @@ using these payment terms.
|
||||
.. image:: payment_terms/configuration.png
|
||||
:alt: Example of Payment Terms. The first line is the 30% due immediately. The second line is
|
||||
the remaining 70% due at the end of the following month.
|
||||
```
|
||||
|
||||
Using payment terms
|
||||
===================
|
||||
## Using payment terms
|
||||
|
||||
Payment terms can be defined using the :guilabel:`Payment Terms` field on:
|
||||
Payment terms can be defined using the {guilabel}`Payment Terms` field on:
|
||||
|
||||
- **Contacts:** To automatically set default payment terms on a contact's new sales orders,
|
||||
invoices, and bills. This can be modified in the contact form, under the :guilabel:`Sales &
|
||||
invoices, and bills. This can be modified in the contact form, under the {guilabel}`Sales &
|
||||
Purchase` tab.
|
||||
- **Quotations/Sales Orders:** To set specific payment terms automatically on all invoices generated
|
||||
from a quotation or sales order.
|
||||
|
||||
Payment terms can be defined using the :guilabel:`Due Date` field, with the :guilabel:`Terms`
|
||||
Payment terms can be defined using the {guilabel}`Due Date` field, with the {guilabel}`Terms`
|
||||
drop-down list on:
|
||||
|
||||
- **Customer invoices:** To set specific payment terms on an invoice.
|
||||
- **Vendor bills:** To set specific payment terms on a bill.
|
||||
|
||||
.. tip::
|
||||
Setting payment terms on a vendor bill is mostly useful for managing vendor terms with multiple
|
||||
installments or cash discounts. Otherwise, manually setting the **due date** is enough. If
|
||||
payment terms are already defined, empty the field to select a date.
|
||||
:::{tip}
|
||||
Setting payment terms on a vendor bill is mostly useful for managing vendor terms with multiple
|
||||
installments or cash discounts. Otherwise, manually setting the **due date** is enough. If
|
||||
payment terms are already defined, empty the field to select a date.
|
||||
:::
|
||||
|
||||
Journal entries
|
||||
===============
|
||||
## Journal entries
|
||||
|
||||
Invoices with specific payment terms generate different *journal entries*, with one *journal item*
|
||||
for every computed *due date*.
|
||||
|
||||
This makes for easier :doc:`follow-ups </applications/finance/accounting/payments/follow_up>` and
|
||||
:doc:`reconciliation </applications/finance/accounting/bank/reconciliation>` since Odoo takes each
|
||||
This makes for easier {doc}`follow-ups </applications/finance/accounting/payments/follow_up>` and
|
||||
{doc}`reconciliation </applications/finance/accounting/bank/reconciliation>` since Odoo takes each
|
||||
due date into account, rather than just the balance due date. It also helps to get an accurate
|
||||
:ref:`aged receivable report <accounting/invoices/aging-report>`.
|
||||
{ref}`aged receivable report <accounting/invoices/aging-report>`.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
.. image:: payment_terms/journal-entry.png
|
||||
:alt: The amount debited to the account receivable is split into two journal items with
|
||||
@@ -138,3 +148,5 @@ due date into account, rather than just the balance due date. It also helps to g
|
||||
|
||||
The $1000 debited to the account receivable is split into two distinct journal items. Both of
|
||||
them have their own due date.
|
||||
```
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
# Invoice sequence
|
||||
|
||||
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)=
|
||||
|
||||
## Changing the default sequence
|
||||
|
||||
To customize the default sequence, open the last confirmed invoice, click {guilabel}`Reset to
|
||||
Draft`, and edit the invoice's reference number.
|
||||
|
||||
```{image} sequence/reference-number.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
```{image} sequence/sequence-dialog.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
```
|
||||
|
||||
:::{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,
|
||||
continuity for the current year must be maintained without restarting from the beginning.
|
||||
|
||||
:::{note}
|
||||
This feature is only available to users with administrator or advisor access.
|
||||
:::
|
||||
|
||||
Follow these steps to resequence invoice numbers:
|
||||
|
||||
1. Activate the {ref}`developer mode <developer-mode>`.
|
||||
|
||||
2. From the {guilabel}`Accounting Dashboard`, open the {guilabel}`Customer Invoices` journal.
|
||||
|
||||
3. Select the invoices that need a new sequence.
|
||||
|
||||
4. Click the {icon}`fa-cog` {guilabel}`Actions` menu and select {guilabel}`Resequence`.
|
||||
|
||||
5. In the {guilabel}`Ordering` field, choose to
|
||||
|
||||
- {guilabel}`Keep current order`: The order of the numbers remains the same.
|
||||
- {guilabel}`Reorder by accounting date`: The number is reordered by accounting date.
|
||||
|
||||
6. Set the {guilabel}`First New Sequence`.
|
||||
|
||||
7. {guilabel}`Preview Modifications` and click {guilabel}`Confirm`.
|
||||
|
||||
The first invoice using the new sequence appears in red in the {guilabel}`Customer Invoices` list.
|
||||
|
||||
```{image} sequence/invoice-sequencing.png
|
||||
:alt: Resequence options window
|
||||
```
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
================
|
||||
Invoice sequence
|
||||
================
|
||||
|
||||
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:
|
||||
|
||||
Changing the default sequence
|
||||
=============================
|
||||
|
||||
To customize the default sequence, open the last confirmed invoice, click :guilabel:`Reset to
|
||||
Draft`, and edit the invoice's reference number.
|
||||
|
||||
.. image:: sequence/reference-number.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
|
||||
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.
|
||||
|
||||
.. image:: sequence/sequence-dialog.png
|
||||
:alt: Editing the reference number of an invoice.
|
||||
|
||||
.. 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,
|
||||
continuity for the current year must be maintained without restarting from the beginning.
|
||||
|
||||
.. note::
|
||||
This feature is only available to users with administrator or advisor access.
|
||||
|
||||
Follow these steps to resequence invoice numbers:
|
||||
|
||||
#. Activate the :ref:`developer mode <developer-mode>`.
|
||||
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
|
||||
#. Select the invoices that need a new sequence.
|
||||
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
|
||||
#. In the :guilabel:`Ordering` field, choose to
|
||||
|
||||
- :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`.
|
||||
|
||||
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. image:: sequence/invoice-sequencing.png
|
||||
:alt: Resequence options window
|
||||
@@ -0,0 +1,54 @@
|
||||
(customer-invoices-snailmail)=
|
||||
|
||||
# Snailmail
|
||||
|
||||
Sending direct mail can be an effective strategy for grabbing people's attention, especially when
|
||||
their email inboxes are overflowing. With Odoo, you have the ability to send invoices and follow-up
|
||||
reports through postal mail worldwide, all from within your database.
|
||||
|
||||
## Configuration
|
||||
|
||||
Go to {menuselection}`Accounting --> Configuration --> Settings --> Customer invoices` section to
|
||||
activate {guilabel}`Snailmail`.
|
||||
|
||||
To make it a by-default feature, select {guilabel}`Send by Post` in the {guilabel}`Default Sending
|
||||
Options` section.
|
||||
|
||||
```{image} snailmail/setup-snailmail.png
|
||||
:align: center
|
||||
:alt: Under settings enable the snailmail feature in Odoo Accounting
|
||||
```
|
||||
|
||||
## Send invoices by post
|
||||
|
||||
Open your invoice, click on {guilabel}`Send & Print` and select {guilabel}`Send by Post`. Make sure
|
||||
your customer’s address is set correctly, including the country, before sending the letter.
|
||||
|
||||
:::{important}
|
||||
Your document must respect the following rules to pass the validation before being sent:
|
||||
|
||||
- Margins must be **5 mm** on all sides. As Odoo forces the outer margins by filling them with
|
||||
white before sending the snailmail, it can results in the user's custom being cut off if it
|
||||
protrudes into the margins. To check the margins, activate the {ref}`developer mode
|
||||
<developer-mode>`, go to {menuselection}`General Settings --> Technical --> Reporting
|
||||
section: Paper Format`.
|
||||
- A square of **15mm by 15mm** on the bottom left corner has to stay clear.
|
||||
- The postage area has to stay clear ({download}`download the snailmail PDF template
|
||||
<snailmail/snailmail-template.pdf>` for more details).
|
||||
- Pingen (Odoo Snailmail service provider) scans the area to process the address, so if something
|
||||
gets written outside the area, it is not counted as part of the address.
|
||||
:::
|
||||
|
||||
## Pricing
|
||||
|
||||
Snailmail is an {doc}`/applications/essentials/in_app_purchase` service that requires prepaid stamps
|
||||
(=credits) to work. Sending one document consumes one stamp.
|
||||
|
||||
To buy stamps, go to {menuselection}`Accounting --> Configuration --> Settings --> Customer
|
||||
invoices: Snailmail`, click on {guilabel}`Buy credits`, or go to {menuselection}`Settings --> In-App
|
||||
Purchases: Odoo IAP`, and click on {guilabel}`View my Services`.
|
||||
|
||||
:::{seealso}
|
||||
[Odoo's IAP Privacy Policy](https://iap.odoo.com/privacy#header_4)
|
||||
:::
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
.. _customer_invoices/snailmail:
|
||||
|
||||
=========
|
||||
Snailmail
|
||||
=========
|
||||
|
||||
Sending direct mail can be an effective strategy for grabbing people's attention, especially when
|
||||
their email inboxes are overflowing. With Odoo, you have the ability to send invoices and follow-up
|
||||
reports through postal mail worldwide, all from within your database.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer invoices` section to
|
||||
activate :guilabel:`Snailmail`.
|
||||
|
||||
To make it a by-default feature, select :guilabel:`Send by Post` in the :guilabel:`Default Sending
|
||||
Options` section.
|
||||
|
||||
.. image:: snailmail/setup-snailmail.png
|
||||
:align: center
|
||||
:alt: Under settings enable the snailmail feature in Odoo Accounting
|
||||
|
||||
Send invoices by post
|
||||
=====================
|
||||
|
||||
Open your invoice, click on :guilabel:`Send & Print` and select :guilabel:`Send by Post`. Make sure
|
||||
your customer’s address is set correctly, including the country, before sending the letter.
|
||||
|
||||
.. important::
|
||||
Your document must respect the following rules to pass the validation before being sent:
|
||||
|
||||
- Margins must be **5 mm** on all sides. As Odoo forces the outer margins by filling them with
|
||||
white before sending the snailmail, it can results in the user's custom being cut off if it
|
||||
protrudes into the margins. To check the margins, activate the :ref:`developer mode
|
||||
<developer-mode>`, go to :menuselection:`General Settings --> Technical --> Reporting
|
||||
section: Paper Format`.
|
||||
- A square of **15mm by 15mm** on the bottom left corner has to stay clear.
|
||||
- The postage area has to stay clear (:download:`download the snailmail PDF template
|
||||
<snailmail/snailmail-template.pdf>` for more details).
|
||||
- Pingen (Odoo Snailmail service provider) scans the area to process the address, so if something
|
||||
gets written outside the area, it is not counted as part of the address.
|
||||
|
||||
Pricing
|
||||
=======
|
||||
|
||||
Snailmail is an :doc:`/applications/essentials/in_app_purchase` service that requires prepaid stamps
|
||||
(=credits) to work. Sending one document consumes one stamp.
|
||||
|
||||
To buy stamps, go to :menuselection:`Accounting --> Configuration --> Settings --> Customer
|
||||
invoices: Snailmail`, click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> In-App
|
||||
Purchases: Odoo IAP`, and click on :guilabel:`View my Services`.
|
||||
|
||||
.. seealso::
|
||||
`Odoo's IAP Privacy Policy <https://iap.odoo.com/privacy#header_4>`_
|
||||
@@ -0,0 +1,42 @@
|
||||
# Default terms and conditions (T&C)
|
||||
|
||||
Specifying terms and conditions is essential to establish important contractual points, such as
|
||||
return and refunds, warranty, and after-sale services.
|
||||
|
||||
You can add default terms and conditions at the bottom of all customer invoices, sales orders, and
|
||||
quotations, either as text or a link to a web page.
|
||||
|
||||
:::{seealso}
|
||||
[Odoo Tutorial: Terms & Conditions](https://www.odoo.com/slides/slide/terms-conditions-1680)
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
Go to {menuselection}`Accounting --> Configuration --> Settings`. Under the {guilabel}`Customer
|
||||
Invoices`, enable {guilabel}`Default Terms & Conditions`. By default, the {guilabel}`Add a Note`
|
||||
option is selected, and the terms and conditions are displayed at the bottom of the document. Enter
|
||||
the terms and conditions in the text box below.
|
||||
|
||||
```{image} terms_conditions/terms-note.png
|
||||
:alt: Example of terms and conditions as a note
|
||||
```
|
||||
|
||||
:::{tip}
|
||||
You can also add a PDF version of your terms and conditions as an attachment when sending the
|
||||
document via email. Edit the email templates if you want to include them by default.
|
||||
:::
|
||||
|
||||
Alternatively, to display the terms and conditions on a web page, select the {guilabel}`Add a link
|
||||
to a Web Page` option and click {guilabel}`Save`. Click {guilabel}`Update Terms`, edit the
|
||||
content, and click {guilabel}`Save`. The link to that page is then added as a note in your document.
|
||||
|
||||
:::{note}
|
||||
You can edit the layout and content of the page using the {doc}`Website
|
||||
</applications/websites/website>` app. If the Website app is activated, the {guilabel}`Edit in
|
||||
Website Builder` option then replaces {guilabel}`Update Terms`.
|
||||
:::
|
||||
|
||||
```{image} terms_conditions/terms-webpage.png
|
||||
:alt: Example of terms and conditions as a web page
|
||||
```
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
==================================
|
||||
Default terms and conditions (T&C)
|
||||
==================================
|
||||
|
||||
Specifying terms and conditions is essential to establish important contractual points, such as
|
||||
return and refunds, warranty, and after-sale services.
|
||||
|
||||
You can add default terms and conditions at the bottom of all customer invoices, sales orders, and
|
||||
quotations, either as text or a link to a web page.
|
||||
|
||||
.. seealso::
|
||||
`Odoo Tutorial: Terms & Conditions <https://www.odoo.com/slides/slide/terms-conditions-1680>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
|
||||
Invoices`, enable :guilabel:`Default Terms & Conditions`. By default, the :guilabel:`Add a Note`
|
||||
option is selected, and the terms and conditions are displayed at the bottom of the document. Enter
|
||||
the terms and conditions in the text box below.
|
||||
|
||||
.. image:: terms_conditions/terms-note.png
|
||||
:alt: Example of terms and conditions as a note
|
||||
|
||||
.. tip::
|
||||
You can also add a PDF version of your terms and conditions as an attachment when sending the
|
||||
document via email. Edit the email templates if you want to include them by default.
|
||||
|
||||
Alternatively, to display the terms and conditions on a web page, select the :guilabel:`Add a link
|
||||
to a Web Page` option and click :guilabel:`Save`. Click :guilabel:`Update Terms`, edit the
|
||||
content, and click :guilabel:`Save`. The link to that page is then added as a note in your document.
|
||||
|
||||
.. note::
|
||||
You can edit the layout and content of the page using the :doc:`Website
|
||||
</applications/websites/website>` app. If the Website app is activated, the :guilabel:`Edit in
|
||||
Website Builder` option then replaces :guilabel:`Update Terms`.
|
||||
|
||||
.. image:: terms_conditions/terms-webpage.png
|
||||
:alt: Example of terms and conditions as a web page
|
||||
@@ -0,0 +1,198 @@
|
||||
---
|
||||
show-content: true
|
||||
---
|
||||
|
||||
# Get started
|
||||
|
||||
When you first open your Odoo Accounting app, the {guilabel}`Accounting Dashboard` welcomes you with
|
||||
a step-by-step onboarding banner, a wizard that helps you get started. This onboarding banner is
|
||||
displayed until you choose to close it.
|
||||
|
||||
The settings visible in the onboarding banner can still be modified later by going to
|
||||
{menuselection}`Accounting --> Configuration --> Settings`.
|
||||
|
||||
:::{note}
|
||||
Odoo Accounting automatically installs the appropriate **Fiscal Localization Package** for your
|
||||
company, according to the country selected at the creation of the database. This way, the right
|
||||
accounts, reports, and taxes are ready-to-go. {ref}`Click here <fiscal_localizations/packages>`
|
||||
for more information about Fiscal Localization Packages.
|
||||
:::
|
||||
|
||||
## Accounting onboarding banner
|
||||
|
||||
The step-by-step Accounting onboarding banner is composed of four steps:
|
||||
|
||||
```{image} get_started/accounting-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Accounting
|
||||
```
|
||||
|
||||
1. {ref}`accounting-setup-periods`
|
||||
2. {ref}`accounting-setup-bank`
|
||||
3. {ref}`accounting-setup-taxes`
|
||||
4. {ref}`accounting-setup-chart`
|
||||
|
||||
(accounting-setup-periods)=
|
||||
|
||||
### Accounting Periods
|
||||
|
||||
Define the **Fiscal Years**’ opening and closing dates, which are used to generate reports
|
||||
automatically, and set your **Tax Return Periodicity**, along with a reminder to never miss a tax
|
||||
return deadline.
|
||||
|
||||
By default, the opening date is set on the 1st of January and the closing date on the 31st of
|
||||
December, as this is the most common use.
|
||||
|
||||
:::{note}
|
||||
You can also change these settings by going to {menuselection}`Accounting --> Configuration -->
|
||||
Settings --> Fiscal Periods` and updating the values.
|
||||
:::
|
||||
|
||||
(accounting-setup-bank)=
|
||||
|
||||
### Bank Account
|
||||
|
||||
Connect your bank account to your database and have your bank statements synced automatically. To do
|
||||
so, find your bank in the list, click {guilabel}`Connect`, and follow the instructions on-screen.
|
||||
|
||||
:::{note}
|
||||
{doc}`Click here <bank/bank_synchronization>` for more information about this feature.
|
||||
:::
|
||||
|
||||
If your Bank Institution can’t be synchronized automatically, or if you prefer not to sync it with
|
||||
your database, you can also configure your bank account manually by typing its name, clicking
|
||||
{guilabel}`Create your Bank Account`, and filling out the form.
|
||||
|
||||
- {guilabel}`Name`: the bank account's name, as displayed in Odoo.
|
||||
- {guilabel}`Account Number`: your bank account number (IBAN in Europe).
|
||||
- {guilabel}`Bank`: click {guilabel}`Create and edit` to configure the bank's details. Add the
|
||||
bank institution's {guilabel}`Name` and its {guilabel}`Identifier Code` (BIC or SWIFT).
|
||||
- {guilabel}`Code`: this code is your Journal's {guilabel}`Short Code`, as displayed in Odoo.
|
||||
By default, Odoo creates a new Journal with this short code.
|
||||
- {guilabel}`Journal`: This field is displayed if you have an existing bank journal that is not
|
||||
linked yet to a bank account. If so, then select the {guilabel}`Journal` you want to use to record
|
||||
the financial transactions linked to this bank account or create a new one by clicking
|
||||
{guilabel}`Create and Edit`.
|
||||
|
||||
:::{note}
|
||||
- You can add as many bank accounts as needed with this tool by going to
|
||||
{menuselection}`Accounting --> Configuration --> Add a Bank Account`.
|
||||
- {doc}`Click here <bank>` for more information about Bank Accounts.
|
||||
:::
|
||||
|
||||
(accounting-setup-taxes)=
|
||||
|
||||
### Taxes
|
||||
|
||||
This menu allows you to create new taxes, (de)activate, or modify existing taxes. Depending on the
|
||||
{doc}`localization package <../fiscal_localizations>` installed on your database, taxes required for
|
||||
your country are already configured.
|
||||
|
||||
:::{note}
|
||||
{doc}`Click here <taxes>` for more information about taxes.
|
||||
:::
|
||||
|
||||
(accounting-setup-chart)=
|
||||
|
||||
### Chart of Accounts
|
||||
|
||||
With this menu, you can add accounts to your **Chart of Accounts** and indicate their initial
|
||||
opening balances.
|
||||
|
||||
Basic settings are displayed on this page to help you review your Chart of Accounts. To access all
|
||||
the settings of an account, click on the {guilabel}`Setup` button at the end of the line.
|
||||
|
||||
```{image} get_started/setup_chart_of_accounts.png
|
||||
:alt: Setup of the Chart of Accounts and their opening balances in Odoo Accounting
|
||||
```
|
||||
|
||||
:::{note}
|
||||
{doc}`Click here <get_started/chart_of_accounts>` for more information on how to configure your
|
||||
Chart of Accounts.
|
||||
:::
|
||||
|
||||
## Invoicing onboarding banner
|
||||
|
||||
There is another step-by-step onboarding banner that helps you take advantage of your Odoo Invoicing
|
||||
and Accounting apps. The Invoicing onboarding banner is the one that welcomes you if you use the
|
||||
Invoicing app rather than the Accounting app.
|
||||
|
||||
If you have Odoo Accounting installed on your database, you can reach it by going to
|
||||
{menuselection}`Accounting --> Customers --> Invoices`.
|
||||
|
||||
The Invoicing onboarding banner consists of four main steps:
|
||||
|
||||
```{image} get_started/invoicing-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Invoicing
|
||||
```
|
||||
|
||||
1. {ref}`invoicing-setup-company`
|
||||
2. {ref}`invoicing-setup-layout`
|
||||
3. {ref}`invoicing-setup-invoice`
|
||||
4. {ref}`invoicing-setup-payments`
|
||||
|
||||
(invoicing-setup-company)=
|
||||
|
||||
### Company Data
|
||||
|
||||
Add your company’s details, such as the name, address, logo, website, phone number, email address,
|
||||
and Tax ID or VAT number. These details are then displayed on your documents, such as invoices.
|
||||
|
||||
:::{note}
|
||||
You can also change the company's details by going to {menuselection}`Settings --> General
|
||||
Settings`, scrolling down to the {guilabel}`Companies` section, and {guilabel}`Update Info`.
|
||||
:::
|
||||
|
||||
(invoicing-setup-layout)=
|
||||
|
||||
### Documents Layout
|
||||
|
||||
Customize the {ref}`default invoice layout <studio/pdf-reports/default-layout>`.
|
||||
|
||||
:::{note}
|
||||
You can also change the invoice layout by going to {menuselection}`Settings --> General
|
||||
Settings`, scrolling down to the {guilabel}`Companies` section, and clicking {guilabel}`Configure
|
||||
Document Layout`.
|
||||
:::
|
||||
|
||||
(invoicing-setup-invoice)=
|
||||
|
||||
### Create Invoice
|
||||
|
||||
Create your first invoice.
|
||||
|
||||
:::{tip}
|
||||
Add your **bank account number** and a link to your **General Terms & Condition** in the footer.
|
||||
This way, your contacts can find the full content of your GT&C online without having to print
|
||||
them on the invoices you issue.
|
||||
:::
|
||||
|
||||
(invoicing-setup-payments)=
|
||||
|
||||
### Online Payments
|
||||
|
||||
Get started with Stripe and enable secure integrated credit and debit card payments within Odoo.
|
||||
|
||||
:::{tip}
|
||||
To use other payment providers, go to
|
||||
{guilabel}`Invoicing --> Configuration --> Payment Providers` and
|
||||
{doc}`enable the desired providers <../payment_providers>`.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`bank`
|
||||
- {doc}`get_started/chart_of_accounts`
|
||||
- {doc}`bank/bank_synchronization`
|
||||
- {doc}`../fiscal_localizations`
|
||||
- [Odoo Tutorials: Accounting and Invoicing - Getting started [video]](https://www.odoo.com/slides/slide/getting-started-1692)
|
||||
:::
|
||||
|
||||
```{toctree}
|
||||
:titlesonly: true
|
||||
|
||||
get_started/cheat_sheet
|
||||
get_started/chart_of_accounts
|
||||
get_started/multi_currency
|
||||
get_started/avg_price_valuation
|
||||
get_started/tax_units
|
||||
```
|
||||
|
||||
@@ -1,194 +0,0 @@
|
||||
:show-content:
|
||||
|
||||
===========
|
||||
Get started
|
||||
===========
|
||||
|
||||
When you first open your Odoo Accounting app, the :guilabel:`Accounting Dashboard` welcomes you with
|
||||
a step-by-step onboarding banner, a wizard that helps you get started. This onboarding banner is
|
||||
displayed until you choose to close it.
|
||||
|
||||
The settings visible in the onboarding banner can still be modified later by going to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`.
|
||||
|
||||
.. note::
|
||||
Odoo Accounting automatically installs the appropriate **Fiscal Localization Package** for your
|
||||
company, according to the country selected at the creation of the database. This way, the right
|
||||
accounts, reports, and taxes are ready-to-go. :ref:`Click here <fiscal_localizations/packages>`
|
||||
for more information about Fiscal Localization Packages.
|
||||
|
||||
Accounting onboarding banner
|
||||
============================
|
||||
|
||||
The step-by-step Accounting onboarding banner is composed of four steps:
|
||||
|
||||
.. image:: get_started/accounting-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Accounting
|
||||
|
||||
#. :ref:`accounting-setup-periods`
|
||||
#. :ref:`accounting-setup-bank`
|
||||
#. :ref:`accounting-setup-taxes`
|
||||
#. :ref:`accounting-setup-chart`
|
||||
|
||||
.. _accounting-setup-periods:
|
||||
|
||||
Accounting Periods
|
||||
------------------
|
||||
|
||||
Define the **Fiscal Years**’ opening and closing dates, which are used to generate reports
|
||||
automatically, and set your **Tax Return Periodicity**, along with a reminder to never miss a tax
|
||||
return deadline.
|
||||
|
||||
By default, the opening date is set on the 1st of January and the closing date on the 31st of
|
||||
December, as this is the most common use.
|
||||
|
||||
.. note::
|
||||
You can also change these settings by going to :menuselection:`Accounting --> Configuration -->
|
||||
Settings --> Fiscal Periods` and updating the values.
|
||||
|
||||
.. _accounting-setup-bank:
|
||||
|
||||
Bank Account
|
||||
------------
|
||||
|
||||
Connect your bank account to your database and have your bank statements synced automatically. To do
|
||||
so, find your bank in the list, click :guilabel:`Connect`, and follow the instructions on-screen.
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <bank/bank_synchronization>` for more information about this feature.
|
||||
|
||||
If your Bank Institution can’t be synchronized automatically, or if you prefer not to sync it with
|
||||
your database, you can also configure your bank account manually by typing its name, clicking
|
||||
:guilabel:`Create your Bank Account`, and filling out the form.
|
||||
|
||||
- :guilabel:`Name`: the bank account's name, as displayed in Odoo.
|
||||
- :guilabel:`Account Number`: your bank account number (IBAN in Europe).
|
||||
- :guilabel:`Bank`: click :guilabel:`Create and edit` to configure the bank's details. Add the
|
||||
bank institution's :guilabel:`Name` and its :guilabel:`Identifier Code` (BIC or SWIFT).
|
||||
- :guilabel:`Code`: this code is your Journal's :guilabel:`Short Code`, as displayed in Odoo.
|
||||
By default, Odoo creates a new Journal with this short code.
|
||||
- :guilabel:`Journal`: This field is displayed if you have an existing bank journal that is not
|
||||
linked yet to a bank account. If so, then select the :guilabel:`Journal` you want to use to record
|
||||
the financial transactions linked to this bank account or create a new one by clicking
|
||||
:guilabel:`Create and Edit`.
|
||||
|
||||
.. note::
|
||||
- You can add as many bank accounts as needed with this tool by going to
|
||||
:menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
- :doc:`Click here <bank>` for more information about Bank Accounts.
|
||||
|
||||
.. _accounting-setup-taxes:
|
||||
|
||||
Taxes
|
||||
-----
|
||||
|
||||
This menu allows you to create new taxes, (de)activate, or modify existing taxes. Depending on the
|
||||
:doc:`localization package <../fiscal_localizations>` installed on your database, taxes required for
|
||||
your country are already configured.
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <taxes>` for more information about taxes.
|
||||
|
||||
.. _accounting-setup-chart:
|
||||
|
||||
Chart of Accounts
|
||||
-----------------
|
||||
|
||||
With this menu, you can add accounts to your **Chart of Accounts** and indicate their initial
|
||||
opening balances.
|
||||
|
||||
Basic settings are displayed on this page to help you review your Chart of Accounts. To access all
|
||||
the settings of an account, click on the :guilabel:`Setup` button at the end of the line.
|
||||
|
||||
.. image:: get_started/setup_chart_of_accounts.png
|
||||
:alt: Setup of the Chart of Accounts and their opening balances in Odoo Accounting
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <get_started/chart_of_accounts>` for more information on how to configure your
|
||||
Chart of Accounts.
|
||||
|
||||
Invoicing onboarding banner
|
||||
===========================
|
||||
|
||||
There is another step-by-step onboarding banner that helps you take advantage of your Odoo Invoicing
|
||||
and Accounting apps. The Invoicing onboarding banner is the one that welcomes you if you use the
|
||||
Invoicing app rather than the Accounting app.
|
||||
|
||||
If you have Odoo Accounting installed on your database, you can reach it by going to
|
||||
:menuselection:`Accounting --> Customers --> Invoices`.
|
||||
|
||||
The Invoicing onboarding banner consists of four main steps:
|
||||
|
||||
.. image:: get_started/invoicing-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Invoicing
|
||||
|
||||
#. :ref:`invoicing-setup-company`
|
||||
#. :ref:`invoicing-setup-layout`
|
||||
#. :ref:`invoicing-setup-invoice`
|
||||
#. :ref:`invoicing-setup-payments`
|
||||
|
||||
.. _invoicing-setup-company:
|
||||
|
||||
Company Data
|
||||
------------
|
||||
|
||||
Add your company’s details, such as the name, address, logo, website, phone number, email address,
|
||||
and Tax ID or VAT number. These details are then displayed on your documents, such as invoices.
|
||||
|
||||
.. note::
|
||||
You can also change the company's details by going to :menuselection:`Settings --> General
|
||||
Settings`, scrolling down to the :guilabel:`Companies` section, and :guilabel:`Update Info`.
|
||||
|
||||
.. _invoicing-setup-layout:
|
||||
|
||||
Documents Layout
|
||||
----------------
|
||||
|
||||
Customize the :ref:`default invoice layout <studio/pdf-reports/default-layout>`.
|
||||
|
||||
.. note::
|
||||
You can also change the invoice layout by going to :menuselection:`Settings --> General
|
||||
Settings`, scrolling down to the :guilabel:`Companies` section, and clicking :guilabel:`Configure
|
||||
Document Layout`.
|
||||
|
||||
.. _invoicing-setup-invoice:
|
||||
|
||||
Create Invoice
|
||||
--------------
|
||||
|
||||
Create your first invoice.
|
||||
|
||||
.. tip::
|
||||
Add your **bank account number** and a link to your **General Terms & Condition** in the footer.
|
||||
This way, your contacts can find the full content of your GT&C online without having to print
|
||||
them on the invoices you issue.
|
||||
|
||||
.. _invoicing-setup-payments:
|
||||
|
||||
Online Payments
|
||||
---------------
|
||||
|
||||
Get started with Stripe and enable secure integrated credit and debit card payments within Odoo.
|
||||
|
||||
.. tip::
|
||||
To use other payment providers, go to
|
||||
:guilabel:`Invoicing --> Configuration --> Payment Providers` and
|
||||
:doc:`enable the desired providers <../payment_providers>`.
|
||||
|
||||
|
||||
.. seealso::
|
||||
* :doc:`bank`
|
||||
* :doc:`get_started/chart_of_accounts`
|
||||
* :doc:`bank/bank_synchronization`
|
||||
* :doc:`../fiscal_localizations`
|
||||
* `Odoo Tutorials: Accounting and Invoicing - Getting started [video]
|
||||
<https://www.odoo.com/slides/slide/getting-started-1692>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
get_started/cheat_sheet
|
||||
get_started/chart_of_accounts
|
||||
get_started/multi_currency
|
||||
get_started/avg_price_valuation
|
||||
get_started/tax_units
|
||||
@@ -0,0 +1,432 @@
|
||||
---
|
||||
substitutions:
|
||||
AVCO: '{abbr}`AVCO (Average Cost Valuation)`'
|
||||
---
|
||||
|
||||
# Average price on returned goods
|
||||
|
||||
(inventory-avg-cost-definition)=
|
||||
|
||||
*Average cost valuation* (AVCO) is an inventory valuation method that evaluates cost based on the
|
||||
total cost of goods bought or produced during a period, divided by the total number of items
|
||||
on-hand. Inventory valuation is used to:
|
||||
|
||||
- reflect the value of a company's assets;
|
||||
- keep track of the amount of unsold goods;
|
||||
- account for monetary value in goods that have yet to generate profit;
|
||||
- report on flow of goods throughout the quarter.
|
||||
|
||||
Because {{ AVCO }} uses the weighted average to evaluate the cost, it is a good fit for companies that
|
||||
sell only a few different products in large quantities. In Odoo, this costing analysis is
|
||||
*automatically updated* each time products are received.
|
||||
|
||||
Thus, when shipments are returned to their supplier, Odoo automatically generates accounting entries
|
||||
to reflect the change in inventory valuation. However, Odoo does **not** automatically update the
|
||||
{{ AVCO }} calculation, because {ref}`this can potentially create inconsistencies with inventory
|
||||
valuation <inventory/avg_price/leaving_inventory>`.
|
||||
|
||||
:::{note}
|
||||
This document addresses a specific use case for theoretical purposes. For instructions on how to
|
||||
set up and use {{ AVCO }}, refer to the {doc}`inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
|
||||
doc.
|
||||
:::
|
||||
|
||||
:::{seealso}
|
||||
- {doc}`Using inventory valuation
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation>`
|
||||
- {ref}`Other inventory valuation methods <inventory/warehouses_storage/costing_methods>`
|
||||
:::
|
||||
|
||||
## Configuration
|
||||
|
||||
To use average cost inventory valuation on a product, navigate to {menuselection}`Inventory -->
|
||||
Configuration --> Product Categories` and select the category that will be using {{ AVCO }}. On the
|
||||
product category page, set {guilabel}`Costing Method` to `Average Cost (AVCO)` and
|
||||
{guilabel}`Inventory Valuation` to `Automated`.
|
||||
|
||||
:::{seealso}
|
||||
{doc}`Inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
|
||||
:::
|
||||
|
||||
## Using average cost valuation
|
||||
|
||||
The average cost method adjusts the inventory valuation when products are received in the warehouse.
|
||||
This section explains how it works, but if the explanation is unnecessary, skip to the {ref}`return
|
||||
to supplier use case <inventory/avg_cost/return>` section.
|
||||
|
||||
(inventory-avg-cost-formula)=
|
||||
|
||||
### Formula
|
||||
|
||||
When new products arrive, the new average cost for each product is recomputed using the formula:
|
||||
|
||||
$$
|
||||
Avg~Cost = \frac{(Old~Qty \times Old~Avg~Cost) + (Incoming~Qty \times Purchase~Price)}{Final~Qty}
|
||||
$$
|
||||
|
||||
- **Old Qty**: product count in stock before receiving the new shipment;
|
||||
- **Old Avg Cost**: calculated average cost for a single product from the previous inventory
|
||||
valuation;
|
||||
- **Incoming Qty**: count of products arriving in the new shipment;
|
||||
- **Purchase Price**: estimated price of products at the reception of products (since vendor bills
|
||||
may arrive later). The amount includes not only the price for the products, but also added costs,
|
||||
such as shipping, taxes, and {doc}`landed costs
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. At
|
||||
reception of the vendor bill, this price is adjusted;
|
||||
- **Final Qty**: quantity of on-hand stock after the stock move.
|
||||
|
||||
(inventory-avg-cost-definite-rule)=
|
||||
|
||||
:::{important}
|
||||
When products leave the warehouse, the average cost **does not** change. Read about why the
|
||||
average cost valuation is **not** adjusted {ref}`here <inventory/avg_price/leaving_inventory>`.
|
||||
:::
|
||||
|
||||
(inventory-avg-cost-math-table)=
|
||||
|
||||
### Compute average cost
|
||||
|
||||
To understand how the average cost of a product changes with each shipment, consider the following
|
||||
table of warehouse operations and stock moves. Each is a different example of how the average cost
|
||||
valuation is affected.
|
||||
|
||||
| Operation | Incoming Value | Inventory Value | Qty On Hand | Avg Cost |
|
||||
| ----------------------------- | -------------- | --------------- | ----------- | -------- |
|
||||
| | | \$0 | 0 | \$0 |
|
||||
| Receive 8 tables at \$10/unit | 8 * \$10 | \$80 | 8 | \$10 |
|
||||
| Receive 4 tables at \$16/unit | 4 * \$16 | \$144 | 12 | \$12 |
|
||||
| Deliver 10 tables | -10 * \$12 | \$24 | 2 | \$12 |
|
||||
|
||||
(inventory-avg-cost-ex-1)=
|
||||
|
||||
```{eval-rst}
|
||||
.. exercise::
|
||||
Ensure comprehension of the above computations by reviewing the "Receive 8 tables at $10/unit"
|
||||
example.
|
||||
|
||||
Initially, the product stock is 0, so all values are $0.
|
||||
|
||||
In the first warehouse operation, `8` tables are received at `$10` each. The average cost is
|
||||
calculated using the :ref:`formula <inventory/avg_cost/formula>`:
|
||||
|
||||
.. math::
|
||||
Avg~Cost = \frac{0 + 8 \times $10}{8} = \frac{$80}{8} = $10
|
||||
|
||||
- Since the *incoming quantity* of tables is `8` and the *purchase price* for each is `$10`,
|
||||
- The inventory value in the numerator is evaluated to `$80`;
|
||||
- `$80` is divided by the total amount of tables to store, `8`;
|
||||
- `$10` is the average cost of a single table from the first shipment.
|
||||
|
||||
To verify this in Odoo, in the *Purchase* app, order `8` quantities of a new product, `Table`,
|
||||
with no previous stock moves, for `$10` each.
|
||||
|
||||
In the table's :guilabel:`Product Category` field in the :guilabel:`General Information` tab of
|
||||
the product form, click the :guilabel:`➡️ (arrow)` icon, to open an :guilabel:`External Link` to
|
||||
edit the product category. Set the :guilabel:`Costing Method` to `Average Cost (AVCO)` and
|
||||
:guilabel:`Inventory Valuation` to `Automated`.
|
||||
|
||||
Then, return to the purchase order. Click :guilabel:`Confirm Order`, and click :guilabel:`Receive
|
||||
Products` to confirm receipt.
|
||||
|
||||
Next, check the inventory valuation record generated by the product reception by navigating to
|
||||
:menuselection:`Inventory --> Reporting --> Inventory Valuation`. Select the drop-down for
|
||||
`Table`, and view the :guilabel:`Total Value` column for the *valuation layer* (:dfn:`inventory
|
||||
valuation at a specific point in time = on-hand quantity * unit price`). The 8 tables in-stock
|
||||
are worth $80.
|
||||
|
||||
.. image:: avg_price_valuation/inventory-val-8-tables.png
|
||||
:align: center
|
||||
:alt: Show inventory valuation of 8 tables in Odoo.
|
||||
```
|
||||
|
||||
:::{tip}
|
||||
When the product category's {guilabel}`Costing Method` is set to {guilabel}`AVCO`, then the
|
||||
average cost of a product is also displayed on the {guilabel}`Cost` field, under the
|
||||
{guilabel}`General Information` tab, on the product page itself.
|
||||
:::
|
||||
|
||||
#### Product delivery (use case)
|
||||
|
||||
For outgoing shipments, {ref}`outbound products have no effect on the average cost valuation
|
||||
<inventory/avg_cost/definite_rule>`. Although the average cost valuation is not recalculated, the
|
||||
inventory value still decreases because the product is removed from stock and delivered to the
|
||||
customer location.
|
||||
|
||||
```{eval-rst}
|
||||
.. exercise::
|
||||
To demonstrate that the average cost valuation is not recalculated, examine the "Deliver 10
|
||||
tables" example.
|
||||
|
||||
.. math::
|
||||
Avg~Cost = \frac{12 \times $12 + (-10) \times $12}{12-10} = \frac{24}{2} = $12
|
||||
|
||||
#. Because 10 tables are being sent out to customers, the *incoming quantity* is `-10`. The
|
||||
previous average cost (`$12`) is used in lieu of a vendor's *purchase price*;
|
||||
#. The *incoming inventory value* is `-10 * $12 = -$120`;
|
||||
#. The old *inventory value* (`$144`) is added to the *incoming inventory value* (`-$120`), so
|
||||
`$144 + -$120 = $24`;
|
||||
#. Only `2` tables remain after shipping out `10` tables from `12`. So the current *inventory
|
||||
value* (`$24`) is divided by the on-hand quantity (`2`);
|
||||
#. `$24 / 2 = $12`, which is the same average cost as the previous operation.
|
||||
|
||||
To verify this in Odoo, sell `10` tables in the *Sales* app, validate the delivery, and then
|
||||
review the inventory valuation record by going to in :menuselection:`Inventory --> Reporting -->
|
||||
Inventory Valuation`. In the topmost valuation layer, delivering `10` tables reduces the
|
||||
product's value by `-$120`.
|
||||
|
||||
**Note**: What is not represented in this stock valuation record is the revenue made from this
|
||||
sale, so this decrease is not a loss to the company.
|
||||
|
||||
.. image:: avg_price_valuation/inventory-val-send-10-tables.png
|
||||
:align: center
|
||||
:alt: Show how deliveries decrease inventory valuation.
|
||||
```
|
||||
|
||||
(inventory-avg-cost-return)=
|
||||
|
||||
## Return items to supplier (use case)
|
||||
|
||||
Because the price paid to suppliers can differ from the price the product is valued at with the
|
||||
{{ AVCO }} method, Odoo handles returned items in a specific way.
|
||||
|
||||
1. Products are returned to suppliers at the original purchase price, but;
|
||||
2. The internal cost valuation remains unchanged.
|
||||
|
||||
The above {ref}`example table <inventory/avg_cost/math_table>` is updated as follows:
|
||||
|
||||
| Operation | Qty\*Avg Cost | Inventory Value | Qty On Hand | Avg Cost |
|
||||
| ----------------------------- | ------------- | --------------- | ----------- | -------- |
|
||||
| | | \$24 | 2 | \$12 |
|
||||
| Return 1 table bought at \$10 | -1 * \$12 | \$12 | 1 | \$12 |
|
||||
|
||||
In other words, returns to vendors are perceived by Odoo as another form of a product exiting the
|
||||
warehouse. To Odoo, because the table is valued at \$12 per unit, the inventory value is reduced by
|
||||
`$12` when the product is returned; the initial purchase price of `$10` is unrelated to the table's
|
||||
average cost.
|
||||
|
||||
```{eval-rst}
|
||||
.. example::
|
||||
To return a single table that was purchased for `$10`, navigate to the receipt in the *Inventory*
|
||||
app for the :ref:`8 tables purchased in Exercise 1 <inventory/avg_cost/ex-1>` by going to the
|
||||
:guilabel:`Inventory Overview`, clicking on :guilabel:`Receipts`, and selecting the desired
|
||||
receipt.
|
||||
|
||||
Then, click :guilabel:`Return` on the validated delivery order, and modify the quantity to `1` in
|
||||
the reverse transfer window. This creates an outgoing shipment for the table. Select
|
||||
:guilabel:`Validate` to confirm the outgoing shipment.
|
||||
|
||||
Return to :menuselection:`Inventory --> Reporting --> Inventory Valuation` to see how the
|
||||
outgoing shipment decreases the inventory value by $12.
|
||||
|
||||
.. image:: avg_price_valuation/inventory-valuation-return.png
|
||||
:align: center
|
||||
:alt: Inventory valuation for return.
|
||||
```
|
||||
|
||||
(inventory-avg-price-leaving-inventory)=
|
||||
|
||||
### Eliminate stock valuation errors in outgoing products
|
||||
|
||||
Inconsistencies can occur in a company's inventory when the average cost valuation is recalculated
|
||||
on outgoing shipments.
|
||||
|
||||
To demonstrate this error, the table below displays a scenario in which 1 table is shipped to a
|
||||
customer and another is returned to a supplier at the purchased price.
|
||||
|
||||
| Operation | Qty\*Price | Inventory Value | Qty On Hand | Avg Cost |
|
||||
| ----------------------------------------- | ---------- | --------------- | ----------- | -------- |
|
||||
| | | \$24 | 2 | \$12 |
|
||||
| Ship 1 product to customer | -1 * \$12 | \$12 | 1 | \$12 |
|
||||
| Return 1 product initially bought at \$10 | -1 * \$10 | **\$2** | **0** | \$12 |
|
||||
|
||||
In the final operation above, the final inventory valuation for the table is `$2` even though there
|
||||
are `0` tables left in stock.
|
||||
|
||||
:::{admonition} Correct method
|
||||
Use the average cost to value the return. This does not mean the company gets \$12 back for a \$10
|
||||
purchase; the item returned for \$10 is valued internally at \$12. The inventory value change
|
||||
represents a product worth \$12 no longer being accounted for in company assets.
|
||||
:::
|
||||
|
||||
## Anglo-Saxon accounting
|
||||
|
||||
In addition to using {{ AVCO }}, companies that use **Anglo-Saxon accounting** also keep a holding
|
||||
account that tracks the amount to be paid to vendors. Once a vendor delivers an order, **inventory
|
||||
value** increases based on the vendor price of the products that have entered the stock. The holding
|
||||
account (called **stock input**) is credited and only reconciled once the vendor bill is received.
|
||||
|
||||
:::{seealso}
|
||||
- {ref}`Anglo-Saxon vs. Continental <inventory/warehouses_storage/accounting-types>`
|
||||
:::
|
||||
|
||||
The table below reflects journal entries and accounts. The *stock input* account stores the money
|
||||
intended to pay vendors when the vendor bill has not yet been received. To balance accounts when
|
||||
returning products that have a price difference between the price the product is **valued at** and
|
||||
the price it was bought for, a *price difference* account is created.
|
||||
|
||||
(inventory-avg-price-price-table)=
|
||||
|
||||
| Operation | Stock Input | Price Diff | Inventory Value | Qty On Hand | Avg Cost |
|
||||
| --------------------------------------- | ----------- | ---------- | --------------- | ----------- | -------- |
|
||||
| | | | \$0 | 0 | \$0 |
|
||||
| Receive 8 tables at \$10 | (\$80) | | \$80 | 8 | \$10 |
|
||||
| Receive vendor bill \$80 | \$0 | | \$80 | 8 | \$10 |
|
||||
| Receive 4 tables at \$16 | (\$64) | | \$144 | 12 | \$12 |
|
||||
| Receive vendor bill \$64 | \$0 | | \$144 | 12 | \$12 |
|
||||
| Deliver 10 tables to customer | \$0 | | \$24 | 2 | \$12 |
|
||||
| Return 1 table initially bought at \$10 | **\$10** | **\$2** | **\$12** | 1 | \$12 |
|
||||
| Receive vendor refund \$10 | \$0 | \$2 | \$12 | 1 | \$12 |
|
||||
|
||||
### Product reception
|
||||
|
||||
#### Summary
|
||||
|
||||
At product reception, Odoo ensures companies can pay for goods that were purchased by preemptively
|
||||
moving an amount matching the price of received goods into the {doc}`liability account
|
||||
</applications/finance/accounting/get_started/cheat_sheet>`, **Stock Input**. Then, once the bill
|
||||
has been received, the amount in the holding account is transferred to *Accounts Payable*. Transfers
|
||||
into this account means the bill has been paid. **Stock Input** is reconciled once the vendor bill
|
||||
is received.
|
||||
|
||||
Inventory valuation is a method of calculating how much each in-stock product is worth internally.
|
||||
Since there is a difference between the price the product is **valuated at** and the price the
|
||||
product was actually **purchased for**, the **Inventory Valuation** account is unrelated to the
|
||||
crediting and debiting operations of the **Stock Input** account.
|
||||
|
||||
To conceptualize all this, follow the breakdown below.
|
||||
|
||||
#### Accounts balanced at received products
|
||||
|
||||
In this example, a company starts with zero units of a product, `table`, in stock. Then, 8 tables
|
||||
are received from the vendor:
|
||||
|
||||
1. The **Stock Input** account stores `$80` of credit owed to the vendor. The amount in this account
|
||||
is unrelated to the inventory value.
|
||||
2. `$80` worth of tables came **in** (**debit** the *Inventory Value* account `$80`), and
|
||||
3. `$80` must be paid **out** for received goods (**credit** the *Stock Input* account `$80`).
|
||||
|
||||
##### In Odoo
|
||||
|
||||
Odoo generates an accounting journal entry when shipments that use {{ AVCO }} costing method are
|
||||
received. Configure a {guilabel}`Price Difference Account` by selecting the {guilabel}`➡️ (arrow)`
|
||||
icon next to the {guilabel}`Product Category` field on the product page.
|
||||
|
||||
Under {guilabel}`Account Properties`, create a new {guilabel}`Price Difference Account` by typing in
|
||||
the name of the account and clicking {guilabel}`Create and Edit`. Then set the account
|
||||
{guilabel}`Type` as `Expenses`, and click {guilabel}`Save`.
|
||||
|
||||
```{image} avg_price_valuation/create-price-difference.png
|
||||
:align: center
|
||||
:alt: Create price difference account.
|
||||
```
|
||||
|
||||
Then, receive the shipment in the *Purchase* app or *Inventory* app, and navigate to the
|
||||
{menuselection}`Accounting app --> Accounting --> Journal Entries`. In the list, find the
|
||||
{guilabel}`Reference` that matches the warehouse reception operation for the relevant product.
|
||||
|
||||
```{image} avg_price_valuation/search-for-entry-of-tables.png
|
||||
:align: center
|
||||
:alt: Show accounting entry of 8 tables from the list.
|
||||
```
|
||||
|
||||
Click on the line for 8 tables. This accounting journal entry shows that when the 8 tables were
|
||||
received, the `Stock Valuation` account increased by `$80`. Conversely, the **Stock Input** account
|
||||
(set as `Stock Interim (Received)` account by default) is credited `$80`.
|
||||
|
||||
```{image} avg_price_valuation/accounting-entry-8-tables.png
|
||||
:align: center
|
||||
:alt: Debit stock valuation and credit stock input 80 dollars.
|
||||
```
|
||||
|
||||
#### Accounts balanced at received vendor bill
|
||||
|
||||
In this example, a company starts with zero units of a product, table, in stock. Then, 8 tables are
|
||||
received from the vendor. When the bill is received from vendor for 8 tables:
|
||||
|
||||
1. Use `$80` in the **Stock Input** account to pay the bill. This cancels out and the account now
|
||||
holds `$0`.
|
||||
2. Debit **Stock Input** `$80` (to reconcile this account).
|
||||
3. Credit **Accounts payable** `$80`. This account stores the amount the company owes others, so
|
||||
accountants use the amount to write checks to vendors.
|
||||
|
||||
##### In Odoo
|
||||
|
||||
Once the vendor requests payment, navigate to the {menuselection}`Purchase app --> Orders -->
|
||||
Purchase` and select the {abbr}`PO (Purchase Order)` for 8 tables. Inside the {abbr}`PO (Purchase
|
||||
Order)`, select {guilabel}`Create Bill`.
|
||||
|
||||
Switch to the {guilabel}`Journal Items` tab to view how `$80` is transferred from the holding
|
||||
account, `Stock Interim (Received)` to `Accounts Payable`. {guilabel}`Confirm` the bill to record
|
||||
the payment to the vendor.
|
||||
|
||||
```{image} avg_price_valuation/receive-8-table-bill.png
|
||||
:align: center
|
||||
:alt: Show bill linked to the purchase order for 8 tables.
|
||||
```
|
||||
|
||||
### On product delivery
|
||||
|
||||
In the {ref}`above example table <inventory/avg_price/price-table>`, when 10 products are delivered
|
||||
to a customer, the **Stock Input** account is untouched because there are no new products coming in.
|
||||
To put it simply:
|
||||
|
||||
1. **Inventory valuation** is credited `$120`. Subtracting from inventory valuation represents
|
||||
`$120` worth of products exiting the company.
|
||||
2. Debit **Accounts Receivable** to record revenue from the sale.
|
||||
|
||||
```{image} avg_price_valuation/sell-10-tables.png
|
||||
:align: center
|
||||
:alt: Show journal items linked to sale order.
|
||||
```
|
||||
|
||||
```{eval-rst}
|
||||
.. spoiler:: Understand Anglo-Saxon expensing
|
||||
|
||||
In the accounting journal entry invoicing a customer for 10 tables, the accounts **Product
|
||||
Sales**, **Tax Received**, and **Accounts Receivable** all pertain to the sale of the product.
|
||||
**Accounts Receivable** is the account where the customer payment will be received.
|
||||
|
||||
Anglo-Saxon accounting recognizes the cost of goods sold (COGS) once the sale is made. So, up
|
||||
until the product is sold, scrapped, or returned, costs of keeping the product in stock are not
|
||||
accounted for. The **Expense** account is debited `$120` to log the costs of storing 10 tables
|
||||
during this period of time.
|
||||
```
|
||||
|
||||
### On product return
|
||||
|
||||
In the {ref}`above example table <inventory/avg_price/price-table>`, when returning 1 product to a
|
||||
vendor purchased at `$10`, a company expects `$10` in the **Accounts Payable** account from the
|
||||
vendor. However, **Stock Input** account must be debited `$12` because the average cost is `$12` at
|
||||
the time of the return. The missing `$2` is accounted for in the {guilabel}`Price Difference
|
||||
Account`, which is set up in the product's {guilabel}`Product Category`.
|
||||
|
||||
:::{note}
|
||||
Behavior of *price difference accounts* varies from localization. In this case, the account is
|
||||
intended to store differences between vendor price and *automated* inventory valuation methods.
|
||||
:::
|
||||
|
||||
Summary:
|
||||
|
||||
1. Debit **Stock Input** account `$10` to move the table from stock to stock input. This move is to
|
||||
indicate that the table is to be processed for an outgoing shipment.
|
||||
2. Debit **Stock Input** an additional `$2` to account for the **Price Difference**.
|
||||
3. Credit **Stock Valuation** `$12` because the item is leaving the stock.
|
||||
|
||||
```{image} avg_price_valuation/expensing-price-difference-account.png
|
||||
:align: center
|
||||
:alt: 2 dollar difference expensed in Price Difference account.
|
||||
```
|
||||
|
||||
Once the vendor's refund is received,
|
||||
|
||||
1. Credit **Stock Input** account `$10` to reconcile the price of the table.
|
||||
2. Debit **Accounts Payable** `$10` to have the accountants collect and register the payment in
|
||||
their journal.
|
||||
|
||||
```{image} avg_price_valuation/return-credit-note.png
|
||||
:align: center
|
||||
:alt: Return to get 10 dollars back.
|
||||
```
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user