Compare commits
115 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bc0a9bef26 | |||
| a5c3441bda | |||
| cc427a0fea | |||
| 156980164a | |||
| 0fab281c12 | |||
| e23005c5cc | |||
| 1d0d45d928 | |||
| 0a0991bbca | |||
| 5824b76579 | |||
| 10cc7aa831 | |||
| 2ad21589d7 | |||
| 4b4d568624 | |||
| 5bb59f4083 | |||
| bd6eb29718 | |||
| 9bbf59a5c0 | |||
| e0f0b3dbc6 | |||
| e944826961 | |||
| 2c4e558804 | |||
| 5129d832f5 | |||
| 4250fd8475 | |||
| 4ee2fdd8f8 | |||
| 1829ea1dce | |||
| 797c47bfdd | |||
| a4246ae24a | |||
| 7816b13536 | |||
| e4def45a33 | |||
| 25b787e8bc | |||
| 98cb1ebac3 | |||
| de33f53535 | |||
| 82a1564ab8 | |||
| 564ac8fd7d | |||
| 98b21d0c02 | |||
| 1ea67923d6 | |||
| f06fbeff06 | |||
| 13cf7f74fa | |||
| 5c3bb77fae | |||
| a9ba3516d6 | |||
| 33cfa48bc7 | |||
| 85750cdef1 | |||
| 32ba97eeec | |||
| 669669d275 | |||
| f9ca4efa04 | |||
| 8505bd7bb6 | |||
| a09a1e3f97 | |||
| 54c328611c | |||
| 81225fe2d6 | |||
| 032e4ebb17 | |||
| 39c408d30a | |||
| ac3d25aa65 | |||
| c5eef612ab | |||
| 65935fdd3a | |||
| 262ecf4ed3 | |||
| 279ae26b85 | |||
| 670084cbcf | |||
| 2d5e29fd90 | |||
| 35711446e8 | |||
| 12b8b20ad4 | |||
| e4aac1214b | |||
| 6427517626 | |||
| 99751542c7 | |||
| ad749706ec | |||
| 3d55908b4c | |||
| 676c234151 | |||
| 35d79a866a | |||
| f9c0be63ee | |||
| 209864139d | |||
| 6482fb8440 | |||
| 973d5800d2 | |||
| 412f844589 | |||
| 4299eed3cd | |||
| ee71f1eb9a | |||
| b87b0b335a | |||
| 6a69730316 | |||
| 603518a6c5 | |||
| 7519600559 | |||
| 5a512bbdcf | |||
| 9e75bca747 | |||
| 7c3abb5af5 | |||
| 89cfd364dc | |||
| 8d9d0c90ed | |||
| cce9456f93 | |||
| 1febb15453 | |||
| 832628a8c7 | |||
| b84e81d3a1 | |||
| 4f098945d7 | |||
| 86fac322d3 | |||
| 958fa599e1 | |||
| 0604fb56f9 | |||
| 3fe09dd653 | |||
| 06eaf3a0c7 | |||
| 14c0438764 | |||
| db3db3c727 | |||
| 1be6f341dd | |||
| 39541bb745 | |||
| 157c1e18ea | |||
| ab5c9feb40 | |||
| 6c3385cf90 | |||
| b53427ddde | |||
| e6dbd3d9e4 | |||
| 646bfe2e2c | |||
| e620f27378 | |||
| f10c8d4ad2 | |||
| b4cab2a3db | |||
| 999c8db465 | |||
| 6ec9eb1fcc | |||
| baab56946f | |||
| 73499c595e | |||
| 2c1277d0f7 | |||
| fc98af5814 | |||
| d0b7363de5 | |||
| 65f1e3ce0a | |||
| a48ebe55bf | |||
| 3d28850a40 | |||
| 83a68e4b9b | |||
| be60243eff |
@@ -213,6 +213,7 @@ sphinx.transforms.i18n.docname_to_domain = (
|
||||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'saas-17.1': "Odoo Online",
|
||||
'17.0': "Odoo 17",
|
||||
'saas-16.4': "Odoo Online",
|
||||
'saas-16.3': "Odoo Online",
|
||||
@@ -478,8 +479,24 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
||||
_version = _version or app.config.version
|
||||
_lang = _lang or app.config.language or 'en'
|
||||
_canonical_page = f'{pagename}.html'
|
||||
|
||||
# legal translations have different URLs schemes as they are not managed on transifex
|
||||
# e.g. FR translation of /terms/enterprise => /fr/terms/enterprise_fr
|
||||
if pagename.startswith('legal/terms/'):
|
||||
if _lang in legal_translations and not pagename.endswith(f"_{_lang}"):
|
||||
# remove language code for current translation, set target one
|
||||
_page = re.sub("_[a-z]{2}$", "", pagename)
|
||||
if 'terms/i18n' not in _page:
|
||||
_page = _page.replace("/terms/", "/terms/i18n/")
|
||||
_canonical_page = f'{_page}_{_lang}.html'
|
||||
elif _lang == 'en' and pagename.endswith(tuple(f"_{l}" for l in legal_translations)):
|
||||
# remove language code for current translation, link to original EN one
|
||||
_page = re.sub("_[a-z]{2}$", "", pagename)
|
||||
_canonical_page = f'{_page.replace("/i18n/", "/")}.html'
|
||||
|
||||
if app.config.is_remote_build:
|
||||
_canonical_page = _canonical_page.replace('index.html', '')
|
||||
|
||||
return f'{_root}' \
|
||||
f'{f"/{_version}" if app.config.versions else ""}' \
|
||||
f'{f"/{_lang}" if _lang != "en" else ""}' \
|
||||
|
||||
@@ -47,3 +47,4 @@ functionalities, including functional support, upgrades, and hosting. `Pricing
|
||||
install/deploy
|
||||
install/cdn
|
||||
install/email_gateway
|
||||
install/geo_ip
|
||||
|
||||
@@ -334,6 +334,9 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
|
||||
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
|
||||
}
|
||||
|
||||
# Redirect requests to odoo backend server
|
||||
@@ -346,10 +349,8 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
||||
proxy_redirect off;
|
||||
proxy_pass http://odoo;
|
||||
|
||||
# Enable HSTS
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
|
||||
# requires nginx 1.19.8
|
||||
proxy_cookie_flags session_id samesite=lax secure;
|
||||
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
|
||||
}
|
||||
|
||||
# common gzip
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
==========================================
|
||||
Geo IP Installation (On-Premises Database)
|
||||
==========================================
|
||||
======
|
||||
Geo IP
|
||||
======
|
||||
|
||||
.. note::
|
||||
This documentation only applies to On-premise databases.
|
||||
|
||||
Installation
|
||||
============
|
||||
@@ -32,8 +35,8 @@ Installation
|
||||
.. seealso::
|
||||
- :doc:`CLI documentation </developer/reference/cli>`.
|
||||
|
||||
Test GeoIP Geolocation In Odoo Website
|
||||
======================================
|
||||
Test GeoIP geolocation in your Odoo website
|
||||
===========================================
|
||||
|
||||
Edit a web page to include some geo-ip information such as the country name of the current
|
||||
request IP address. To do so:
|
||||
@@ -16,8 +16,8 @@ Official **Community** and **Enterprise** packages can be downloaded from the `O
|
||||
<https://www.odoo.com/page/download>`_.
|
||||
|
||||
.. note::
|
||||
It is required to be logged in as a paying customer or partner to download the Enterprise
|
||||
packages.
|
||||
It is required to be logged in as a paying on-premise customer or partner to download the
|
||||
Enterprise packages.
|
||||
|
||||
.. _install/packages/linux:
|
||||
|
||||
|
||||
@@ -15,4 +15,5 @@ Maintain
|
||||
maintain/hosting_changes
|
||||
maintain/odoo_online
|
||||
maintain/on_premise
|
||||
maintain/neutralized_database
|
||||
maintain/supported_versions
|
||||
|
||||
@@ -52,7 +52,7 @@ able to read (IMAP) and send (SMTP) emails in the Microsoft 365 setup. First, cl
|
||||
Add a Permission` button and select :guilabel:`Microsoft Graph` under :guilabel:`Commonly Used
|
||||
Microsoft APIs`. After, select the :guilabel:`Delegated Permissions` option.
|
||||
|
||||
In the search bar, search for the following :guilabel:`Deregulated permissions` and click
|
||||
In the search bar, search for the following :guilabel:`Delegated permissions` and click
|
||||
:guilabel:`Add permissions` for each one:
|
||||
|
||||
- :guilabel:`SMTP.Send`
|
||||
|
||||
@@ -2,293 +2,255 @@
|
||||
Domain names
|
||||
============
|
||||
|
||||
A **domain name** works as an address for your website. It makes the Internet much more accessible
|
||||
as it allows users to type a meaningful web address, such as ``www.odoo.com``, rather than its
|
||||
server's IP address with a series of numbers.
|
||||
Domain names are text-based addresses identifying online locations, such as websites. They provide a
|
||||
more memorable and recognizable way for people to navigate the internet than numerical IP addresses.
|
||||
|
||||
You can use a custom domain name to access your Odoo database and websites:
|
||||
**Odoo Online** and **Odoo.sh** databases use a **subdomain** of the `odoo.com` **domain** by
|
||||
default (e.g., `mycompany.odoo.com`).
|
||||
|
||||
- By :ref:`registering a free domain name with Odoo <domain-name/odoo-register>` (for Odoo Online
|
||||
databases)
|
||||
- By :ref:`configuring a custom domain that you already own <domain-name/existing>`.
|
||||
|
||||
.. note::
|
||||
Odoo Online and Odoo.sh databases, including their websites, use by default a subdomain of
|
||||
``odoo.com`` for both the URL and the emails (e.g., ``https://example.odoo.com``).
|
||||
|
||||
.. important::
|
||||
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
|
||||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
However, you can use a custom domain name instead by :ref:`registering a free domain name
|
||||
<domain-name/register>` (only available for Odoo Online databases) or by :ref:`configuring a
|
||||
domain name you already own <domain-name/existing>`.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Register a Free Domain Name
|
||||
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
|
||||
- `Odoo Quick Tips: Get a free domain name! <https://www.youtube.com/watch?v=eAfgeNOHLP4>`_
|
||||
`Odoo Tutorials: Register a free domain name [video]
|
||||
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
|
||||
|
||||
.. _domain-name/about:
|
||||
|
||||
About domain names
|
||||
==================
|
||||
|
||||
Having a **good domain name** is as important to your branding as the name of your business or
|
||||
organization as it is the first thing your visitors will notice. We recommend you keep them *simple,
|
||||
short, easy to remember and spell*.
|
||||
|
||||
A **subdomain** is a domain that is a part of another domain. It often refers to the additional part
|
||||
that comes before the main domain name. Traditionally, most websites use the ``www.`` subdomain,
|
||||
but any string of letters can be used as well. You can use subdomains to direct your visitors to
|
||||
other websites than your main website or to specific pages (e.g., ``experience.odoo.com`` points to
|
||||
a specific page.)
|
||||
|
||||
All domain names are referenced in the **Domain Name System**, or **DNS**, which works as a giant
|
||||
directory for the Internet. There are many DNS servers, so any modification to the DNS can take up
|
||||
to 72 hours to propagate worldwide on all servers.
|
||||
|
||||
.. _domain-name/indexing:
|
||||
|
||||
Indexing of domain names by search engines
|
||||
------------------------------------------
|
||||
|
||||
Search engines, such as Google and Bing, rely on web crawlers (:dfn:`robots that explore and analyze
|
||||
the web`) to index all websites and their related domain names. These crawlers discover new URLs
|
||||
thanks to links on known web pages. As a result, search engines should index domain names
|
||||
automatically after a while, as long as their URLs are mentioned elsewhere on the Internet.
|
||||
|
||||
Improving the appearance and positioning of web pages on search engines is a practice named "Search
|
||||
Engine Optimization" (SEO).
|
||||
|
||||
.. tip::
|
||||
Adding relevant content, optimizing metadata, and building high-quality backlinks can all help
|
||||
improve a website's search engine visibility.
|
||||
|
||||
Some search engines provide tools for web admins, such as
|
||||
`Google Search Console <https://search.google.com/search-console>`_ and
|
||||
`Bing Webmaster Tools <https://www.bing.com/webmasters>`_, to help you analyze and improve your
|
||||
page ranking. To use these services, you must prove that you are the owner of your domain name. One
|
||||
way to verify the ownership of your domain name is by adding a DNS record. You can do this for
|
||||
:ref:`domain names registered with Odoo <domain-name/odoo-manage>` and for domain names managed by
|
||||
other providers.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/websites/website/pages/seo`
|
||||
- `Google Search Console Help - Verify your site ownership <https://support.google.com/webmasters/answer/9008080>`_
|
||||
- `Bing Webmaster Tools - Add and Verify site <https://www.bing.com/webmasters/help/add-and-verify-site-12184f8b>`_
|
||||
|
||||
.. _domain-name/odoo-register:
|
||||
.. _domain-name/register:
|
||||
|
||||
Register a free domain name with Odoo
|
||||
=====================================
|
||||
|
||||
You can register a domain name for your Odoo Online database directly from Odoo Website or your
|
||||
database manager.
|
||||
To register a one-year free domain name for your Odoo Online database, sign in to your account and
|
||||
go to the `database manager <https://www.odoo.com/my/databases>`_. Click the gear icon
|
||||
(:guilabel:`⚙️`) next to the database name and select :guilabel:`Domain Names`.
|
||||
|
||||
.. image:: domain_names/domain-names.png
|
||||
:alt: Accessing a database's domain names configuration
|
||||
|
||||
Search for the desired domain name and check its availability.
|
||||
|
||||
.. image:: domain_names/domain-search.png
|
||||
:alt: Searching for an available domain name
|
||||
|
||||
.. tip::
|
||||
Ensure the Website app is installed if the domain name registration option does not appear.
|
||||
|
||||
Select the desired domain name, fill in the :guilabel:`Domain Owner` form, and click
|
||||
:guilabel:`Register`. The chosen domain name is directly linked to the database, but you still need
|
||||
to :ref:`map your domain name to your Odoo website <domain-name/db-map>`.
|
||||
|
||||
.. image:: domain_names/domain-owner.png
|
||||
:alt: Filling in the domain owner information
|
||||
|
||||
.. important::
|
||||
- Your domain name is **free for one year** if you register it with Odoo!
|
||||
- The domain name is registered with `Gandi <https://www.gandi.net/>`_, the domain name
|
||||
registrar.
|
||||
- You are the owner of the domain name and can use it for other purposes.
|
||||
- Odoo manages payment and technical support for you.
|
||||
- This offer doesn't include any mailbox. However, you can :ref:`configure your MX records
|
||||
<domain-name/odoo-manage>` to use your own email server or solution such as Google Workspace.
|
||||
A verification email from `noreply@domainnameverification.net` will be sent to the email address
|
||||
provided in the :guilabel:`Domain Owner` form. It is essential to verify your email address to
|
||||
keep the domain active and receive the renewal quote before expiration.
|
||||
|
||||
To do so, go to :menuselection:`Website --> Domain Name`. Alternatively, open your `database manager
|
||||
<https://www.odoo.com/my/databases>`_, click on the :guilabel:`settings` button next to your
|
||||
database, then on :guilabel:`Domain names`.
|
||||
|
||||
.. image:: domain_names/register-menu.png
|
||||
:align: center
|
||||
:alt: Clicking on Domain Names from an Odoo website
|
||||
|
||||
Search for the domain name of your choice to check its availability, then select the one you want to
|
||||
register for your website.
|
||||
|
||||
.. image:: domain_names/register-search.png
|
||||
:align: center
|
||||
:alt: The search of the domain name example.com shows which associated domains are available.
|
||||
|
||||
Next, fill in the form with your information to become the domain name owner.
|
||||
|
||||
Your domain name is directly linked to your database, but you still have to :ref:`map your domain
|
||||
name with your website <domain-name/website-map>`.
|
||||
The domain name registration is free for the first year. After this period, Odoo will continue to
|
||||
manage the domain in partnership with **Gandi.net**, the domain name registrar, and you will be
|
||||
charged `Gandi.net's renewal rate <https://www.gandi.net/en/domain>`_. Odoo sends a renewal
|
||||
quotation every year to the email address mentioned in the :guilabel:`Domain Owner` form several
|
||||
weeks before the expiration date of the domain. The domain is renewed automatically when the
|
||||
quotation is confirmed.
|
||||
|
||||
.. note::
|
||||
- Free domain names are also available for free Odoo Online databases (if you installed one app
|
||||
only, for example). In this case, Odoo reviews your request and your website to avoid abuse.
|
||||
This process can take several days due to the success of the offer.
|
||||
- This is not available for Odoo.sh databases yet.
|
||||
- The offer is only available for **Odoo Online** databases.
|
||||
- The offer is limited to **one** domain name per client.
|
||||
- The offer is limited to the registration of a **new** domain name.
|
||||
- The offer is available to *One App Free* plans. Ensure that your website contains enough
|
||||
original content for Odoo to verify that your request is legitimate and respects `Odoo's
|
||||
Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_. Given the high number of
|
||||
requests, it can take Odoo several days to review them.
|
||||
|
||||
.. _domain-name/odoo-manage:
|
||||
.. _domain-name/register-dns:
|
||||
|
||||
Manage your domain name registered with Odoo
|
||||
--------------------------------------------
|
||||
DNS records
|
||||
-----------
|
||||
|
||||
To manage the DNS records of your domain name registered with Odoo or to visualize the contacts
|
||||
associated with it, open your `database manager <https://www.odoo.com/my/databases>`_, click on the
|
||||
:guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on
|
||||
:guilabel:`Contacts` or :guilabel:`DNS`.
|
||||
To manage your free domain name :abbr:`DNS (domain name system)` records, open the `database manager
|
||||
<https://www.odoo.com/my/databases>`_, click the gear icon (:guilabel:`⚙️`) next to the database
|
||||
name, select :guilabel:`Domain Names`, and click :guilabel:`DNS`.
|
||||
|
||||
.. image:: domain_names/manage.png
|
||||
:align: center
|
||||
:alt: Management of the domain names linked to an Odoo database
|
||||
- :guilabel:`A`: the A record holds the IP address of the domain. It is automatically created and
|
||||
**cannot** be edited or deleted.
|
||||
- :guilabel:`CNAME`: CNAME records forward one domain or subdomain to another domain. One is
|
||||
automatically created to map the `www.` subdomain to the database. If the database is renamed, the
|
||||
CNAME record **must** also be renamed.
|
||||
- :guilabel:`MX`: MX records instruct servers on where to deliver emails.
|
||||
- :guilabel:`TXT`: TXT records can be used for different purposes (e.g., to verify domain name
|
||||
ownership).
|
||||
|
||||
Any modification to the DNS records can take up to **72 hours** to propagate worldwide on all
|
||||
servers.
|
||||
|
||||
.. note::
|
||||
Please `submit a support ticket <https://www.odoo.com/help>`_ if you need further assistance to
|
||||
manage your domain name.
|
||||
`Submit a support ticket <https://www.odoo.com/help>`_ if you need assistance to manage your
|
||||
domain name.
|
||||
|
||||
Mailbox
|
||||
-------
|
||||
|
||||
The one-year free domain name offer does **not** include a mailbox. There are two options to link
|
||||
your domain name with a mailbox.
|
||||
|
||||
Use a subdomain
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
You can create a subdomain (e.g., `subdomain.yourdomain.com`) to use as an alias domain for the
|
||||
database. It allows users to create records in the database from emails received on their
|
||||
`email@subdomain.yourdomain.com` alias.
|
||||
|
||||
To do so, open the `database manager <https://www.odoo.com/my/databases>`_, click the gear icon
|
||||
(:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> DNS --> Add
|
||||
DNS record --> CNAME`. Next, enter the desired subdomain in the :guilabel:`Name` field (e.g.,
|
||||
`subdomain`), the original database domain with a period at the end (e.g., `mycompany.odoo.com.`) in
|
||||
the :guilabel:`Content` field, and click :guilabel:`Add record`.
|
||||
|
||||
Then, add the alias domain as your *own domain* by clicking :guilabel:`Use my own domain`, entering
|
||||
the alias domain (e.g., `subdomain.yourdomain.com`), clicking :guilabel:`Verify`, and then
|
||||
:guilabel:`I confirm, it's done`.
|
||||
|
||||
Finally, go to your database and open the :guilabel:`Settings`. Under the :guilabel:`Alias Domain`
|
||||
field, enter the alias domain (e.g., `subdomain.yourdomain.com`), click :guilabel:`Create`, and then
|
||||
:guilabel:`Save`.
|
||||
|
||||
Use an external email provider
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To use an external email provider, you should configure an MX record. To do so, open the `database
|
||||
manager <https://www.odoo.com/my/databases>`_, click the gear icon (:guilabel:`⚙️`) next to the
|
||||
database name, click :menuselection:`Domain Names --> DNS --> Add DNS record --> MX`. The values you
|
||||
should enter for the :guilabel:`Name`, :guilabel:`Content`, and :guilabel:`Priority` fields depend
|
||||
on the external email provider.
|
||||
|
||||
.. seealso::
|
||||
- `Google Workspace: MX record values <https://support.google.com/a/answer/174125?hl=en>`_
|
||||
- `Outlook and Exchange Online: Add an MX record for email <https://learn.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider?view=o365-worldwide#add-an-mx-record-for-email-outlook-exchange-online>`_
|
||||
|
||||
.. _domain-name/existing:
|
||||
|
||||
Configure your existing domain name
|
||||
===================================
|
||||
Configure an existing domain name
|
||||
=================================
|
||||
|
||||
If you already own a domain name, you can use it to point to your website.
|
||||
If you already have a domain name, you can use it for your Odoo website.
|
||||
|
||||
To avoid any issue with the :ref:`SSL certificate validation <domain-name/ssl>`, we highly recommend
|
||||
that you proceed with the following actions in this order:
|
||||
.. warning::
|
||||
It is strongly recommended to follow **in order** these three steps to avoid any :ref:`SSL
|
||||
certificate validation <domain-name/ssl>` issues:
|
||||
|
||||
#. :ref:`Add a CNAME record <domain-name/cname>` on your domain name's DNS zone.
|
||||
#. :ref:`Map your domain name with your Odoo database <domain-name/db-map>`.
|
||||
#. :ref:`Map your domain name with your Odoo website <domain-name/website-map>`.
|
||||
#. :ref:`Add a CNAME record <domain-name/cname>`
|
||||
#. :ref:`Map your domain name to your Odoo database <domain-name/db-map>`
|
||||
#. :ref:`Map your domain name to your Odoo website <domain-name/website-map>`
|
||||
|
||||
.. _domain-name/cname:
|
||||
|
||||
Add a CNAME record
|
||||
------------------
|
||||
|
||||
A **CNAME record** is a type of DNS record that points to the domain of another website rather than
|
||||
directly to an IP address.
|
||||
|
||||
You need a CNAME record that points to your Odoo database. The requirements are detailed in your
|
||||
database manager.
|
||||
Creating a CNAME record to forward your domain name to the address of your Odoo database is
|
||||
required.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
The target address is the current address of your database, as defined at its creation (e.g.,
|
||||
``example.odoo.com``)
|
||||
The CNAME record's target address should be your database's address as defined at its creation
|
||||
(e.g., `mycompany.odoo.com`).
|
||||
|
||||
.. group-tab:: Odoo.sh
|
||||
|
||||
Your project's main address is defined in :menuselection:`Settings --> Project Name`.
|
||||
The CNAME record's target address can be the project's main address, which can be found on
|
||||
Odoo.sh by going to :menuselection:`Settings --> Project Name`, or a specific branch
|
||||
(production, staging or development) by going to :menuselection:`Branches --> select the
|
||||
branch --> Settings --> Custom domains`, and clicking :guilabel:`How to set up my domain?`. A
|
||||
message indicates which address your CNAME record should target.
|
||||
|
||||
If you want to target a specific branch (production, staging or development), go to
|
||||
:menuselection:`Branches --> select your branch --> Settings --> Custom domains`, and click on
|
||||
:guilabel:`How to set up my domain?`. A message indicates which address your CNAME record
|
||||
should target.
|
||||
The specific instructions depend on your DNS hosting service.
|
||||
|
||||
#. Open your domain name's manager dashboard.
|
||||
#. Open the **DNS zone** management page for the domain name you want to configure.
|
||||
#. Create a **CNAME record** pointing to the address of your database.
|
||||
.. seealso::
|
||||
- `GoDaddy: Add a CNAME record <https://www.godaddy.com/help/add-a-cname-record-19236>`_
|
||||
- `Namecheap: How to create a CNAME record for your domain <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain>`_
|
||||
- `OVHcloud: Add a new DNS record <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/#add-a-new-dns-record>`_
|
||||
- `Cloudflare: Manage DNS records
|
||||
<https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
|
||||
|
||||
While Odoo suggests creating a CNAME record for your ``www.`` subdomain (``www.example.com``), you
|
||||
can of course use any domain name of your choice, with any subdomain (e.g.,
|
||||
``anything.example.com``).
|
||||
Creating a CNAME record to map the `www` subdomain (`www.yourdomain.com`) as some visitors are used
|
||||
to typing `www.` before entering a domain name.
|
||||
|
||||
.. example::
|
||||
You own the domain name ``example.com``, and you have an Odoo Online database at the address
|
||||
``example.odoo.com``. You want to access your Odoo database primarily with the domain
|
||||
``www.example.com`` but also with the :ref:`naked domain <domain-name/naked-domain>`
|
||||
``example.com``.
|
||||
You own the domain name `yourdomain.com`, and your Odoo Online database's address is
|
||||
`mycompany.odoo.com`. You want to access your Odoo database primarily with the domain
|
||||
`www.yourdomain.com` but also with the naked domain :dfn:`(a domain name without any subdomains
|
||||
or prefixes)` `yourdomain.com`.
|
||||
|
||||
To do so, you create a CNAME record for the ``www`` subdomain, with ``example.odoo.com`` as the
|
||||
target. The DNS zone manager generates the following rule and adds it to your DNS zone: ``www IN
|
||||
CNAME example.odoo.com.``
|
||||
|
||||
You also create a redirection from ``example.com`` to ``wwww.example.com``.
|
||||
|
||||
Your new DNS records are propagated to all DNS servers.
|
||||
|
||||
.. note::
|
||||
Here are some specific guidelines to create a CNAME record:
|
||||
|
||||
- `GoDaddy <https://www.godaddy.com/help/add-a-cname-record-19236>`_
|
||||
- `Namecheap <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain>`_
|
||||
- `OVH <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/#add-a-new-dns-record>`_
|
||||
- `CloudFlare <https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
|
||||
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
|
||||
|
||||
.. _domain-name/naked-domain:
|
||||
|
||||
Naked domain
|
||||
~~~~~~~~~~~~
|
||||
|
||||
A **naked domain** is a domain name that doesn't have any subdomain at the beginning of the address
|
||||
(e.g., ``odoo.com`` instead of ``www.odoo.com``).
|
||||
|
||||
You may want your naked domain to redirect to your website as some visitors may not type the full
|
||||
domain name to access your website.
|
||||
|
||||
#. Open your domain name's manager dashboard.
|
||||
#. Create a **redirection** from the naked domain (``example.com``) to your main domain name
|
||||
(``www.example.com``).
|
||||
|
||||
.. note::
|
||||
Depending on your domain name registrar, this redirection may be already pre-configured.
|
||||
To do so, create a CNAME record for the `www` subdomain, with `mycompany.odoo.com` as the
|
||||
target. Next, create a redirect (301 permanent or visible redirect) to redirect visitors from
|
||||
`yourdomain.com` to `wwww.yourdomain.com`.
|
||||
|
||||
.. _domain-name/db-map:
|
||||
|
||||
Map your domain name with your Odoo database
|
||||
--------------------------------------------
|
||||
Map a domain name to an Odoo database
|
||||
-------------------------------------
|
||||
|
||||
.. warning::
|
||||
Ensure you have :ref:`added a CNAME record <domain-name/cname>` to your domain name's DNS
|
||||
**before** mapping your domain name to your Odoo database.
|
||||
|
||||
Failing to do so may prevent the validation of the :ref:`SSL certificate <domain-name/ssl>` and
|
||||
could result in a *certificate name mismatch* error. Web browsers often display this as a
|
||||
warning, such as *"Your connection is not private"*.
|
||||
|
||||
If you encounter this error after mapping the domain name to your database, wait up to five
|
||||
days, as the validation may still happen. If not, you can `submit a support ticket
|
||||
<https://www.odoo.com/help>`_, including screenshots of your CNAME records.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
Open your `database manager <https://www.odoo.com/my/databases>`_, click on the
|
||||
:guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on
|
||||
:guilabel:`Use my own domain` at the bottom of the right column.
|
||||
Open the `database manager <https://www.odoo.com/my/databases>`_, click the gear icon
|
||||
(:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> Use my
|
||||
own domain`. Then, enter the domain name (e.g., `yourdomain.com`), click :guilabel:`Verify`
|
||||
and :guilabel:`I confirm, it's done`.
|
||||
|
||||
Type the domain name you want to add to this database, then click on :guilabel:`Verify` to
|
||||
check if the CNAME record is correctly configured. Once done, click on :guilabel:`I confirm,
|
||||
it's done`.
|
||||
|
||||
.. image:: domain_names/online-map.png
|
||||
:align: center
|
||||
:alt: Verification of the CNAME records of a domain name before mapping it with a database
|
||||
.. image:: domain_names/map-database-online.png
|
||||
:alt: Mapping a domain name to an Odoo Online database
|
||||
|
||||
.. group-tab:: Odoo.sh
|
||||
|
||||
Go to :menuselection:`Branches --> select your branch --> Settings --> Custom domains`, type
|
||||
the domain name you want to add to this database, then click on :guilabel:`Add domain`.
|
||||
On Odoo.sh, go to :menuselection:`Branches --> select your branch --> Settings --> Custom
|
||||
domains`, type the domain name to add, then click :guilabel:`Add domain`.
|
||||
|
||||
.. image:: domain_names/odoo-sh-map.png
|
||||
:align: center
|
||||
:alt: Mapping a domain name with an Odoo.sh branch
|
||||
.. image:: domain_names/map-database-sh.png
|
||||
:alt: Mapping a domain name to an Odoo.sh branch
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Odoo.sh branches: settings tab <odoosh-gettingstarted-branches-tabs-settings>`
|
||||
|
||||
.. warning::
|
||||
Make sure to :ref:`add a CNAME record <domain-name/cname>` to your domain name's DNS **before**
|
||||
mapping your domain name with your Odoo database.
|
||||
|
||||
Failing to do so may impede the validation of the :ref:`SSL certificate <domain-name/ssl>` and
|
||||
would result in a *certificate name mismatch* error. This is often displayed by web browsers as a
|
||||
warning such as *"Your connection is not private"*.
|
||||
|
||||
If this is the case and you have added the domain name to your database's settings less than five
|
||||
days ago, wait 24 hours as the validation may still happen. Otherwise, please `submit a support
|
||||
ticket <https://www.odoo.com/help>`_ including screenshots of your CNAME records.
|
||||
:ref:`Odoo.sh branches: settings tab <odoosh-gettingstarted-branches-tabs-settings>`
|
||||
|
||||
.. _domain-name/ssl:
|
||||
|
||||
SSL encryption (HTTPS protocol)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**SSL encryption** is an encryption-based Internet security protocol. It allows your visitors to
|
||||
navigate your website through a secure connection, which appears as an ``https://`` protocol at the
|
||||
beginning of your web address, rather than a non-secure ``http://`` protocol.
|
||||
**SSL encryption** allows visitors to navigate a website through a secure connection, which appears
|
||||
as the *https://* protocol at the beginning of a web address rather than the non-secure *http://*
|
||||
protocol.
|
||||
|
||||
Odoo generates a separate SSL certificate for each domain :ref:`mapped in the database manager
|
||||
<domain-name/db-map>`, using integration with `Let's Encrypt Certificate Authority and ACME protocol
|
||||
Odoo generates a separate SSL certificate for each domain :ref:`mapped to a database
|
||||
<domain-name/db-map>` using `Let's Encrypt's certificate authority and ACME protocol
|
||||
<https://letsencrypt.org/how-it-works/>`_.
|
||||
|
||||
.. note::
|
||||
- The certificate generation may take up to 24h.
|
||||
- Several attempts to validate your certificate are made during the five days following the
|
||||
moment you add your domain name in your database's settings.
|
||||
- If you already use another service, you can keep using it or simply change for Odoo.
|
||||
- Certificate generation may take up to 24 hours.
|
||||
- Several attempts to validate your certificate are made for five days after you map your domain
|
||||
name to your database.
|
||||
- If you use another service, you can keep using it or change to Odoo's.
|
||||
|
||||
.. important::
|
||||
No SSL certificate is generated for naked domains :dfn:`(domain names without any subdomains
|
||||
or prefixes)`.
|
||||
|
||||
.. _domain-name/web-base-url:
|
||||
|
||||
@@ -296,71 +258,57 @@ Web base URL of a database
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. note::
|
||||
If you have Odoo Website, you can disregard this part and directly :ref:`map your domain name
|
||||
with your website <domain-name/website-map>`.
|
||||
If the Website app is installed on your database, skip this section and continue from the
|
||||
:ref:`Map a domain name to a website <domain-name/website-map>` section.
|
||||
|
||||
The **web base URL** of a database, or **root URL** affects your main website address and all the
|
||||
The *web base URL* or root URL of a database affects your main website address and all the
|
||||
links sent to your customers (e.g., quotations, portal links, etc.).
|
||||
|
||||
To configure it, access your Odoo database with your custom address, then log in as an administrator
|
||||
of your database (any user in the *Settings* group) from the login screen.
|
||||
To make your custom domain name the *web base URL* of your database, access your database using your
|
||||
custom domain name and log in as an administrator :dfn:`(a user part of the Settings access right
|
||||
group under Administration)`.
|
||||
|
||||
.. warning::
|
||||
Connecting to your database with the original Odoo subdomain address (e.g., ``example.odoo.com``
|
||||
also updates the web base URL of your database. See below to prevent these automatic updates.
|
||||
|
||||
Alternatively, you can do it manually. To do so, activate the :ref:`developer mode
|
||||
<developer-mode>`, then go to :menuselection:`Settings --> Technical --> System Parameters`.
|
||||
|
||||
Find the key called ``web.base.url`` (or create it if it does not exist) and enter the full address
|
||||
of your website as value, such as ``https://www.example.com``.
|
||||
If you access your database with the original Odoo address (e.g., `mycompany.odoo.com`), the *web
|
||||
base URL* of your database will be updated accordingly. To prevent the automatic update of the
|
||||
*web base URL* when an administrator logs in to the database, activate the :ref:`developer mode
|
||||
<developer-mode>`, go to :menuselection:`Settings --> Technical --> System Parameters --> New`,
|
||||
and enter `web.base.url.freeze` as the :guilabel:`Key` and `True` as the :guilabel:`Value`.
|
||||
|
||||
.. note::
|
||||
The URL must include the protocol ``https://`` (or ``http://``) and must not end with a slash
|
||||
(``/``).
|
||||
|
||||
To prevent the automatic update of the web base URL when an administrator logs in the database, you
|
||||
can create the following System Parameter:
|
||||
|
||||
- key: ``web.base.url.freeze``
|
||||
- value: ``True``
|
||||
You can also set the web base URL manually. To do so, activate the :ref:`developer mode
|
||||
<developer-mode>`, go to :menuselection:`Settings --> Technical --> System Parameters`, and
|
||||
search for the `web.base.url` key (create it if necessary) and enter the full address of your
|
||||
website as the value (e.g., `https://www.yourdomain.com`). The URL must include the protocol
|
||||
`https://` (or `http://`) and *not* end with a slash (`/`).
|
||||
|
||||
.. _domain-name/website-map:
|
||||
|
||||
Map your domain name with your website
|
||||
======================================
|
||||
Map a domain name to an Odoo website
|
||||
------------------------------------
|
||||
|
||||
Mapping your domain name to your website isn't the same as mapping it with your database:
|
||||
Mapping your domain name to your website is different than mapping it to your database:
|
||||
|
||||
- It defines your domain name as the main one for your website, helping search engines to index your
|
||||
website properly.
|
||||
- It defines your domain name as the base URL for your database, including the portal links sent by
|
||||
website correctly.
|
||||
- It defines your domain name as the base URL for your database, including portal links sent by
|
||||
email to your customers.
|
||||
- If you have multiple websites, it maps your domain name with the appropriate website.
|
||||
- If you have multiple websites, it maps your domain name to the appropriate website.
|
||||
|
||||
Go to :menuselection:`Website --> Configuration --> Settings --> Website Info`. If you have multiple
|
||||
websites, select the one you want to configure.
|
||||
|
||||
In the :guilabel:`Domain` field, fill in the web address of your website (e.g.,
|
||||
``https://www.example.com``) and click on :guilabel:`Save`.
|
||||
|
||||
.. image:: domain_names/website-settings.png
|
||||
:align: center
|
||||
:alt: Configuring https://www.example.com as the Domain of the website
|
||||
Go to :menuselection:`Website --> Configuration --> Settings`. If you have multiple websites, select
|
||||
the one you want to configure. In the :guilabel:`Domain` field, enter the address of your website
|
||||
(e.g., `https://www.yourdomain.com`) and :guilabel:`Save`.
|
||||
|
||||
.. warning::
|
||||
Mapping your domain name with your Odoo website prevents Google from indexing both your custom
|
||||
domain name ``www.example.com`` and your original odoo database address ``example.odoo.com``.
|
||||
Mapping your domain name to your Odoo website prevents Google Search from indexing your original
|
||||
database address (e.g., `mycompany.odoo.com`).
|
||||
|
||||
If both addresses are already indexed, it may take some time before Google removes the indexation
|
||||
of the second address. You may also try using the `Google Search Console
|
||||
<https://search.google.com/search-console>`_ to fix this.
|
||||
If both addresses are already indexed, it may take some time before the indexation of the second
|
||||
address is removed from Google Search. You can use the `Google Search Console
|
||||
<https://search.google.com/search-console/welcome>`_ to fix the issue.
|
||||
|
||||
.. note::
|
||||
If you have multiple websites and companies on your database, make sure that you select the
|
||||
right :guilabel:`Company` in the website settings, next to the :guilabel:`Domain` settings. Doing
|
||||
so indicates Odoo which URL to use as the :ref:`base URL <domain-name/web-base-url>` according to
|
||||
If you have multiple websites and companies on your database, make sure to select the right
|
||||
:guilabel:`Company` under :menuselection:`Website --> Configuration --> Settings`. Doing so
|
||||
indicates Odoo which URL to use as the :ref:`base URL <domain-name/web-base-url>` according to
|
||||
the company in use.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/general/email_communication/email_servers`
|
||||
|
||||
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
@@ -0,0 +1,35 @@
|
||||
====================
|
||||
Neutralized database
|
||||
====================
|
||||
|
||||
A neutralized database is a non-production database on which several parameters are deactivated.
|
||||
This enables one to carry out tests without the risk of launching specific automated processes that
|
||||
could impact production data (e.g., sending emails to customers). Live access is removed and
|
||||
turned into a testing environment.
|
||||
|
||||
.. note::
|
||||
**Any testing database created is a neutralized database:**
|
||||
|
||||
- testing backup databases
|
||||
- duplicate databases
|
||||
- for Odoo.sh: staging and development databases
|
||||
|
||||
.. important::
|
||||
A database can also be neutralized when upgrading, as it is vital to do some tests before
|
||||
switching to a new version.
|
||||
|
||||
Deactivated features
|
||||
====================
|
||||
|
||||
Here is a non-exhaustive list of the deactivated parameters:
|
||||
|
||||
- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)
|
||||
- outgoing emails
|
||||
- bank synchronization
|
||||
- payment providers
|
||||
- delivery methods
|
||||
- :abbr:`IAP (In-App Purchase)` tokens
|
||||
|
||||
.. note::
|
||||
**A red banner at the top of the screen is displayed on the neutralized database so that it can
|
||||
be seen immediately.**
|
||||
@@ -72,7 +72,7 @@ Domain names
|
||||
Use a custom :doc:`domain name <domain_names>` to access the database via another URL.
|
||||
|
||||
.. tip::
|
||||
You can :ref:`register a domain name for free <domain-name/odoo-register>`.
|
||||
You can :ref:`register a domain name for free <domain-name/register>`.
|
||||
|
||||
.. _odoo_online/tags:
|
||||
|
||||
|
||||
@@ -31,12 +31,18 @@ This matrix shows the support status of every version.
|
||||
- On-Premise
|
||||
- Release date
|
||||
- End of support
|
||||
* - Odoo saas~17.1
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- January 2024
|
||||
-
|
||||
* - **Odoo 17.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- November 2023
|
||||
- November 2026 (planned)
|
||||
- October 2026 (planned)
|
||||
* - Odoo saas~16.4
|
||||
- |green|
|
||||
- N/A
|
||||
|
||||
@@ -53,7 +53,7 @@ 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_models_button>` are also available in the resulting entry section.
|
||||
buttons <reconciliation/button>` are also available in the resulting entry section.
|
||||
|
||||
Reconcile transactions
|
||||
======================
|
||||
@@ -62,13 +62,13 @@ Transactions can be matched automatically with the use of :doc:`reconciliation m
|
||||
<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_models_button>`.
|
||||
<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_models_button>`.
|
||||
: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
|
||||
@@ -90,8 +90,8 @@ Match existing entries
|
||||
----------------------
|
||||
|
||||
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
|
||||
models. The entry order is based on :ref:`reconciliation models <reconciliation_models_suggestion>`,
|
||||
with suggested entries appearing first.
|
||||
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
|
||||
@@ -130,10 +130,11 @@ of the relevant optional fields.
|
||||
.. 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 :ref:`reconciliation model button <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.
|
||||
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,129 +1,123 @@
|
||||
=====================
|
||||
Reconciliation Models
|
||||
Reconciliation models
|
||||
=====================
|
||||
|
||||
Once the bank statements are correctly imported, it is essential to *reconcile* the records properly
|
||||
and ensure all *Journal Entries* are balanced and in agreement. To ease and speed up the
|
||||
reconciliation process, you can configure **Reconciliation Models**, which are particularly useful
|
||||
with recurrent entries such as bank fees.
|
||||
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>`.
|
||||
|
||||
.. todo:: Add a link to the Reconciliation process in the paragraph above, once the doc will have
|
||||
been updated.
|
||||
|
||||
.. note::
|
||||
Reconciliation Models are also useful to handle *Cash Discounts*. Please refer to
|
||||
:doc:`this documentation <../customer_invoices/cash_discounts>` for more
|
||||
information.
|
||||
|
||||
.. _reconciliation_models_types:
|
||||
|
||||
Types of Reconciliation Models
|
||||
==============================
|
||||
|
||||
There are three types of Reconciliation Models:
|
||||
|
||||
#. :ref:`Write-off Button <reconciliation_models_button>`
|
||||
#. :ref:`Suggestion of counterpart values <reconciliation_models_suggestion>`
|
||||
#. :ref:`Match existing invoices/bills <reconciliation_models_match>`
|
||||
|
||||
.. _reconciliation_models_button:
|
||||
|
||||
Manually create a write-off on clicked button
|
||||
---------------------------------------------
|
||||
|
||||
When you are reconciling an entry with an *Open Balance*, you can use the buttons available under
|
||||
the *Manual Operations* tab to pre-fill all the values automatically, before validating the
|
||||
reconciliation. Each button is a different Reconciliation Model.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_button.png
|
||||
:align: center
|
||||
:alt: Example of a Reconciliation Model with a write-off button in Odoo Accounting
|
||||
|
||||
.. _reconciliation_models_suggestion:
|
||||
|
||||
Suggest counterpart values
|
||||
--------------------------
|
||||
|
||||
This type of Reconciliation Model suggests immediately counterpart values that only need to be
|
||||
validated. This automation is based on a set of rules defined in the reconciliation model.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_suggestion.png
|
||||
:align: center
|
||||
:alt: Example of a Reconciliation Model that suggests counterpart values in Odoo Accounting
|
||||
|
||||
.. _reconciliation_models_match:
|
||||
|
||||
Match existing invoices/bills
|
||||
-----------------------------
|
||||
|
||||
This type of Reconciliation Model automatically selects the right Customer Invoice or Vendor Bill
|
||||
that matches the payment. All that is left to do is to validate the entry. This automation is based
|
||||
on a set of rules defined in the reconciliation model.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_match.png
|
||||
:align: center
|
||||
:alt: Example of a Reconciliation Model that matches existing invoices and bills automatically
|
||||
in Odoo Accounting
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To manage or create new **Reconciliation Models**, go to :menuselection:`Accounting -->
|
||||
Reconciliation --> Reconciliation Models`. Alternatively, you can also open this menu from the
|
||||
Accounting Overview, by going to your Bank Journal card, clicking on the three little dots, and then
|
||||
on *Reconciliation Models*.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_overview.png
|
||||
:align: center
|
||||
:alt: Open the Reconciliation Model menu from the overview dashboard in Odoo Accounting
|
||||
|
||||
.. important::
|
||||
The first entry, named *Invoices Matching Rule*, is the one responsible for the current matching
|
||||
of invoices and bills. Therefore, it is advised to leave it at the top of the list and not to
|
||||
delete it.
|
||||
|
||||
Open the model you want to modify, or click on *Create* to create a new one, then fill out the form.
|
||||
|
||||
Type
|
||||
----
|
||||
|
||||
See :ref:`above <reconciliation_models_types>` for an explanation about the different types of
|
||||
Reconciliation Models.
|
||||
|
||||
.. note::
|
||||
If the *Documents* application is installed on your database, an additional **Activity type**
|
||||
field appears when *To check* is ticked. Selecting the value *Reconciliation request* implies
|
||||
that, whenever you use this model, a *Request Document* window pops up to request a document from
|
||||
a user.
|
||||
|
||||
Conditions on Bank Statement Line
|
||||
---------------------------------
|
||||
|
||||
Define here all the conditions that are required for a Reconciliation Model to be applied.
|
||||
|
||||
.. important::
|
||||
If a record matches with several Reconciliation Models, the first one in the *sequence* of models
|
||||
will be applied. The sequence is simply the order of the models in the *list view*. They can be
|
||||
rearranged by dragging-and-dropping the handle next to the name.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_conditions.png
|
||||
:align: center
|
||||
:alt: Conditions for the Reconciliation Model to be applied in Odoo Accounting
|
||||
|
||||
Counterpart Values
|
||||
------------------
|
||||
|
||||
This section comprises the values that are applied by the Reconciliation Model.
|
||||
|
||||
If the value to reconcile needs to be written-off in two separate accounts, click on *Add a second
|
||||
line*.
|
||||
|
||||
.. image:: reconciliation_models/reconciliation_models_counterparts.png
|
||||
:align: center
|
||||
:alt: Counterparts values of a Reconciliation Model in Odoo Accounting
|
||||
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction
|
||||
conditions`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
- :doc:`reconciliation`
|
||||
- :doc:`bank_synchronization`
|
||||
- :doc:`../customer_invoices/cash_discounts`
|
||||
- `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
|
||||
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -64,9 +64,10 @@ If the :guilabel:`Generate Entries` field in the **Settings** is set to :guilabe
|
||||
validation`, Odoo automatically generates the deferral entries when the invoice is validated. Click
|
||||
the :guilabel:`Deferred Entries` smart button to see them.
|
||||
|
||||
One entry, dated on the same day as the invoice, 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.
|
||||
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.
|
||||
|
||||
.. example::
|
||||
You can defer a January invoice of $1200 over 12 months by specifying a start date of 01/01/2023
|
||||
|
||||
@@ -124,8 +124,14 @@ If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module
|
||||
Registration
|
||||
------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`, tick the :guilabel:`Use PEPPOL
|
||||
Invoicing` checkbox, and fill in the following information:
|
||||
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**.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-install.png
|
||||
:alt: Peppol module installation
|
||||
|
||||
Fill in the following information:
|
||||
|
||||
- :guilabel:`Peppol EAS`. This is the Peppol Electronic Address Scheme and usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
@@ -145,14 +151,21 @@ previous provider.
|
||||
.. image:: electronic_invoicing/peppol-settings.png
|
||||
:alt: Configuration for peppol
|
||||
|
||||
Finally, click on :guilabel:`Validate registration`.
|
||||
Finally, click :guilabel:`Validate registration`. If you want to explore or demo Peppol, you can
|
||||
choose to register in :guilabel:`Demo` mode. Otherwise, select :guilabel:`Live`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-demo-mode.png
|
||||
:alt: Peppol demo mode selection
|
||||
|
||||
.. note::
|
||||
When testing Peppol, the system parameter `account_peppol.edi.mode` can be changed to `test`.
|
||||
Then, the registration occurs on the test server.
|
||||
Then, a radio button appears with the option to register on the test server.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode
|
||||
:alt: Peppol test mode parameter
|
||||
|
||||
.. image:: electronic_invoicing/peppol-test-mode-settings.png
|
||||
:alt: Peppol test mode selection
|
||||
|
||||
Now, you can request a verification code to be sent to you by clicking :guilabel:`Verify phone
|
||||
number`.
|
||||
@@ -205,6 +218,10 @@ is set to Valid.
|
||||
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`.
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
@@ -216,6 +233,13 @@ invoice form. To queue multiple invoices, select them in the list view and click
|
||||
.. 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.
|
||||
@@ -228,6 +252,13 @@ Point.
|
||||
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
|
||||
--------------------
|
||||
|
||||
@@ -237,3 +268,10 @@ 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
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
@@ -2,146 +2,72 @@
|
||||
Internal transfers
|
||||
==================
|
||||
|
||||
In Odoo, internal money transfers can be made in a few clicks. You need at least either two bank
|
||||
accounts, two cash journals, or one bank account and one cash journal.
|
||||
Internal money transfers can be handled in Odoo. At least two bank accounts are needed to make
|
||||
internal transfers.
|
||||
|
||||
.. seealso::
|
||||
:doc:`How to add an additional bank account <../bank>`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
An internal transfer account is automatically created on your database based on your company's
|
||||
localization and depending on your country’s legislation. If needed, the default :guilabel:`Internal
|
||||
transfer account` can be modified by going to :menuselection:`Accounting app --> Configuration -->
|
||||
Settings` and then under the :guilabel:`Default Accounts` section.
|
||||
|
||||
.. note::
|
||||
At least two bank accounts are needed to make internal transfers. Refer to
|
||||
:doc:`Bank and cash accounts section <../bank>` to see how to add an additional bank
|
||||
account to your database.
|
||||
localization 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
|
||||
======================================================
|
||||
|
||||
Let's say you have two bank accounts registered on your database and you want to transfer 1,000 USD
|
||||
from Bank A to Bank B.
|
||||
If you want to transfer money from one bank to another, access the Accounting Dashboard, click the
|
||||
drop-down selection button (:guilabel:`⋮`) on the bank from which you want to make the transfer,
|
||||
then click :guilabel:`Payments`. Select or create a payment, tick the :guilabel:`Internal Transfer`
|
||||
checkbox, and select a :guilabel:`Destination Journal` before you :guilabel:`Confirm` the internal
|
||||
transfer.
|
||||
|
||||
Log an internal transfer
|
||||
------------------------
|
||||
The money is now booked in the transfer account and another payment is automatically created in the
|
||||
destination journal.
|
||||
|
||||
From the Accounting Dashboard, click on the drop-down selection button (:guilabel:`⋮`) on one of
|
||||
your banks. In the :guilabel:`New` column click on :guilabel:`Internal Transfer` and enter the
|
||||
information related to the transfer.
|
||||
.. example::
|
||||
|
||||
.. image:: internal_transfers/internal_transfer.png
|
||||
:align: center
|
||||
:alt: Fill in the information related to your internal transfer
|
||||
- Bank journal (Bank A)
|
||||
|
||||
.. note::
|
||||
Fill in the :guilabel:`Memo` field for automatic reconciliation.
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
:guilabel:`Save` and :guilabel:`Confirm` to register your internal transfer. The money is now booked
|
||||
in the transfer account and another payment is **automatically** created in the destination journal
|
||||
(Bank B).
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Payments account
|
||||
-
|
||||
- $1,000
|
||||
* - **Internal transfer account**
|
||||
- **$1,000**
|
||||
-
|
||||
|
||||
Bank journal (Bank A)
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
- Bank journal (Bank B)
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Payments account
|
||||
-
|
||||
- $1,000
|
||||
* - **Internal transfer account**
|
||||
- **$1,000**
|
||||
-
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
Automated booking - Bank journal (BANK B)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Receipts account
|
||||
- $1,000
|
||||
-
|
||||
* - **Internal transfer account**
|
||||
-
|
||||
- **$1,000**
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
There is **one outstanding payment** and **one outstanding receipt** pending in your two bank
|
||||
account journals because the bank statement confirming the sending and receiving of the money
|
||||
has not been booked yet.
|
||||
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Receipts account
|
||||
- $1,000
|
||||
-
|
||||
* - **Internal transfer account**
|
||||
-
|
||||
- **$1,000**
|
||||
|
||||
.. note::
|
||||
There are one outstanding payment and one outstanding receipt pending in your two bank account
|
||||
journals, because the bank statement confirming the sending and receiving of the money has not
|
||||
been booked yet.
|
||||
|
||||
.. image:: internal_transfers/outstanding-payments-receipts.png
|
||||
:align: center
|
||||
:alt: Outstanding Payments/Receipts pending bank statement booking
|
||||
|
||||
.. _interbank/import-and-reconcile:
|
||||
|
||||
Manage and reconcile bank statements
|
||||
------------------------------------
|
||||
|
||||
The next step is to book the bank statements to finalize the transaction by creating,
|
||||
:doc:`importing <../bank/transactions>`, or :doc:`synchronizing <../bank/bank_synchronization>` your
|
||||
:guilabel:`Transactions lines`. Fill in the :guilabel:`Ending balance` and click on the
|
||||
:guilabel:`Reconcile` button.
|
||||
|
||||
.. image:: internal_transfers/transactions-line.png
|
||||
:align: center
|
||||
:alt: Transaction lines to be filled in prior to reconciliation
|
||||
Once this is done, you can book and reconcile your bank statement lines as usual.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../bank/reconciliation`
|
||||
|
||||
In the next window, choose counterparts for the payment - in this example, the outstanding payment
|
||||
account - then click :guilabel:`Validate`.
|
||||
|
||||
.. image:: internal_transfers/bank-reconciliation.png
|
||||
:align: center
|
||||
:alt: Reconcile your payment
|
||||
|
||||
Bank journal entry
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Payment
|
||||
- $1,000
|
||||
-
|
||||
* - Bank Account (BANK A)
|
||||
-
|
||||
- **$1,000**
|
||||
|
||||
The same steps must be repeated once you receive the bank statement related to Bank B. Book and
|
||||
reconcile your bank statement lines.
|
||||
|
||||
Bank journal entry
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - **Account**
|
||||
- **Debit**
|
||||
- **Credit**
|
||||
* - Outstanding Receipt
|
||||
-
|
||||
- $1,000
|
||||
* - Bank Account (BANK B)
|
||||
- **$1,000**
|
||||
-
|
||||
|
||||
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 26 KiB |
@@ -20,11 +20,11 @@ method, making the payment process much easier.
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Make sure your :ref:`Payment Providers are correctly configured <payment_providers/configuration>`.
|
||||
Make sure your :doc:`payment providers are correctly configured <../../payment_providers>`.
|
||||
|
||||
.. note::
|
||||
By default, ":doc:`Wire Transfer </applications/finance/payment_providers/wire_transfer>`" is the only
|
||||
Payment Provider activated, but you still have to fill out the payment details.
|
||||
By default, ":doc:`Wire Transfer </applications/finance/payment_providers/wire_transfer>`" is the
|
||||
only payment provider activated, but you still have to fill out the payment details.
|
||||
|
||||
To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
|
||||
Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*.
|
||||
|
||||
@@ -64,9 +64,10 @@ If the :guilabel:`Generate Entries` field is set to :guilabel:`On invoice/bill v
|
||||
automatically generates the deferral entries when the bill is validated. Click on the
|
||||
:guilabel:`Deferred Entries` smart button to see them.
|
||||
|
||||
One entry, dated on the same day as the bill, moves the bill amounts from the expense account to
|
||||
the deferred account. The other entries are deferral entries which will, month after month, move the
|
||||
bill amounts from the deferred account to the expense account to recognize the expense.
|
||||
One entry, dated on the same day as the bill's accounting date, moves the bill amounts from the
|
||||
expense account to the deferred account. The other entries are deferral entries which will, month
|
||||
after month, move the bill amounts from the deferred account to the expense account to recognize
|
||||
the expense.
|
||||
|
||||
.. example::
|
||||
You can defer a January bill of $1200 over 12 months by specifying a start date of 01/01/2023
|
||||
|
||||
@@ -124,7 +124,7 @@ Categories`. Some categories already exist by default but do not have any rates.
|
||||
This makes the vehicle mandatory while booking a vendor bill.
|
||||
|
||||
To link a disallowed expenses category with a specific account, go to :menuselection:`Accounting -->
|
||||
Configuration --> Acounting: Chart of Accounts`. Find the account you want, and click on
|
||||
Configuration --> Accounting: Chart of Accounts`. Find the account you want, and click on
|
||||
:guilabel:`Setup`. Add the :guilabel:`Disallowed Expense category` in the :guilabel:`Disallowed
|
||||
Expenses` field. From now, when an expense is created with this account, the disallowed expense is
|
||||
calculated based on the rate mentioned in the :guilabel:`Disallowed Expense category`.
|
||||
@@ -234,14 +234,171 @@ SODA
|
||||
files can be imported into the journal you use to record salaries by going to your Accounting
|
||||
**dashboard** and clicking :guilabel:`Upload` in the related journal card form.
|
||||
|
||||
Once your **SODA** files are imported, the entries are created automatically in your 'salary'
|
||||
journal.
|
||||
Once your **SODA** files are imported, the entries are created automatically in your salary journal.
|
||||
|
||||
.. image:: belgium/soda-import.png
|
||||
:alt: Import SODA files
|
||||
|
||||
.. _belgium/einvoicing:
|
||||
|
||||
CodaBox
|
||||
-------
|
||||
|
||||
**CodaBox** is a service that allows Belgian accounting firms to access their clients' bank
|
||||
information and statements. Odoo provides a way to import such statements automatically.
|
||||
|
||||
.. note::
|
||||
As an accounting firm, you must manage your clients on separate databases and configure them
|
||||
individually to avoid mixing up their data.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The configuration must be done on each client database. In the following
|
||||
instructions, we will refer to your client's company as *Company* and to your
|
||||
accounting firm as *Accounting Firm*.
|
||||
|
||||
You must first :ref:`install <general/install>` :guilabel:`CodaBox` to start.
|
||||
|
||||
.. important::
|
||||
Make sure the company settings are correctly configured, i.e., the country is set to
|
||||
:guilabel:`Belgium`, the :guilabel:`Tax ID` and :guilabel:`Accounting Firm` fields are filled,
|
||||
as well as the :guilabel:`Tax ID` of the accounting firm (if not filled, the :guilabel:`Tax ID`
|
||||
of the company is used).
|
||||
|
||||
Configure the journals
|
||||
**********************
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: For CODA files
|
||||
|
||||
#. :doc:`Create a new bank journal <../accounting/bank>`.
|
||||
#. Set the right IBAN in the :guilabel:`Account Number` field.
|
||||
#. Select :guilabel:`CodaBox synchronization` as the :guilabel:`Bank Feed`.
|
||||
|
||||
.. image:: belgium/codabox_configuration_coda_journal.png
|
||||
:align: center
|
||||
:alt: Configuration of a CODA journal.
|
||||
|
||||
.. tab:: For SODA files
|
||||
|
||||
#. Create a new miscellaneous journal.
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the
|
||||
:guilabel:`CodaBox` section.
|
||||
#. Select the journal you just created in the SODA journal field.
|
||||
|
||||
.. image:: belgium/codabox_configuration_soda_setting.png
|
||||
:align: center
|
||||
:alt: Configuration of a SODA journal.
|
||||
|
||||
.. _belgium/codabox-configuration-connection:
|
||||
|
||||
Configure the connection
|
||||
************************
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the
|
||||
:guilabel:`CodaBox` section.
|
||||
#. Click on :guilabel:`Manage Connection` to open the connection wizard, which shows the
|
||||
:guilabel:`Accounting Firm VAT` number and the :guilabel:`Company VAT` number that will be used
|
||||
for the connection.
|
||||
#. If this is your **first connection**, click on :guilabel:`Create connection`.
|
||||
The wizard confirms that the connection has been created on **Odoo's side**. Follow the steps
|
||||
to validate the connection on **CodaBox's side**, too.
|
||||
|
||||
If this is **not your first connection**, the :guilabel:`Accounting Firm Password` provided by
|
||||
Odoo during the first connection will be requested to create a new connection.
|
||||
|
||||
.. note::
|
||||
This :guilabel:`Accounting Firm Password` is unique to Odoo and must be stored securely
|
||||
on your side.
|
||||
|
||||
The :guilabel:`Status` should have now switched to :guilabel:`Connected`.
|
||||
|
||||
Synchronization
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Once the connection is established, Odoo can be synchronized with CodaBox.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: For CODA files
|
||||
|
||||
CODA files are automatically imported from CodaBox every 12 hours. You do
|
||||
not have to do anything. However, if you wish, it can also be done manually,
|
||||
by clicking on :guilabel:`Fetch from CodaBox` in the Accounting Dashboard.
|
||||
|
||||
.. tab:: For SODA files
|
||||
|
||||
SODA files are automatically imported from CodaBox once a day as a draft. You do not have to
|
||||
do anything. However, if you wish, it can also be done manually by clicking on
|
||||
:guilabel:`Fetch from CodaBox` in the Accounting Dashboard.
|
||||
|
||||
By default, if an account in the SODA file is not mapped to an account in Odoo, the Suspense
|
||||
Account (499000) is used, and a note is added to the created journal entry.
|
||||
|
||||
.. note::
|
||||
You can access the mapping between the SODA and Odoo accounts by going to
|
||||
:menuselection:`Accounting --> Configuration --> Settings` and clicking on the
|
||||
:guilabel:`Open SODA Mapping` button in the :guilabel:`CodaBox` section.
|
||||
|
||||
|
||||
Potential issues
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
* **CodaBox is not configured. Please check your configuration.**
|
||||
|
||||
Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not set.
|
||||
|
||||
* **No connection exists with these accounting firms and company VAT numbers.**
|
||||
**Please check your configuration.**
|
||||
|
||||
This can happen when checking the connection status, and the :guilabel:`Accounting Firm VAT` and
|
||||
:guilabel:`Company VAT` combination still needs to be registered. This may happen if you have
|
||||
changed the :guilabel:`Company VAT` after the connection was established. For security reasons,
|
||||
you have to :ref:`recreate a connection <belgium/codabox-configuration-connection>`
|
||||
for this :guilabel:`Company VAT`.
|
||||
|
||||
* **It seems that your CodaBox connection is not valid anymore. Please connect again.**
|
||||
|
||||
This can happen if you revoke Odoo's access to your CodaBox account or still need to complete
|
||||
the configuration process. In this case, you must revoke the connection and create a new one.
|
||||
|
||||
* **The provided password is not valid for this accounting firm.**
|
||||
**You must reuse the password you received from Odoo during your first connection.**
|
||||
|
||||
The password you provided is different from the one you received from Odoo during your first
|
||||
connection. You must use the password you received from Odoo during your first connection to
|
||||
create a new connection for this accounting firm. If you have lost your password, you must first
|
||||
revoke the Odoo connection on CodaBox's side (i.e., on your myCodaBox portal). Then, you can
|
||||
revoke the connection on Odoo's side and
|
||||
:ref:`create a new one <belgium/codabox-configuration-connection>`.
|
||||
|
||||
* **It seems that the company or accounting firm VAT number you provided is not valid.**
|
||||
**Please check your configuration.**
|
||||
|
||||
Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not in a valid
|
||||
Belgian format.
|
||||
|
||||
* **It seems that the accounting firm VAT number you provided does not exist in CodaBox.**
|
||||
**Please check your configuration.**
|
||||
|
||||
The :guilabel:`Accounting Firm VAT` number you provided is not registered in CodaBox.
|
||||
You may not have a valid CodaBox license linked to this VAT number.
|
||||
|
||||
* **It seems you have already created a connection to CodaBox with this accounting firm.**
|
||||
**To create a new connection, you must first revoke the old one on myCodaBox portal.**
|
||||
|
||||
You must go to your myCodaBox portal and revoke Odoo's access to your CodaBox account.
|
||||
Then, you can :ref:`create a new connection <belgium/codabox-configuration-connection>`
|
||||
on Odoo's side.
|
||||
|
||||
.. tip::
|
||||
To revoke the connection between Odoo and CodaBox, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`, scroll down to the
|
||||
:guilabel:`CodaBox` section, click on :guilabel:`Manage Connection`, then click on
|
||||
:guilabel:`Revoke`.
|
||||
|
||||
Electronic invoicing
|
||||
====================
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -164,6 +164,48 @@ Cancel`.
|
||||
the NIC e-Invoice portal. You can click :guilabel:`Process now` if you want to process the
|
||||
invoice immediately.
|
||||
|
||||
.. _india/e-invoice-negative-lines:
|
||||
|
||||
Management of negative lines in e-Invoices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Negative lines are typically used to represent discounts or adjustments associated with specific
|
||||
products or global discounts. The government portal prohibits the submission of data with negative
|
||||
lines, which means they need to be converted based on the HSN code and GST rate. This is done
|
||||
automatically by Odoo.
|
||||
|
||||
.. example::
|
||||
|
||||
Consider the following example:
|
||||
|
||||
+---------------------------------------------------------------------------------------------------+
|
||||
| **Product Details** |
|
||||
+=======================+==============+==================+==============+==============+===========+
|
||||
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **GST Rate** | **Total** |
|
||||
+-----------------------+--------------+------------------+--------------+--------------+-----------+
|
||||
| Product A | 123456 | 1,000 | 1 | 18% | 1,180 |
|
||||
+-----------------------+--------------+------------------+--------------+--------------+-----------+
|
||||
| Product B | 239345 | 1,500 | 2 | 5% | 3,150 |
|
||||
+-----------------------+--------------+------------------+--------------+--------------+-----------+
|
||||
| Discount on Product A | 123456 | -100 | 1 | 18% | -118 |
|
||||
+-----------------------+--------------+------------------+--------------+--------------+-----------+
|
||||
|
||||
Here's the transformed representation:
|
||||
|
||||
+-------------------------------------------------------------------------------------------------------------+
|
||||
| **Product Details** |
|
||||
+==================+==============+==================+==============+==============+==============+===========+
|
||||
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **Discount** | **GST Rate** | **Total** |
|
||||
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
|
||||
| Product A | 123456 | 1,000 | 1 | 100 | 18% | 1,062 |
|
||||
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
|
||||
| Product B | 239345 | 1,500 | 2 | 0 | 5% | 3,150 |
|
||||
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
|
||||
|
||||
In this conversion, negative lines have been transformed into positive discounts, maintaining
|
||||
accurate calculations based on the HSN Code and GST rate. This ensures a more straightforward and
|
||||
standardized representation in the E-invoice records.
|
||||
|
||||
.. _india/verify-e-invoice:
|
||||
|
||||
GST e-Invoice verification
|
||||
|
||||
@@ -126,3 +126,59 @@ Correct an invoice that has been posted but not downloaded yet: Reset e-Faktur
|
||||
|
||||
.. image:: indonesia/indonesia-e-faktur-reset.png
|
||||
:align: center
|
||||
|
||||
.. _localization_indonesia/qris-qr:
|
||||
|
||||
QRIS QR code on invoices
|
||||
========================
|
||||
|
||||
`QRIS <https://qris.online/homepage/>`_ is a digital payment system that allows customers to make
|
||||
payments by scanning the QR code from their preferred e-wallet.
|
||||
|
||||
.. important::
|
||||
According to the `QRIS API documentation <https://qris.online/api-doc/create-invoice.php>`_,
|
||||
QRIS expires after 30 minutes. Due to this restriction, the QR code is not included in reports
|
||||
sent to customers and is only available on the customer portal.
|
||||
|
||||
Activate QR codes
|
||||
-----------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
|
||||
Payments` section, activate the :guilabel:`QR Codes` feature.
|
||||
|
||||
QRIS bank account configuration
|
||||
-------------------------------
|
||||
|
||||
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
|
||||
which you want to activate QRIS. Set the :guilabel:`QRIS API Key` and :guilabel:`QRIS Merchant ID`
|
||||
based on the information provided by QRIS.
|
||||
|
||||
.. important::
|
||||
The account holder's country must be set to `Indonesia` on its contact form.
|
||||
|
||||
.. image:: indonesia/qris-setup.png
|
||||
:alt: QRIS bank account configuration
|
||||
|
||||
.. seealso::
|
||||
:doc:`../accounting/bank`
|
||||
|
||||
Bank journal configuration
|
||||
--------------------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
|
||||
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
|
||||
|
||||
.. image:: indonesia/journal-bank-config.png
|
||||
:alt: Bank journal configuration
|
||||
|
||||
Issue invoices with QRIS QR codes
|
||||
---------------------------------
|
||||
|
||||
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
|
||||
QR-code` option to `QRIS`.
|
||||
|
||||
.. image:: indonesia/invoice-qris.png
|
||||
:alt: Select QRIS QR-code option
|
||||
|
||||
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
|
||||
generate the QRIS QR code.
|
||||
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 10 KiB |
@@ -2,6 +2,11 @@
|
||||
Peru
|
||||
====
|
||||
|
||||
.. |SUNAT| replace:: :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
|
||||
.. |GRE| replace:: :abbr:`GRE (Guía de Remisión Electrónica)`
|
||||
.. |RUS| replace:: :abbr:`RUS (Régimen Único Simplificado)`
|
||||
.. |EDI| replace:: :abbr:`EDI (Electronic Data Interchange)`
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
@@ -78,6 +83,8 @@ The chart of accounts for Peru is based on the most updated version of the :abbr
|
||||
Contable General Empresarial)`, which is grouped in several categories and is compatible with NIIF
|
||||
accounting.
|
||||
|
||||
.. _peru/accounting-settings:
|
||||
|
||||
Accounting Settings
|
||||
-------------------
|
||||
|
||||
@@ -239,6 +246,8 @@ directly to its services and get the currency rate either automatically or manua
|
||||
Please refer to the next section in our documentation for more information about
|
||||
:doc:`multicurrencies <../accounting/get_started/multi_currency>`.
|
||||
|
||||
.. _peru/master_data:
|
||||
|
||||
Configure Master data
|
||||
---------------------
|
||||
|
||||
@@ -588,3 +597,276 @@ As part of the Peruvian localization, besides creating credit notes from an exis
|
||||
you can also create debit Notes. For this just use the button “Add Debit Note”.
|
||||
|
||||
By default the Debit Note is set in the document type.
|
||||
|
||||
.. _peru/edg:
|
||||
|
||||
Electronic delivery guide 2.0
|
||||
-----------------------------
|
||||
|
||||
The *Guía de Remisión Electrónica* (GRE) is an electronic document generated by the shipper to
|
||||
support the transportation or transfer of goods from one place to another, such as a warehouse or
|
||||
establishment. In Odoo, there are several configuration steps needed before you can successfully use
|
||||
this feature.
|
||||
|
||||
The use of the *guía de remisión electrónica* electronic document is mandatory and required by
|
||||
|SUNAT| for taxpayers who need to transfer their products, except those under the *Single Simplified
|
||||
Regime* (régimen único simplificado or RUS).
|
||||
|
||||
Delivery guide types
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sender
|
||||
******
|
||||
|
||||
The *Sender* delivery guide type is issued when a sale is made, a service is rendered (including
|
||||
processing), goods are assigned for use, or goods are transferred between premises of the same
|
||||
company and others.
|
||||
|
||||
This delivery guide is issued by the owner of the goods (i.e., the sender) at the beginning of the
|
||||
shipment. The sender delivery guide is supported in Odoo.
|
||||
|
||||
.. seealso::
|
||||
`SUNAT guía de remisión <https://www.gob.pe/7899-guia-de-remision>`_
|
||||
|
||||
Carrier
|
||||
*******
|
||||
|
||||
The *Carrier* delivery guide type justifies the transportation service the driver (or carrier)
|
||||
performs.
|
||||
|
||||
This delivery guide is issued by the carrier and must be issued to each shipper when the shipment
|
||||
goes through public transport.
|
||||
|
||||
.. important::
|
||||
The carrier delivery guide is **not** supported in Odoo.
|
||||
|
||||
.. seealso::
|
||||
`SUNAT guía de remisión transportista
|
||||
<https://tefacturo.pe/blog/sunat/guia-de-remision-electronica/guia-de-remision-transportista/>`_
|
||||
|
||||
Transportation types
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Private
|
||||
*******
|
||||
|
||||
The *Private* transportation type option is used when the owner transfers goods using their own
|
||||
vehicles. In this case, a sender's delivery guide must be issued.
|
||||
|
||||
Public
|
||||
******
|
||||
|
||||
The *Public* transportation type option is used when an external carrier moves the goods. In
|
||||
this case, two delivery guides must be issued: the sender's delivery guide and the carrier's
|
||||
delivery guide.
|
||||
|
||||
Direct submission to SUNAT
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The creation of the |GRE| delivery guide in Odoo **must** be sent directly to the |SUNAT|,
|
||||
regardless of the electronic document provider: IAP, Digiflow, or |SUNAT|.
|
||||
|
||||
Required information
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Version 2.0 of the electronic delivery guide requires additional information on the general
|
||||
configuration, vehicles, contacts, and products. In the general configuration, it is necessary to
|
||||
add new credentials that you can retrieve from the |SUNAT| portal.
|
||||
|
||||
Cancellations
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
**Both** the sender and the carrier can cancel the electronic waybill as long as the following
|
||||
conditions are met:
|
||||
|
||||
- The shipment has not been initiated.
|
||||
- If the shipment has been initiated, the receiver **must** be changed before reaching the final
|
||||
destination.
|
||||
|
||||
.. important::
|
||||
The |SUNAT| no longer uses the term "Anula", but now uses the term "Dar de baja" for
|
||||
cancellations.
|
||||
|
||||
Testing
|
||||
~~~~~~~
|
||||
|
||||
The |SUNAT| does not support a test environment. This means that any delivery guides that were
|
||||
generated by mistake **will** be sent to the |SUNAT|.
|
||||
|
||||
If, by mistake, the waybill was created in this environment, it is necessary to delete it from the
|
||||
|SUNAT| portal.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. important::
|
||||
- Electronic sender's |GRE| is currently the only supported type of waybill in Odoo.
|
||||
- The delivery guide is dependent on the Odoo *Inventory* app, the :guilabel:`l10n_pe_edi` and
|
||||
:guilabel:`l10n_pe` modules.
|
||||
- A second user **must** be added for the creation of electronic documents.
|
||||
|
||||
After following the steps to configure the :ref:`electronic invoicing <peru/accounting-settings>`
|
||||
and the :ref:`master data <peru/master_data>`, :ref:`install <general/install>` the
|
||||
:guilabel:`Peruvian - Electronic Delivery Note 2.0` module (`l10n_pe_edi_stock_20`).
|
||||
|
||||
Next, you need to retrieve the *client ID* and *client secret* from |SUNAT|. To do so, follow the
|
||||
`manual de servicios web plataforma nueva GRE
|
||||
<https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Servicios_GRE.pdf>`_.
|
||||
|
||||
.. note::
|
||||
In the |SUNAT| portal, it is important to have the correct access rights enabled, as they may
|
||||
differ from the user set for electronic invoicing.
|
||||
|
||||
These credentials should be used to configure the delivery guide general settings from
|
||||
:menuselection:`Accounting --> Configuration --> Settings --> Peruvian Electronic Invoicing`.
|
||||
|
||||
.. image:: peru/gre-fields-example.png
|
||||
:alt: Example for the SUNAT Delivery Guide API section configuration.
|
||||
|
||||
.. note::
|
||||
It is required to follow the format `RUC + UsuarioSol` (e.g., `20557912879SOLUSER`) for the
|
||||
:guilabel:`Guide SOL User` field, depending on the user selected when generating the |GRE| API
|
||||
credentials in the |SUNAT| portal.
|
||||
|
||||
Operator
|
||||
********
|
||||
|
||||
The *operator* is the vehicle's driver in cases where the delivery guide is through *private*
|
||||
transport.
|
||||
|
||||
To create a new operator, navigate to :menuselection:`Contacts --> Create` and fill out the contact
|
||||
information.
|
||||
|
||||
First, select :guilabel:`Individual` as the :guilabel:`Company Type`. Then, add the
|
||||
:guilabel:`Operator License` in the :guilabel:`Accounting` tab of the contact form.
|
||||
|
||||
For the customer address, make sure the following fields are complete:
|
||||
|
||||
- :guilabel:`District`
|
||||
- :guilabel:`Tax ID` (:guilabel:`DNI`/:guilabel:`RUC`)
|
||||
- :guilabel:`Tax ID Number`
|
||||
|
||||
.. image:: peru/operator-configuration.png
|
||||
:alt: Individual type operator configurations in the Contact form.
|
||||
|
||||
Carrier
|
||||
*******
|
||||
|
||||
The *carrier* is used when the delivery guide is through *public* transport.
|
||||
|
||||
To create a new carrier, navigate to :menuselection:`Contacts --> Create` and fill out the contact
|
||||
information.
|
||||
|
||||
First, select :guilabel:`Company` as the :guilabel:`Company Type`. Then, add the :guilabel:`MTC
|
||||
Registration Number`, :guilabel:`Authorization Issuing Entity`, and the :guilabel:`Authorization
|
||||
Number`.
|
||||
|
||||
For the company address, make sure the following fields are complete:
|
||||
|
||||
- :guilabel:`District`
|
||||
- :guilabel:`Tax ID` (:guilabel:`DNI`/:guilabel:`RUC`)
|
||||
- :guilabel:`Tax ID Number`
|
||||
|
||||
.. image:: peru/company-operator-configuration.png
|
||||
:alt: Company type operator configurations in the Contact form.
|
||||
|
||||
Vehicles
|
||||
********
|
||||
|
||||
To configure the available vehicles, navigate to :menuselection:`Inventory --> Configuration -->
|
||||
Vehicles` and fill in the vehicle form with the information needed for the vehicle:
|
||||
|
||||
- :guilabel:`Vehicle Name`
|
||||
- :guilabel:`License Plate`
|
||||
- :guilabel:`Is M1 or L?`
|
||||
- :guilabel:`Special Authorization Issuing Entity`
|
||||
- :guilabel:`Authorization Number`
|
||||
- :guilabel:`Default Operator`
|
||||
- :guilabel:`Company`
|
||||
|
||||
.. important::
|
||||
It is important to check the :guilabel:`Is M1 or L?` checkbox if the vehicle has fewer than four
|
||||
wheels or fewer than eight seats.
|
||||
|
||||
.. image:: peru/vehicle-not-m1-or-l-pe.png
|
||||
:alt: Vehicle not selected as an M1 or L type with extra fields shown.
|
||||
|
||||
Products
|
||||
********
|
||||
|
||||
To configure the available products, navigate to :menuselection:`Inventory --> Products` and open
|
||||
the product to be configured.
|
||||
|
||||
Make sure that the applicable information in the product form is fully configured. The
|
||||
:guilabel:`Partida Arancelaria` (Tariff Item) field needs to be completed.
|
||||
|
||||
Generating a GRE
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the delivery from inventory is created during the sales workflow, make sure you complete the
|
||||
|GRE| fields on the top-right section of the transfer form for the fields:
|
||||
|
||||
- :guilabel:`Transport Type`
|
||||
- :guilabel:`Reason for Transfer`
|
||||
- :guilabel:`Departure start date`
|
||||
|
||||
It is also required to complete the :guilabel:`Vehicle` and :guilabel:`Operator` fields under the
|
||||
:guilabel:`Guia de Remision PE` tab.
|
||||
|
||||
The delivery transfer has to be marked as *Done* for the :guilabel:`Generar Guia de Remision` button
|
||||
to appear on the left menu of the transfer form.
|
||||
|
||||
.. image:: peru/generate-gre-transferview.png
|
||||
:alt: Generar Guia de Remision button on a transfer form in the Done stage.
|
||||
|
||||
Once the transfer form is correctly validated by |SUNAT|, the generated XML file becomes available
|
||||
in the chatter. You can now print the delivery slip that shows the transfer details and the QR
|
||||
code validated by |SUNAT|.
|
||||
|
||||
.. image:: peru/gre-delivery-slip.png
|
||||
:alt: Transfer details and QR code on generated delivery slip.
|
||||
|
||||
Common errors
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- `Diferente prefijo para productos (T001 en algunos, T002 en otros)`
|
||||
|
||||
At the moment, Odoo does not support the automation of prefixes for products. This can be done
|
||||
manually for each product output. This can also be done for non-storable products. However, keep
|
||||
in mind that there will be no traceability.
|
||||
- `2325 - GrossWeightMeasure - El dato no cumple con el formato establecido "Hace falta el campo"
|
||||
"Peso"" en el producto`
|
||||
|
||||
This error occurs when the weight on the product is set as `0.00`. To fix this, you need to cancel
|
||||
the waybill and recreate it. Make sure that you fix the weight on the product before creating the
|
||||
new waybill, or it will result in the same error.
|
||||
- `JSONDecodeError: Expecting value: line 1 column 1 (char 0) when creating a Delivery Guide`
|
||||
|
||||
This error is typically generated due to SOL user issues. Verify the user's connection with the
|
||||
|SUNAT|; the SOL user must be established with the company RUT + user ID. For example
|
||||
`2012188549JOHNSMITH`.
|
||||
- `El número de documento relacionado al traslado de mercancía no cumple con el formato establecido:
|
||||
error: documento relacionado`
|
||||
|
||||
The *Related Document Type* and *Related Document Number* fields only apply to invoices and
|
||||
receipts.
|
||||
- `400 Client error: Bad Request for URL`
|
||||
|
||||
This error is not solvable from Odoo; it is advised you reach out to the |SUNAT| and verify the
|
||||
user. It may be necessary to create a new user.
|
||||
|
||||
- `Invalid content was found starting with element 'cac:BuyerCustomerParty'`
|
||||
|
||||
This error occurs when the transfer reason is set as *other*. Please select another option.
|
||||
Following to the official documentation of the |SUNAT|'s waybill guide, the transfer reasons *03
|
||||
(sale with shipment to third party)* or *12 (others)* does not work in Odoo, since you should not
|
||||
have an empty or blank customer.
|
||||
- `Duda cliente: consumo de créditos IAP al usar GRE 2.0`
|
||||
|
||||
For live clients using IAP, no credit is consumed (in theory) because it does not go through the
|
||||
OSE, i.e., these documents are directly sent to the |SUNAT|.
|
||||
- `Errores con formato credenciales GRE 2.0 (traceback error)`
|
||||
|
||||
Odoo currently throws an error with a traceback instead of a message that the credentials are not
|
||||
correctly configured in the database. If this occurs on your database, please verify your
|
||||
credentials.
|
||||
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 12 KiB |
@@ -2,34 +2,164 @@
|
||||
Spain
|
||||
=====
|
||||
|
||||
Spanish chart of accounts
|
||||
=========================
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Several Spanish charts of accounts are available by default in Odoo:
|
||||
Install the 🇪🇸 **Spanish** :doc:`fiscal localization package <../fiscal_localizations>` to get all
|
||||
the default accounting features of the Spanish localization.
|
||||
|
||||
- PGCE PYMEs 2008
|
||||
- PGCE Completo 2008
|
||||
- PGCE Entitades
|
||||
Three **Spanish** localizations exist, each with its own pre-configured **PGCE** charts of accounts:
|
||||
|
||||
To choose the one you want, go to :menuselection:`Accounting --> Configuration --> Settings`,
|
||||
then select a package in the :guilabel:`Fiscal localization` section.
|
||||
- Spain - SMEs (2008);
|
||||
- Spain - Complete (2008);
|
||||
- Spain - Non-profit entities (2008).
|
||||
|
||||
.. tip::
|
||||
When you create a new Odoo Online database, the PGCE PYMEs 2008 is installed by default.
|
||||
To select the one to use, go to :menuselection:`Accounting --> Configuration --> Settings` and
|
||||
select a package in the :guilabel:`Fiscal Localization` section.
|
||||
|
||||
.. warning::
|
||||
You can only change the accounting package as long as you have not created any accounting entry.
|
||||
|
||||
Spanish accounting reports
|
||||
==========================
|
||||
Chart of accounts
|
||||
=================
|
||||
|
||||
If the Spanish accounting localization is installed, you have access to accounting reports specific
|
||||
to Spain:
|
||||
You can reach the **Chart of Accounts** by going to :menuselection:`Accounting --> Configuration -->
|
||||
Accounting: Chart of Accounts`.
|
||||
|
||||
- Balance Sheet
|
||||
- Tax Report (Modelo 111)
|
||||
- Tax Report (Modelo 115)
|
||||
- Tax Report (Modelo 303)
|
||||
- Tax Report (Modelo 347)
|
||||
- Tax Report (Modelo 349)
|
||||
- Tax Report (Modelo 390)
|
||||
.. tip::
|
||||
When you create a new Odoo Online database, **Spain - SMEs (2008)** is installed by default.
|
||||
|
||||
Taxes
|
||||
=====
|
||||
|
||||
Default Spain-specific taxes are created automatically when the
|
||||
:guilabel:`Spanish - Accounting (PGCE 2008) (l10n_es)` module is installed, and tax reports are
|
||||
available when installing the module :guilabel:`Spain - Accounting (PGCE 2008) (l10n_es_reports)`.
|
||||
Each tax impacts the Spain-specific **tax reports (Modelo)**, available by going to
|
||||
:menuselection:`Accounting --> Reporting --> Statements Reports: Tax Report`.
|
||||
|
||||
Reports
|
||||
=======
|
||||
|
||||
Here is the list of Spanish-specific statement reports available:
|
||||
|
||||
- Balance Sheet;
|
||||
- Profit & Loss;
|
||||
- EC Sales List;
|
||||
- Tax Report (Modelo 111);
|
||||
- Tax Report (Modelo 115);
|
||||
- Tax Report (Modelo 303);
|
||||
- Tax Report (Modelo 347);
|
||||
- Tax Report (Modelo 349);
|
||||
- Tax Report (Modelo 390).
|
||||
|
||||
You can access Spain-specific tax reports by clicking on the **book** icon when on a report and
|
||||
selecting its Spain-specific version: :guilabel:`(ES)`.
|
||||
|
||||
.. image:: spain/modelo-reports.png
|
||||
:alt: Spain-specific tax reports.
|
||||
|
||||
TicketBAI
|
||||
=========
|
||||
|
||||
`Ticket BAI <https://www.gipuzkoa.eus/es/web/ogasuna/ticketbai>`_ or **TBAI** is an e-Invoicing
|
||||
system used by the Basque government and its three provincial councils (Álava, Biscay, and
|
||||
Gipuzkoa).
|
||||
|
||||
Odoo supports the **TicketBAI (TBAI)** electronic invoicing format for all three regions of the
|
||||
**Basque Country**. To enable **TicketBAI**, set your company's :guilabel:`Country` and
|
||||
:guilabel:`Tax ID` under :menuselection:`Settings --> General Settings` in the :guilabel:`Companies`
|
||||
section.
|
||||
|
||||
Then, :ref:`install <general/install>` the module :guilabel:`Spain -TicketBAI (l10n_es_edi_TBAI)`,
|
||||
go to :menuselection:`Accounting --> Configuration --> Settings`, and select a **region** in the
|
||||
:guilabel:`Spain Localization` section's :guilabel:`Tax Agency for TBAI` field.
|
||||
|
||||
Once a region is selected, click :guilabel:`Manage certificates (SII/TicketBAI)`, then click
|
||||
:guilabel:`New`, upload the certificate, and enter the password provided by the tax agency.
|
||||
|
||||
.. warning::
|
||||
If you are testing certificates, enable :guilabel:`Test Mode` in the
|
||||
:guilabel:`Spain Localization` section, which can be found under :guilabel:`Accounting` in
|
||||
the **Settings** app.
|
||||
|
||||
Use case
|
||||
--------
|
||||
|
||||
Once an invoice has been :doc:`created <../../finance/accounting/customer_invoices>` and confirmed,
|
||||
a TicketBAI **banner** appears at the top.
|
||||
|
||||
.. image:: spain/ticketbai-invoice.png
|
||||
:alt: TicketBAI banner at the top of the invoice once sent.
|
||||
|
||||
Odoo sends invoices through TicketBAI automatically every **24 hours**. However, you can click
|
||||
:guilabel:`Process now` to send the invoice immediately.
|
||||
|
||||
When the invoice is **sent**, the status of the field :guilabel:`Electronic Invoice` changes to
|
||||
:guilabel:`Sent`, and the XML file can be found in the **chatter**. Under the
|
||||
:guilabel:`EDI Documents` tab, you can see the traceability of other generated documents related to
|
||||
the invoice (e.g., if the invoice should also be sent through the **SII**, it will appear here).
|
||||
|
||||
.. note::
|
||||
The TBAI **QR code** is displayed on the invoice PDF.
|
||||
|
||||
.. image:: spain/qr-code.png
|
||||
:alt: QR code of the TicketBAI on the invoice.
|
||||
|
||||
FACe
|
||||
====
|
||||
|
||||
`FACe <https://face.gob.es/en>`_ is the e-Invoicing platform used by the public administrations in
|
||||
Spain to send electronic invoices.
|
||||
|
||||
Before configuring the :abbr:`FACe (General Entrance for Electronic Invoices)` system,
|
||||
:ref:`install <general/install>` the :guilabel:`Spain - Facturae EDI (l10n_es_edi_facturae)` module
|
||||
and other **Facturae EDI**-related modules.
|
||||
|
||||
To enable FACe, go to :menuselection:`Settings --> General Settings`, click
|
||||
:guilabel:`Update Info` in the :guilabel:`Companies` section, then click :guilabel:`Update Info` and
|
||||
set the :guilabel:`Country` and :guilabel:`Tax ID` of your company. Next, add the
|
||||
:guilabel:`Facturae signature certificate` by clicking :guilabel:`Add a line`, uploading the
|
||||
certificate provided by the tax agency, and entering the provided password.
|
||||
|
||||
Use case
|
||||
--------
|
||||
|
||||
Once you have :doc:`created <../../finance/accounting/customer_invoices>` an invoice and confirmed
|
||||
it, click :guilabel:`Send & Print`. Make sure :guilabel:`Generate Facturae edi file` is enabled, and
|
||||
click :guilabel:`Send & Print` again. Once the invoice is sent, the generated XML file is available
|
||||
in the **chatter**.
|
||||
|
||||
.. warning::
|
||||
The file is **NOT** automatically sent. You have to send it yourself manually.
|
||||
|
||||
.. tip::
|
||||
You can send **FACe** XML files in batch through `the governmental portal <https://www.facturae.gob.es/formato/Paginas/descarga-aplicacion-escritorio.aspx>`_.
|
||||
|
||||
Administrative centers
|
||||
----------------------
|
||||
|
||||
In order for **FACe** to work with **administrative centers**, the invoice *must* include specific
|
||||
data about the centers.
|
||||
|
||||
.. note::
|
||||
Make sure to have the :guilabel:`Spain - Facturae EDI - Administrative Centers Patch
|
||||
(l10n_es_edi_facturae_adm_centers)` module :ref:`installed <general/install>`.
|
||||
|
||||
To add **administrative centers**, create a new **contact** to add to the **partner** company.
|
||||
Select :guilabel:`FACe Center` as the **type**, assign one or more **role(s)** to that contact, and
|
||||
:guilabel:`Save`. The **three** roles usually required are:
|
||||
|
||||
- Órgano gestor: :guilabel:`Receptor` (Receiver);
|
||||
- Unidad tramitadora: :guilabel:`Pagador` (Payer);
|
||||
- Oficina contable: :guilabel:`Fiscal` (Fiscal).
|
||||
|
||||
.. image:: spain/administrative-center.png
|
||||
:alt: Administrative center contact form for public entities.
|
||||
|
||||
.. tip::
|
||||
- If administrative centers need different :guilabel:`Codes` per role, you *must* create
|
||||
different centers for each role.
|
||||
- When an electronic invoice is created using a partner with **administrative centers**, *all*
|
||||
administrative centers are included in the invoice.
|
||||
- You can add one contact with multiple roles or multiple contacts with a different role each.
|
||||
|
||||
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
@@ -90,9 +90,6 @@ Go to :menuselection:`Accounting --> Reporting --> Tax report` and click on
|
||||
:guilabel:`Connect to HMRC`. Enter your company information on the HMRC platform. You only need to
|
||||
do it once.
|
||||
|
||||
.. Note::
|
||||
When entering your VAT number, do not add the GB country code. Only the 9 digits are required.
|
||||
|
||||
Periodic submission to HMRC
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
:show-content:
|
||||
|
||||
=================================================
|
||||
Payment providers (credit cards, online payments)
|
||||
=================================================
|
||||
===============
|
||||
Online payments
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
@@ -23,35 +23,33 @@ Payment providers (credit cards, online payments)
|
||||
payment_providers/razorpay
|
||||
payment_providers/sips
|
||||
payment_providers/stripe
|
||||
payment_providers/xendit
|
||||
|
||||
Odoo embeds several **payment providers** that allow your customers to pay on their *Customer
|
||||
Portals* or your *eCommerce website*. They can pay sales orders, invoices, or subscriptions with
|
||||
recurring payments with their favorite payment methods such as **Credit Cards**.
|
||||
Odoo embeds several **payment providers** that allow your customers to pay online, on their
|
||||
*customer portals*, or on your *eCommerce website*. They can pay sales orders, invoices, or
|
||||
subscriptions with recurring payments using their favorite payment methods, such as
|
||||
**credit cards**.
|
||||
|
||||
Offering several payment methods increases the chances of getting paid in time, or even immediately,
|
||||
as you make it more convenient for your customers to pay with the payment method they prefer and
|
||||
trust.
|
||||
Each payment provider is linked to a list of supported :ref:`payment methods
|
||||
<payment_providers/payment_methods>` that can be (de)activated based on your needs.
|
||||
|
||||
.. image:: payment_providers/online-payment.png
|
||||
:align: center
|
||||
:alt: Pay online in the customer portal and select which payment provider to use.
|
||||
:alt: Online payment form
|
||||
|
||||
.. note::
|
||||
Odoo apps delegate the handling of sensitive information to the certified payment provider so
|
||||
that you don't ever have to worry about PCI compliance.
|
||||
|
||||
This means that no sensitive information (such as credit card numbers) is stored on Odoo servers
|
||||
or Odoo databases hosted elsewhere. Instead, Odoo apps use a unique reference number to the data
|
||||
stored safely in the payment providers' systems.
|
||||
that you don't ever have to worry about PCI compliance. No sensitive information (such as credit
|
||||
card numbers) is stored on Odoo servers or Odoo databases hosted elsewhere. Instead, Odoo apps
|
||||
use a unique reference number for the data stored safely in the payment providers' systems.
|
||||
|
||||
.. _payment_providers/supported_providers:
|
||||
|
||||
Supported payment providers
|
||||
===========================
|
||||
|
||||
From an accounting perspective, we can distinguish two types of payment providers: the payment
|
||||
providers that are third-party services and require you to follow another accounting workflow, and
|
||||
the payments that go directly on the bank account and follow the usual reconciliation workflow.
|
||||
To access the supported payment providers, go to :menuselection:`Accounting --> Configuration -->
|
||||
Payment Providers`, :menuselection:`Website --> Configuration --> Payment Providers`, or
|
||||
:menuselection:`Sales --> Configuration --> Payment Providers`.
|
||||
|
||||
.. _payment_providers/online_providers:
|
||||
|
||||
@@ -65,10 +63,10 @@ Online payment providers
|
||||
|
||||
* -
|
||||
- Payment flow from
|
||||
- :ref:`Tokenization <payment_providers/features/tokenization>`
|
||||
- :ref:`Manual capture <payment_providers/features/manual_capture>`
|
||||
- :ref:`Refunds <payment_providers/features/refund>`
|
||||
- :ref:`Express checkout <payment_providers/features/express_checkout>`
|
||||
- :ref:`Tokenization <payment_providers/tokenization>`
|
||||
- :ref:`Manual capture <payment_providers/manual_capture>`
|
||||
- :ref:`Refunds <payment_providers/refunds>`
|
||||
- :ref:`Express checkout <payment_providers/express_checkout>`
|
||||
* - :doc:`Adyen <payment_providers/adyen>`
|
||||
- Odoo
|
||||
- |V|
|
||||
@@ -76,13 +74,13 @@ Online payment providers
|
||||
- Full and partial
|
||||
-
|
||||
* - :doc:`Amazon Payment Services <payment_providers/amazon_payment_services>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
* - :doc:`AsiaPay <payment_providers/asiapay>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
@@ -94,31 +92,31 @@ Online payment providers
|
||||
- Full only
|
||||
-
|
||||
* - :doc:`Buckaroo <payment_providers/buckaroo>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
* - :doc:`Flutterwave <payment_providers/flutterwave>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
- |V|
|
||||
-
|
||||
-
|
||||
-
|
||||
* - :doc:`Mercado Pago <payment_providers/mercado_pago>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
* - :doc:`Mollie <payment_providers/mollie>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
* - :doc:`PayPal <payment_providers/paypal>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
@@ -130,7 +128,7 @@ Online payment providers
|
||||
- Full and partial
|
||||
-
|
||||
* - :doc:`SIPS <payment_providers/sips>`
|
||||
- The provider website
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
@@ -141,21 +139,29 @@ Online payment providers
|
||||
- Full only
|
||||
- Full and partial
|
||||
- |V|
|
||||
* - :doc:`Xendit <payment_providers/xendit>`
|
||||
- The provider's website
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
.. |V| replace:: ✔
|
||||
|
||||
.. note::
|
||||
Some of these online payment providers can also be added as :doc:`bank accounts
|
||||
<../finance/accounting/bank>`, but this is **not** the same process as adding
|
||||
them as payment providers. Payment providers allow customers to pay online, and bank accounts are
|
||||
added and configured on your Accounting app to do a bank reconciliation, which is an accounting
|
||||
control process.
|
||||
- Each provider has its own specific configuration flow, depending on which feature is
|
||||
available.
|
||||
- Some of these online payment providers can also be added as :doc:`bank accounts
|
||||
<../finance/accounting/bank>`, but this is **not** the same process as adding them as payment
|
||||
providers. Payment providers allow customers to pay online, and bank accounts are added and
|
||||
configured in the Accounting app to do a :doc:`bank reconciliation
|
||||
<accounting/bank/reconciliation>`.
|
||||
|
||||
.. tip::
|
||||
In addition to the regular payment providers that integrate with an API such as Stripe, PayPal,
|
||||
In addition to the regular payment providers that integrate with an API, such as Stripe, PayPal,
|
||||
or Adyen, Odoo bundles the :doc:`Demo payment provider <payment_providers/demo>`. This payment
|
||||
provider allows you to make demo payments to test business flows involving online payments. No
|
||||
credentials are required as the demo payments are fake.
|
||||
provider allows you to test business flows involving online payments. No credentials are required
|
||||
as the demo payments are dummy payments.
|
||||
|
||||
.. _payment_providers/bank_payments:
|
||||
|
||||
@@ -164,251 +170,267 @@ Bank payments
|
||||
|
||||
- | :doc:`Wire Transfer <payment_providers/wire_transfer>`
|
||||
| When selected, Odoo displays your payment information with a payment reference. You have to
|
||||
approve the payment manually once you have received it on your bank account.
|
||||
approve the payment manually once you have received it in your bank account.
|
||||
- | :doc:`SEPA Direct Debit <../finance/accounting/payments/batch_sdd>`
|
||||
| Your customers can make a bank transfer to register a SEPA Direct Debit mandate and get their
|
||||
bank account charged directly.
|
||||
|
||||
.. _payment_providers/features:
|
||||
.. _payment_providers/add_new:
|
||||
|
||||
Additional features
|
||||
===================
|
||||
Enable a payment provider
|
||||
=========================
|
||||
|
||||
Some payment providers support additional features for the payment flow. Refer to the :ref:`table
|
||||
above <payment_providers/online_providers>` to check if your payment provider supports these
|
||||
To add a new payment provider and make its related payment methods available to your customers,
|
||||
proceed as follows:
|
||||
|
||||
#. Go to the payment provider's website, create an account, and make sure you have the API
|
||||
credentials requested for third-party use. These are necessary for Odoo to communicate with the
|
||||
payment provider.
|
||||
#. In Odoo, navigate to the :guilabel:`Payment providers` by going to :menuselection:`Accounting -->
|
||||
Configuration --> Payment Providers`, :menuselection:`Website --> Configuration --> Payment
|
||||
Providers`, or :menuselection:`Sales --> Configuration --> Payment Providers`.
|
||||
#. Select the provider and configure the :guilabel:`Credentials` tab.
|
||||
#. Set the :guilabel:`State` field to :guilabel:`Enabled`.
|
||||
|
||||
.. note::
|
||||
- The fields available in the :guilabel:`Credentials` tab depend on the payment provider. Refer
|
||||
to the :ref:`related documentation <payment_providers/supported_providers>` for more
|
||||
information.
|
||||
- Once you have enabled the payment provider, it is automatically published on your website.
|
||||
If you wish to unpublish it, click the :guilabel:`Published` button. Customers cannot make
|
||||
payments through an unpublished provider, but they can still manage
|
||||
:dfn:`(delete and assign to a subscription)` their existing tokens linked to such a provider.
|
||||
|
||||
.. _payment_providers/test-mode:
|
||||
|
||||
Test mode
|
||||
---------
|
||||
|
||||
If you wish to try the payment provider as a test, set the :guilabel:`State` field in the payment
|
||||
provider form to :guilabel:`Test mode`, then enter your provider's test/sandbox credentials in the
|
||||
:guilabel:`Credentials` tab.
|
||||
|
||||
.. note::
|
||||
By default, the payment provider remains **unpublished** in test mode so that it's not visible to
|
||||
visitors.
|
||||
|
||||
.. warning::
|
||||
We recommend using the test mode on a duplicate or a test database to avoid potential issues
|
||||
with your invoice numbering.
|
||||
|
||||
.. _payment_providers/payment_methods:
|
||||
|
||||
Payment methods
|
||||
===============
|
||||
|
||||
Each payment provider is related to a list of supported payment methods; the methods listed in the
|
||||
:guilabel:`Payment methods` field in the :guilabel:`Configuration` tab of the payment provider form
|
||||
are the ones that have been activated. To activate or deactivate a payment method for a provider,
|
||||
click :guilabel:`Enable Payment Methods`, then click the toggle button of the related method.
|
||||
|
||||
.. tip::
|
||||
Payment methods are displayed on your website based on their sequence order. To reorder them,
|
||||
click :guilabel:`Enable Payment Methods` in the payment provider form, then, in the
|
||||
:guilabel:`Payment Methods` list, drag and drop the payment methods in the desired order.
|
||||
|
||||
Icons and brands
|
||||
----------------
|
||||
|
||||
The icons displayed next to the payment method on your website are either the icons of the brands
|
||||
activated for the payment method or, if there aren't any, the icons of the payment methods
|
||||
themselves. To modify them, go to :menuselection:`Accounting --> Configuration --> Payment Methods`,
|
||||
:menuselection:`Website --> Configuration --> Payment Methods` or :menuselection:`Sales -->
|
||||
Configuration --> Payment Methods`, then click on the payment method.
|
||||
|
||||
To modify a payment method's icon, hover your mouse over the image in the upper-right corner of the
|
||||
payment method's form and click the pencil icon (:guilabel:`✎`).
|
||||
|
||||
Select the :guilabel:`Brands` tab to view the brands that have been activated for the payment
|
||||
method. The brands and their related icons are displayed based on their sequence order; to reorder
|
||||
them, drag and drop them in the desired order. To modify a brand's icon, select the brand, then,
|
||||
in the popup window that opens, hover the mouse over the image in the upper-right corner and click
|
||||
the pencil icon (:guilabel:`✎`).
|
||||
|
||||
Advanced configuration
|
||||
----------------------
|
||||
|
||||
To configure payment methods further, go to :menuselection:`Accounting --> Configuration --> Payment
|
||||
Methods`, :menuselection:`Website --> Configuration --> Payment Methods` or :menuselection:`Sales
|
||||
--> Configuration --> Payment Methods`. Click on the payment method, then activate the
|
||||
:ref:`developer mode <developer-mode>`. Click the :guilabel:`Configuration` tab to adapt the
|
||||
features.
|
||||
|
||||
.. _payment_providers/features/tokenization:
|
||||
.. danger::
|
||||
- Each payment method is preconfigured in a way that aligns with the payment providers'
|
||||
behavior and their integration with Odoo. Any change to this configuration may result in errors
|
||||
and should be tested on a duplicate or test database first.
|
||||
- Modifications to the payment method's configuration only work to the extent of the method's
|
||||
and provider's capabilities. For example, adding :ref:`countries
|
||||
<payment_providers/currencies_countries>` for a payment method only supported in one country or
|
||||
enabling :ref:`tokenization <payment_providers/tokenization>` for a method linked to a provider
|
||||
that does not support it will not produce the intended results.
|
||||
|
||||
.. _payment_providers/tokenization:
|
||||
|
||||
Tokenization
|
||||
------------
|
||||
============
|
||||
|
||||
If your payment provider supports this feature, customers can choose to save their card for later. A
|
||||
**payment token** is created in Odoo and can be used as a payment method for subsequent payments
|
||||
without having to enter the card details again. This is particularly useful for the eCommerce
|
||||
conversion rate and for subscriptions that use recurring payments.
|
||||
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, customers
|
||||
can save their payment method details for later. To enable this feature, go to the
|
||||
:guilabel:`Configuration` tab of the selected payment provider and enable :guilabel:`Allow Saving
|
||||
Payment Methods`.
|
||||
|
||||
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
|
||||
and by ticking the :guilabel:`Allow Saving Payment Methods` checkbox.
|
||||
In this case, a **payment token** is created in Odoo to be used as a payment method for subsequent
|
||||
payments without the customer having to enter their payment method details again. This is
|
||||
particularly useful for the eCommerce conversion rate and subscriptions that use recurring payments.
|
||||
|
||||
.. note::
|
||||
You remain fully PCI-compliant when you enable this feature because Odoo does not store the card
|
||||
details directly. Instead, it creates a payment token that only holds a reference to the card
|
||||
details stored on the payment provider's server.
|
||||
details directly. Instead, it creates a payment token that only references the card details
|
||||
stored on the payment provider's server.
|
||||
|
||||
.. _payment_providers/features/manual_capture:
|
||||
.. _payment_providers/manual_capture:
|
||||
|
||||
Manual capture
|
||||
--------------
|
||||
==============
|
||||
|
||||
If your payment provider supports this feature, you can authorize and capture payments in two steps
|
||||
instead of one. When you authorize a payment, the funds are reserved on the customer's payment
|
||||
method but they are not immediately charged. The charge is only made when you manually capture the
|
||||
payment later on. You can also void the authorization to release the reserved funds; this is
|
||||
equivalent to a regular cancellation. Capturing payments manually can prove itself useful in many
|
||||
situations:
|
||||
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, you can
|
||||
authorize and capture payments in two steps instead of one. To enable this feature, go to the
|
||||
:guilabel:`Configuration` tab of the selected payment provider and enable :guilabel:`Capture Amount
|
||||
Manually`.
|
||||
|
||||
- Receive the payment confirmation and wait until the order is shipped to capture the payment.
|
||||
- Review and verify that orders are legitimate before the payment is completed and the fulfillment
|
||||
process starts.
|
||||
- Avoid potentially high processing fees for cancelled payments: payment providers will not charge
|
||||
you for voiding an authorization.
|
||||
- Hold a security deposit to return later, minus any deductions (e.g., after a damage).
|
||||
When you authorize a payment, the funds are reserved on the customer's payment method but not
|
||||
immediately charged. They are charged when you manually capture the payment later on. You can also
|
||||
void the authorization to cancel it and release the reserved funds. Capturing payments manually is
|
||||
helpful in many situations:
|
||||
|
||||
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
|
||||
and by ticking the :guilabel:`Capture Amount Manually` checkbox.
|
||||
- Receive the payment confirmation and wait until the order is shipped to capture the payment.
|
||||
- Review and verify that orders are legitimate before the payment is completed and the fulfillment
|
||||
process starts.
|
||||
- Avoid potentially high refund fees for refunded payments: payment providers will not charge you
|
||||
for voiding an authorization.
|
||||
- Hold a security deposit to return later, minus any deductions (e.g., in case of damages).
|
||||
|
||||
To capture the payment after it was authorized, go to the related sales order or invoice and click
|
||||
on the :guilabel:`CAPTURE TRANSACTION` button. To release the funds, click on the :guilabel:`VOID
|
||||
TRANSACTION` button.
|
||||
|
||||
If your provider supports partial capture, you can select to capture only a **partial amount** of
|
||||
the full amount. The **remaining (uncaptured) amount** can either be voided or partially captured
|
||||
again later.
|
||||
the :guilabel:`Capture Transaction` button. To release the funds, click the :guilabel:`Void
|
||||
Transaction` button.
|
||||
|
||||
.. note::
|
||||
- Some payment providers support capturing only part of the authorized amount. The remaining
|
||||
amount can then be either captured or voided. These providers have the value **Full and
|
||||
partial** in the :ref:`table above <payment_providers/online_providers>`. The providers that
|
||||
only support capturing or voiding the full amount have the value **Full only**.
|
||||
only support capturing or voiding the total amount have the value **Full only**.
|
||||
- The funds are likely not reserved forever. After a certain time, they may be automatically
|
||||
released back to the customer's payment method. Refer to your payment provider's documentation
|
||||
for the exact reservation duration.
|
||||
- Odoo does not support this feature for all payment providers but some allow the manual capture
|
||||
- Odoo does not support this feature for all payment providers, but some allow the manual capture
|
||||
from their website interface.
|
||||
|
||||
.. _payment_providers/features/refund:
|
||||
.. _payment_providers/refunds:
|
||||
|
||||
Refunds
|
||||
-------
|
||||
=======
|
||||
|
||||
If your payment provider supports this feature, you can refund payments directly from Odoo. It does
|
||||
not need to be enabled first. To refund a customer payment, navigate to it and click on the
|
||||
:guilabel:`REFUND` button.
|
||||
not need to be enabled first. To refund a customer payment, navigate to it and click the
|
||||
:guilabel:`Refund` button.
|
||||
|
||||
.. note::
|
||||
- Some payment providers support refunding only part of the amount. The remaining amount can then
|
||||
optionally be refunded too. These providers have the value **Full and partial** in the
|
||||
optionally be refunded, too. These providers have the value **Full and partial** in the
|
||||
:ref:`table above <payment_providers/online_providers>`. The providers that only support
|
||||
refunding the full amount have the value **Full only**.
|
||||
- Odoo does not support this feature for all payment providers but some allow to refund payments
|
||||
refunding the total amount have the value **Full only**.
|
||||
- Odoo does not support this feature for all payment providers, but some allow to refund payments
|
||||
from their website interface.
|
||||
|
||||
.. _payment_providers/features/express_checkout:
|
||||
.. _payment_providers/express_checkout:
|
||||
|
||||
Express checkout
|
||||
----------------
|
||||
================
|
||||
|
||||
If your payment provider supports this feature, customers can use the **Google Pay** and **Apple
|
||||
Pay** buttons to pay their eCommerce orders in one click without filling the contact form. Using one
|
||||
of those buttons, customers go straight from the cart to the confirmation page, stopping by the
|
||||
payment form of Google or Apple to validate the payment.
|
||||
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, you can
|
||||
allow customers to use the :guilabel:`Google Pay` and :guilabel:`Apple Pay` buttons and pay their
|
||||
eCommerce orders in one click. When they use one of these buttons, customers go straight from the
|
||||
cart to the confirmation page without filling out the contact form. They just have to validate the
|
||||
payment on Google's or Apple's payment form.
|
||||
|
||||
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
|
||||
and by ticking the :guilabel:`Allow Express Checkout` checkbox.
|
||||
To enable this feature, go to the :guilabel:`Configuration` tab of the selected payment provider and
|
||||
enable :guilabel:`Allow Express Checkout`.
|
||||
|
||||
.. note::
|
||||
All prices shown in the express checkout payment form are always taxes included.
|
||||
All prices shown on the express checkout payment form always include taxes.
|
||||
|
||||
.. _payment_providers/configuration:
|
||||
Availability
|
||||
============
|
||||
|
||||
Configuration
|
||||
=============
|
||||
You can adapt the payment provider's availability by specifying the :guilabel:`Maximum amount`
|
||||
allowed and modifying the :guilabel:`Currencies` and :guilabel:`Countries` in the
|
||||
:guilabel:`Configuration` tab.
|
||||
|
||||
.. _payment_providers/currencies_countries:
|
||||
|
||||
Currencies and countries
|
||||
------------------------
|
||||
|
||||
All payment providers have a different list of available currencies and countries. They serve as a
|
||||
first filter during payment operations, i.e., the payment methods linked to the payment provider are
|
||||
not available for selection if the customer's currency or country is not in the supported list. As
|
||||
there might be errors, updates, and unknowns in the lists of available currencies and countries,
|
||||
adding or removing a payment provider's supported currencies or countries is possible.
|
||||
|
||||
.. note::
|
||||
Each provider has its specific configuration flow, depending on :ref:`which feature is available
|
||||
<payment_providers/online_providers>`.
|
||||
|
||||
.. _payment_providers/add_new:
|
||||
- :ref:`Payment methods <payment_providers/payment_methods>` also have their own list of
|
||||
available currencies and countries that serves as another filter during payment operations.
|
||||
- If the list of supported currencies or countries is empty, it means the list is too long to be
|
||||
displayed, or Odoo does not have information on that payment provider. The payment provider
|
||||
remains available, even though it is possible the payment will be refused at a later stage
|
||||
should the country or currency not be supported.
|
||||
|
||||
Add a new payment provider
|
||||
--------------------------
|
||||
Maximum amount
|
||||
--------------
|
||||
|
||||
To add a new payment provider and make it available to your customers, go to
|
||||
:menuselection:`Accounting --> Configuration --> Payment Providers`, look for your payment provider,
|
||||
install the related module, and activate it. To do so, open the payment provider and change its
|
||||
state from *Disabled* to *Enabled*.
|
||||
|
||||
.. image:: payment_providers/activation.png
|
||||
:align: center
|
||||
:alt: Click on install, then on activate to make the payment provider available on Odoo.
|
||||
|
||||
.. warning::
|
||||
We recommend using the *Test Mode* on a duplicated database or a test database. The Test Mode is
|
||||
meant to be used with your test/sandbox credentials, but Odoo generates Sales Orders and Invoices
|
||||
as usual. It isn't always possible to cancel an invoice, and this could create some issues with
|
||||
your invoices numbering if you were to test your payment providers on your main database.
|
||||
|
||||
.. _payment_providers/credentials_tab:
|
||||
|
||||
Credentials tab
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
If not done yet, go to the online payment provider website, create an account, and make sure to have
|
||||
the credentials required for third-party use. Odoo requires these credentials to communicate with
|
||||
the payment provider.
|
||||
|
||||
The form in this section is specific to the payment provider you are configuring. Please refer to
|
||||
the related documentation for more information.
|
||||
|
||||
.. _payment_providers/configuration_tab:
|
||||
|
||||
Configuration tab
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can change the payment provider's front-end appearance by modifying its name under the
|
||||
**Displayed as** field, and the supported credit card icons displayed under the **Supported Payment Methods**
|
||||
field.
|
||||
|
||||
.. _payment_providers/currencies:
|
||||
|
||||
Currencies
|
||||
**********
|
||||
|
||||
All payment providers have a different list of available currencies. They are preconfigured and
|
||||
available in the :guilabel:`Configuration` tab. They serve as a first filter during payment
|
||||
operations, i.e. the payment provider is not displayed as available for payment if the currency is
|
||||
not in the supported list.
|
||||
|
||||
.. tip::
|
||||
As there might be errors, updates, and unknowns in the lists of available currencies, it is
|
||||
possible to add or remove currencies.
|
||||
|
||||
If the list of supported currencies is empty, it either means the list is too long to be displayed,
|
||||
or Odoo does not have information on that payment provider. The payment provider remains available,
|
||||
even though it is possible the payment will be refused at a later stage should the currency not be
|
||||
supported. This field is required if the user needs to select a currency when setting up their
|
||||
payment provider account.
|
||||
|
||||
.. _payment_providers/countries:
|
||||
|
||||
Countries
|
||||
*********
|
||||
|
||||
Restrict the use of the payment provider to a selection of countries. Leave this field blank to make
|
||||
the payment provider available in all countries.
|
||||
|
||||
Maximum Amount
|
||||
**************
|
||||
|
||||
Restrict the maximum amount that can be paid with the selected provider. Leave this field to `0.00`
|
||||
to make the payment provider available regardless of the payment amount.
|
||||
You can restrict the :guilabel:`Maximum Amount` that can be paid with the selected provider. Leave
|
||||
the field to `0.00` to make the payment provider available regardless of the payment amount.
|
||||
|
||||
.. important::
|
||||
This feature is not intended to work on pages which allow the customer to update the payment
|
||||
amount. For example, the **Donation** snippet of the Website app, and the **Checkout** page of
|
||||
the **eCommerce** app when paid delivery methods are enabled.
|
||||
This feature is not intended to work on pages that allow the customer to update the payment
|
||||
amount, e.g., the **Donation** snippet and the **Checkout** page when paid :doc:`shipping methods
|
||||
<../websites/ecommerce/checkout_payment_shipping/shipping>` are enabled.
|
||||
|
||||
.. _payment_providers/journal:
|
||||
|
||||
Payment journal
|
||||
***************
|
||||
===============
|
||||
|
||||
The **Payment journal** selected for your payment provider must be a *Bank* journal.
|
||||
A :doc:`payment journal <accounting/bank>` must be defined for the payment provider to record the
|
||||
payments on an **outstanding account**. By default, the :guilabel:`Bank` journal is added as the
|
||||
payment journal for all payment providers. To modify it, go to the :guilabel:`Configuration` tab of
|
||||
the selected payment provider and select another :guilabel:`Payment journal`.
|
||||
|
||||
.. _payment_providers/publish:
|
||||
|
||||
Publish on the website
|
||||
----------------------
|
||||
|
||||
By default, payment providers are *unpublished*, which means that only internal users can see them
|
||||
on the website. Your customers cannot make payments through an unpublished provider but they can
|
||||
still manage :dfn:`(delete and assign to a subscription)` their already existing tokens linked to
|
||||
such an provider. This conveniently allows you to test an provider while preventing making payments
|
||||
and registering new tokens.
|
||||
|
||||
Click on the :guilabel:`Publish` button located in the top right corner of the provider's form to
|
||||
publish it on the website and make it available to your customers. Click on the
|
||||
:guilabel:`Unpublish` button to unpublish it.
|
||||
|
||||
.. tip::
|
||||
Payment providers are automatically published and unpublished when you respectively change their
|
||||
state to `enabled` and `test`.
|
||||
|
||||
.. _payment_providers/accounting:
|
||||
.. note::
|
||||
- The payment journal must be a :guilabel:`Bank` journal.
|
||||
- The same journal can be used for several payment providers.
|
||||
- Payment journals must only be configured if the :doc:`Invoicing or Accounting app <accounting>`
|
||||
is installed.
|
||||
|
||||
Accounting perspective
|
||||
======================
|
||||
----------------------
|
||||
|
||||
The **Bank Payments** that go directly to one of your bank accounts follow their usual
|
||||
reconciliation workflows. However, payments recorded with **Online Payment Providers** require you
|
||||
to consider how you want to record your payments' journal entries. We recommend you to ask your
|
||||
accountant for advice.
|
||||
From an accounting perspective, there are two types of online payment workflows: the payments that
|
||||
are directly deposited into your bank account and follow the usual :doc:`reconciliation
|
||||
<accounting/bank/reconciliation>` workflow, and those coming from third-party :ref:`online payment
|
||||
providers <payment_providers/online_providers>` and require you to follow another accounting
|
||||
workflow. For these payments, you need to consider how you want to record your payments' journal
|
||||
entries. We recommend you ask your accountant for advice.
|
||||
|
||||
You need to select a *Payment Journal* on your provider configuration to record the payments,
|
||||
on a **Outstanding Account**. The Journal's **type** must be *Bank Journal*.
|
||||
|
||||
You can use a single journal for many payment methods. And for each payment method, you can either:
|
||||
|
||||
- Define an **Accounting Account** to separate these payments from another payment method.
|
||||
- Leave blank to fallback on the default account, which you can see or change in the settings.
|
||||
By default, the :guilabel:`Bank Account` defined for the :ref:`payment journal
|
||||
<payment_providers/journal>` is used, but you can also specify an :ref:`outstanding account
|
||||
<bank/outstanding-accounts>` for each payment provider to separate the provider's payments from
|
||||
other payments.
|
||||
|
||||
.. image:: payment_providers/bank_journal.png
|
||||
:align: center
|
||||
:alt: A bank journal in the "Incoming Payments Tab".
|
||||
|
||||
You can have the same bank account for the whole company, or for some journals only, or a single
|
||||
payment method... What best suit your needs.
|
||||
:alt: Define an outstanding account for a payment provider.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payment_providers/wire_transfer`
|
||||
@@ -425,4 +447,6 @@ payment method... What best suit your needs.
|
||||
- :doc:`payment_providers/razorpay`
|
||||
- :doc:`payment_providers/sips`
|
||||
- :doc:`payment_providers/stripe`
|
||||
- :doc:`payment_providers/xendit`
|
||||
- :doc:`../websites/ecommerce/checkout_payment_shipping/payments`
|
||||
- :doc:`accounting/bank`
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -141,7 +141,7 @@ Place a hold on a card
|
||||
Adyen allows you to capture an amount manually instead of having an immediate capture.
|
||||
|
||||
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
|
||||
:ref:`payment providers documentation <payment_providers/features/manual_capture>`.
|
||||
:ref:`payment providers documentation <payment_providers/manual_capture>`.
|
||||
|
||||
Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the
|
||||
**Capture Delay** to **manual**.
|
||||
|
||||
@@ -41,7 +41,7 @@ Place a hold on a card
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
With Authorize.Net, you can enable the :ref:`manual capture
|
||||
<payment_providers/features/manual_capture>`. If enabled, the funds are reserved for 30 days on the
|
||||
<payment_providers/manual_capture>`. If enabled, the funds are reserved for 30 days on the
|
||||
customer's card, but not charged yet.
|
||||
|
||||
.. warning::
|
||||
@@ -66,9 +66,6 @@ previously configured Authorize.Net payment provider on Odoo by going to :menuse
|
||||
(:guilabel:`⛭`) and select :guilabel:`Duplicate`. Change the provider's name to differentiate both
|
||||
versions (e.g., `Authorize.net - Banks`).
|
||||
|
||||
Open the :guilabel:`Configuration` tab, set the :guilabel:`Allow Payments From` field to
|
||||
:guilabel:`Bank Account (USA only)`.
|
||||
|
||||
When ready, change the provider's :guilabel:`State` to :guilabel:`Enabled` for a regular account or
|
||||
:guilabel:`Test Mode` for a sandbox account.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
@@ -2,132 +2,114 @@
|
||||
Stripe
|
||||
======
|
||||
|
||||
`Stripe <https://stripe.com/>`_ is a United States-based online payment solution provider, allowing
|
||||
`Stripe <https://stripe.com/>`_ is a United States-based online payment solution provider allowing
|
||||
businesses to accept **credit cards** and other payment methods.
|
||||
|
||||
Link your Stripe Account with Odoo
|
||||
==================================
|
||||
|
||||
.. seealso::
|
||||
- :ref:`payment_providers/add_new`
|
||||
Create your Stripe account with Odoo
|
||||
====================================
|
||||
|
||||
The method to acquire your credentials depends on your hosting type:
|
||||
|
||||
.. tabs::
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
#. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set
|
||||
payments* button on the onboarding banner.
|
||||
#. Fill in the requested information and submit the form.
|
||||
#. Confirm your email address when Stripe sends you a confirmation email.
|
||||
#. At the end of the process, you are redirected to Odoo. If you submitted all the requested
|
||||
information, you are all set and your payment provider is enabled.
|
||||
#. Your can continue to :ref:`stripe/local-payment-methods`.
|
||||
|
||||
.. tip::
|
||||
To use your own API keys, :ref:`activate the Developer mode <developer-mode>` and
|
||||
:ref:`enable Stripe manually <payment_providers/add_new>`. You can then :ref:`Fill in your
|
||||
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
|
||||
payment provider.
|
||||
#. :ref:`Navigate to the payment provider Stripe <payment_providers/supported_providers>` and
|
||||
click :guilabel:`Connect Stripe`.
|
||||
#. Go through the setup process and confirm your email address when Stripe sends you a
|
||||
confirmation email.
|
||||
#. At the end of the process, click :guilabel:`Agree and submit`. If all requested information
|
||||
has been submitted, you are then redirected to Odoo, and your payment provider is enabled.
|
||||
|
||||
.. group-tab:: Odoo.sh or On-premise
|
||||
|
||||
#. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set
|
||||
payments* button on the onboarding banner.
|
||||
#. Fill in the requested information and submit the form.
|
||||
#. Confirm your email address when Stripe sends you a confirmation email.
|
||||
#. At the end of the process, you are redirected to the payment provider **Stripe** on Odoo.
|
||||
#. :ref:`Navigate to the payment provider Stripe <payment_providers/supported_providers>` and
|
||||
click :guilabel:`Connect Stripe`.
|
||||
#. Go through the setup process and confirm your email address when Stripe sends you a
|
||||
confirmation email.
|
||||
#. At the end of the process, click :guilabel:`Agree and submit`; you are then redirected to
|
||||
the payment provider **Stripe** in Odoo.
|
||||
#. :ref:`Fill in your credentials <stripe/api_keys>`.
|
||||
#. :ref:`Generate a webhook <stripe/webhook>`.
|
||||
#. Enable the payment provider.
|
||||
#. You are all set and can continue to :ref:`stripe/local-payment-methods`.
|
||||
#. Set the :guilabel:`State` field to :guilabel:`Enabled`.
|
||||
|
||||
.. tip::
|
||||
To connect your Stripe account after the onboarding is already completed, go to
|
||||
:menuselection:`Accounting --> Configuration --> Payment Providers --> Stripe` and click on the
|
||||
*Connect Stripe* button.
|
||||
|
||||
.. important::
|
||||
If you are testing Stripe (in **test mode**), change the **State** to *Test Mode*. We recommend
|
||||
doing this on a test Odoo database rather than on your main database.
|
||||
- To use an existing Stripe account, :ref:`activate the Developer mode <developer-mode>` and
|
||||
:ref:`enable Stripe manually <payment_providers/add_new>`. You can then :ref:`Fill in your
|
||||
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>`, and enable the
|
||||
payment provider.
|
||||
- You can also test Stripe using the :ref:`payment_providers/test-mode`. To do so, first,
|
||||
`log into your Stripe dashboard <https://dashboard.stripe.com/dashboard>`_ and switch to the
|
||||
**Test mode**. Then, in Odoo, :ref:`activate the Developer mode <developer-mode>`,
|
||||
:ref:`navigate to the payment provider Stripe <payment_providers/supported_providers>`,
|
||||
:ref:`fill in your API credentials <stripe/api_keys>` with the test keys, and set the
|
||||
:guilabel:`State` field to :guilabel:`Test Mode`.
|
||||
|
||||
.. _stripe/api_keys:
|
||||
|
||||
Fill in your credentials
|
||||
------------------------
|
||||
|
||||
In case your **API Credentials** are required to connect with your Stripe account, these are the
|
||||
credentials that must be completed:
|
||||
If your **API credentials** are required to connect with your Stripe account, proceed as follows:
|
||||
|
||||
- :ref:`Publishable Key <stripe/api_keys>`: The key solely used to identify the account with Stripe.
|
||||
- :ref:`Secret Key <stripe/api_keys>`: The key to sign the merchant account with Stripe.
|
||||
- :ref:`Webhook Signing Secret <stripe/webhook>`: When you enable your webhook on your Stripe
|
||||
account, this signing secret must be set to authenticate the messages sent from Stripe to Odoo.
|
||||
|
||||
To retrieve the publishable and secret keys, follow this `link to your API keys
|
||||
<https://dashboard.stripe.com/account/apikeys>`_, or log into your Stripe dashboard and go to
|
||||
:menuselection:`Developers --> API Keys --> Standard Keys`.
|
||||
#. Go to `the API keys page on Stripe <https://dashboard.stripe.com/account/apikeys>`_, or log into
|
||||
your Stripe dashboard and go to :menuselection:`Developers --> API Keys`.
|
||||
#. In the :guilabel:`Standard keys` section, copy the :guilabel:`Publishable key` and the
|
||||
:guilabel:`Secret key` and save them for later.
|
||||
#. In Odoo, :ref:`navigate to the payment provider Stripe <payment_providers/supported_providers>`.
|
||||
#. In the :guilabel:`Credentials` tab, fill in the :guilabel:`Publishable Key` and
|
||||
:guilabel:`Secret Key` fields with the values you previously saved.
|
||||
|
||||
.. _stripe/webhook:
|
||||
|
||||
Generate a webhook
|
||||
------------------
|
||||
|
||||
In case your **Webhook Signing Secret** is required to connect with your Stripe account, you can
|
||||
create a webhook either automatically or manually.
|
||||
If your **Webhook Signing Secret** is required to connect with your Stripe account, you can create a
|
||||
webhook automatically or manually.
|
||||
|
||||
.. tabs::
|
||||
.. tab:: Create the webhook automatically
|
||||
|
||||
Make sure your :ref:`Publishable and Secret keys <stripe/api_keys>` are filled in, then click
|
||||
on the *Generate your Webhook* button.
|
||||
:guilabel:`Generate your webhook`.
|
||||
|
||||
.. tab:: Create the webhook manually
|
||||
|
||||
Visit the `webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into your
|
||||
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on **Add
|
||||
endpoint** in your **Hosted endpoints** and insert the following data into the pop-up form:
|
||||
#. Go to the `Webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into
|
||||
your Stripe dashboard and go to :menuselection:`Developers --> Webhooks`.
|
||||
#. In the :guilabel:`Hosted endpoints` section, click :guilabel:`Add endpoint`. Then, in the
|
||||
:guilabel:`Endpoint URL` field, enter your Odoo database's URL, followed by
|
||||
`/payment/stripe/webhook`, e.g., `https://yourcompany.odoo.com/payment/stripe/webhook`.
|
||||
#. Click :guilabel:`Select events` at the bottom of the form, then select the following
|
||||
events:
|
||||
|
||||
- | In the **Endpoint URL**, enter your Odoo database's URL followed by
|
||||
| `/payment/stripe/webhook`.
|
||||
| For example: `https://yourcompany.odoo.com/payment/stripe/webhook`
|
||||
- At the end of the form, you can **Select events** to listen to. Click on it and, in the
|
||||
**Checkout** section, select **checkout.session.completed**.
|
||||
- in the :guilabel:`Charge` section: :guilabel:`charge.refunded` and
|
||||
:guilabel:`charge.refund.updated`;
|
||||
- in the :guilabel:`Payment intent` section:
|
||||
:guilabel:`payment_intent.amount_capturable_updated`,
|
||||
:guilabel:`payment_intent.payment_failed`, :guilabel:`payment_intent.processing`, and
|
||||
:guilabel:`payment_intent.succeeded`;
|
||||
- in the :guilabel:`Setup intent` section: :guilabel:`setup_intent.succeeded`.
|
||||
|
||||
.. note::
|
||||
It is possible to select other events, but they are currently not processed by Odoo.
|
||||
#. Click :guilabel:`Add events`.
|
||||
#. Click :guilabel:`Add endpoint`, then click :guilabel:`Reveal` and save your
|
||||
:guilabel:`Signing secret` for later.
|
||||
#. In Odoo, :ref:`navigate to the payment provider Stripe
|
||||
<payment_providers/supported_providers>`.
|
||||
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Webhook Signing Secret` field with
|
||||
the value you previously saved.
|
||||
|
||||
When you click on **Add endpoint**, your Webhook is configured. You can then click on
|
||||
**reveal** to display your signing secret.
|
||||
.. note::
|
||||
You can select other events, but they are currently not processed by Odoo.
|
||||
|
||||
.. _stripe/local-payment-methods:
|
||||
Enable Apple Pay
|
||||
================
|
||||
|
||||
Enable local payment methods
|
||||
============================
|
||||
|
||||
Local payment methods are payment methods that are only available for certain merchants and
|
||||
customers countries and currencies.
|
||||
|
||||
Odoo supports the following local payment methods:
|
||||
|
||||
- Bancontact
|
||||
- EPS
|
||||
- giropay
|
||||
- iDEAL
|
||||
- Przelewy24 (P24)
|
||||
|
||||
To enable some of these local payment methods with Stripe, list them as supported payment icons. To
|
||||
do so, go to :menuselection:`Payment Providers --> Stripe --> Configuration` and add the desired
|
||||
payment methods in the **Supported Payment Icons** field. If the desired payment method is already
|
||||
listed, you do not have anything to do.
|
||||
|
||||
.. image:: stripe/payments-config.png
|
||||
:alt: Select and add icons of the payment methods you want to enable
|
||||
|
||||
.. note::
|
||||
- If a payment method record does not exist in the database and its related local payment method
|
||||
is listed above, it is considered enabled with Stripe.
|
||||
- If a local payment method is not listed above, it is not supported and cannot be enabled.
|
||||
To allow customers to use the Apple Pay button to pay their eCommerce orders, go to the
|
||||
:guilabel:`Configuration` tab, enable :guilabel:`Allow Express Checkout`, and click
|
||||
:guilabel:`Enable Apple Pay`.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Express checkout and Google Pay <payment_providers/express_checkout>`
|
||||
- :doc:`../payment_providers`
|
||||
- :doc:`Use Stripe as a payment terminal in Point of Sale <../../sales/point_of_sale/payment_methods/terminals/stripe>`
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,47 @@
|
||||
======
|
||||
Xendit
|
||||
======
|
||||
|
||||
`Xendit <https://www.xendit.co>`_ is an Indonesian-based payment solution provider that covers
|
||||
several Southeast Asian countries. It allows businesses to accept credit cards as well as several
|
||||
local payment methods.
|
||||
|
||||
.. _payment_providers/xendit/configure_dashboard:
|
||||
|
||||
Configuration on the Xendit Dashboard
|
||||
=====================================
|
||||
|
||||
#. Create a Xendit account if necessary and log in to the `Xendit Dashboard
|
||||
<https://dashboard.xendit.co>`_.
|
||||
#. Check your account mode in the top left corner of the page. Use the :guilabel:`Test Mode` to try
|
||||
the integration without charging your customers. Switch to :guilabel:`Live Mode` once you are
|
||||
ready to accept payments.
|
||||
#. Navigate to :menuselection:`Configuration: Settings` in the left part of the application page.
|
||||
In the :guilabel:`Developers` section, click
|
||||
`API Keys <https://dashboard.xendit.co/settings/developers#api-keys>`_.
|
||||
#. Click :guilabel:`Generate Secret Key`. In the popup box, enter any :guilabel:`API key name`,
|
||||
select :guilabel:`Write` for the :guilabel:`Money-in Products` permission and :guilabel:`None`
|
||||
for all other permissions then click :guilabel:`Generate key`.
|
||||
#. Confirm your password to display your API key. Copy or download the key and **save
|
||||
this information securely for later**. This is the only time the API key can be viewed or
|
||||
downloaded.
|
||||
#. Once completed, scroll down the page to the
|
||||
`Webhooks <https://dashboard.xendit.co/settings/developers#webhooks>`_ section to generate
|
||||
the webhook token.
|
||||
#. Under :guilabel:`Webhook verification token`, click :guilabel:`View Webhook Verification Token`,
|
||||
then confirm your password to display the token. Save it for later.
|
||||
#. In the :guilabel:`Webhook URL` section, enter your Odoo database URL (e.g.,
|
||||
`https://example.odoo.com`) in the field :guilabel:`Invoices paid` and click the
|
||||
:guilabel:`Test and save` button next to it.
|
||||
|
||||
Configuration on Odoo
|
||||
=====================
|
||||
|
||||
#. :ref:`Navigate to the payment provider Xendit <payment_providers/add_new>` and change its state
|
||||
to :guilabel:`Enabled`.
|
||||
#. Fill in the :guilabel:`Secret Key` and :guilabel:`Webhook Token` fields with the
|
||||
information saved at the step :ref:`payment_providers/xendit/configure_dashboard`.
|
||||
#. Configure the rest of the options to your liking.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../payment_providers`
|
||||
@@ -100,6 +100,14 @@ and the status of the signatures.
|
||||
.. image:: sign/signature-status.png
|
||||
:alt: Signature status
|
||||
|
||||
Validity dates and reminders
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can set **validity dates** on limited-duration agreement documents or send **automatic email
|
||||
reminders** to obtain signatures on time. From your dashboard, click :guilabel:`Send` on your
|
||||
document. On the new page, go to the :guilabel:`Options` section and fill in the :guilabel:`Valid
|
||||
Until` and :guilabel:`Reminder` fields.
|
||||
|
||||
Templates
|
||||
---------
|
||||
|
||||
@@ -120,9 +128,10 @@ immediately.
|
||||
|
||||
.. tip::
|
||||
You can **create a template from a document that was previously sent**. To do so, go to
|
||||
:menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on
|
||||
⋮, then :guilabel:`Template`. Click on ⋮ again, then :guilabel:`Restore`. Your document now
|
||||
appears on your dashboard next to your other templates.
|
||||
:menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on the
|
||||
the vertical ellipsis (:guilabel:`⋮`), then :guilabel:`Template`. Click on the vertical ellipsis
|
||||
(:guilabel:`⋮`) again, then :guilabel:`Restore`. Your document now appears on your dashboard next
|
||||
to your other templates.
|
||||
|
||||
.. _sign/role:
|
||||
|
||||
@@ -226,8 +235,8 @@ document.
|
||||
Tags
|
||||
====
|
||||
|
||||
Tags can be used to categorize and organize documents, allowing users to search for and filter
|
||||
documents based on specific criteria quickly.
|
||||
Tags can be used to categorize and organize documents, allowing users to quickly search for and
|
||||
filter documents based on specific criteria.
|
||||
|
||||
You can manage tags by going to :menuselection:`Configuration --> Tags`. To create a tag, click
|
||||
:guilabel:`New`. On the new line, add the :guilabel:`Tag Name` and select a :guilabel:`Color Index`
|
||||
@@ -235,23 +244,25 @@ for your tag.
|
||||
|
||||
To apply a tag to a document, use the dropdown list available in your document.
|
||||
|
||||
.. note::
|
||||
You can modify the tags of a signed document by going to :menuselection:`Documents --> All
|
||||
Documents`, clicking the vertical ellipsis (:guilabel:`⋮`) on your document, then
|
||||
:guilabel:`Details`, and modifying your :guilabel:`Tags`.
|
||||
|
||||
Sign order
|
||||
==========
|
||||
|
||||
When a document needs to be signed by different parties, the signing order lets you control the
|
||||
order in which your recipients receive it for signature.
|
||||
|
||||
By going to :menuselection:`Configuration --> Settings`, you can :guilabel:`Enable Signing Order`.
|
||||
After uploading a PDF with at least two signature fields with two different roles and clicking
|
||||
:guilabel:`Send`, toggle the :guilabel:`Specify Signing Order` button and search for the signer's
|
||||
name or email information to add them. You can decide on the signing order by typing **1** or **2**
|
||||
in the first column.
|
||||
|
||||
Each recipient receives the signature request notification only once the previous recipient has
|
||||
completed their action.
|
||||
|
||||
Add at least two :guilabel:`Signature` fields with different roles to your document. Click
|
||||
:guilabel:`Send`, go to the :guilabel:`Options` tab, and tick the :guilabel:`Specify signing order`
|
||||
box.
|
||||
|
||||
Add the signer's :guilabel:`Name or email` information. You can decide on the :guilabel:`Sign Order`
|
||||
by typing :guilabel:`1` or :guilabel:`2` in the :guilabel:`Sign Order` column.
|
||||
|
||||
.. seealso::
|
||||
`Odoo Quick Tips: Sign order [video] <https://www.youtube.com/watch?v=2KUq7RPt1cU/>`_
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ Miscellaneous
|
||||
general/reporting
|
||||
general/email_communication
|
||||
general/voip
|
||||
general/geolocation
|
||||
general/digest_emails
|
||||
general/in_app_purchase
|
||||
general/developer_mode
|
||||
|
||||
@@ -2,43 +2,54 @@
|
||||
Sign in with LDAP
|
||||
=================
|
||||
|
||||
- Install the LDAP module in General Settings.
|
||||
- Install the Lightweight Directory Access Protocol (LDAP) module in General Settings.
|
||||
|
||||
- Click on **Create** in Setup your LDAP Server.
|
||||
- Click on **Create** in Setup the :abbr:`LDAP (Lightweight Directory Access Protocol)` Server.
|
||||
|
||||
.. image:: ldap/ldap01.png
|
||||
:align: center
|
||||
:alt: LDAP Authentication checkbox highlighted in the integrations settings on Odoo.
|
||||
|
||||
.. image:: ldap/ldap02.png
|
||||
:align: center
|
||||
:alt: Create highlighted in the LDAP server settings.
|
||||
|
||||
- Choose the company about to use the LDAP.
|
||||
- Choose the company using the LDAP.
|
||||
|
||||
.. image:: ldap/ldap03.png
|
||||
:align: center
|
||||
:alt: Select the company drop-down menu highlighted in LDAP setup.
|
||||
|
||||
- In **Server Information**, enter the IP address of your server and the port it listens to.
|
||||
- In **Server Information**, enter the IP address of the server and the port it listens to.
|
||||
|
||||
- Tick **User TLS** if your server is compatible.
|
||||
- Tick **Use TLS** if the server is compatible.
|
||||
|
||||
.. image:: ldap/ldap04.png
|
||||
:align: center
|
||||
:alt: LDAP server settings highlighted in LDAP server setup on Odoo.
|
||||
|
||||
- In **Login Information**, enter ID and password of the account used to query the server. If left empty, the server will be queried anonymously.
|
||||
- In **Login Information**, enter ID and password of the account used to query the server. If left
|
||||
empty, the server queries anonymously.
|
||||
|
||||
.. image:: ldap/ldap05.png
|
||||
:align: center
|
||||
:alt: Login information highlighted in LDAP server setup on Odoo.
|
||||
|
||||
- In **Process Parameter**, enter the domain name of your LDAP server in LDAP nomenclature (e.g. ``dc=example,dc=com``).
|
||||
- In **Process Parameter**, enter the domain name of the LDAP server in :abbr:`LDAP (Lightweight
|
||||
Directory Access Protocol)` nomenclature (e.g. ``dc=example,dc=com``).
|
||||
|
||||
- In **LDAP filter**, enter ``uid=%s``
|
||||
|
||||
.. image:: ldap/ldap06.png
|
||||
:align: center
|
||||
:alt: Process parameter highlighted in LDAP server setup on Odoo.
|
||||
|
||||
- In **User Information**, tick *Create User* if you want Odoo to create a User profile the first time someone log in with LDAP.
|
||||
- In **User Information**, tick *Create User* if Odoo should create a User profile the first time
|
||||
someone logs in with :abbr:`LDAP (Lightweight Directory Access Protocol)`.
|
||||
|
||||
- In **Template User**, indicate a template for the new profiles created. If left blanked, the admin profile will be used as template.
|
||||
- In **Template User**, indicate a template for the new profiles created. If left blanked, the admin
|
||||
profile will be used as template.
|
||||
|
||||
.. image:: ldap/ldap07.png
|
||||
:align: center
|
||||
:alt: User information highlighted on LDAP server setup on Odoo.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
.. _communication/emails_servers:
|
||||
|
||||
====================================================
|
||||
Send and receive emails in Odoo with an email server
|
||||
====================================================
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
===========
|
||||
Geolocation
|
||||
===========
|
||||
|
||||
You can locate contacts or places and generate routes on a map in Odoo.
|
||||
|
||||
.. image:: geolocation/contacts.png
|
||||
:alt: Map displaying a contact's location.
|
||||
|
||||
To use the feature, open the :guilabel:`Settings` app, and, under the :guilabel:`Integrations`,
|
||||
section, activate :guilabel:`Geo Localization`. Then, choose between using the OpenStreetMap or
|
||||
Google Places API.
|
||||
|
||||
**OpenStreetMap**
|
||||
|
||||
OpenStreetMap is a free, open geographic database updated and maintained by volunteers. To use it,
|
||||
select :guilabel:`Open Street Map`.
|
||||
|
||||
.. important::
|
||||
OpenStreetMap might not always be accurate. You can `join the OpenStreetMap community
|
||||
<https://www.openstreetmap.org/fixthemap>`_ to fix any issues encountered.
|
||||
|
||||
**Google Places API map**
|
||||
|
||||
The Google Places API map provides detailed info on places, businesses, and points of interest. It
|
||||
supports location-based features like search, navigation, and recommendations.
|
||||
|
||||
.. important::
|
||||
Using the Google Places API could require `payment to Google
|
||||
<https://mapsplatform.google.com/pricing/>`_.
|
||||
|
||||
To use it, select :guilabel:`Google Place Map` and enter your :ref:`API Key
|
||||
<address_autocomplete/generate_api_key>`.
|
||||
|
||||
.. image:: geolocation/google-places-api-key.png
|
||||
:alt: Google Places API key
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../applications/websites/website/configuration/address_autocomplete`
|
||||
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
@@ -1,59 +1,192 @@
|
||||
=====================
|
||||
In-App Purchase (IAP)
|
||||
In-app purchase (IAP)
|
||||
=====================
|
||||
|
||||
In-App Purchases (IAP) gives access to additional services through Odoo. For instance, it allows you
|
||||
to send SMS Text Messages or to send Invoices by post directly from your database.
|
||||
.. |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::
|
||||
Users with an Enterprise version of Odoo Online get free credits to test IAP features.
|
||||
|
||||
.. _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 provided 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.
|
||||
|
||||
For more information on every service currently available, 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:`📱 (phone) 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:
|
||||
|
||||
#. 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.
|
||||
#. Hover the mouse over the :guilabel:`Phone` or :guilabel:`Mobile` field, and a :guilabel:`📱
|
||||
(phone) SMS` icon appears to the right.
|
||||
#. Click the :guilabel:`📱 (phone) SMS` icon, and a :guilabel:`Send SMS Text Message` pop-up
|
||||
window appears.
|
||||
#. Type a message in the :guilabel:`Message` field of the :guilabel:`Send SMS Text Message`
|
||||
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 </applications/sales/crm/acquire_leads/lead_mining>`
|
||||
- :doc:`Enrich your contacts base with Partner Autocomplete
|
||||
</applications/sales/crm/optimize/partner_autocomplete>`
|
||||
- :doc:`SMS essentials </applications/marketing/sms_marketing/essentials/sms_essentials>`
|
||||
|
||||
.. _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
|
||||
</applications/marketing/sms_marketing/pricing/pricing_and_faq>` documentation.
|
||||
|
||||
.. _iap/buying_credits:
|
||||
|
||||
Buying Credits
|
||||
==============
|
||||
Buy credits
|
||||
-----------
|
||||
|
||||
Each IAP Service relies on prepaid credits to work and has its own pricing. To consult your current
|
||||
balance or to recharge your account, go to :menuselection:`Settings --> Odoo IAP --> View my
|
||||
Services`.
|
||||
If there are not enough credits to perform a task, the database automatically prompts the purchase
|
||||
of more credits.
|
||||
|
||||
.. image:: in_app_purchase/image1.png
|
||||
:align: center
|
||||
Users can check the current balance of credits for each service, and manually purchase more credits,
|
||||
by navigating to the :menuselection:`Settings app --> Search IAP --> View My Services`.
|
||||
|
||||
.. tip::
|
||||
If you are on Odoo Online and have the Enterprise version, you benefit from free credits to test our
|
||||
IAP features.
|
||||
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.
|
||||
|
||||
IAP accounts
|
||||
============
|
||||
Manually buy credits
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Credits to use IAP services are stored on IAP accounts, which are specific to each service.
|
||||
By default, IAP accounts are common to all companies, but can be restricted to specific
|
||||
ones. Activate the :ref:`developer mode <developer-mode>`, then go to :menuselection:`Technical
|
||||
Settings --> IAP Account`.
|
||||
To manually buy credits in Odoo, follow these steps:
|
||||
|
||||
.. image:: in_app_purchase/image2.png
|
||||
:align: center
|
||||
#. Go to the :menuselection:`Settings application`.
|
||||
#. Type `IAP` in the search bar.
|
||||
#. Click :guilabel:`View My Services`.
|
||||
|
||||
.. tip::
|
||||
An IAP account can be disabled by appending `+disabled` to its token.
|
||||
Reverting this change will re-enable the account.
|
||||
.. image:: in_app_purchase/view-services.png
|
||||
:align: center
|
||||
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
|
||||
|
||||
IAP Portal
|
||||
==========
|
||||
#. 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.
|
||||
|
||||
The IAP Portal is a platform regrouping your IAP Services. It is accessible from
|
||||
:menuselection:`Settings app --> Odoo IAP --> View my Services`. From there, you can view your current
|
||||
balance, recharge your credits and set a reminder when your balance falls below a threshold.
|
||||
.. image:: in_app_purchase/account-info.png
|
||||
:align: center
|
||||
:alt: The Account Information page for an IAP service showing the Buy Credit button.
|
||||
|
||||
.. image:: in_app_purchase/image3.png
|
||||
:align: center
|
||||
#. 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.
|
||||
|
||||
Get notified when credits are low
|
||||
=================================
|
||||
.. 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.
|
||||
|
||||
To be notified when it’s time to recharge your credits, you can go to your IAP Portal through
|
||||
:menuselection:`Settings app --> Odoo IAP --> View my Services`, unfold a service and check the
|
||||
Receive threshold warning option. Then, you can provide a minimum amount of credits and email
|
||||
addresses. Now, every time that the limit is reached, an automatic reminder will be sent by
|
||||
email!
|
||||
#. Once the transaction is complete, the credits are available for use in the database.
|
||||
|
||||
.. image:: in_app_purchase/image4.png
|
||||
:align: center
|
||||
.. _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`.
|
||||
#. Type `IAP` in the search bar.
|
||||
#. 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` box. Doing so reveals
|
||||
two fields on the form: :guilabel:`Threshold` and :guilabel:`Warning Email`.
|
||||
|
||||
.. image:: in_app_purchase/low-credits.png
|
||||
:align: center
|
||||
:alt: Odoo will send an email alert when credits for this service fall below the threshold.
|
||||
|
||||
#. 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 should receive 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`.
|
||||
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 37 KiB |