Compare commits

...

89 Commits

Author SHA1 Message Date
jero-odoo b742dd3950 [ADD] Barcode: Processing a transfer
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-02-12 08:13:38 -05:00
jero-odoo aa5d9911b3 [IMP] Inventory: Adjustments edit
closes odoo/documentation#12034

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

closes odoo/documentation#11999

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

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

Ref: odoo/enterprise#74097

task-4497749

closes odoo/documentation#12005

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

closes odoo/documentation#11923

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

closes odoo/documentation#11813

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

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

task-4546712

closes odoo/documentation#11954

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

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

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

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

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

This order of import should be followed while the import

closes odoo/documentation#11990

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

task - 3631616

closes odoo/documentation#11974

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

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

closes odoo/documentation#11823

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

closes odoo/documentation#11770

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Liz Bender (beli) <beli@odoo.com>
Co-authored-by: samueljlieber <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
2025-02-06 17:59:33 +00:00
dikd-odoo a94c8ed498 [IMP] sales: down payment intro
edits from FEKU

SALI edits

remove image

closes odoo/documentation#11943

Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
2025-02-06 06:30:20 +00:00
jero-odoo b9e82b8c29 [IMP] Calendar: Google integration update
closes odoo/documentation#11963

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: pabr-odoo <pabr@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-06 06:30:18 +00:00
“Chiara 7d4f6dc77a [ADD] accounting: einvoicing for america
closes odoo/documentation#11765

Signed-off-by: Chiara Prattico (chpr) <chpr@odoo.com>
2025-02-05 11:19:47 +00:00
Merel Geens (mege) 44db5c84b3 [FIX] administration: correct Fedora version
The Odoo 17 and 18 RPM builds target Fedora 38 instead of 36:

16: https://github.com/odoo/odoo/blob/16.0/setup/package.dffedora#L3
17: https://github.com/odoo/odoo/blob/17.0/setup/package.dffedora#L3
18: https://github.com/odoo/odoo/blob/18.0/setup/package.dffedora#L3

Note that both Fedora 36 and 38 are EOL:
https://docs.fedoraproject.org/en-US/releases/eol/

closes odoo/documentation#11950

X-original-commit: 24966a91c8
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2025-02-03 17:46:26 +00:00
mcsi-odoo a57baa8d09 [IMP] spreadsheet: remove default templates
task-4278043

closes odoo/documentation#11940

X-original-commit: 5cb47dcc92
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-02-03 11:42:29 +00:00
jero-odoo 968ca03d70 [IMP] inventory: Delivery Methods
closes odoo/documentation#11913

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-02-03 10:18:16 +00:00
benderliz 4aca6cd71e [IMP] Inventory: Consignment typo in 16.0
closes odoo/documentation#11894

X-original-commit: 38640aeb0e
Signed-off-by: Liz Bender (beli) <beli@odoo.com>
2025-02-03 10:18:13 +00:00
Odoo Translation Bot 4d3fafe972 [I18N] Update translation terms from Transifex 2025-02-02 02:44:15 +01:00
mcsi-odoo 66022fbb57 [IMP] studio: automated action send whatsapp
task-4442904

closes odoo/documentation#11926

X-original-commit: cafe8b3f4b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-01-31 17:51:01 +00:00
Audrey (auva) 7f711c6ef2 [IMP] iot: refactor and update configuration documentation
Restructure and update the iot documentation

closes odoo/documentation#11934

X-original-commit: a6dbcd0a9f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-31 17:50:51 +00:00
Donatienne (dopi) 6bf147384b [IMP] ecommerce: checkout
taskid-4392415

closes odoo/documentation#11635

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-31 09:12:40 +00:00
dikd-odoo 2f050805bb [IMP] sales: pricelists tabs
closes odoo/documentation#11918

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-30 23:40:12 +00:00
jero-odoo 00eb919fb4 [IMP] General: Email Server Subdomain Limitation
closes odoo/documentation#11905

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2025-01-30 02:09:47 +00:00
Tanya Bouman b8f2514f93 [FIX] mobile: SS0 -> SSO typo
closes odoo/documentation#11825

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-29 16:56:15 +00:00
samueljlieber 68d7b8ccc1 [IMP] sales: update simplified pricelist settings
closes odoo/documentation#11809

X-original-commit: a0c8570226
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
2025-01-29 13:44:02 +00:00
John Holton (hojo) 0fc08e02f8 [ADD] Manufacturing: Lots and serial numbers
closes odoo/documentation#11728

Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2025-01-29 13:43:42 +00:00
Tiffany Chang (tic) 4fc13ed595 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11903

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-01-29 07:11:45 +00:00
sjai-odoo eee06ac7c4 [ADD] integration: barcodelookup documentation
Task-4464181

closes odoo/documentation#11774

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-29 05:49:18 +00:00
Loredana Perazzo c792d379de [IMP] POS: move configuration in toctree
task-4512527

closes odoo/documentation#11877

X-original-commit: 92b968d337
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-01-28 15:43:09 +00:00
LoredanaLrpz 989f2faf9a [IMP] pos: resize & scale content (table and screenshots)
task-4521596

closes odoo/documentation#11897

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-01-28 08:45:13 +00:00
Erwin Zoer a9ff26efdd [FW][FIX] developer/howtos/upgrade_custom_db: fix typo
Changed the word devolopments to developments

closes odoo/documentation#11876

Forward-port-of: odoo/documentation#11864
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-27 21:04:54 +00:00
mcsi-odoo 6051f2f638 [IMP] accounting: ocr free iap test credits for enterprise users
task-4328876

closes odoo/documentation#11875

X-original-commit: 058e379a40
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-01-27 14:39:13 +00:00
Loredana Perazzo 565022703a [ADD] POS: how to configure and use the preparation display
task-3604858

closes odoo/documentation#11853

X-original-commit: 2eb1deaf11
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-01-27 09:28:05 +00:00
“Chiara 8b1f8e1fc6 [IMP] accounting: italian localization typo
closes odoo/documentation#11844

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-27 09:28:02 +00:00
mcsi-odoo f3d8007c29 [IMP] accounting: order of fiscal localizations updated in toc
task-4285498

closes odoo/documentation#11858

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-27 09:27:59 +00:00
sk-nada e241c7a088 [FIX] tutorials/server_framework_101: update link for example of list
previous link was for code that used tree in xml. The tree tag throws Traceback error in 18.0. This commit will provide the correct example with list tag instead of tree tag.

closes odoo/documentation#11865

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-27 07:58:48 +00:00
Odoo Translation Bot 8750d5f859 [I18N] Update translation terms from Transifex 2025-01-26 02:43:37 +01:00
Parish Bracha a541383a1d [IMP] Sales: Quotation Templates update
closes odoo/documentation#11787

Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2025-01-24 22:10:11 +00:00
jero-odoo 60a0d4cdb5 [IMP] Inventory: wave transfers 18
closes odoo/documentation#11761

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-01-24 15:41:07 +00:00
“Dallas” 88e1bee845 [IMP] accounting/bank: outstanding accounts
Update bank doc to better explain suspense and outstanding accounts and to explain that payments don't create journal entries without outstanding accounts.

task-3474209

closes odoo/documentation#11791

Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-01-24 11:04:32 +00:00
Doh (KIDO) 654970a436 [FIX] l10n_my: MyInvois credential update for preproduction
Despite registering ODOO S.A. as the name for both production and preproduction environment, MyInvois force changed pre-production to OXXX_XXXXO S.A. requiring an update on the credential for usage.

closes odoo/documentation#11818

X-original-commit: eba8e6028e
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Kim Dohyun (kido) <kido@odoo.com>
2025-01-24 05:39:17 +00:00
William Braeckman 0a329f11dc [IMP] developer/reference/cli: --limit-time-cron-conn
Document the newly created config option.

closes odoo/documentation#11835

See: https://github.com/odoo/odoo/pull/194141
X-original-commit: ea9c8bd807
Related: odoo/odoo#194937
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
2025-01-23 21:37:28 +00:00
jero-odoo 9917949408 [IMP] Inventory: Batch Picking 18
closes odoo/documentation#11748

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-01-23 20:06:39 +00:00
jero-odoo c4e0f35aa9 [IMP] Inventory: cluster picking
closes odoo/documentation#11753

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
2025-01-23 20:06:37 +00:00
benderliz 90048d2484 [IMP] Inventory: Rewrite aging report as stock valuation report
closes odoo/documentation#11720

Signed-off-by: Liz Bender (beli) <beli@odoo.com>
2025-01-23 18:42:31 +00:00
“Dallas” cc226a7e1d [IMP] l10n_spain: update FACe configuration
Update configration as the location of the config changed in 18.0.

task-4327068

closes odoo/documentation#11775

Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-01-23 08:44:10 +00:00
lase@odoo.com 9c5f9f7aa6 [IMP] marketing: match the Display Timezone description with tooltips
Issue:

The current descriptions and naming of the `Date` fields (`date_begin`,
`date_end`) and the `Timezone` field (`date_tz`) can be confusing in the
form view of the event model. Specifically:

The timezone used for converting the form dates to the database is
determined by the context and not by the `Timezone` field present on the
form. However, this `Timezone` field determines the timezone used
for displaying the event's date/time on the website. This change
clarifies the situation according to the update done in the community PR

opw-4323142

closes odoo/documentation#11790

X-original-commit: fe9d186b54
Related: odoo/odoo#194354
Signed-off-by: Lancelot Semal (lase) <lase@odoo.com>
2025-01-23 07:31:24 +00:00
Meet Jivani [MEJI] 8f77236070 [ADD] point_of_sale: documentation for urbanPiper Integration
In this commit:
- Added detailed documentation on configuring online food delivery using
UrbanPiper integration.
- Provides step-by-step guidance for setting up the system.

Task-4263288

closes odoo/documentation#11496

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
Co-authored-by: Meet Jivani <meji@odoo.com>
2025-01-23 01:29:09 +00:00
Antoine Vandevenne (anv) 39f6f220e1 [IMP] supported_versions: release saas-18.1
closes odoo/documentation#11803

X-original-commit: 9b7d3d559b
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-21 18:05:19 +00:00
dikd-odoo e6bc52d641 [IMP] sales: removing the warning message for Amazon connector
closes odoo/documentation#11773

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-21 15:36:39 +00:00
“Chiara 3ab129a370 [IMP] accounting: einvoicing by country mention
closes odoo/documentation#11752

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-20 16:40:29 +00:00
xpl-odoo d690755327 [IMP] database: update status of supported versions
task-4485068

closes odoo/documentation#11784

X-original-commit: 36d407830e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-20 15:00:27 +00:00
Odoo Translation Bot bf6fe2f147 [I18N] Update translation terms from Transifex 2025-01-19 02:41:33 +01:00
“Dallas” cc6306277b [FIX] accounting:update internal transfers doc to 18.0
Internal transfers are now handled via reconciliation model button instead of through payments. This PR moves the internal transfers documentation from the Payments section to the Bank section and updates it to reflect the process in 18.0.

task-4331744

closes odoo/documentation#11768

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-17 11:27:16 +00:00
xpl-odoo abdcb372ba [IMP] l10n: odoo 18 update of the german l10n
Based on information from CBE and PR #11417

closes odoo/documentation#11719

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-16 18:03:18 +00:00
jero-odoo dfe54bdce3 [IMP] General: Outbound email servers correction
closes odoo/documentation#11760

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-16 03:25:43 +00:00
fvz-odoo 2d721c04eb [IMP] accounting/l10n_uy: clarify onboarding
Currently, users are having a hard time setting up their Uruware account. With the improvement to the documentation we are adding clarifications to simplify the onboarding process as well as adding a see also section so users have more documentation and smart classes/eLearning available.

closes odoo/documentation#11756

X-original-commit: 2628303bc4
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
2025-01-16 01:53:20 +00:00
Florian Gilbert 40c830298c [IMP] account/bank: Consistent number for available banks
The aim of this commit is making sure that we have the same number of available banks.
 
no task id

closes odoo/documentation#11746

Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2025-01-14 13:46:27 +00:00
Zuzanna Luczynska b22893c1bd [ADD] project/dashboard: project dashboard
task-id 4384333

closes odoo/documentation#11743

X-original-commit: 37d9b31da5
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2025-01-13 14:36:18 +00:00
Odoo Translation Bot 3bb0b21494 [I18N] Update translation terms from Transifex 2025-01-12 02:42:32 +01:00
John Holton (hojo) 02bcc265fb [IMP] Inventory: add delivery slip setting to lots
closes odoo/documentation#11698

Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2025-01-11 11:07:02 +00:00
John Holton (hojo) 78b9c43030 [IMP] Inventory: add delivery slip setting to serial numbers
closes odoo/documentation#11697

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-11 09:45:40 +00:00
Aaron Bohy 04ac6de366 [IMP] javascript reference: document domain field options
Before this commit, options of the domain field weren't documented.
Now, they are.

closes odoo/documentation#11721

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2025-01-11 02:15:28 +00:00
jero-odoo 7c6aa7f2c4 [IMP] Helpdesk: Update SLAs
closes odoo/documentation#11691

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
2025-01-10 12:08:26 +00:00
jero-odoo b78d7b86e6 [IMP] Helpdesk: Helpcenter updates
closes odoo/documentation#11713

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-01-10 12:08:25 +00:00
emmi-odoo 983346ae6b [IMP] essentials/import data: add Import files section
task-4043639

closes odoo/documentation#11675

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-10 12:08:17 +00:00
Donatienne (dopi) 84abf415bc [IMP] ecommerce: delivery methods
taskid-4016678

closes odoo/documentation#11619

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-09 11:24:47 +00:00
Zuzanna Luczynska a37453b18f [IMP] project/tasks: correction in what triggers reccurence + icon
closes odoo/documentation#11704

Task-id: 3601222
X-original-commit: cb0cce2498
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2025-01-08 15:33:56 +00:00
Christoforus Surjoputro fc83a645cf [FIX] payment_providers/xendit: remove step to enable optional 3ds
Enabling optional 3DS should not part of the official step. This configuration
is specific to cards payment, by default should perform 3DS, and only eligible
merchant able to perform cards payment with optional 3DS enabled.

closes odoo/documentation#11712

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-08 11:54:12 +00:00
“Dallas” ef647fd809 [FIX] accounting/tax-return: fix tax return menu path
Fix the menu navigation path of the tax return and update for 18.0 UI

task-4424499

closes odoo/documentation#11686

X-original-commit: e85a95bdb2
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-01-07 17:42:43 +00:00
guillaume gallant (guga) d31f160707 [ADD] project: task dependencies
task-4413833

closes odoo/documentation#11667

X-original-commit: 6bbf94d00a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2025-01-07 08:44:59 +00:00
benderliz b6b6cf9de8 [FIX] Inventory: Fixing reordering rules navigation for 18.0
closes odoo/documentation#11614

Signed-off-by: Liz Bender (beli) <beli@odoo.com>
2025-01-07 00:34:16 +00:00
paan-odoo 38d6b71519 [ADD] point_of_sale: documentation for pos-based marketing
This PR adds the documentation needed to use pos-based marketing.

In this PR, we introduce configuration and flow related to Email
and WhatsApp marketing in Point of Sale from storing contact details
to sending emails and WhatsApp messages from the point of sale.

task-4053075

closes odoo/documentation#11625

X-original-commit: 5aa54d4234
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
Co-authored-by: Anantkumar Parmar <paan@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
2025-01-06 10:29:48 +00:00
Sylvain Francis 5042a4af90 [FIX] Egypt fiscal localizations: Update proxy install instructions
Since Odoo 16, to install the local proxy, users need to select the
"Odoo IoT" option install of the "Local Proxy Mode" to install the local
proxy.

This commit updates both the text and accompanying screenshot

closes odoo/documentation#11666

X-original-commit: beeeff9068
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Sylvain Francis (syf) <syf+odoo@odoo.com>
2025-01-06 10:29:46 +00:00
Felicious d7dcbff91f [IMP] inventory: add bpost link
closes odoo/documentation#11680

X-original-commit: e38438c0ae
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-01-06 08:03:33 +00:00
Odoo Translation Bot eaffb4d160 [I18N] Update translation terms from Transifex 2025-01-05 02:44:31 +01:00
jero-odoo 21eb260fc8 [IMP] Helpdesk: update basics 18
closes odoo/documentation#11591

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-01-04 06:28:06 +00:00
gmz-odoo bc2da4dd91 [IMP] accounting/l10n_pe: PLE 12.1 and PLE 13.1 inventory reports
Add new section for reports
Content based on V17
Images : [ADD]Inventory Reports: PLE 12.1 and PLE 13.1 - Images
Expected section to be added: [l10n_pe][USER DOC][ADD]Inventory Reports: PLE 12.1 and PLE 13.1

closes odoo/documentation#11694

X-original-commit: 1aac8f8dc6
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-03 15:08:01 +00:00
jero-odoo 5dea50eef0 [IMP] Helpdesk: receiving tickets
closes odoo/documentation#11613

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-02 16:40:00 +00:00
Tiffany Chang (tic) d4841aee90 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11660

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-12-31 16:47:48 +00:00
Felicious 80310b0e1c [ADD] inventory: compare packs and uom
closes odoo/documentation#11648

X-original-commit: 1ac6e5e975
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-12-31 10:30:54 +00:00
gmz-odoo 602d51c44b [IMP] accounting/l10n_pe: update GRE credentials section
closes odoo/documentation#11631

Context: after Odoo17 the menu changes on the settings from Accounting to Inventory, as this workflow is related to stock moves
X-original-commit: f3969af47e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Gabriela Enriquez Manzano (gmz) <gmz@odoo.com>
2024-12-30 19:34:15 +00:00
614 changed files with 308741 additions and 158258 deletions
+1
View File
@@ -231,6 +231,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-18.1': "Odoo Online",
'18.0': "Odoo 18",
'saas-17.4': "Odoo Online",
'saas-17.2': "Odoo Online",
+1 -1
View File
@@ -64,4 +64,4 @@ The Odoo mobile apps are available for download on the `Google Play Store
.. important::
The iOS app cannot be updated and will be deprecated at some point in the future.
While the store apps support multi-accounts, they are not compatible with SS0 authentication.
While the store apps support multi-accounts, they are not compatible with SSO authentication.
@@ -132,7 +132,7 @@ be downloaded from the `Odoo download page <https://www.odoo.com/page/download>`
.. group-tab:: Fedora
.. note::
Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 36.
Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 38.
Once downloaded, the package can be installed using the 'dnf' package manager:
+10 -4
View File
@@ -31,6 +31,12 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo SaaS 18.1
- |green|
- N/A
- N/A
- January 2025
-
* - **Odoo 18.0**
- |green|
- |green|
@@ -38,17 +44,17 @@ This matrix shows the support status of every version.
- October 2024
- October 2027 (planned)
* - Odoo SaaS 17.4
- |green|
- |red|
- N/A
- N/A
- July 2024
-
- October 2024
* - Odoo SaaS 17.2
- |green|
- |red|
- N/A
- N/A
- April 2024
-
- October 2024
* - **Odoo 17.0**
- |green|
- |green|
@@ -28,15 +28,13 @@ select a record, tick the checkbox next to the corresponding record. Finally, cl
then :guilabel:`Export`.
.. image:: export_import_data/list-view-export.png
:align: center
:alt: View of the different things to enable/click to export data.
When clicking on :guilabel:`Export`, an :guilabel:`Export Data` pop-over window appears, with
several options for the data to export:
.. image:: export_import_data/export-data-overview.png
:align: center
:alt: Overview of options to consider when exporting data in Odoo..
:alt: Overview of options to consider when exporting data in Odoo.
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
only shows the fields that can be imported. This is helpful in the case where the :ref:`existing
@@ -87,7 +85,6 @@ data into an Odoo database.
options: :guilabel:`Track history during import` and :guilabel:`Allow matching with subfields`.
.. image:: export_import_data/advanced-import.png
:align: center
:alt: Advanced import options when developer mode is activated.
If the model uses openchatter, the :guilabel:`Track history during import` option sets up
@@ -96,6 +93,8 @@ data into an Odoo database.
Should the :guilabel:`Allow matching with subfields` option be selected, then all subfields
within a field are used to match under the :guilabel:`Odoo Field` while importing.
.. _essentials/export_import_data/get-started:
Get started
-----------
@@ -103,30 +102,32 @@ Data can be imported on any Odoo business object using either Excel (`.xlsx`) or
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
journal entries, and orders.
Open the view of the object to which the data should be imported/populated, and click on
:menuselection:`⚙️ (Action) --> Import records`.
Open the view of the object to which the data should be imported/populated, click the :icon:`fa-cog`
(:guilabel:`gear`) icon and select :guilabel:`Import records`.
.. image:: export_import_data/import-button.png
:align: center
:alt: Action menu revealed with the import records option highlighted.
After clicking :guilabel:`Import records`, Odoo reveals a separate page with templates that can be
downloaded and populated with the company's own data. Such templates can be imported in one click,
since the data mapping is already done. To download a template click :guilabel:`Import Template for
Customers` at the center of the page.
Click :icon:`fa-download`:guilabel:`Import Template for Customers` at the center of the page to
download a :ref:`template <essentials/export_import_data/adapt-a-template>` and populate it with
the company's own data. Such templates can be imported in one click since the data mapping is
already preconfigured.
.. important::
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options. These options do **not** appear when importing the proprietary Excel file type (`.xls`,
`.xlsx`).
To upload the downloaded template or your own file, follow the next steps:
.. image:: export_import_data/formatting.png
:align: center
:alt: Formatting options presented when a CVS file is imported in Odoo.
#. Click :guilabel:`Upload Data File` and select the desired file.
#. Adjust the :guilabel:`Formatting` options as needed (for CSV files only).
#. Ensure all data in the :guilabel:`File Column` is correctly mapped to the appropriate
:guilabel:`Odoo Field` and free of errors.
#. (Optional) Click :guilabel:`Load Data File` to reload the same file or upload a different one.
#. Click :guilabel:`Test` to verify that the data is valid.
#. Click :guilabel:`Import`.
Make necessary adjustments to the *Formatting* options, and ensure all columns in the
:guilabel:`Odoo field` and :guilabel:`File Column` are free of errors. Finally, click
:guilabel:`Import` to import the data.
.. note::
The :guilabel:`Formatting` options do **not** appear when importing the proprietary Excel file
type (i.e., `.xls` or `.xlsx`).
.. _essentials/export_import_data/adapt-a-template:
Adapt a template
----------------
@@ -144,7 +145,6 @@ Once the template is downloaded, proceed to follow these steps:
(ID) column.
.. image:: export_import_data/dragdown.gif
:align: center
:alt: An animation of the mouse dragging down the ID column, so each record has a unique ID.
.. note::
@@ -153,7 +153,6 @@ Once the template is downloaded, proceed to follow these steps:
Search the drop-down menu for the corresponding field.
.. image:: export_import_data/field_list.png
:align: center
:alt: Drop-down menu expanded in the initial import screen on Odoo.
Then, use this field's label in the import file to ensure future imports are successful.
@@ -203,7 +202,6 @@ If this happens, check the :guilabel:`Show fields of relation fields (advanced)
complete list of fields becomes available for each column.
.. image:: export_import_data/field_list.png
:align: center
:alt: Searching for the field to match the tax column.
Change data import format
@@ -401,6 +399,33 @@ respective contacts:
- :download:`Customers and their respective contacts
<export_import_data/o2m_customers_contacts.csv>`
Import image files
------------------
To import image files along with the :ref:`uploaded <essentials/export_import_data/get-started>`
CSV or Excel file, follow the next steps:
#. Add the image file names to the relevant :guilabel:`Image` column in the data file.
#. :ref:`Upload the data file <essentials/export_import_data/get-started>` or reload it by
clicking :guilabel:`Load Data File`.
#. Click :guilabel:`Upload your files` under the :guilabel:`Files to import` section.
#. Select the relevant image files. The number of files selected appears next to the button.
#. Click :guilabel:`Test` to verify that all data is valid.
#. Click :guilabel:`Import`. During the import process, Odoo performs a file check to automatically
link the uploaded images to the imported data file. If there is no match, the data file is
imported without any image.
.. note::
- The :guilabel:`Files to import` section is enabled if your product template has an
:guilabel:`Image` column with all fields populated.
- The image file names in the data file must correspond to the uploaded image files.
- When importing a large number of images, you can specify the maximum batch size in megabytes
and set a delay to prevent the system from becoming overloaded. To do so, :doc:`enable the
developer mode <../general/developer_mode>` and fill in the :guilabel:`Max size per
batch` and the :guilabel:`Delay after each batch` fields in the :guilabel:`Files to import`
section. By default, the delay meets the RPC/API call limit defined in the `Odoo Cloud -
Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_.
Import records several times
----------------------------
@@ -4,7 +4,7 @@
Bank and cash accounts
======================
You can manage as many bank or cash accounts as needed on your database. Configuring them well
You can manage as many bank or cash accounts as needed on your database. Configuring them correctly
allows you to have all your banking data up-to-date and ready for :doc:`reconciliation
<bank/reconciliation>` with your journal entries.
@@ -21,22 +21,22 @@ which include action buttons.
.. image:: bank/card.png
:alt: Bank journals are displayed on the Accounting Dashboard and contain action buttons
.. _bank_accounts/manage:
.. _accounting/bank/manage:
Manage your bank and cash accounts
==================================
Manage bank and cash accounts
=============================
Connect your bank for automatic synchronization
-----------------------------------------------
Connect a bank for automatic synchronization
--------------------------------------------
To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration
--> Banks: Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and
follow the instructions.
--> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the
instructions.
.. seealso::
:doc:`bank/bank_synchronization`
.. _bank_accounts/create:
.. _accounting/bank/create:
Create a bank account
---------------------
@@ -44,8 +44,9 @@ Create a bank account
If your banking institution is not available in Odoo, or if you don't want to connect your bank
account to your database, you can configure your bank account manually.
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Banks:
Add a Bank Account`, click on :guilabel:`Create it` (at the bottom right), and fill out the form.
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank
Account`, click on :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
information, and click :guilabel:`Create`.
.. note::
- Odoo automatically detects the bank account type (e.g., IBAN) and enables some features
@@ -61,7 +62,7 @@ To create a new cash journal, go to :menuselection:`Accounting --> Configuration
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
For more information on the accounting information fields, read the
:ref:`bank_accounts/configuration` section of this page.
:ref:`accounting/bank/configuration` section of this page.
.. note::
A default cash journal is available and can be used straight away. You can review it by going to
@@ -73,7 +74,7 @@ Edit an existing bank or cash journal
To edit an existing bank journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
Journals` and select the journal you want to modify.
.. _bank_accounts/configuration:
.. _accounting/bank/configuration:
Configuration
=============
@@ -86,14 +87,23 @@ You can edit the accounting information and bank account number according to you
.. seealso::
- :doc:`get_started/multi_currency`
- :doc:`bank/transactions`
- `Bank configuration <https://www.youtube.com/watch?v=tVhhXw-VnGE>`_
.. _bank_accounts/suspense:
.. _accounting/bank/suspense:
Suspense account
----------------
Bank statement transactions are posted on the :guilabel:`Suspense Account` until the final
reconciliation allows finding the right account.
Bank statement transactions are posted on the suspense account until they are reconciled. At any
moment, the suspense account's balance in the general ledger shows the balance of transactions that
have not yet been reconciled.
.. note::
When a bank transaction is reconciled, the journal entry is modified to replace the bank suspense
account with the account of the journal item it is reconciled with. This account is usually the
:ref:`outstanding receipts or payments account <accounting/bank/outstanding-accounts>` if
reconciling with a registered payment or the account receivable or payable if reconciling with
an invoice or bill directly.
Profit and loss accounts
------------------------
@@ -105,16 +115,18 @@ register a loss when the ending balance of a cash register differs from what the
Currency
--------
You can edit the currency used to enter the statements.
You can edit the currency used to enter the transactions.
.. seealso::
:doc:`get_started/multi_currency`
.. _accounting/bank/account-number:
Account number
--------------
If you need to **edit your bank account details**, click on the external link arrow next to your
:guilabel:`Account Number`. On the new page, click on the external link arrow next to your
:guilabel:`Account Number`. On the account page, click on the external link arrow next to your
:guilabel:`Bank` and update your bank information accordingly. These details are used when
registering payments.
@@ -124,12 +136,13 @@ registering payments.
Bank feeds
----------
:guilabel:`Bank Feeds` defines how the bank statements are registered. Three options are available:
:guilabel:`Bank Feeds` defines how the bank transactions are registered. Three options are
available:
- :guilabel:`Undefined yet`, which should be selected when you dont know yet if you will
synchronize your bank account with your database or not.
- :guilabel:`Import (CAMT, CODA, CSV, OFX, QIF)`, which should be selected if you want to import
your bank statement using a different format.
your bank statements and transactions using a different format.
- :guilabel:`Automated Bank Synchronization`, which should be selected if your bank is synchronized
with your database.
@@ -137,53 +150,47 @@ Bank feeds
- :doc:`bank/bank_synchronization`
- :doc:`bank/transactions`
.. _bank/outstanding-accounts:
.. _accounting/bank/outstanding-accounts:
Outstanding accounts
====================
By default, payments are registered through transitory accounts named **outstanding accounts**,
before being recorded in your bank account.
By default, payments in Odoo do not create journal entries, but they can easily be configured to
create journal entries using **outstanding accounts**.
- An **outstanding payments account** is where outgoing payments are posted until they are linked
with a withdrawal from your bank statement.
- An **outstanding receipts account** is where incoming payments are posted until they are linked
with a deposit from your bank statement.
with incoming bank transactions.
- An **outstanding payments account** is where outgoing payments are posted until they are linked
with outgoing bank transactions.
These accounts should be of :ref:`type <chart-of-account/type>` :guilabel:`Current Assets`.
These accounts are usually of :ref:`type <chart-of-account/type>` :guilabel:`Current Assets` and
:guilabel:`Current Liabilities`.
Payments that are registered in Odoo are posted to the outstanding receipts and outstanding accounts
until they are reconciled. At any moment, the outstanding receipts account's balance in the general
ledger shows the balance of registered incoming payments that have not yet been reconciled, and the
outstanding payments account's balance in the general ledger shows the balance of registered
outgoing payments that have not yet been reconciled.
Bank and cash journal configuration
-----------------------------------
To configure payments to create journal entries, set outstanding accounts for the journal's payment
methods. This can be done for any journal with the :ref:`type <chart-of-account/type>`
:guilabel:`Bank` or :guilabel:`Cash`.
To configure the outstanding accounts for a journal's payment methods, first go to
:menuselection:`Accounting --> Configuration --> Journals` and select a bank or cash journal. In the
:guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs, set :guilabel:`Outstanding
Receipts accounts` and :guilabel:`Outstanding Payments accounts` for each payment method that you
want to create journal entries.
.. note::
The movement from an outstanding account to a bank account is done automatically when you
reconcile the bank account with a bank statement.
Default accounts configuration
------------------------------
The outstanding accounts are defined by default. If necessary, you can update them by going to
:menuselection:`Accounting --> Configuration --> Settings --> Default Accounts` and update your
:guilabel:`Outstanding Receipts Account` and :guilabel:`Outstanding Payments Account`.
Bank and cash journals configuration
------------------------------------
You can also set specific outstanding accounts for any journal with the :ref:`type
<chart-of-account/type>` :guilabel:`Bank` or :guilabel:`Cash`.
From your :guilabel:`Accounting Dashboard`, click on the menu selection ⋮ of the journal you want to
configure, and click on :guilabel:`Configuration`, then open the :guilabel:`Incoming/Outgoing
Payments` tab. To display the outstanding accounts column, click on the toggle button and check the
:guilabel:`Outstanding Receipts/Payments accounts`, then update the account.
.. image:: bank/toggle-button.png
:align: center
:alt: Select the toggle button and click on outstanding Accounts
.. note::
- If you do not specify an outstanding payments account or an outstanding receipts account for a
specific journal, Odoo uses the default outstanding accounts.
- If your main bank account is added as an outstanding receipts account or outstanding payments
account, when a payment is registered, the invoice or bill's status is directly set to
:guilabel:`Paid`.
- If the main bank account of the journal is added as an outstanding receipts account or
outstanding payments account, when a payment is registered, the invoice or bill's status is
directly set to :guilabel:`Paid`.
- If the outstanding receipts or outstanding payments account for a payment method is left blank,
registering a payment with that payment method will not create any journal entry.
.. toctree::
:titlesonly:
@@ -192,5 +199,6 @@ Payments` tab. To display the outstanding accounts column, click on the toggle b
bank/transactions
bank/reconciliation
bank/reconciliation_models
bank/internal_transfers
bank/foreign_currency
bank/loans
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 25 KiB

@@ -11,7 +11,7 @@ To check if your bank is compatible with Odoo, go to `Odoo Accounting Features
<https://www.odoo.com/page/accounting-features>`_, and click on
:guilabel:`See list of supported institutions`.
Odoo supports more than 25,000 institutions around the world.
Odoo supports more than 26,000 institutions around the world.
To connect to the banks, Odoo uses multiple web-services:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,71 @@
==================
Internal transfers
==================
Internal money transfers can be handled in Odoo. At least two bank or cash accounts are needed to
make internal transfers.
.. seealso::
:ref:`How to add an additional bank account <accounting/bank/create>`
Configuration
=============
An internal transfer account is automatically created on your database based on your company's
:doc:`localization <../../fiscal_localizations>` and depending on your countrys 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
======================================================
When money is transferred from one bank or cash account to another, that amount appears as two
transactions on the corresponding journals, whether the transactions are created manually, via
import, or via :doc:`bank synchronization <bank_synchronization>`. When reconciling the transaction,
select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconciliation_models>`
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
Transfer` account.
.. tip::
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
the payment and the incoming transaction on the journal that receives the payment.
.. example::
Take, for example, a transfer of $1000 from Bank A to Bank B:
- Bank journal (Bank A)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Bank A account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
- Bank journal (Bank B)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Bank B account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
.. seealso::
:doc:`reconciliation`
:doc:`reconciliation_models`
@@ -44,22 +44,31 @@ goods and services. Make sure the following fields are appropriately completed:
upon confirmation.
- :guilabel:`Due Date` or :doc:`payment terms <customer_invoices/payment_terms>`: To specify when
the customer has to pay the invoice.
- :guilabel:`Journal`: Is automatically set and can be changed if needed.
- :doc:`Currency <get_started/multi_currency>`
- :guilabel:`Product`: Click :guilabel:`Add a line` to add a product.
- :guilabel:`Journal`: Automatically set and can be changed if needed.
- :doc:`Currency <get_started/multi_currency>`. If the invoice's currency differs from the
company's currency, the currency exchange rate is automatically displayed.
In the :guilabel:`Invoice Lines` tab:
- :guilabel:`Product`: Click :guilabel:`Add a line`, then search for and select the product.
- :guilabel:`Quantity`
- :guilabel:`Price`
- :doc:`Taxes <taxes>` (if applicable)
To access the product catalog and view all items in an organized display, click :doc:`Catalog
</applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/product_catalog>`.
When the products and quantities are selected, click :guilabel:`Back to Invoice` to return to the
invoice; the selected catalog items will appear in the invoice lines.
.. tip::
To display the total amount of the invoice in words, go to :menuselection:`Accounting -->
Configuration --> Settings` and activate the :guilabel:`Total amount of invoice in letters`
option.
The :guilabel:`Journal Items` tab displays the accounting entries created.
Additional invoice information such as the :guilabel:`Customer Reference`, :doc:`Fiscal Positions
<taxes/fiscal_positions>`, :doc:`Incoterms <customer_invoices/incoterms>`, and more can be added or
modified in the :guilabel:`Other Info` tab.
The :guilabel:`Journal Items` tab displays the accounting entries created. Additional invoice
information such as the :guilabel:`Customer Reference`, :guilabel:`Payment Reference`, :doc:`Fiscal
Positions <taxes/fiscal_positions>`, :doc:`Incoterms <customer_invoices/incoterms>`, and more can be
added or modified in the :guilabel:`Other Info` tab.
.. note::
Odoo initially creates invoices in :guilabel:`Draft` status. Draft invoices have no accounting
@@ -73,9 +82,9 @@ modified in the :guilabel:`Other Info` tab.
Invoice confirmation
====================
Click :guilabel:`Confirm` when the document is completed. The document's status changes to
Click :guilabel:`Confirm` when the invoice is completed. The invoice's status changes to
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
confirmation, Odoo assigns each document a unique number from a defined
confirmation, Odoo assigns each invoice a unique number from a defined
:ref:`sequence <accounting/invoice/sequence>`.
.. note::
@@ -89,16 +98,56 @@ confirmation, Odoo assigns each document a unique number from a defined
Invoice sending
===============
To send the invoice to the customer, click :guilabel:`Send & Print`. A :guilabel:`Configure your
document layout` pop-up window will appear if a :ref:`default invoice layout
<studio/pdf-reports/default-layout>` hasn't been customized. Then, select how to send this invoice
to the customer in the :guilabel:`Send` window.
To set a preferred :guilabel:`Invoice sending` method for a customer, go to
:menuselection:`Accounting --> Customers --> Customers` and select the customer. In the
:guilabel:`Accounting` tab of the contact form, select the preferred :guilabel:`Invoice sending`
method in the :guilabel:`Customer Invoices` section.
To send and print multiple invoices, go to :menuselection:`Accounting --> Customers --> Invoices`
and select them. Then click the :icon:`fa-cog` :guilabel:`Actions` menu and select
:guilabel:`Send & Print`. A banner will appear on the selected invoices to indicate they are part of
an ongoing send and print batch. This helps prevent the process from being triggered manually again,
as it may take some time to complete for exceptionally large batches.
.. note::
Sending letters in Odoo requires :doc:`In-App Purchase (IAP) <../../essentials/in_app_purchase>`
credit or tokens.
To send the invoice to the customer, navigate back to the invoice record and follow these steps:
#. Click :guilabel:`Print & Send`.
#. If the :ref:`default invoice layout <studio/pdf-reports/default-layout>` has not been customized
yet, a :guilabel:`Configure your document layout` pop-up window appears. Configure the layout and
click :guilabel:`Continue`.
.. note::
- The document layout can be changed at any time in the general settings.
- To add a QR code for banking app payments to the invoice, enable the :guilabel:`QR Code`
option in the :guilabel:`Configure Your Document Layout` window. To modify this option, go
to :menuselection:`Accounting --> Configuration --> Settings`, scroll down to the
:guilabel:`Customer Payments` section, and enable/disable the :guilabel:`QR Codes` option.
#. In the :guilabel:`Print & Send` window:
- If a preferred :guilabel:`Invoice sending` method was set in the contact form, it is selected
by default. Select another one if needed.
- If no preferred :guilabel:`Invoice sending` method was set in the contact form, select the
method to use for sending the invoice to the customer.
#. Click :guilabel:`Print & Send` if the :guilabel:`by Email` option is selected, or click
:guilabel:`Print`.
.. _accounting/invoice/sending-multiple-invoices:
Sending multiple invoices
-------------------------
To send and print multiple invoices, go to :menuselection:`Accounting --> Customers --> Invoices`,
select them in the :guilabel:`Invoices` list view and click :guilabel:`Print & Send`. The
:guilabel:`Print & Send` window displays the selected invoice sending methods based on the preferred
method set.
A banner is added to the selected invoices to indicate they are part of an ongoing send and print
batch. This helps prevent the process from being triggered manually again, as it may take some time
to complete for exceptionally large batches.
To check all invoices that have not yet been sent, go to :menuselection:`Accounting --> Customers
--> Invoices`. In the :guilabel:`Invoices` list view, click into the search bar and filter on
:guilabel:`Not Sent`.
.. _accounting/invoice/paymentandreconciliation:
@@ -128,11 +177,11 @@ same customer, the actions are performed on the most overdue invoice.
Sequence
========
The sequence that Odoo assigns to each document is a unique number made up of a prefix and a number.
The prefix combines the journal code and the entry date and is used to group entries by period. The
number is unique for each period and is used to identify the entry. The default sequence on customer
invoices is INV/YYYY/number. In some specific cases,
:ref:`resequencing <accounting/invoice/resequencing>` invoices might be necessary.
Odoo assigns each document a unique sequence made up of a prefix and a number. The prefix combines
the journal code and the entry date and groups entries by period. The number is unique for each
period and is used to identify the entry. The default sequence on customer invoices is
INV/YYYY/number. In some specific cases, :ref:`resequencing <accounting/invoice/resequencing>`
invoices might be necessary.
.. _accounting/invoice/resequencing:
@@ -15,10 +15,15 @@ one of the application of EDI.
Odoo supports e-invoicing in many countries. Refer to the country's page for more details:
- :doc:`Argentina <electronic_invoicing/argentina>`
- :doc:`Austria <electronic_invoicing/austria>`
- :doc:`Belgium <electronic_invoicing/belgium>`
- :doc:`Brazil <electronic_invoicing/brazil>`
- :doc:`Chile <electronic_invoicing/chile>`
- :doc:`Colombia <electronic_invoicing/colombia>`
- :doc:`Croatia <electronic_invoicing/croatia>`
- :doc:`Denmark <electronic_invoicing/denmark>`
- :doc:`Ecuador <electronic_invoicing/ecuador>`
- :doc:`Estonia <electronic_invoicing/estonia>`
- :doc:`Finland <electronic_invoicing/finland>`
- :doc:`France <electronic_invoicing/france>`
@@ -29,14 +34,17 @@ Odoo supports e-invoicing in many countries. Refer to the country's page for mor
- :doc:`Latvia <electronic_invoicing/latvia>`
- :doc:`Lithuania <electronic_invoicing/lithuania>`
- :doc:`Luxembourg <electronic_invoicing/luxembourg>`
- :doc:`Mexico <electronic_invoicing/mexico>`
- :doc:`Netherlands <electronic_invoicing/netherlands>`
- :doc:`Norway <electronic_invoicing/norway>`
- :doc:`Peru <electronic_invoicing/peru>`
- :doc:`Poland <electronic_invoicing/poland>`
- :doc:`Portugal <electronic_invoicing/portugal>`
- :doc:`Romania <electronic_invoicing/romania>`
- :doc:`Slovenia <electronic_invoicing/slovenia>`
- :doc:`Spain <electronic_invoicing/spain>`
- :doc:`Spain - Basque Country <electronic_invoicing/basque_country>`
- :doc:`Uruguay <electronic_invoicing/uruguay>`
.. seealso::
:doc:`Fiscal localizations documentation <../../fiscal_localizations>`
@@ -0,0 +1,54 @@
:orphan:
======================================
Odoo electronic invoicing in Argentina
======================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Argentina's regulatory standards and compatible with the requirements set
forth by the `Administración Federal de Ingresos Públicos (AFIP) <https://www.afip.gob.ar/>`_.
Legal framework for e-invoicing in Argentina
============================================
In Argentina, e-invoicing is regulated by the :abbr:`AFIP (Administración Federal de Ingresos
Públicos)` and is mandatory for most businesses to ensure tax compliance and transparency. The
primary regulations governing e-invoicing include:
- `General Resolution No. 4290/2018 <https://biblioteca.afip.gob.ar/search/query/norma.aspx?p=t:RAG|n:4290|o:3|a:2018|f:02/08/2018>`_
which establishes the mandatory use of electronic invoices for specific economic activities and
turnover thresholds.
- Fiscal code regulations: Requires electronic invoices for all VAT-registered businesses, including
B2B, :abbr:`B2G (business-to-government)`, and B2C transactions.
- Implementation of :abbr:`CAE (Código de Autorización Electrónico)`: Every electronic invoice must
include a :abbr:`CAE (Código de Autorización Electrónico)` issued by the :abbr:`AFIP
(Administración Federal de Ingresos Públicos)`, ensuring its validity and authenticity.
Compliance with Argentinian e-invoicing regulations
===================================================
Odoo Invoicing simplifies the process of adhering to Argentina's e-invoicing regulations, offering
features designed to ensure compliance:
- **Supported formats**: Odoo supports Argentina's authorized e-invoice formats, including :abbr:`FE
(Factura Electrónica)` with :abbr:`AFIP (Administración Federal de Ingresos Públicos)`-compliant
digital validation, XML with :abbr:`CAE (Código de Autorización Electrónico)` authorization for
real-time integration with :abbr:`AFIP (Administración Federal de Ingresos Públicos)`, and
digitally signed PDF invoices featuring :abbr:`CAE (Código de Autorización Electrónico)` and
QR codes for secure validation.
- **Secure storage and retrieval**: Complying with Argentinas ten-year storage requirement, Odoo
provides tamper-proof archiving and easy retrieval for audits or tax inspections.
- **Automatic VAT calculation and reporting**: Odoo ensures compliance with Argentina's VAT
regulations by automatically calculating VAT, incorporating it into invoices, and adhering to
legal reporting requirements for accurate tax submissions.
.. seealso::
:doc:`Argentinian fiscal localization documentation <../../../fiscal_localizations/argentina>`
.. admonition:: Disclaimer
This page provides a general overview of Argentine e-invoicing laws and how Odoos invoicing
module supports compliance with AFIP regulations and the Fiscal Code. It is not intended as legal
advice. We recommend consulting with a tax advisor or legal professional familiar with
Argentinian e-invoicing regulations to ensure compliance tailored to your specific business
needs.
@@ -0,0 +1,53 @@
:orphan:
===================================
Odoo electronic invoicing in Brazil
===================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Brazil's regulatory standards and compatible with the requirements set
forth by the `Secretaria da Fazenda (SEFAZ) <https://www.gov.br/receitafederal/pt-br>`_.
Legal framework for e-invoicing in Brazil
=========================================
In Brazil, e-invoicing is highly regulated and mandatory for most businesses to ensure tax
compliance and transparency. The key regulations governing e-invoicing include:
- :abbr:`NF-e (Nota Fiscal Eletrônica)`: A mandatory e-invoice for goods and services used in B2B
and :abbr:`B2G (business-to-government)` transactions.
- :abbr:`CT-e (Conhecimento de Transporte Eletrônico)`: Specific to freight and logistics services.
- :abbr:`NFS-e (Nota Fiscal de Serviços Eletrônica)`: Issued for service-based transactions, with
implementation varying by municipality.
- Integration with :abbr:`SEFAZ (Secretaria da Fazenda)`: Every electronic invoice must be
authorized by :abbr:`SEFAZ (Secretaria da Fazenda)` and issued with a unique authorization code
(Autorização de Uso).
Compliance with Brazilian e-invoicing regulations
=================================================
Odoo Invoicing simplifies the process of adhering to Brazils complex e-invoicing regulations,
offering features designed to ensure compliance:
- **Supported formats**: Odoo supports Brazil's authorized e-invoice formats, including :abbr:`NF-e
(Nota Fiscal Eletrônica)` for goods and services compliant with :abbr:`SEFAZ (Secretaria da
Fazenda)`, :abbr:`NFS-e (Nota Fiscal de Serviços Eletrônica)` customizable for municipal
requirements, :abbr:`CT-e (Conhecimento de Transporte Eletrônico)` for logistics and
transportation, and digital PDF invoices with :abbr:`SEFAZ (Secretaria da Fazenda)` authorization
codes and QR codes.
- **Secure storage and retrieval**: Complying with Brazil's five-year storage requirement, Odoo
offers tamper-proof archiving for easy retrieval during audits or inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for ICMS, IPI, and
ISS, ensuring compliance with regional tax rules and generating reports compatible with
:abbr:`SEFAZ (Secretaria da Fazenda)` and municipal requirements.
.. seealso::
:doc:`Brazilian fiscal localization documentation <../../../fiscal_localizations/brazil>`
.. admonition:: Disclaimer
This page provides a general overview of Brazilian e-invoicing laws and how Odoos invoicing
module supports compliance with :abbr:`SEFAZ (Secretaria da Fazenda)` regulations. It is not
intended as legal advice. We recommend consulting with a tax advisor or legal professional
familiar with Brazilian e-invoicing regulations to ensure compliance tailored to your specific
business needs.
@@ -0,0 +1,51 @@
:orphan:
==================================
Odoo electronic invoicing in Chile
==================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Chile's regulatory requirements and compatible with standards set by the
`Servicio de Impuestos Internos (SII) <https://homer.sii.cl/>`_.
Legal framework for e-invoicing in Chile
========================================
Chile is a pioneer in mandatory electronic invoicing, with comprehensive regulations to ensure tax
compliance and enhance transparency. Key elements include:
- **Factura Electrónica**: Mandatory for most businesses to issue invoices digitally through the
:abbr:`SII (Servicio de Impuestos Internos)`'s system.
- **Boleta Electrónica**: Required for retail transactions to report sales and tax information.
- **Guía de Despacho Electrónica**: Necessary for tracking the transport of goods.
- **Integration with SII**: All electronic invoices must be validated by the :abbr:`SII (Servicio
de Impuestos Internos)`, assigned a unique Folio authorization code, and reported for tax
purposes.
Compliance with Chilean e-invoicing regulations
===============================================
Odoo Invoicing simplifies adherence to Chile's e-invoicing requirements with features designed to
ensure compliance:
- **Supported formats**: Odoo supports all major Chilean e-invoice formats, including Factura
Electrónica, Boleta Electrónica, and Guía de Despacho Electrónica, ensuring :abbr:`SII (Servicio
de Impuestos Internos)` compatibility with digital validation and Folio assignment.
- **Integration with SII**: Odoo seamlessly connects with :abbr:`SII (Servicio de Impuestos
Internos)`'s systems, automating invoice submission and ensuring real-time validation for
compliant issuance.
- **Secure storage and retrieval**: Complying with Chile's mandatory storage period of six years,
Odoo provides tamper-proof archiving for invoices, enabling easy access for audits or tax
inspections.
- **Automatic tax calculation and reporting**: Odoo automates calculations for VAT (IVA) and other
applicable taxes, ensuring accurate invoicing and adherence to Chile's tax reporting standards.
.. seealso::
:doc:`Chilean fiscal localization documentation <../../../fiscal_localizations/chile>`
.. admonition:: Disclaimer
This page provides a general overview of Chilean e-invoicing laws and how Odoo supports
compliance with :abbr:`SII (Servicio de Impuestos Internos)` regulations. It is not intended as
legal or tax advice. We recommend consulting a tax advisor or legal professional familiar with
Chilean e-invoicing regulations to ensure compliance tailored to your specific business needs.
@@ -0,0 +1,51 @@
:orphan:
=====================================
Odoo electronic invoicing in Colombia
=====================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Colombia's regulatory requirements and fully compatible with the
guidelines established by the `Dirección de Impuestos y Aduanas Nacionales (DIAN)
<https://www.dian.gov.co/>`_.
Legal framework for e-invoicing in Colombia
===========================================
Colombia has implemented mandatory e-invoicing for most businesses to enhance tax compliance and
improve transparency. Key elements include:
- **Factura Electrónica**: Mandatory for B2B, B2C, and :abbr:`B2G (business-to-government)`
transactions, requiring compliance with :abbr:`DIAN (Dirección de Impuestos y Aduanas
Nacionales)`'s technical specifications.
- **Integration with DIAN**: All electronic invoices must be submitted to :abbr:`DIAN (Dirección de
Impuestos y Aduanas Nacionales)` for validation, where they are assigned a unique :abbr:`CUFE
(Código Único de Factura Electrónica)` authorization code.
- **Adoption of XML Standards**: Colombian e-invoicing uses XML as the standard format for
electronic invoices, ensuring interoperability and standardized reporting.
Compliance with Colombian e-invoicing regulations
=================================================
Odoo Invoicing simplifies the complexities of e-invoicing compliance in Colombia, offering tailored
features:
- **Supported formats**: Odoo supports Factura Electrónica in :abbr:`DIAN (Dirección de Impuestos y
Aduanas Nacionales)`-compliant XML formats, including legally required :abbr:`CUFE (Código Único
de Factura Electrónica)` codes and additional fields for B2B, B2C, and :abbr:`B2G
(business-to-government)` transactions.
- **Secure storage and retrieval**: In compliance with Colombia's six-year mandatory storage
requirement, Odoo provides tamper-proof invoice archiving, ensuring easy access for audits or
inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
other applicable taxes, ensuring accuracy and compliance with DIAN's tax reporting standards.
.. seealso::
:doc:`Colombian fiscal localization documentation <../../../fiscal_localizations/colombia>`
.. admonition:: Disclaimer
This page provides a general overview of Colombian e-invoicing regulations and how Odoo supports
compliance with DIAN requirements. It is not intended as legal or tax advice. We recommend
consulting with a tax advisor or legal professional familiar with Colombian e-invoicing
regulations to ensure compliance tailored to your specific business needs.
@@ -0,0 +1,50 @@
:orphan:
====================================
Odoo electronic invoicing in Ecuador
====================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Ecuador's regulatory requirements and fully compatible with the
guidelines established by the `Servicio de Rentas Internas (SRI)
<https://www.sri.gob.ec/web/intersri/home>`_.
Legal framework for e-invoicing in Ecuador
==========================================
Ecuador has implemented mandatory electronic invoicing for most businesses aimed to enhance tax
compliance and transparency. Key elements include:
- **Factura Electrónica**: All businesses must issue electronic invoices in XML format for B2B, B2C,
and :abbr:`B2G (business-to-government)` transactions, ensuring compliance with :abbr:`SRI
(Servicio de Rentas Internas)`'s technical specifications.
- **Transmission Requirements**: E-invoices must be transmitted to the SRI within 24 hours of
issuance.
- **Record Storage**: E-invoices, including the :abbr:`SRI (Servicio de Rentas Internas)`'s
acceptance messages, must be stored for a minimum of seven years.
Compliance with Ecuadorian e-invoicing regulations
==================================================
Odoo Invoicing simplifies compliance with Ecuador's e-invoicing requirements by offering tailored
features:
- **Supported formats**: Odoo supports the Ecuadorian e-invoice format (XML) and ensures
compatibility with the :abbr:`SRI (Servicio de Rentas Internas)`'s system for validation and
authorization, including the necessary digital signature.
- **Secure storage and retrieval**: In compliance with Ecuador's seven-year storage requirement,
Odoo offers tamper-proof archiving so that invoices can be easily accessed during audits or
inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
other applicable taxes, ensuring accurate invoicing and adherence to Ecuador's tax reporting
standards.
.. seealso::
:doc:`Ecuadorian fiscal localization documentation <../../../fiscal_localizations/ecuador>`
.. admonition:: Disclaimer
This page provides a general overview of Ecuadorian e-invoicing regulations and how Odoo supports
compliance with SRI requirements. It is not intended as legal or tax advice. We recommend
consulting with a tax advisor or legal professional familiar with Ecuador's e-invoicing
regulations to ensure compliance tailored to your specific business needs.
@@ -0,0 +1,57 @@
:orphan:
===================================
Odoo electronic invoicing in Mexico
===================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Mexico's regulatory requirements and fully compatible with the guidelines
established by the :abbr:`SAT (Servicio de Administración Tributaria)`.
Legal framework for e-invoicing in Mexico
=========================================
Mexico has one of the most advanced e-invoicing systems globally, with electronic invoicing
:abbr:`CFDI (Comprobante Fiscal Digital por Internet)` being mandatory for most taxpayers. Key
elements include:
- **CFDI**: A mandatory electronic invoice format for B2B, B2C, and :abbr:`B2G
(business-to-government)` transactions, fully compliant with SAT requirements.
- **Digital tax receipt validation**: All :abbr:`CFDIs (Comprobante Fiscal Digital por Internet)`
must be digitally signed and validated by :abbr:`SAT (Servicio de Administración
Tributaria)`-authorized :abbr:`PACs (authorized certification providers)` before issuance.
- **Complementos**: Specific complements are required for certain transaction types, such as
payroll or foreign trade.
- **XML Format**: The XML format is mandatory, ensuring interoperability and compliance with
:abbr:`SAT (Servicio de Administración Tributaria)`'s technical standards.
Compliance with Mexican e-invoicing regulations
===============================================
Odoo Invoicing simplifies compliance with Mexicos e-invoicing requirements by offering tailored
features:
- **Supported formats**: Odoo supports :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` in
:abbr:`SAT (Servicio de Administración Tributaria)`-compliant XML formats, including all
mandatory fields, digital signatures, and complements for specialized transactions.
- **Integration with PACs**: Odoo integrates with :abbr:`SAT (Servicio de Administración
Tributaria)`-authorized :abbr:`PACs (authorized certification providers)` to automate the
validation, certification, and issuance of :abbr:`CFDIs (Comprobante Fiscal Digital por
Internet)`, ensuring real-time compliance.
- **Secure storage and retrieval**: In compliance with Mexico's five-year mandatory storage
requirement, Odoo provides tamper-proof archiving for easy access to invoices during audits
or inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for VAT (IVA) and
other applicable taxes, ensuring accuracy and compliance with :abbr:`SAT (Servicio de
Administración Tributaria)`'s tax reporting standards.
.. seealso::
:doc:`Mexican fiscal localization documentation <../../../fiscal_localizations/mexico>`
.. admonition:: Disclaimer
This page provides a general overview of Mexican e-invoicing regulations and how Odoo supports
compliance with :abbr:`SAT (Servicio de Administración Tributaria)` requirements. It is not
intended as legal or tax advice. We recommend consulting with a tax advisor or legal professional
familiar with Mexico's e-invoicing regulations to ensure compliance tailored to your specific
business needs.
@@ -0,0 +1,55 @@
:orphan:
=================================
Odoo electronic invoicing in Peru
=================================
Odoo Invoicing provides secure, efficient, and legally compliant e-invoicing solutions tailored to
meet Perus regulatory requirements and fully compatible with the guidelines established by the
`Superintendencia Nacional de Aduanas y de Administración Tributaria (SUNAT)
<https://www.sunat.gob.pe/>`_.
Legal framework for e-invoicing in Peru
=======================================
Peru has mandated electronic invoicing for most taxpayers to enhance tax compliance, reduce fraud,
and improve transparency. Key elements include:
- **Comprobante de Pago Electrónico (CPE)**: A mandatory electronic document required for B2B, B2C,
and :abbr:`B2G (business-to-government)` transactions, fully compliant with :abbr:`SUNAT
(Superintendencia Nacional de Aduanas y de Administración Tributaria)`'s technical specifications.
- **Integration with SUNAT**: E-invoices must be submitted to :abbr:`SUNAT (Superintendencia
Nacional de Aduanas y de Administración Tributaria)` for validation and authorization. Upon
approval, :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
assigns a unique identification code to the invoice.
- **XML Format**: All electronic invoices must be issued in XML format, ensuring standardization and
interoperability.
- **Mandatory adoption timeline**: Electronic invoicing is mandatory for most businesses, with
specific deadlines for smaller entities.
Compliance with Peruvian e-invoicing regulations
================================================
Odoo Invoicing simplifies compliance with Perus e-invoicing requirements by offering tailored
features:
- **Supported formats**: Odoo supports the Peruvian :abbr:`CPE (Comprobante de Pago Electrónico` in
:abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`-compliant XML
formats, including all required fields and authorization codes.
- **Secure storage and retrieval**: In compliance with Peru's five-year mandatory storage
requirement, Odoo offers tamper-proof archiving, ensuring easy access for audits or inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for :abbr:`IGV
(Impuesto General a las Ventas) and other applicable taxes, ensuring accuracy and compliance
with :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`'s
reporting standards.
.. seealso::
:doc:`Peruvian fiscal localization documentation <../../../fiscal_localizations/peru>`
.. admonition:: Disclaimer
This page provides a general overview of Peruvian e-invoicing regulations and how Odoo supports
compliance with :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración
Tributaria)` requirements. It is not intended as legal or tax advice. We recommend consulting
with a tax advisor or legal professional familiar with Peru's e-invoicing regulations to ensure
compliance tailored to your specific business needs.
@@ -0,0 +1,57 @@
:orphan:
====================================
Odoo electronic invoicing in Uruguay
====================================
Odoo Invoicing is your trusted partner for safe, efficient, and legally compliant e-invoicing
solutions tailored to meet Uruguay's regulatory requirements and fully compatible with the
guidelines established by the `Dirección General Impositiva (DGI)
<https://www.gub.uy/direccion-general-impositiva/>`_.
Legal framework for e-invoicing in Uruguay
==========================================
Uruguay has mandated electronic invoicing under the :abbr:`CFE (Comprobante Fiscal Electrónico)`
system, which applies to most businesses to promote tax transparency and streamline financial
transactions. Key elements include:
- **Comprobante Fiscal Electrónico**: A mandatory e-invoice format required for B2B, B2C, and
:abbr:`B2G (business-to-government)` transactions, fully compliant with :abbr:`DGI (Dirección
General Impositiva)`'s technical standards.
- **Integration with DGI**: All :abbr:`CFE (Comprobante Fiscal Electrónico)` must be submitted to
the :abbr:`DGI (Dirección General Impositiva)` for validation. Upon approval, the :abbr:`CFE
(Comprobante Fiscal Electrónico)` receives a unique identification code and authorization for
issuance.
- **XML Format**: Uruguay mandates the use of XML as the standard format for e-invoices, ensuring
compatibility and interoperability with various systems.
- **Adoption Timeline**: E-invoicing is mandatory for most businesses, with specific deadlines for
smaller enterprises to transition into the system.
Compliance with Uruguayan e-invoicing regulations
=================================================
Odoo Invoicing simplifies the complexities of compliance with Uruguay's e-invoicing requirements by
offering tailored features:
- **Supported formats**: Odoo supports the :abbr:`CFE (Comprobante Fiscal Electrónico)` format in
:abbr:`DGI (Dirección General Impositiva)`-compliant XML, including all legally required fields,
such as the unique identification code, authorization number, and digital signature. Odoo allows
the automated submission, validation, and issuance through the :abbr:`DGI (Dirección General
Impositiva)`'s e-invoicing platform to ensure compliance in real time.
- **Secure storage and retrieval**: In line with Uruguays mandatory five-year storage requirement,
Odoo provides tamper-proof archiving solutions, ensuring easy access to invoices for audits or
inspections.
- **Automatic tax calculation and reporting**: Odoo automates tax calculations for IVA (Value-Added
Tax) and other applicable taxes, ensuring accuracy and compliance with :abbr:`DGI (Dirección
General Impositiva)`'s reporting standards.
.. seealso::
:doc:`Uruguayan fiscal localization documentation <../../../fiscal_localizations/uruguay>`
.. admonition:: Disclaimer
This page provides a general overview of Uruguayan e-invoicing regulations and how Odoo supports
compliance with DGI requirements. It is not intended as legal or tax advice. We recommend
consulting with a tax advisor or legal professional familiar with Uruguay's e-invoicing
regulations to ensure full compliance tailored to your specific business requirements.
@@ -15,44 +15,115 @@ for use at a later date:
reduce/settle unpaid invoices/bills.
.. seealso::
- :doc:`Internal transfers <payments/internal_transfers>`
- :doc:`Internal transfers <bank/internal_transfers>`
- :doc:`bank/reconciliation`
- `Odoo Tutorials: Bank Configuration
<https://www.odoo.com/slides/slide/bank-configuration-6832>`_
.. _accounting/payments/payment-methods:
Payment methods
===============
Several payment methods are available in Odoo to allow different configurations for different types
of payments. Examples of payment methods include manual payments (such as cash), :doc:`checks
<payments/pay_checks>`, and batch payment files (such as :ref:`NACHA
<l10n_us/ach-electronic-transfers>` and :doc:`SEPA <payments/pay_sepa>`). Payment methods can be
configured in the :guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs of a bank or
cash journal.
.. seealso::
:doc:`../../sales/point_of_sale/payment_methods` for Point of Sale
.. _accounting/payments/preferred-payment-methods:
Preferred payment method
------------------------
A contact's preferred payment method can be set so that when a payment is created for that contact,
the payment method is automatically selected by default. Invoices and bills can be filtered by
:guilabel:`Payment Method` to simplify :ref:`group <accounting/payments/group-payments>` payments.
To set a preferred :guilabel:`Payment Method` for a customer or a vendor, go to
:menuselection:`Accounting --> Customers --> Customers` or :menuselection:`Accounting --> Vendors
--> Vendors` and select the customer or vendor. In the :guilabel:`Sales & Purchase` tab of the
contact form, select the preferred :guilabel:`Payment Method` in the :guilabel:`Sales` section for
invoice payments or for vendor bill payments in the :guilabel:`Purchase` section.
.. tip::
Access a full list of all contacts from the :guilabel:`Customers` or :guilabel:`Vendors` list
view by removing the :guilabel:`Customers` or :guilabel:`Vendors` filter. Alternatively, access
the full contact list through the Contacts app.
.. _accounting/payments/from-invoice-bill:
Registering payment from an invoice or bill
===========================================
When clicking :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a new
journal entry and changes the amount due according to the payment amount. The counterpart is
reflected in an :ref:`outstanding <bank/outstanding-accounts>` **receipts** or **payments** account.
At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when
the outstanding account is reconciled with a bank transaction line, the invoice or vendor bill
changes to the :guilabel:`Paid` status.
To register a payment for an invoice or a bill, follow these steps:
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal, click
:guilabel:`View`.
#. Click :guilabel:`Pay` on a customer invoice or vendor bill. In the :guilabel:`Pay` window, select
the :guilabel:`Journal` and the :guilabel:`Payment Date`.
#. If previously set, the contact's preferred :guilabel:`Payment Method` is automatically selected
by default but can be updated if necessary.
#. If using :doc:`payment terms <customer_invoices/payment_terms>`, the :guilabel:`Amount` is
automatically set based on the installment amounts defined by the payment term. To pay the full
amount instead, click :guilabel:`full amount`.
#. If necessary, edit the :guilabel:`Memo`.
#. Click :guilabel:`Create Payment`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment.
After the payment is registered, the customer invoice or vendor bill is marked as
:guilabel:`In payment`.
.. note::
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
payment.
- If a payment is unreconciled, it still appears in the books but is no longer linked to the
invoice.
- If a payment is (un)reconciled in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If a payment is (un)reconciled and an invoice with cash-basis taxes, a journal entry is
automatically created to post the cash-basis tax (reversal) amount.
.. tabs::
.. tip::
If the main bank account is set as an :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
bank transaction), invoices and bills are directly registered as :guilabel:`Paid`.
.. group-tab:: Without outstanding accounts
If no :ref:`outstanding accounts <accounting/bank/outstanding-accounts>` are configured, no
journal entry is created. To display more information about the payment, click the
:guilabel:`Payments` smart button.
When the invoice or vendor bill is :doc:`reconciled <bank/reconciliation>` with a bank
transaction, its status is updated to :guilabel:`Paid`.
.. note::
- If a bank transaction is reconciled in a different currency, a journal entry is
automatically created to post the currency exchange gains/loss amount.
- When a bank transaction is reconciled with an invoice with cash-basis, a journal entry is
automatically created to post the cash-basis tax amount.
.. group-tab:: Using outstanding accounts
By default, payments in Odoo do not create journal entries, but they can easily be configured
to create journal entries using :ref:`outstanding accounts
<accounting/bank/outstanding-accounts>`.
Registering a payment on a customer invoice or vendor bill generates a new journal entry and
reduces the :guilabel:`Amount Due` based on the payment amount. The counterpart is
reflected in an :ref:`outstanding <accounting/bank/outstanding-accounts>` **receipts** or
**payments** account. At this point, the customer invoice or vendor bill is marked as
:guilabel:`In payment`. Then, when the payment is :doc:`reconciled <bank/reconciliation>` with
a bank transaction, the invoice or vendor bill status changes to :guilabel:`Paid`.
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal,
click :guilabel:`View`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment.
.. note::
- Unreconciling a payment unlinks it from the invoice or bill but does not delete the
payment.
- If a payment is (un)reconciled in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is
automatically created to post the cash-basis tax (reversal) amount.
.. tip::
If the main bank account is set as the outstanding account on the bank journal's payment
method, registering the full payment on an invoice or bill moves the invoice/bill directly
to the :guilabel:`Paid` status without requiring bank reconciliation.
.. _accounting/payments/not-tied:
@@ -60,71 +131,185 @@ Registering payments not tied to an invoice or bill
===================================================
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments`, it is not
directly linked to an invoice or bill. Instead, the account receivable or the account payable is
matched with the **outstanding account** until it is manually matched with its related invoice or
bill.
directly linked to an invoice or bill.
.. tabs::
.. group-tab:: Without outstanding accounts
Payments that are not linked to an invoice or bill should not be registered without using
:ref:`outstanding accounts <accounting/bank/outstanding-accounts>`, as there is no way to
associate the payment with the invoice or bill since no journal entry is created for the
payment. The amount paid or received is not reflected in the accounting and the
:guilabel:`Amount Due` is not updated based on the payment amount.
.. group-tab:: Using outstanding accounts
Instead, the payment's journal entry matches the :guilabel:`outstanding account` with the
account receivable or the account payable until the payment is manually matched with its
related invoice or bill. Then, :doc:`reconciling <bank/reconciliation>` the payment with the
bank transaction completes the payment workflow.
.. _accounting/payments/payments-matching:
Payments matching
-----------------
.. note::
During the :doc:`bank reconciliation <bank/reconciliation>` process, a remaining balance is
identified if the total debits and credits do not match when records are compared with bank
transactions. This balance must either be reconciled later or written off immediately.
.. _accounting/payments/matching-invoices-bills:
Matching invoices and bills with payments
-----------------------------------------
For a single invoice or bill
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists for
this specific customer or vendor. To match it with the invoice or bill, click :guilabel:`ADD`
under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. tabs::
.. image:: payments/add-option.png
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment.
.. group-tab:: Without outstanding accounts
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with its
corresponding bank transaction.
By default, payments in Odoo do not create journal entries. As a result, there is no payment
to match.
.. group-tab:: Using outstanding accounts
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists
for this specific customer or vendor. To match it with the invoice or bill, click
:guilabel:`Add` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. image:: payments/add-option.png
:alt: Shows the Add option to reconcile an invoice or a bill with a payment.
The invoice or bill is then marked as :guilabel:`In payment` until the payment is
:doc:`reconciled <bank/reconciliation>` with its corresponding :doc:`bank transaction(s)
<bank/transactions>`.
.. _accounting/payments/auto-reconcile-tool:
For multiple invoices or bills
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. tabs::
.. group-tab:: Without outstanding accounts
By default, payments in Odoo do not create journal entries. As a result, there is no payment
to match, but this feature can still be used to match miscellaneous journal items.
.. group-tab:: Using outstanding accounts
The :guilabel:`Payments matching` or :guilabel:`Auto-reconcile` tool allows reconciling
journal items with each other (i.e., payments with customer invoices or vendor bills) either
individually or in batches. Access the :guilabel:`Accounting Dashboard`, click the
:icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) button from the :guilabel:`Customer
Invoices` or :guilabel:`Vendor Bills` journals, and select :guilabel:`Payments Matching`.
Alternatively, go to :menuselection:`Accounting --> Accounting --> Reconcile`.
To manually :guilabel:`Reconcile` journal items, select the individual items from the list
view and click :guilabel:`Reconcile`.
.. _accounting/payments/auto-reconcile-feature:
Auto-Reconcile Feature
**********************
.. tabs::
.. group-tab:: Without outstanding accounts
To use the :guilabel:`Auto-Reconcile` feature, follow these steps:
#. In the :guilabel:`Journal Items to reconcile` list view, click :guilabel:`Auto-Reconcile`
next to the receivable or payable account (or a specific contact's group of journal items
in that account).
#. In the :guilabel:`Reconcile automatically` window, click :guilabel:`Reconcile`.
.. group-tab:: Using outstanding accounts
To use the :guilabel:`Auto-Reconcile` feature, follow these steps:
#. In the :guilabel:`Journal Items to reconcile` list view, click :guilabel:`Auto-Reconcile`
next to the receivable or payable account (or a specific contact's group of journal items
in that account).
#. In the :guilabel:`Reconcile Automatically` window, set the
:guilabel:`Reconcile` field depending on how you want to match journal items:
- :guilabel:`Perfect Match`: Each debit journal item will be matched with
the corresponding credit journal item of the same value.
- :guilabel:`Clear Accounts`: All reconciled journal items will have the same
matching number, as they are selected from the same account.
#. Click :guilabel:`Reconcile`.
Invoices and bills are automatically matched to their corresponding payments and marked as
:guilabel:`In payment` until they are :doc:`reconciled <bank/reconciliation>` with their
corresponding :doc:`bank transactions <bank/transactions>`.
.. _accounting/payments/group-payments:
Group payments
--------------
Registering payments on multiple invoices/credit notes or bills/refunds (group payments)
========================================================================================
Group payments allow combining outgoing and incoming payments from the same contact into a single
payment to simplify the process and improve payment usability. To register a group payment:
To register payments on multiple invoices/credit notes or bills/refunds, follow these steps:
#. Go to :menuselection:`Accounting --> Customers --> Invoices/Credit Notes` or
:menuselection:`Accounting --> Vendors --> Bills/Refunds`.
#. Select the relevant invoices/credit notes or bills/refunds linked to a specific contact.
#. Click the :icon:`fa-cog` (:guilabel:`Action menu`) icon and select :guilabel:`Register Payment`.
#. In the :guilabel:`Register Payment` window, select the :guilabel:`Journal`, the
:guilabel:`Payment Method`, and the :guilabel:`Payment Date`.
#. Enable the :guilabel:`Group Payments` option and click :guilabel:`Create payment`.
#. In the list view, click into the search bar, group by :guilabel:`Payment Method`, select the
relevant invoices/credit notes or bills/refunds and click :guilabel:`Pay`.
#. In the :guilabel:`Pay` window, select the :guilabel:`Journal` and the :guilabel:`Payment Date`.
#. If previously set, the contact's preferred :guilabel:`Payment Method` is automatically selected
by default but can be updated if necessary.
#. If using :doc:`payment terms <customer_invoices/payment_terms>`, the :guilabel:`Amount` is
automatically set based on the installment amounts defined by the payment term. To pay the full
amount instead, click :guilabel:`full amount`.
#. To combine all payments from the same contact into a single payment, enable the :guilabel:`Group
Payments` option, or leave it unchecked to create separate payments.
#. Click :guilabel:`Create payment`.
The invoices or bills are now marked as :guilabel:`In payment` until they are reconciled with the
corresponding bank transactions. The credit notes or refunds are marked as :guilabel:`Paid`.
.. tabs::
.. group-tab:: Without outstanding accounts
The invoices or bills are then marked as :guilabel:`In payment` until they are
:doc:`reconciled <bank/reconciliation>` with the bank transactions.
.. group-tab:: Using outstanding accounts
The invoices or bills are then marked as :guilabel:`In payment` until the bank transactions
are :doc:`reconciled <bank/reconciliation>` with the payments.
.. _accounting/payments/batch-payments:
Batch payments
--------------
Registering a single payment for multiple customers or vendors (batch payments)
===============================================================================
Batch payments allow grouping payments from multiple contacts to ease
:doc:`reconciliation <bank/reconciliation>`. They are also useful when depositing :doc:`checks
<payments/checks>` to the bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to
:menuselection:`Accounting --> Customers --> Batch Payments` or :menuselection:`Accounting -->
Vendors --> Batch Payments`. In the list view of payments, to group several payments in a
batch, select them and click :menuselection:`Action --> Create Batch Payment`.
Batch payments allow grouping payments from multiple contacts to ease :doc:`reconciliation
<bank/reconciliation>`. They are also useful when depositing :doc:`checks <payments/checks>` to the
bank or for generating bank payment files such as :doc:`SEPA <payments/pay_sepa>` or :ref:`NACHA
<l10n_us/nacha>`. To do so, go to :menuselection:`Accounting --> Customers --> Payments` or
:menuselection:`Accounting --> Vendors --> Payments`. In the payments list view, select the payments
to be grouped in a batch, click :icon:`fa-cog` :guilabel:`Actions`, and select :guilabel:`Create
Batch Payment`.
.. note::
All payments in a batch must have the same :ref:`payment method
<accounting/payments/payment-methods>`.
.. seealso::
- :doc:`payments/batch`
- :doc:`payments/batch_sdd`
- :doc:`payments/batch`
- :doc:`payments/batch_sdd`
.. _accounting/payments/matching:
Payments matching
-----------------
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
allows them to be processed individually, matching all payments and invoices in one place. Go to the
:guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` (:guilabel:`dropdown menu`)
button from the :guilabel:`Customer Invoices` or :guilabel:`Vendor Bills` journals, and select
:guilabel:`Payments Matching`, or go to :menuselection:`Accounting --> Accounting -->
Reconciliation`.
The :guilabel:`Payments matching` tool opens all unreconciled journal items and allows them to be
processed individually, matching all payments and journal items. Go to the
:guilabel:`Accounting Dashboard`, go to :menuselection:`Accounting --> Accounting --> Reconcile` or
click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) button from the :guilabel:`Customer
Invoices` or :guilabel:`Vendor Bills` journals, and select :guilabel:`Payments Matching`.
.. image:: payments/payments-journal.png
:alt: Payments matching menu in the drop-down menu.
@@ -134,47 +319,56 @@ Reconciliation`.
not match, there is a remaining balance. This either needs to be reconciled at a later date or
written off directly.
.. _accounting/payments/batch-payments-matching:
Batch payments matching
-----------------------
Use the batch reconciliation feature to reconcile several outstanding payments or invoices
simultaneously for a specific customer or vendor. Go to :menuselection:`Accounting --> Reporting -->
Aged Receivable / Aged Payable`. All transactions that have not yet been reconciled for that
contact are visible, and when a customer or vendor is selected, the :guilabel:`Reconcile` option is
displayed.
.. image:: payments/reconcile-option.png
:alt: The batch payment reconcile option.
.. _accounting/payments/partial-payment:
Registering a partial payment
=============================
To register a partial payment, click on :guilabel:`Register Payment` from the related invoice or
bill. In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field displays the
outstanding balance. There are two options:
To register a partial payment, click on :guilabel:`Pay` from the related invoice or bill.
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a :guilabel:`Partial`
banner;
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In` field and
change the :guilabel:`Label` if needed. A journal entry will be created to balance the accounts
payable or receivable with the selected account.
.. tabs::
.. image:: payments/partial-payment.png
:alt: register a partial payment
.. group-tab:: Without outstanding accounts
In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), fill in the :guilabel:`Amount` in the
:guilabel:`Pay` window.
.. group-tab:: Using outstanding accounts
In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field
displays the outstanding balance. There are two options:
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a
:guilabel:`Partial` banner;
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In`
field and change the :guilabel:`Label` if needed. A journal entry will be created to balance
the accounts payable or receivable with the selected account.
.. image:: payments/partial-payment.png
:alt: register a partial payment
.. _accounting/payments/reconciling-payments:
Reconciling payments with bank transactions
===========================================
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank transaction line to
finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`.
.. tabs::
.. group-tab:: Without outstanding accounts
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In
payment`. The next step is :doc:`reconciling <bank/reconciliation>` the related :doc:`bank
transaction <bank/transactions>` line with the invoice or bill to finalize the payment
workflow and mark the invoice or bill as :guilabel:`Paid`.
.. group-tab:: Using outstanding accounts
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In
payment`. The next step is :doc:`reconciling <bank/reconciliation>` the payment with the
related :doc:`bank transaction <bank/transactions>` line to finalize the payment workflow and
mark the invoice or bill as :guilabel:`Paid`.
.. toctree::
:titlesonly:
@@ -184,7 +378,6 @@ finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`.
payments/batch
payments/batch_sdd
payments/follow_up
payments/internal_transfers
payments/pay_sepa
payments/pay_checks
payments/forecast
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -17,7 +17,7 @@ into account checks yet to be cashed.
statement.
.. seealso::
* :ref:`Outstanding accounts <bank/outstanding-accounts>`
* :ref:`Outstanding accounts <accounting/bank/outstanding-accounts>`
* :ref:`Bank reconciliation <accounting/reconciliation>`
.. _checks/outstanding-account:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@@ -1,73 +0,0 @@
==================
Internal transfers
==================
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 countrys 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
======================================================
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.
The money is now booked in the transfer account and another payment is automatically created in the
destination journal.
.. example::
- Bank journal (Bank A)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Payments account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
- Bank journal (Bank B)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Receipts account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
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.
Once this is done, you can book and reconcile your bank statement lines as usual.
.. seealso::
:doc:`../bank/reconciliation`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@@ -35,9 +35,6 @@ To do so, go to :menuselection:`Accounting --> Configuration --> Settings`. Unde
- :guilabel:`Reminder`: define when Odoo should remind you to submit your tax return;
- :guilabel:`Journal`: select the journal in which to record the tax return.
.. image:: tax_returns/tax_return_periodicity.png
:align: center
:alt: Configure how often tax returns have to be made in Odoo Accounting
.. note::
This is usually configured during the :doc:`app's initial set up <../get_started>`.
@@ -53,16 +50,11 @@ You can see the :guilabel:`Tax Grids` by opening the :guilabel:`Journal Items` t
invoice and bill.
.. image:: tax_returns/tax_return_grids.png
:align: center
:alt: see which tax grids are used to record transactions in Odoo Accounting
To configure your tax grids, go to :menuselection:`Accounting --> Configuration --> Taxes`,
and open the tax you want to modify. There, you can edit your tax settings, along with the tax
grids that are used to record invoices or credit notes.
.. image:: tax_returns/tax_return_taxes.png
:align: center
:alt: Configure taxes and their tax grids in Odoo Accounting
grids that are used to record invoices or refunds.
.. note::
Taxes and reports are usually already pre-configured in Odoo: a :ref:`fiscal localization package
@@ -76,40 +68,41 @@ Close a tax period
.. _tax-returns/lock-date:
Tax Lock Date
Tax lock date
-------------
Any new transaction whose accounting date prior to the :guilabel:`Tax Lock Date` has its tax values
moved to the next open tax period. This is useful to make sure that no change can be made to a
report once its period is closed.
Any new transaction whose accounting date prior to the :guilabel:`Lock Tax Return` date has its tax
values moved to the next open tax period. This is useful to make sure that no change can be made to
a report once its period is closed.
Therefore, we recommend locking your tax date before working on your
:guilabel:`Closing Journal Entry`.
This way, other users cannot modify or add transactions that would have an impact on the
:guilabel:`Closing Journal Entry`, which can help you avoid some tax declaration errors.
To check the current :guilabel:`Tax Lock Date`, or to edit it, go to
:menuselection:`Accounting --> Accounting --> Actions: Lock Dates`.
.. image:: tax_returns/tax_return_lock.png
:align: center
:alt: Lock your tax for a specific period in Odoo Accounting
To check the current :guilabel:`Lock Tax Return` date, or to edit it, go to
:menuselection:`Accounting --> Accounting --> Lock Dates`.
.. _tax-returns/report:
Tax Report
Tax return
----------
Once all the transactions involving taxes have been posted for the period you want to report, open
your :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting -->
Audit Reports: Tax Report`. Make sure to select the right period you want to declare by using the
date filter, this way you can have an overview of your tax report. From this view, you can easily
access different formats of your tax report, such as `PDF` and XLSX. These include all the values to
report to the tax authorities, along with the amount you have to pay or be refunded.
the :guilabel:`Tax Return` report by going to :menuselection:`Accounting --> Reporting --> Tax
Return`. Select the period you want to declare using the date filter to have an overview of the tax
return. Then, click :guilabel:`Closing Entry` to create a tax closing journal entry. Odoo
automatically proposes the details of the journal entry. Make any necessary changes and click
:guilabel:`Post`.
.. image:: tax_returns/tax_return_report.png
:align: center
:alt: download the PDF with your Tax Report in Odoo Accounting
From the report, click :guilabel:`PDF` to download a PDF of the tax return. Alternatively, click the
:icon:`fa-cog` (:guilabel:`gear`) icon, then click :guilabel:`Download Excel` to download an XLSX of
the tax return. To save the report to the Documents app, click the :icon:`fa-cog` (:guilabel:`gear`)
icon, then click :guilabel:`Copy to Documents`. Select the format to :guilabel:`Export to`, the
:guilabel:`Documents Name`, the :guilabel:`Folder` to store it in, and add any :guilabel:`Tags`.
The report includes all the values to report to the tax authorities, along with the amount to be
paid or refunded.
.. note::
If you forgot to lock your tax date before clicking on :guilabel:`Closing Journal Entry`, then
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -43,7 +43,7 @@ Before closing a fiscal year, ensure first everything is accurate and up-to-date
- Validate all :doc:`expenses <../../expenses>`, ensuring their accuracy.
- Corroborate that all :doc:`received payments <../payments>` have been encoded and recorded
accurately.
- Close all :ref:`suspense accounts <bank_accounts/suspense>`.
- Close all :ref:`suspense accounts <accounting/bank/suspense>`.
- Book all :doc:`depreciation <../vendor_bills/assets>` and :doc:`deferred revenue
<../customer_invoices/deferred_revenues>` entries.
@@ -62,7 +62,7 @@ Then, to close the fiscal year:
<accounting/reporting/aged-payable>` reports.
- Audit all accounts, being sure to fully understand all transactions and their nature, making
sure to include loans and fixed assets.
- Optionally, run :ref:`payments matching <accounting/payments/matching>` to validate any open
- Optionally, :ref:`match payments <accounting/payments/auto-reconcile-tool>` to validate any open
vendor bills and customer invoices with their payments. While this step is optional, it could
assist the year-end closing process if all outstanding payments and invoices are reconciled,
potentially finding errors or mistakes in the system.
@@ -37,7 +37,7 @@ appropriately completed:
- :guilabel:`Vendor`: Odoo automatically fills some information based on the vendor's registered
information, previous purchase orders, or bills.
- :guilabel:`Bill Reference`: add the sales order reference provided by the vendor and is used to do
the :ref:`matching <accounting/payments/matching>` when you receive the products.
the :ref:`matching <accounting/payments/payments-matching>` when you receive the products.
- :guilabel:`Auto-Complete`: select a past bill/purchase order to automatically complete the
document. The :guilabel:`Vendor` field should be completed prior to completing this field.
- :guilabel:`Bill Date`: is the issuance date of the document.
@@ -91,9 +91,10 @@ To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
:guilabel:`View My Services`.
.. important::
If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits to
test the feature.
.. note::
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
deciding to purchase more credits for the database. This includes demo/training databases,
educational databases, and one-app-free databases.
.. seealso::
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
@@ -187,17 +187,17 @@ Fiscal localization modules are available for the countries listed below.
fiscal_localizations/mexico
fiscal_localizations/netherlands
fiscal_localizations/new_zealand
fiscal_localizations/romania
fiscal_localizations/peru
fiscal_localizations/philippines
fiscal_localizations/romania
fiscal_localizations/saudi_arabia
fiscal_localizations/singapore
fiscal_localizations/spain
fiscal_localizations/switzerland
fiscal_localizations/thailand
fiscal_localizations/vietnam
fiscal_localizations/united_arab_emirates
fiscal_localizations/united_kingdom
fiscal_localizations/united_states
fiscal_localizations/uruguay
fiscal_localizations/vietnam
fiscal_localizations/employment_hero
@@ -11,7 +11,10 @@ Below you can find videos with a general description of the localization, and ho
- `eCommerce - Localización de Argentina <https://www.youtube.com/watch?v=5gUi2WWfRuI>`_.
.. seealso::
`Smart Tutorial - Localización de Argentina <https://www.odoo.com/slides/smart-tutorial-localizacion-de-argentina-130>`_
- `Smart Tutorial - Localización de Argentina
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-argentina-130>`_
- :doc:`Documentation on e-invoicing's legality and compliance in Argentina
<../accounting/customer_invoices/electronic_invoicing/argentina>`
Configuration
=============
@@ -45,6 +48,9 @@ localization:
- `l10n_ar_website_sale`
- (optional) Allows the user to see Identification Type and AFIP Responsibility in the
eCommerce checkout form in order to create electronic invoices.
* - :ref:`Argentina - Payment Withholdings <l10n_ar/payment-withholdings>`
- `l10n_ar_withholding`
- Allows registering withholdings during the payment of an invoice.
.. _argentina/configure-your-company:
@@ -678,6 +684,147 @@ the invoice can then be validated.
:align: center
:alt: Enter the perception amount.
.. _l10n_ar/payment-withholdings:
Withholding management
----------------------
The Argentinean fiscal localization module is already loaded with the necessary withholdings
records, which can be seen by navigating to :menuselection:`Accounting app --> Configuration -->
Taxes` and removing the default :guilabel:`Sale or Purchase` filter. To verify these records, the
**Argentina Payment Withholdings** (`l10n_ar_withholding`) module must be :ref:`installed
<general/install>`:
Journal entries are *not* created when payments are posted unless :ref:`outstanding accounts
<accounting/bank/outstanding-accounts>` are set up. Thus, for this feature to work properly, it is
important to verify that *all* payment methods within the bank journals have an outstanding payment
and receipt account set.
.. image:: argentina/l10n-ar-outstanding-payments.png
:alt: An outstanding payment account must be set.
This configuration is crucial for the proper accounting of withholding transactions with clients
and vendors.
.. note::
In Argentina, withholdings represent the cancellation of a specific portion of the total debt
owed to a supplier or a reduction in the total payment to be collected from a customer.
Therefore, one or multiple withholdings can be recorded for each payment applied to an invoice.
Configuration
~~~~~~~~~~~~~
While Odoo already creates most of the required withholdings inside the :guilabel:`Taxes`
menu, in several cases, it is necessary to apply or modify certain configurations to correctly
calculate the withholding amount on vendor payments. The following withholding types are available:
- :ref:`Earnings <l10n_ar/earnings-withholdings>`
- :ref:`Earnings Scale <l10n_ar/earnings-scale-withholdings>`
- :ref:`IIBB Total Amount <l10n_ar/iib-total-amount-withholdings>`
- :ref:`IIBB Non-Taxable <l10n_ar/iib-nontax-withholdings>`
.. _l10n_ar/earnings-withholdings:
Earnings
********
For :guilabel:`Earnings` withholdings, Odoo already has a record for each regime group, which is
stated under the name of the tax and the AFIP code.
Each of these records are ready to be used. As a good practice, the configuration should be double
checked to make sure the configuration is updated and well-applied. The fields to validate are:
- :guilabel:`Amount`: This is the percentage of the total payment amount which is withheld.
- :guilabel:`Non-Taxable Amount`: Up to this amount, the withholding does not apply.
- :guilabel:`Minimum Withholding`: If the calculated withholding amount is smaller than this value,
the total withholding amount is set to `0.0`.
- :guilabel:`Withholding Sequence`: This field helps to automate the capture of a withholding number
under the payment line. If this field is not set, a number is manually captured while adding a
withholding to a payment.
.. image:: argentina/l10n-ar-earnings.png
:alt: Earnings withholding type.
.. _l10n_ar/earnings-scale-withholdings:
Earnings Scale
**************
In this particular case, a percentage does not need to be set. Instead, this withholding is
calculated based on the value of the :guilabel:`Scale` field.
To view, modify, or create new scales, navigate to :menuselection:`Accounting app --> Configuration
--> Earnings Scale`. By default, the Argentinian localization is preconfigured with two main scales.
However, scales should be created and updated as necessary to suit a business's needs.
.. note::
Earnings scales are cumulative, which means that Odoo keeps track of the different records
created for a bill and automatically calculates the proper withholding amount.
.. _l10n_ar/iib-total-amount-withholdings:
IIBB Total Amount
*****************
In this case, the necessary records related to the applicable province need to be created. The
withholding amount is calculated based on the percentage :guilabel:`Amount` set on the tax
configuration. Since Odoo does not automatically synchronize the percentages applicable to each
province, this information needs to be manually updated.
The recommendation, in this case, is to always duplicate and apply the different configurations for
each record to safeguard any technical configurations that allow the proper calculation and
accounting of the withholding.
.. _l10n_ar/iib-nontax-withholdings:
IIBB Untaxed
************
The configuration of non-taxable gross income withholdings is very similar to that of a :ref:`total
amount withholding <l10n_ar/iib-total-amount-withholdings>`, so the percentage :guilabel:`Amount` in
each of the records needs to be maintained. However, Odoo comes preconfigured with several records
that apply to different provinces. The difference, in this case, is that it is not necessary to
establish a non-taxable amount or minimum withholding for this record type.
Partner withholding assignation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once the proper configuration is set on each possible withholding for partners, the applicable
withholdings need to be assigned to each contact. To do this, open the :guilabel:`Contacts` app and
select the desired partner. In the :guilabel:`Accounting` tab, find the :guilabel:`Purchase
Withholdings` table.
By using the additional fields :guilabel:`From Date` and :guilabel:`To Date`, the applicability of
multiple withholdings can be automated across different date ranges. The :guilabel:`ref` field
allows you to apply an internal control number to each withholding line, which is just for internal
reference, so it does not affect any transactions and is not visible on them. These fields are
accessible from the :icon:`oi-settings-adjust` :guilabel:`(adjust settings)` menu.
- :guilabel:`From Date`: the start of the withholding date range.
- :guilabel:`To Date`: the end of the withholding date range.
- :guilabel:`ref`: apply an internal control number to each withholding line that is only visible
for internal reference and does not affect any transactions.
Automatic withholding calculation and application per payment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By applying new payments to vendor bills, Odoo automatically applies and calculates the proper
withholding into the payment. Based on the record's configuration, it may be necessary to use a
reference number for each withholding line.
More withholdings can be added, or computed withholdings can be edited if necessary.
.. image:: argentina/l10n-ar-payment.png
:alt: Payment with applied withholdings.
.. important::
The total amount of the debt to be canceled is the total amount of the payment. However, Odoo
still captures the net amount (i.e. the amount to be reconciled with the bank), which will be
represented as the payment amount after the withholding application.
.. image:: argentina/l10n-ar-payment-registered.png
:alt: Payment registered form.
Check management
----------------
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@@ -24,6 +24,10 @@ localization.
- `l10n_at_saft`
- Adds the SAF-T export.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Austria
<../accounting/customer_invoices/electronic_invoicing/austria>`
Financial reports
=================
@@ -11,6 +11,10 @@ Install the :guilabel:`🇧🇪 Belgium` :ref:`fiscal localization package
<fiscal_localizations/packages>` to get all the default accounting features of the Belgian
localization, following the :abbr:`IFRS(International Financial Reporting Standards)` rules.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Belgium
<../accounting/customer_invoices/electronic_invoicing/belgium>`
.. _belgium/coa:
Chart of accounts
@@ -584,8 +588,8 @@ provide the following information:
- your company's name, address, and legal structure; and
- the Mac address of your IoT Box.
Once your IoT box is certified, :doc:`connect <../../general/iot/config/connect>` it to your
database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To
verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
:guilabel:`IOT Device` section, which should display the FDM.
.. image:: belgium/iot-devices.png
@@ -34,6 +34,8 @@ needed.
<https://youtube.com/playlist?list=PL1-aSABtP6ADqexw4YNCbKPmpFggajxlX&si=RgmZR3Jco3223Np4>`_.
- `YouTube playlist - Tutoriais Odoo em Português
<https://youtube.com/playlist?list=PL1-aSABtP6ACGOW2UREePGjHQ2Bgdy-UZ&si=j6tiI36eB7BoKVQB>`_.
- :doc:`Documentation on e-invoicing's legality and compliance in Brazil
<../accounting/customer_invoices/electronic_invoicing/brazil>`
Configuration
=============
@@ -15,6 +15,8 @@ Chile
- `Chilean localization app tour <https://www.youtube.com/watch?v=3qYkgbmBYHw>`_
- `Chilean localization smart tutorial
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-chile-131>`_
- :doc:`Documentation on e-invoicing's legality and compliance in Chile
<../accounting/customer_invoices/electronic_invoicing/chile>`
.. _chile/configuration:
@@ -24,9 +24,11 @@ solution with Odoo:
.. seealso::
- For more information on how to complete the certification process for the |DIAN| module, review
the following `webinar <https://www.youtube.com/watch?v=l0G6iDc7NQA>`_.
the following `webinar <https://www.youtube.com/watch?v=l0G6iDc7NQA>`_
- `Smart Tutorial - Colombian Localization
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-colombia-132>`_.
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-colombia-132>`_
- :doc:`Documentation on e-invoicing's legality and compliance in Colombia
<../accounting/customer_invoices/electronic_invoicing/colombia>`
.. _localization/colombia/configuration:
@@ -17,6 +17,8 @@ each purchase invoice.
.. seealso::
- `App Tour - Localización de Ecuador <https://www.youtube.com/watch?v=BQOXVSDeeK8>`_
- `Smart Tutorial - Localización de Ecuador <https://www.odoo.com/slides/smart-tutorial-localizacion-de-ecuador-170>`_
- :doc:`Documentation on e-invoicing's legality and compliance in Ecuador
<../accounting/customer_invoices/electronic_invoicing/ecuador>`
Glossary
--------
@@ -205,11 +205,11 @@ An Odoo local server works as a bridge between your computer and your Odoo datab
Download the Odoo Community installer from the page https://www.odoo.com/page/download and start the
installation on your computer.
Select :guilabel:`Local Proxy Mode` as the type of install.
Select :guilabel:`Odoo IoT` as the type of install.
.. image:: egypt/install-odoo-local-proxy.png
:align: center
:alt: Selection of "Local Proxy Mode" during the installation of Odoo Community.
:alt: Selection of "Odoo IoT" during the installation of Odoo Community.
.. note::
This installation of Odoo only works as a server and does not install any Odoo apps on your
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@@ -2,6 +2,10 @@
France
======
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in France
<../accounting/customer_invoices/electronic_invoicing/france>`
.. _localization/france/fec:
FEC - Fichier des Écritures Comptables
@@ -2,222 +2,154 @@
Germany
=======
German Chart of Accounts
========================
Accounting
==========
The chart of accounts SKR03 and SKR04 are both supported in Odoo. You can choose the
one you want by going in :menuselection:`Accounting --> Configuration` then choose the
package you want in the Fiscal Localization section.
.. seealso::
:doc:`Documentation on e-invoicing's legality and compliance in Germany
<../accounting/customer_invoices/electronic_invoicing/germany>`
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
Chart of accounts
-----------------
.. tip::
Both SKR03 and SKR04 charts of accounts are supported in Odoo. When you create a new Odoo Online
database, SKR03 is installed by default.
When you create a new Odoo Online database, the SKR03 is installed by default.
Verify which is installed by going to :menuselection:`Accounting --> Configuration --> Settings`
and checking the :guilabel:`Package` field under the :guilabel:`Fiscal Localization` section.
German Accounting Reports
=========================
.. warning::
Selecting another package is only possible if you have not created an accounting entry. If one
was posted, a new company or database must be set up to select another package. In
addition, all journal entries will need to be created again.
Here is the list of German-specific reports available on Odoo Enterprise:
Reports
-------
The following German-specific reports available on Odoo Enterprise:
- Balance Sheet
- Profit & Loss
- Tax Report (Umsatzsteuervoranmeldung)
- Partner VAT Intra
- EC Sales List
- Intrastat
Export from Odoo to Datev
=========================
Exporting entries from Odoo to DATEV
------------------------------------
It is possible to export your accounting entries from Odoo to Datev. To be able to use this
feature, the german accounting localization needs to be installed on your Odoo Enterprise database.
Then you can go in :menuselection:`Accounting --> Reporting --> General Ledger` then click on the
**Export Datev (csv)** button.
Provided that one of the German :ref:`fiscal localization packages
<fiscal_localizations/accounting>` is installed, you can export your accounting entries from Odoo to
DATEV from the general ledger.
.. _germany/pos:
Point of Sale in Germany: Technical Security System
===================================================
The **Kassensicherungsverordnung** (The Act on Protection against Manipulation of Digital Records)
requires that electronic record-keeping systems - including the :doc:`point of sale
</applications/sales/point_of_sale>` systems - must be equipped with a **Technical Security System**
(also called **TSS** or **TSE**).
Odoo offers a service that is compliant with the help of `fiskaly <https://fiskaly.com>`_, a
*cloud-based solution*.
.. important::
Since this solution is cloud-based, a working internet connection is required.
Two types of exports are needed: first the DATEV ATCH export, then the DATEV DATA export.
.. note::
The only VAT rates allowed are given by fiskaly. You can check these rates by consulting:
`fiskaly DSFinV-K API: VAT Definition
<https://developer.fiskaly.com/api/dsfinvk/v0/#tag/VAT-Definition>`_.
Both are needed at different stages to transfer the data correctly to DATEV, as DATEV works with
two interfaces, one for clients (DUO - DATEV Unternehmen Online) and one for tax advisors (DATEV
Rechnungswesen).
Configuration
-------------
1. DATEV ATCH
~~~~~~~~~~~~~
Modules installation
~~~~~~~~~~~~~~~~~~~~
Go to :menuselection:`Accounting --> Reporting --> General Ledger`, click the :icon:`fa-cog`
(:guilabel:`Actions`) button, and select :guilabel:`Datev ATCH (zip)`.
#. If your database was created before June 2021, :ref:`upgrade <general/upgrade>` your **Point of
Sale** app (`point_of_sale`) and the **Restaurant** module (`pos_restaurant`).
#. :ref:`Install <general/install>` the **Germany - Certification for Point of Sale**
(`l10n_de_pos_cert`) and **Germany - Certification for Point of Sale of type restaurant**
(`l10n_de_pos_res_cert`) modules.
.. image:: germany/datev-export.png
:alt: General ledger's actions menu with DATEV exports
.. tip::
If these modules are not listed, :ref:`update the app list <general/install>`.
Upload the downloaded ZIP file via the `DATEV Belegtransfer software <https://www.datev.de/web/de/service-und-support/software-bereitstellung/download-bereich/betriebliches-rechnungswesen/belegtransfer>`_.
.. image:: germany/pos-upgrade.png
:align: center
:alt: Upgrading Odoo Point of Sale from the Apps dashboard
If you do not have the DATEV Belegtransfer software installed on your computer, ask your tax advisor
to help you with this.
Register your company at the financial authority
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. warning::
The DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For
customer invoices, the file must have been generated by using the :guilabel:`Print & Send`
button. For vendor bills, the file must have been received via an email alias or uploaded by
using the :guilabel:`Upload` button.
To register your company, go to :menuselection:`Settings --> General Settings --> Companies -->
Update Info`, fill out the following fields and *Save*.
.. admonition:: DATEV ATCH ZIP file
- **Company name**
- Valid **address**
- **VAT** number
- **St.-Nr** (Steuernummer): this number is assigned by the tax office to every taxable natural or
legal person. (e.g., `2893081508152`)
- **W-IdNr** (Wirtschafts-Identifikationsnummer): this number is used as a permanent
identification number for economically active persons.
The ZIP file contains two types of files:
You can then **register your company through fiskaly** by opening the *fiskaly* tab and clicking on
the *fiskaly Registration* button.
- the individual invoice/bill files (PDF, JPEG, etc.) for the selected period on the general
ledger, and
- a :file:`document.xml` file used to generate a unique ID (GUID) for each file.
.. image:: germany/fiskaly-registration.png
:align: center
:alt: Button to register a company through fiskaly in Odoo
These unique IDs are essential as they allow DATEV to automatically link the files to the
individual journal items, which will be imported with the DATEV DATA file in the next step.
.. tip::
If you do not see the *fiskaly Registration* button, make sure that you *saved* your company
details and are not in *editing mode* anymore.
2. DATEV DATA
~~~~~~~~~~~~~
Once the registration has been finalized, new fields appear:
Go to :menuselection:`Accounting --> Reporting --> General Ledger`, click the :icon:`fa-cog`
(:guilabel:`Actions`) button, and select :guilabel:`Datev DATA (zip)`.
- **fiskaly organization ID** refers to the ID of your company at the fiskaly side.
- **fiskaly API key** and **secret** are the credentials the system uses to access the services
offered by fiskaly.
Transfer the downloaded ZIP file to your tax advisor. They should import the ZIP file into DATEV
Rechnungswesen.
.. image:: germany/fiskaly-keys.png
:align: center
:alt: fiskaly keys as displayed on Odoo
Check with your tax advisor how often they need these files.
.. note::
It is possible to request new credentials if there is any issue with the current ones.
.. admonition:: DATEV ATCH ZIP file
Create and link a Technical Security System to your PoS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ZIP file contains three CSV files:
.. image:: germany/create-tss.png
:align: right
:alt: Create TSS option from a point of sale
To use your point of sale in Germany, you first have to create a :abbr:`TSS (Technical Security
System)` for it.
To do so, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, open the point
of sale you want to edit, then check the box next to **Create TSS** and *Save*.
.. image:: germany/tss-ids.png
:align: right
:alt: Example of TSS ID and Client ID from fiskaly in Odoo Point of Sale
Once the creation of the TSS is successful, you can find your **TSS ID** and **Client ID** under the
*fiskaly API* section.
- **TSS ID** refers to the ID of your TSS at fiskaly's side.
- **Client ID** refers to your PoS but at fiskaly's side.
DSFinV-K
--------
.. image:: germany/dsfinv-k-export.png
:align: right
:alt: Menu to export DSFinV-K
Whenever you close a PoS session, the orders' details are sent to the :abbr:`DSFinV-K (Digitale
Schnittstelle der Finanzverwaltung für Kassensysteme)` service of fiskaly.
In case of an audit, you can export the data sent to DSFinV-K by going to :menuselection:`Point of
Sale --> Orders --> DSFinV-k exports`.
These fields are mandatory:
- **Name**
- **Start Datetime** (export data with dates larger than or equal to the given start date)
- **End Datetime** (export data with dates smaller than or equal to the given end date)
Leave the **Point of Sale** field blank if you want to export the data of all your points of sale.
Specify a Point of Sale if you want to export this specific PoS' data only.
The creation of a DSFinV-K export triggers on export at fiskaly's side.
.. image:: germany/dsfinv-k-export-fields.png
:align: center
:alt: Pending DSFinV-K export on Odoo
As you can see, the **State** is *Pending*. This means that the export has been successfully
triggered and is being processed. You have to click on *Refresh State* to check if it is ready.
- the :file:`EXTF_customer_accounts.csv` file containing all information related to your
customers,
- the :file:`EXTF_vendor_accounts.csv` file containing all information related to your vendors,
and
- the :file:`EXTF_accounting_entries.csv` containing all journal items for the period defined on
the general ledger, as well as the unique IDs (GUID) so that the journal items can be linked to
the files inside the DATEV ATCH ZIP file.
.. _germany/gobd:
German Tax Accounting Standards: Odoo's guide to GoBD Compliance
================================================================
GoBD compliance
---------------
**GoBD** stands for *Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*.
In short, it is a **guideline for the proper management and storage of books, records, and documents
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
declaration, and balance sheet.
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*. In short, it is a
guideline for the proper management and storage of books, records, and documents in electronic form,
as well as for data access, that is relevant for the German tax authority, tax declaration, and
balance sheet.
These principles have been written and published by the Federal Ministry of Finance (BMF) in
November 2014. Since January 2015, **they have become the norm** and replace previously accepted
practices linked to computer-based accounting. Several changes have been made by the BMF in 2019 and
January 2020 to specify some of the content and due to the development of digital solutions (cloud
hosting, paperless companies, etc.).
November 2014. Since January 2015, **they have become the norm** and have replaced previously
accepted practices linked to computer-based accounting. Several changes have been made by the BMF in
2019 and January 2020 to specify some of the content due to the development of digital solutions
(cloud hosting, paperless companies, etc.).
.. important::
Odoo gives you **the means to be compliant with GoBD**.
Odoo is certified **GoBD-compliant**.
What do you need to know about GoBD when relying on accounting software?
------------------------------------------------------------------------
Understanding GoBD in relation to accounting software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. note::
If you can, the best way to understand GoBD is to Read the `Official GoBD text
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
It is a bit long but quite readable for non-experts. But in short, here is what to expect:
The **GoBD is binding for companies that have to present accounts, which includes SMEs, freelancers,
and entrepreneurs, to the financial authorities**. As such, **the taxpayer himself is the sole
responsible** for the complete and exhaustive keeping of fiscal-relevant data (above-mentioned
The **GoBD is binding for companies that have to present accounts**, which includes SMEs,
freelancers, and entrepreneurs, to the financial authorities. As such, **the taxpayer himself is the
sole responsible** for the complete and exhaustive keeping of fiscal-relevant data (above-mentioned
financial and related data).
Apart from software requirements, the user is required to ensure Internal control systems (*in
Apart from software requirements, the user is required to ensure internal control systems (*in
accordance with sec. 146 of the Fiscal Code*):
- Access rights control;
- Segregation of Duties, Functional separating;
- Entry controls (error notifications, plausibility checks);
- Reconciliation checks at data entry;
- Processing controls;
- Measures to prevent intentional or unintentional manipulation of software, data, or documents.
- access rights control;
- segregation of duties, functional separating;
- entry controls (error notifications, plausibility checks);
- reconciliation checks at data entry;
- processing controls; and
- measures to prevent intentional or unintentional manipulation of software, data, or documents.
The user must distribute tasks within its organization to the relevant positions (*control*) and
The user must distribute tasks within their organization to the relevant positions (*control*) and
verify that the tasks are properly and completely performed (*supervision*). The result of these
controls must be recorded (*documentation*), and should errors be found during these controls,
appropriate measures to correct the situation should be put into place (*prevention*).
What about data security?
-------------------------
Data security
~~~~~~~~~~~~~
**The taxpayer must secure the system against any data loss due to deletion, removal, or theft of
any data**. If the entries are not sufficiently secured, the bookkeeping will be regarded as not in
The taxpayer must **secure the system against any data loss** due to deletion, removal, or theft of
any data. If the entries are not sufficiently secured, the bookkeeping will be regarded as not in
accordance with the GoBD guidelines.
Once bookings have been finally posted, they can no longer be changed or deleted via the
@@ -229,104 +161,183 @@ application.
.. seealso::
`Odoo Cloud Hosting - Service Level Agreement <https://www.odooo.com/cloud-sla>`_
- If the server is operated locally, it is the responsibility of the user to create the necessary
backup infrastructure.
- If the server is operated locally, the user is responsible for creating the necessary backup
infrastructure.
.. important::
In some cases, data has to be kept for ten years or more, so always have backups saved. It is
even more important if you decide to change software provider.
Responsibility of the software editor
-------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Considering GoBD only applies between the taxpayer and the financial authority, **the software
editor can by no means be held responsible for the accurate and compliant documentation of financial
transactional data of their users**. It can merely provide the necessary tools for the user to
respect the software related guidelines described in the GoBD.
Considering GoBD applies only to the taxpayer, **the software editor can by no means be held
responsible for the accurate and compliant documentation of their users' financial transactional
data**. It can merely provide the necessary tools for the user to respect the software-related
guidelines described in the GoBD.
How can Odoo help you achieve Compliance?
-----------------------------------------
Ensuring compliance through Odoo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The key words, when it comes to GoBD, are: **traceable, verifiable, true, clear, and continuous**.
In short, you need to have audit-proof archiving in place and Odoo provides you with the means to
The keywords, when it comes to GoBD are: **traceable, verifiable, true, clear, and continuous**.
In short, you need to have audit-proof archiving in place, and Odoo provides you with the means to
achieve all of these objectives:
#. | **Traceability and verifiability**
| Each record in Odoo is stamped with the creator of the document, the creation date, the
modification date, and who modified it. In addition, relevant fields are tracked thus it can be
seen which value was changed by whom in the chatter of the relevant object.
modification date, and who modified it. In addition, relevant fields are tracked. Thus, it can
be seen which value was changed by whom in the chatter of the relevant object.
#. | **Completeness**
| All financial data must be recorded in the system, and there can be no gaps. Odoo ensures that
there is no gap in the numbering of the financial transactions. It is the responsibility of the
user to encode all financial data in the system. As most financial data in Odoo is generated
user to encode all financial data in the system. As most financial data in Odoo is generated
automatically, it remains the responsibility of the user to encode all vendor bills and
miscellaneous operations completely.
#. | **Accuracy**
| Odoo ensures with the correct configuration that the correct accounts are used. In addition,
| Odoo ensures that, with the correct configuration, the correct accounts are used. In addition,
the control mechanisms between purchase orders and sales orders and their respective invoices
reflect the business reality. It is the responsibility of the user to scan and attach the
paper-based vendor bill to the respective record in Odoo. *Odoo Document helps you automate
this task*.
reflect the reality of the business. It is the responsibility of the user to scan and attach
the paper-based vendor bill to the respective record in Odoo. *Odoo Documents helps you
automate this task*.
#. | **Timely booking and record-keeping**
| As most financial data in Odoo is generated by the transactional objects (for example, the
invoice is booked at confirmation), Odoo ensures out-of-the-box timely record-keeping. It is
the responsibility of the user to encode all incoming vendor bills in a timely manner, as well
as the miscellaneous operations.
#. | **Order**
| Financial data stored in Odoo is per definition ordered and can be reordered according to most
fields present in the model. A specific ordering is not enforced by the GoBD, but the system
must ensure that a given financial transaction can be quickly found by a third-party expert.
Odoo ensures this out-of-the-box.
| Financial data stored in Odoo is, per definition, ordered and can be reordered according to
most fields present in the model. A specific ordering is not enforced by the GoBD, but the
system must ensure that a given financial transaction can be quickly found by a third-party
expert. Odoo ensures this out-of-the-box.
#. | **Inalterability**
| With the German Odoo localization, Odoo is in standard configured in such a way that the
inalterability clause can be adhered to without any further customization.
Do you need a GoBD-Export?
--------------------------
GoBD export
~~~~~~~~~~~
In the case of fiscal control, the fiscal authority can request three levels of access to the
accounting system (Z1, Z2, Z3). These levels vary from direct access to the interface to the
handover of the financial data on a storage device.
In case of a handover of the financial data on a storage device, the format is **not** enforced by
the GoBD. It can be, for example, in XLS, CSV, XML, Lotus 123, SAP-format, AS/400-format, or else.
Odoo supports the CSV and XLS-export of financial data out-of-the-box. The GoBD **recommends** the
export in a specific XML-based GoBD-format (see "Ergänzende Informationen zur
Datenntträgerüberlassung" §3) but it is not binding.
In the case of a handover of financial data to a storage device, the GoBD does **not** enforce the
format. It can be, for example, in XLS, CSV, XML, Lotus 123, SAP-format, AS/400-format, or else.
Odoo supports the CSV and XLS export of financial data out of the box. The GoBD **recommends** the
export in a specific XML-based GoBD format (see "Ergänzende Informationen zur
Datenträgerüberlassung" §3), but it is not binding.
What is the role and meaning of the compliance certification?
-------------------------------------------------------------
Non-compliance
~~~~~~~~~~~~~~
The GoBD clearly states that due to the nature of a state of the art accounting software, their
configuration possibilities, changing nature, and various forms of use, **no legally binding
certification can be given**, nor can the software be made liable towards a public authority.
Third-party certificates can indeed have **an informative value** for customers to make software
buying decisions but are by no means legally binding or of any other legal value (A. 12, § 181).
In the event of an infringement, you can expect a fine and a court order demanding the
implementation of specific measures.
A GoBD certificate states nothing more than that if you use the software according to its
guidelines, the software will not refrain you from respecting the GoBD. These certifications are
very expensive in terms of time and cost, and their value is very relative. Thus we focus our
efforts on ensuring GoBD compliance rather than pay for a marketing tool which does not, however,
offer our customer any legal certainty.
.. _germany/pos:
Point of Sale
=============
Technical security system
-------------------------
The **Kassensicherungsverordnung** (The Act on Protection against Manipulation of Digital Records)
requires that electronic record-keeping systems - including the :doc:`point of sale
</applications/sales/point_of_sale>` systems - must be equipped with a **technical security system**
(also called **TSS** or **TSE**).
Odoo offers a service that is compliant with the help of `fiskaly <https://fiskaly.com>`_, a
*cloud-based solution*.
.. important::
The BMF actually states the following in the `Official GoBD text
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_:
Since this solution is cloud-based, a working internet connection is required.
- 180. Positive attestations on the correctness of the bookkeeping - and thus on the correctness
of IT-based bookkeeping systems - are not issued either in the context of a tax field audit or
in the context of binding information.
- 181. "Certificates" or "attestations" from third parties can serve as a decision criterion for
the company when selecting a software product, but develop from the in margin no. 179 is not
binding on the tax authorities.
.. note::
The only VAT rates allowed are given by fiskaly. You can check these rates by consulting
`fiskaly DSFinV-K API: VAT Definition
<https://developer.fiskaly.com/api/dsfinvk/v0/#tag/VAT-Definition>`_.
.. note::
The previous content was `automatically translated from German with Google Translate
<https://translate.google.com/?sl=de&tl=en&text=180.%0APositivtestate%20zur%20Ordnungsm%C3%A4%C3%9Figkeit%20der%20Buchf%C3%BChrung%20-%20und%20damit%20zur%20Ordnungsm%C3%A4%C3%9Figkeit%20DV-gest%C3%BCtzter%20Buchf%C3%BChrungssysteme%20-%20werden%20weder%20im%20Rahmen%20einer%20steuerlichen%20Au%C3%9Fenpr%C3%BCfung%20noch%20im%20Rahmen%20einer%20verbindlichen%20Auskunft%20erteilt.%0A%0A181.%0A%E2%80%9EZertifikate%E2%80%9C%20oder%20%E2%80%9ETestate%E2%80%9C%20Dritter%20k%C3%B6nnen%20bei%20der%20Auswahl%20eines%20Softwareproduktes%20dem%20Unternehmen%20als%20Entscheidungskriterium%20dienen%2C%20entfalten%20jedoch%20aus%20den%20in%20Rz.%20179%20genannten%20Gr%C3%BCnden%20gegen%C3%BCber%20der%20Finanzbeh%C3%B6rde%20keine%20Bindungswirkung.%20&op=translate>`_.
Configuration
~~~~~~~~~~~~~
:ref:`Install <general/install>` the **Germany - Certification for Point of Sale**
(`l10n_de_pos_cert`) and **Germany - Certification for Point of Sale of type restaurant**
(`l10n_de_pos_res_cert`) modules.
What happens if you are not compliant?
--------------------------------------
.. tip::
If these modules are not listed, :ref:`update the app list <general/install>`.
In the event of an infringement, you can expect a fine but also a court order demanding the
implementation of specific measures.
Company registration at the financial authority
***********************************************
To register your company, open the :guilabel:`Settings` app, click :guilabel:`Update Info` under the
:guilabel:`Companies` section, and fill in the following fields:
- :guilabel:`Company Name`
- :guilabel:`Address`
- :guilabel:`VAT`
- :guilabel:`St.-Nr.` (Steuernummer) this number is assigned by the tax office to every taxable
natural or legal person (e.g., `2893081508152`).
- :guilabel:`W-IdNr.` (Wirtschafts-Identifikationsnummer) this number is used as a permanent
identification number for economically active persons.
You can then **register your company through fiskaly** by opening the :guilabel:`Fiskaly` tab and
clicking the :guilabel:`Fiskaly Registration` button.
.. tip::
If you do not see the :guilabel:`Fiskaly Registration` button, make sure that you *saved* your
company details and are not in *editing mode* anymore.
Once the registration has been finalized, new fields appear:
- :guilabel:`Fiskaly Organization ID` refers to the ID of your company on fiskaly's side.
- :guilabel:`Fiskaly API Key` and :guilabel:`Fiskaly API Secret` are the credentials the system
uses to access the services offered by fiskaly.
.. image:: germany/fiskaly-registration.png
:alt: Fiskaly registration tab
.. note::
It is possible to request new credentials if there is any issue with the current ones by clicking
the :guilabel:`New keys` button.
Create a technical security system and link it to a POS
*******************************************************
To use a point of sale in Germany, first create a :abbr:`TSS (Technical Security System)` by going
to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, selecting the
:guilabel:`Point of Sale` to edit, then checking the :guilabel:`Create TSS` box under the
:guilabel:`Fiskaly API` section.
Once the creation of the TSS is successful, you can find the:
- :guilabel:`TSS ID`, which refers to the ID of your TSS on fiskaly's side, and
- :guilabel:`Fiskaly Client ID`, which refers to your POS on fiskaly's side.
.. image:: germany/fiskaly-tss.png
:alt: Fiskaly API section
DSFinV-K export
~~~~~~~~~~~~~~~
Whenever you close a PoS session, the details of the orders are sent to the :abbr:`DSFinV-K
(Digitale Schnittstelle der Finanzverwaltung für Kassensysteme)` service of fiskaly.
In case of an audit, you can export the data sent to DSFinV-K by going to :menuselection:`Point of
Sale --> Orders --> DSFinV-K Exports --> New`.
.. image:: germany/pos-orders-menu.png
:alt: Menu to export DSFinV-K
These fields are mandatory:
- :guilabel:`Start Datetime`: export data with dates larger than or equal to the given start date
- :guilabel:`End Datetime`: export data with dates smaller than or equal to the given end date
Leave the :guilabel:`Point of Sale` field blank to export the data of all your points of sale;
specify one if you want to export data for this specific POS only.
.. image:: germany/dsfinv-k-export.png
:alt: Exporting DSFinV-K
When an export is successfully triggered and is being processed, the :guilabel:`State` field should
mention :guilabel:`Pending`. Click :guilabel:`Refresh State` to check if it is ready.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

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

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -32,6 +32,10 @@ localization:
Installing the module :guilabel:`Luxembourg - Accounting Reports` installs all three modules at
once.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Luxembourg
<../accounting/customer_invoices/electronic_invoicing/luxembourg>`
Standard Chart of Accounts - PCN 2020
=====================================
@@ -104,7 +104,10 @@ portal to grant Odoo the **right to invoice** as an intermediary for your compan
- :guilabel:`TIN`: `C57800417080`
- :guilabel:`BRN`: `BE0477472701`
- :guilabel:`Name`: `ODOO S.A.`
- :guilabel:`Name`:
- :guilabel:`Production`: `ODOO S.A.`
- :guilabel:`Pre-production`: `OXXX_XXXXO S.A.`
#. Grant the following permissions by clicking the :icon:`fa-toggle-on` :guilabel:`(toggle-on)`
icon:
@@ -36,6 +36,10 @@ enables foreign trade, and the creation of delivery guides).
In order to electronically sign any documents in Odoo, ensure the *Sign* application is
installed.
.. seealso::
:doc:`Documentation on e-invoicing's legality and compliance in Mexico
<../accounting/customer_invoices/electronic_invoicing/mexico>`
Configuration
=============
@@ -2,6 +2,10 @@
Netherlands
===========
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in the Netherlands
<../accounting/customer_invoices/electronic_invoicing/netherlands>`
XAF Export
==========
@@ -7,6 +7,7 @@ Peru
.. |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)`
.. |PLE| replace:: :abbr:`PLE (Programa de Libros Electrónico)`
Modules
=======
@@ -57,6 +58,10 @@ Peruvian localization.
- Adds the delivery guide (Guía de Remisión), which is needed as proof that you are sending
goods between A and B. It is only when a delivery order is validated that the delivery guide
can be created.
* - :guilabel:`Peru - Stock Reports`
- `l10n_pe_reports_stock`
- Enables the :ref:`PLE reports <peru/reports-ple>` for permanent inventory record in physical
units and permanent valued inventory records.
* - :guilabel:`Peruvian eCommerce`
- `l10n_pe_website_sale`
- Enables the identification type in eCommerce checkout forms and the ability to generate
@@ -76,6 +81,8 @@ Peruvian localization.
- `App Tour - Localización de Peru <https://youtu.be/Ic3mGovkf8Y>`_
- `Smart Tutorial - Localización de Peru (videos for workflows and configurations)
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-peru-133>`_
- :doc:`Documentation on e-invoicing's legality and compliance in Peru
<../accounting/customer_invoices/electronic_invoicing/peru>`
Configuration
=============
@@ -724,14 +731,22 @@ and the :ref:`master data <peru-master_data>`, :ref:`install <general/install>`
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>`_.
<https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Servicios_GRE%20%281%29.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`.
:menuselection:`Inventory --> Configuration --> Settings`, and scroll down to the :guilabel:`Peru
Delivery Guide` section.
Configure the following :guilabel:`Sunat Delivery Guide API` fields:
- :guilabel:`Guide Client ID`: the unique API *client ID* generated in the |SUNAT| portal
- :guilabel:`Guide Client Secret`: the unique API *client secret* generated in the |SUNAT| portal
- :guilabel:`Guide SOL User`: the RUC Number + SOL username
- :guilabel:`Guide SOL Password`: the SOL user password
.. image:: peru/gre-fields-example.png
:alt: Example for the SUNAT Delivery Guide API section configuration.
@@ -908,7 +923,7 @@ Configuration
After configuring the Peruvian :ref:`electronic invoicing <peru-accounting-settings>` flow, complete
the following configurations for the **eCommerce** flow:
- :ref:`Client account registration <checkout-sign>`;
- :ref:`Client account registration <ecommerce/checkout/policy>`;
- :ref:`Automatic invoice <handling/legal>`;
- :doc:`../../websites/ecommerce/products`: Set the :guilabel:`Invoicing Policy` to
:guilabel:`Ordered quantities` and define the desired :guilabel:`Customer taxes`.
@@ -940,5 +955,100 @@ based on their tax ID (RUC/DNI). The invoice must then :ref:`be sent to the OSE
<peru-electronic-invoice-status>`. By default, all published invoices are sent once a day through
a scheduled action, but you can also send each invoice manually if needed.
Once the invoice is validated with |SUNAT|, customers can download the :file:`.zip` with the CDR,
XML, and PDF files directly from the customer portal by clicking the :guilabel:`Download` button.
Once the invoice is validated with |SUNAT|, customers can download the .zip file with the CDR, XML,
and PDF files directly from the customer portal by clicking the :guilabel:`Download` button.
Reports
=======
.. _peru/reports-ple:
Permanent inventory reports: |PLE| 12.1 and |PLE| 13.1
------------------------------------------------------
Odoo can produce two permanent inventory reports as `.txt` files for Peruvian accounting: |PLE| 12.1
and |PLE| 13.1. All inventory transactions made need to be reported.
- |PLE| 12.1 **only tracks inventory in physical units**, focusing on the inflow and outflow of
goods for effective management and planning.
- |PLE| 13.1 tracks **both physical quantities and monetary values of inventory**, providing a
comprehensive view for tax and management purposes.
Both reports must be maintained semi-annually (January-June and July-December), with monthly
transaction details reported within these periods. The submission deadlines are October 1st for the
first semester and April 1st for the second semester, in accordance with the *Resolución de
Superintendencia N° 169-2015*.
Configuration
~~~~~~~~~~~~~
Before generating the |PLE| 12.1 or |PLE| 13.1 reports, make sure the :guilabel:`Peru - Stock
Reports` (`l10n_pe_reports_stock`) module is installed, then update the fields for:
- :ref:`Products <peru/reports-ple-products>`
- :ref:`Warehouses <peru/reports-ple-warehouses>`
- :ref:`Inventory transfers <peru/reports-ple-transfers>`
.. _peru/reports-ple-products:
Products
********
Several configurations related to the product or product category are necessary for |PLE| reporting:
- **Type of existence**: For all products needing |PLE| reporting, go to the product record's
:guilabel:`Accounting` tab and select the :guilabel:`Type of Existence` according to |SUNAT|'s
table 5 for inventory reporting.
- **Automatic inventory valuation**: For storable goods (:dfn:`products with tracked inventory`),
use :doc:`automatic inventory valuation
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`.
Once automatic inventory valuation is enabled, this valuation method can be enabled for
a product's :ref:`product category <inventory/warehouses_storage/valuation-on-product-category>`.
- **Costing method:** Storable goods must use a :doc:`costing method
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
**other** than :guilabel:`Standard Price`, as the journal entries generated from stock moves are
used to populate the |PLE| reports.
.. _peru/reports-ple-warehouses:
Warehouses
**********
When :doc:`setting up a warehouse
<../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses>`, the
:guilabel:`Annex Establishment Code` field must be filled. This code acts as a unique ID for each
warehouse and should only be a numeric combination, containing between 4 to 7 digits.
.. _peru/reports-ple-transfers:
Inventory transfers
*******************
Transferring inventory is a key process captured in the |PLE| 12.1 and |PLE| 13.1 reports.
:doc:`Inventory transfers <../../inventory_and_mrp/inventory/shipping_receiving/daily_operations>`
include both incoming and outgoing shipments.
When validating an inventory transfer (either on a warehouse receipt or delivery order), select the
:guilabel:`Type of Operation (PE)` performed according to |SUNAT|'s table 12 for permanent inventory
reporting.
Generate a .txt file for permanent inventory Kardex reports
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|PLE| 12.1 and 13.1 come as two separate books. The books need to be downloaded in `.txt` file
format from Odoo, and then they should be submitted to the |SUNAT| |PLE| software.
On the :ref:`Inventory Valuation Report <inventory/management/reporting/valuation-report>`, click
the :guilabel:`PLE Reports` button. Then, select the :guilabel:`Period` and choose a report to
export: either the :guilabel:`PLE 12.1` or :guilabel:`PLE 13.1`. Odoo generates a `.txt` file
for the chosen report.
.. image:: peru/l10n-ple-export-button.png
:alt: Export Buttons selection
.. note::
Only a download of the report in `.txt` format is available. There is no preview or visualization
available within Odoo.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@@ -24,6 +24,10 @@ localization.
.. image:: romania/romania-modules.png
:alt: Modules for the Romanian localization
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Romania
<../accounting/customer_invoices/electronic_invoicing/romania>`
D.406 declaration
=================
@@ -20,6 +20,12 @@ 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.
.. seealso::
- :doc:`Documentation on e-invoicings legality and compliance in Spain
<../accounting/customer_invoices/electronic_invoicing/spain>`
- :doc:`Documentation on e-invoicings legality and compliance in the Basque Country
<../accounting/customer_invoices/electronic_invoicing/basque_country>`
Chart of accounts
=================
@@ -149,11 +155,16 @@ Before configuring the :abbr:`FACe (General Entrance for Electronic Invoices)` s
: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.
To configure FACe, follow these steps:
#. Go to :menuselection:`Accounting --> Configuration --> Certificates`.
#. Click :guilabel:`New` to create a new certificate.
#. Complete the fields, including uploading the file of the :guilabel:`Certificate` provided by the
tax agency and the provided :guilabel:`Certificate Password`.
.. note::
If using the Invoicing app instead of Accounting, go to :menuselection:`Invoicing -->
Configuration --> Certificates`.
Use case
--------
@@ -25,6 +25,10 @@ The supported documents are:
The localization requires an Uruware account, which enables users to generate electronic documents
within Odoo.
.. seealso::
:doc:`Documentation on e-invoicing's legality and compliance in Uruguay
<../accounting/customer_invoices/electronic_invoicing/uruguay>`
Glossary
--------
@@ -105,39 +109,61 @@ search for your company to verify the following:
Set up a Uruware account
------------------------
To set up a Uruware account, first be sure to have a valid Odoo subscription. Then follow the
proceeding steps.
To set up a Uruware account, follow these steps:
Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
Configuration --> Settings`. Scroll down to the :guilabel:`Uruguayan Localization` section and click
on :guilabel:`Create Uruware Account`.
#. Verify that you have a valid Odoo subscription.
#. Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
Configuration --> Settings`.
#. Scroll down to the :guilabel:`Uruguayan Localization` section and select the environment
(:guilabel:`Production` or :guilabel:`Testing`).
#. Click on :guilabel:`Create Uruware Account`.
Upon doing so, an email is sent to the address associated with your Odoo subscription with the
username and password to enter Uruware's portal and set up your account.
password to enter Uruware's portal and set up your account.
.. tip::
Your :guilabel:`Tax ID` needs to be setup to be able to create your account.
- The email with the credentials is not immediate; it might take up to 48 hours for the account to
be created.
- The company's :guilabel:`Tax ID` needs to be set up to be able to create an Uruware account.
- The password sent expires after 24 hours. In this case, reset it by using the *Forgot Password*
link in Uruware's portal.
.. note::
This action will create an account with Uruware with the following information:
- Legal name (razón social)
- RUT from the company
- User name (RUT.odoo)
- Username (the Odoo subscription email or `RUT`.odoo. For example: `213344556677.odoo`)
- Odoo database link
To ensure your account is created correctly, please add any missing information from above.
Once the account is created, a confirmation email is sent to the email linked to your subscription
in Odoo, containing the credentials to configure the account directly in the Uruware
`testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
Once the account is created and you have received the email containing the credentials, configure
your accounts directly in the Uruware `testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
`production portal <https://prod6109.ucfe.com.uy/Gestion/>`_:
Use the account credentials in the email to log in to the portal.
Use the account credentials in the email to log in to the to the corresponding (`test
<https://odootest.ucfe.com.uy/Gestion/>`_ or `production <https://prod6109.ucfe.com.uy/Gestion/>`_)
portal.
In Uruware's portal, the following steps are needed to be able to issue invoices from Odoo:
#. Complete and correct the company's information.
#. Add your digital certificate.
#. Add your :abbr:`CAEs (Constancia de Autorización para Emisión)` for each document-type you plan
to issue.
#. Configure the format of the PDF to be printed and sent to your customers.
.. important::
Be sure to configure two accounts, one for testing and one for production. The email address can
be changed in Uruware and the same can be used in both environments.
Be sure to configure two accounts, one for testing and one for production. The certificate is
needed in both environments, but :abbr:`CAEs (Constancia de Autorización para Emisión)` are only
needed in production.
.. seealso::
- `Odoo Tutorials: Uruguay Localization
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-uruguay-432>`_
- `Odoo Help Forum: Uruguay
<https://www.odoo.com/forum/help-1?search=l10n_uy>`_
Electronic invoice data
-----------------------
@@ -156,6 +182,9 @@ First, select the :guilabel:`UCFE Web Services` environment:
to the |DGI|. For this reason, rejection errors will not appear in this mode. Every internal
validation can be tested in demo mode. Avoid selecting this option in a production database.
.. note::
Using :guilabel:`Demo` mode does not require a Uruware account.
Then, enter the :guilabel:`Uruware Data`:
- :guilabel:`Uruware WS Password`
@@ -166,9 +195,16 @@ Then, enter the :guilabel:`Uruware Data`:
:alt: Required information for electronic invoice.
.. note::
This data can be obtained from the Uruware portal, after configuring the :ref:`Uruware account
<l10n_uy/uruware-account>`. The :guilabel:`Uruware WS Password` differs from the password you use
to enter your Uruware account.
This data can be obtained from the Uruware portal after configuring the :ref:`Uruware account
<l10n_uy/uruware-account>`.
To get the :guilabel:`Uruware WS Password`, go to :menuselection:`Configuration --> Company -->
Edit` and look for the :guilabel:`Validators and Additional Information` tab to find
:guilabel:`WS Password`.
To get the :guilabel:`Commerce Code`, go to :menuselection:`Configuration --> Branches`.
To get the :guilabel:`Terminal Code`, go to :menuselection:`Configuration --> Issuing Points`.
Master data
-----------
@@ -2,55 +2,271 @@
Vietnam
=======
Add Vietnamese QR banking codes to invoices
===========================================
.. _SInvoice: https://www.sinvoice.vn/
.. _localizations/vietnam/modules:
Modules
=======
The following modules are installed automatically with the Vietnamese localization:
.. list-table::
:header-rows: 1
* - Name
- Technical name
- Description
* - :guilabel:`Vietnam - Accounting`
- `l10n_vn`
- This module includes the default
:ref:`fiscal localization package <fiscal_localizations/packages>`.
* - :guilabel:`Vietnam - E-invoicing`
- `l10n_vn_edi_viettel`
- This module includes the features required for integration with :ref:`SInvoice
<localizations/vietnam/sinvoice>`.
.. note::
In some cases, such as when upgrading to a version with additional modules, it is possible that
modules may not be installed automatically. Any missing modules can be manually :ref:`installed
<general/install>`.
.. _localizations/vietnam/company:
Company
=======
To use all the features of this fiscal localization, the following fields are required on the
:doc:`company record </applications/general/companies>`:
- :guilabel:`Name`
- :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
and :guilabel:`Country`.
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Tax ID`: tax identification number.
.. _localizations/vietnam/sinvoice:
E-invoicing with SInvoice
=========================
SInvoice_ is an e-invoice service platform provided by Viettel, one of the biggest e-invoice service
providers in Vietnam. Odoo supports integration with SInvoice to submit invoices generated in Odoo.
Configuration
-------------
SInvoice platform
~~~~~~~~~~~~~~~~~
To send electronic invoices to SInvoice, the following must be created on SInvoice_:
- :ref:`SInvoice account <localizations/vietname/sinvoice-registration>`
- :ref:`Invoice template <localizations/vietname/sinvoice-template>`
- :ref:`Invoice symbol <localizations/vietname/sinvoice-symbol>`
- :ref:`Invoice issuance notice <localizations/vietname/sinvoice-notice>`
.. _localizations/vietname/sinvoice-registration:
SInvoice registration
*********************
To create an account, go to SInvoice_ and register for the desired plan. Fill in the form that
opens to be contacted by SInvoice_ to create an account.
Once you have an account, log into SInvoice_ using your :guilabel:`Username` and
:guilabel:`Password`.
.. _localizations/vietname/sinvoice-template:
Invoice template creation
*************************
#. On the left side of the overview page, in the :guilabel:`Release management` menu, click
:guilabel:`Create business information`.
#. In the :guilabel:`Update key information` step, fill in the following fields and other optional
information if needed: :guilabel:`Unit name`, :guilabel:`Address`, :guilabel:`Contact person`,
:guilabel:`Type of representative documents`.
#. Click :guilabel:`Update`.
#. In the :guilabel:`Look up digital certificate` step, click :guilabel:`Add new` to add a digital
certificate.
#. Select the :guilabel:`Branch/Enterprise` and the :guilabel:`Type of digital certificate`, then
fill in the required fields for each type:
- :guilabel:`Supplier`: CloudCA
- :guilabel:`Signer ID`: CloudCA
- :guilabel:`Digital Certificate`: CloudCA
- :guilabel:`How to download file`: HSM
- :guilabel:`File Upload`: HSM, USB-TOKEN
#. Click :guilabel:`Generate key pair` to generate encryption keys for authentication, and
:guilabel:`Save`.
#. In the :guilabel:`Manage invoice templates` step, add a new :guilabel:`Invoice template`.
#. Select the :guilabel:`Invoice type` and fill in the :guilabel:`Invoice template code`,
:guilabel:`Invoice template name`, and other optional information if needed.
#. Click :guilabel:`Update`.
.. seealso::
`SInvoice documentation on electronic invoice template creation
<https://www.sinvoice.vn/2021/02/hdsd-tai-lieu-nghiep-vu-tao-mau-hoa-don-dien-tu.html?debug=1>`_
.. _localizations/vietname/sinvoice-symbol:
Invoice symbol creation
***********************
On the left side of the main screen, in the :guilabel:`Release management` menu, click
:guilabel:`Invoice symbol` and follow these steps:
#. Click :guilabel:`Add new` and select the :guilabel:`Invoice template`.
#. Set the :guilabel:`Status` to :guilabel:`Active` to activate the symbol and fill in the
:guilabel:`Invoice symbol`.
#. Enable :guilabel:`Stop automatic sending to tax authorities` and :guilabel:`Default for built-in
API` based on preference.
#. Click :guilabel:`Save`.
.. _localizations/vietname/sinvoice-notice:
Invoice issuance notice
***********************
On the left side of the main screen, in the :guilabel:`Release management` menu, click
:guilabel:`Create issuance notice` and follow these steps:
#. Click :guilabel:`Add new`, select the :guilabel:`Name of the business unit to issue an e-invoice`
and the :guilabel:`Tax agency name`. Based on the business unit and tax agency selected, the
:guilabel:`Tax code`, :guilabel:`Address`, :guilabel:`Phone number`, and :guilabel:`Separator
used` are automatically filled and uneditable.
#. Click :guilabel:`Select the invoice type for issuance`, and then select and fill in the
following information :
- :guilabel:`Invoice type`: The invoice type on which to declare an issuance notice.
- :guilabel:`Invoice template`: Select from the list of templates available based on the invoice
type.
- :guilabel:`Symbol`: Select from the list of symbols available based on the invoice type.
- :guilabel:`Quantity`: Total number of invoices to issue for the selected type. Based on the
type and template selected, this field is filled in automatically. It can be changed if needed.
- :guilabel:`Start date of use`: The date from which the invoice template, range, and quantity
are used for the issuance notice.
#. Click :guilabel:`Save` and select more invoice types if necessary by repeating the steps above.
Click :guilabel:`Save` to finish drafting the notice.
#. Click :guilabel:`Send to tax authorities` for approval. Once approved, the notice's
:guilabel:`Status` is changed to :guilabel:`Active`.
.. _localizations/vietnam/sinvoice-odoo:
Odoo database
~~~~~~~~~~~~~
Link Odoo to SInvoice
*********************
To connect Odoo with SInvoice, go to :menuselection:`Accounting --> Configuration --> Settings`.
In the :guilabel:`Vietnamese Integration` section, fill in your SInvoice :guilabel:`Username` and
:guilabel:`Password`. Add a :guilabel:`Default symbol` to generate a prefix for the invoice number
managed in SInvoice if needed.
Invoice template
****************
To create SInvoice templates, go to :menuselection:`Accounting --> Configuration --> Templates`.
Click :guilabel:`New` and add a :guilabel:`Template code` and a :guilabel:`Template Invoice Type`.
The :guilabel:`Template code` is the initial sequence of digits in the name assigned by SInvoice.
For example, if the invoice template is `1/001 - Hóa đơn GTGT - ND123`, the :guilabel:`Template
code` is `1/001`. The SInvoice templates in Odoo must match the ones in SInvoice.
To add :guilabel:`Invoice Symbols`, click :guilabel:`Add a new line`.
Sending invoices to SInvoice
----------------------------
Invoices can be sent to SInvoice once they have been confirmed. To do so, follow the
:ref:`invoice sending <accounting/invoice/sending>` steps. In the :guilabel:`Send` popup, enable
:guilabel:`Send to SInvoice` and click :guilabel:`Send & Print`.
Once the invoice has been successfully submitted to SInvoice, the :guilabel:`SInvoice Status` field
in the :guilabel:`SInvoice` tab of the invoice is updated to :guilabel:`Sent`. The
:guilabel:`SInvoice Number`, :guilabel:`Issue Date`, :guilabel:`Secret Code` and :guilabel:`eInvoice
Number` fields are also updated. The same information is available on SInvoice.
Replacement or adjustment invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A replacement invoice is issued to correct an invoice that has **yet to be tax declared**, whereas
an adjustment invoice is issued to correct one that has **already been tax declared**. Follow these
steps to issue a replacement or adjustment invoice:
#. Open the invoice and click :guilabel:`Credit Note`.
#. In the :guilabel:`Credit Note` popup, fill in the following fields:
- :guilabel:`Reason displayed on Credit Note`
- :guilabel:`Adjustment type`
- :guilabel:`Agreement Name`
- :guilabel:`Agreement Date`
- :guilabel:`Journal`
- :guilabel:`Reversal date`
#. Click :guilabel:`Reverse and Create Invoice` to issue a replacement invoice, or
:guilabel:`Reverse` to issue an adjustment invoice.
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
:guilabel:`Replaced` for a replacement invoice or :guilabel:`Adjusted` for an adjustment invoice.
Invoice cancellation
~~~~~~~~~~~~~~~~~~~~
If an invoice needs to be canceled, open the invoice and click :guilabel:`Request Cancel`. In the
:guilabel:`Invoice Cancellation` popup, enter the cancellation :guilabel:`Reason`,
:guilabel:`Agreement Name`, and :guilabel:`Agreement Date`, and click :guilabel:`Request
Cancellation`.
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
:guilabel:`Canceled`.
.. _localizations/vietnam/qrcode:
QR banking codes
================
Vietnamese QR banking is a payment service platform that allows customers to make instant domestic
payments to individuals and merchants in Vietnamese dong via online and mobile banking.
Activate QR codes
-----------------
Configuration
-------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, activate the :guilabel:`QR Codes` feature.
To activate QR banking codes, go to :menuselection:`Accounting --> Configuration --> Settings` and
enable :guilabel:`QR Codes` in the :guilabel:`Customer Payments` section.
Vietnamese QR banking bank account configuration
------------------------------------------------
Bank account
~~~~~~~~~~~~
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
which you want to activate Vietnamese QR banking. Set the :guilabel:`Bank Identifier Code` on the
bank. Then set the :guilabel:`Proxy Type` and fill in the :guilabel:`Proxy Value` field depending on
the type you chose.
To activate QR banking for a bank account, go to :menuselection:`Contacts --> Configuration -->
Bank Accounts` and select the bank account. Fill in the :guilabel:`Bank Identifier Code`,
:guilabel:`Proxy Type` (based on the information used to identify the :guilabel:`Merchant Account`,
such as the card number and bank account numbers), and :guilabel:`Proxy Value` fields.
Enable :guilabel:`Include Reference` to include the invoice number in the QR code.
.. important::
- The account holder's country must be set to `Vietnam` on its contact form.
- The account holder's city is mandatory.
- You could also include the invoice number in the QR code by checking the :guilabel:`Include
Reference` checkbox.
.. image:: vietnam/vn-paynow-bank-setting.png
:alt: Vietnamese QR banking bank account configuration
- The account holder's country must be set to `Vietnam`, and their city must be specified on the
contact form.
- The :ref:`account number <accounting/bank/account-number>` and bank must be set on the
:guilabel:`Bank` journal.
.. seealso::
:doc:`../accounting/bank`
Bank journal configuration
--------------------------
Generating QR codes on invoices
-------------------------------
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
When creating a new invoice, open the :guilabel:`Other Info` tab and select :guilabel:`EMV
Merchant-Presented QR-code` in the :guilabel:`Payment QR-code` field.
.. image:: vietnam/vn-bank-account-journal-setting.png
:alt: Bank Account's journal configuration
Issue invoices with Vietnamese QR banking QR codes
--------------------------------------------------
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
QR-code` option to *EMV Merchant-Presented QR-code*.
.. image:: vietnam/vn-qr-code-invoice-setting.png
:alt: Select EMV Merchant-Presented QR-code option
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the Vietnamese QR banking QR code.
.. note::
Ensure the :guilabel:`Recipient Bank` is configured, as Odoo uses this field to generate QR
codes.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

@@ -367,6 +367,8 @@ enable :guilabel:`Allow Express Checkout`.
.. note::
All prices shown on the express checkout payment form always include taxes.
.. _payment_providers/availability:
Availability
============
@@ -441,8 +443,8 @@ entries. We recommend you ask your accountant for advice.
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.
<accounting/bank/outstanding-accounts>` for each payment provider to separate the provider's
payments from other payments.
.. image:: payment_providers/bank_journal.png
:alt: Define an outstanding account for a payment provider.
@@ -33,8 +33,6 @@ Configuration on the Xendit Dashboard
#. In the :guilabel:`Webhook URL` section, enter your Odoo database's URL, followed by
`/payment/xendit/webhook` (e.g., `https://example.odoo.com/payment/xendit/webhook`) in the field
:guilabel:`Invoices paid` and click the :guilabel:`Test and save` button next to it.
#. Navigate to the `Card Settings page <https://dashboard.xendit.co/settings/payment-methods/cards-configuration>`_
and ensure that :guilabel:`Optional 3DS` is enabled while :guilabel:`Dynamic 3DS` is disabled.
Configuration on Odoo
=====================
@@ -17,6 +17,10 @@ emails. The deliverability is optimized for this subdomain as it uses Odoos D
If the database subdomain is `company-name.odoo.com` and all mailing configurations are the
default ones, all emails will be sent from `notifications@company-name.odoo.com`.
.. important::
Only **one** subdomain can be used as a mailing server in Odoo. Subdomains for additional
companies require an external email server with a custom domain.
.. image:: email_servers_outbound/diagram-inbound-mailing-method.png
:alt: Odoos default outbound messages configuration.
@@ -100,9 +104,10 @@ Sending emails with an external SMTP server
the DNS of an Odoo subdomain is not feasible.
To add an external SMTP server in Odoo, open :guilabel:`Settings`, and enable the :guilabel:`Use
Custom Email Servers` option found under the :guilabel:`Discuss` section.
Custom Email Servers` option found under the :guilabel:`Emails` section. Then, click
:guilabel:`Save` at the top of the page to save the changes.
Still under the :guilabel:`Discuss` section, click :guilabel:`Outgoing Email Servers`, then `New` to
Returning to the :guilabel:`Emails` section, click :guilabel:`Outgoing Email Servers`, then `New` to
create an outgoing mail server record. Most fields are the common parameters used to set up a
connection to an SMTP server; use the values provided by your email provider.
@@ -158,9 +163,8 @@ transactional emails are given priority.
:alt: Example of split between transaction and mass mailing mail servers.
Now, go to :menuselection:`Email Marketing --> Configuration --> Settings`, enable
:guilabel:`Dedicated Server`, and select the appropriate email server. Odoo uses the server
with the lowest priority value for transactional emails, and the server selected here for mass
mailings.
:guilabel:`Dedicated Server`, and select the appropriate email server. Odoo uses the server with the
lowest priority value for transactional emails, and the server selected here for mass mailings.
.. image:: email_servers_outbound/dedicated-mass-mail-server.png
:alt: Dedicated mail server on Email Marketing app settings.
@@ -194,8 +198,8 @@ When an email is sent from Odoo, the following sequence is used to choose the ou
If the sender's email address is `test@example.com`, only an email server having a FROM filtering
value equal to `test@example.com` or `example.com` can be used.
- If no server is found based on the first criteria, Odoo looks for the first server
without a FROM filtering value set. The email will be overridden with the notification address.
- If no server is found based on the first criteria, Odoo looks for the first server without a FROM
filtering value set. The email will be overridden with the notification address.
- If no server is found based on the second criteria, Odoo uses the first server, and the email will
be overridden with the notification address.
@@ -228,8 +232,8 @@ server is set, the default Odoo's SMTP server will be used.
:alt: Splitting of Odoo mail server for transactional emails and Mail server for Mass mailing.
.. note::
On Odoo Online, the command line interface is equivalent to the default Odoo mail
server, using the same limit as if there was no outgoing mail server in place.
On Odoo Online, the command line interface is equivalent to the default Odoo mail server, using
the same limit as if there was no outgoing mail server in place.
.. tip::
On Odoo Online, the page also shows your daily email usage and your daily limit. On Odoo.sh, you
@@ -8,3 +8,4 @@ Integrations
integrations/unsplash
integrations/geolocation
integrations/google_translate
integrations/barcodelookup
@@ -0,0 +1,40 @@
:show-content:
==============
Barcode Lookup
==============
`Barcode Lookup <https://www.barcodelookup.com/>`_ allows you to scan (or enter) products' barcodes
(:abbr:`UPC (Universal Product Code)`, :abbr:`EAN (European Article Number)`, or :abbr:`ISBN
(International Standard Book Number)`) to automatically create them in your Odoo database, complete
with product names, descriptions, images, categories, etc.
.. _barcodelookup/configuration:
Configuration
-------------
If your database is hosted on **Odoo Online**, you can use Barcode Lookup without configuration.
If your database is hosted on **Odoo.sh** or **on-premise**, proceed as follows:
#. Visit the `Barcode Lookup website <https://www.barcodelookup.com/api>`_ and click
:guilabel:`Sign Up for the API`.
#. Choose the appropriate plan based on the number of barcodes you need to scan.
#. Fill in the required details and complete the registration process.
#. Copy the API key.
#. In Odoo, open the Settings app, scroll down to the :guilabel:`Integrations` section, and, under
:guilabel:`Barcode Database`, paste the Barcode Lookup :guilabel:`API Key`.
Use
---
To fill in product information using Barcode Lookup, create a new product and fill in the
:guilabel:`Barcode` field. The product's details are then automatically imported from Barcode
Lookup, updating the following fields: :guilabel:`Name`, :guilabel:`Price`, :guilabel:`Description`,
:guilabel:`Tax`, :guilabel:`Image`, :guilabel:`Weight`, :guilabel:`Attributes`, :guilabel:`Product
category`, and :guilabel:`Volume`. You can then modify any field(s) as needed.
.. seealso::
:ref:`Create new products during internal transfers using the Barcode Lookup database
<barcode/setup/barcodelookup>`.
+76 -3
View File
@@ -1,14 +1,87 @@
:nosearch:
:show-content:
:hide-page-toc:
:show-toc:
:nosearch:
========================
Internet of Things (IoT)
========================
Odoo Internet of Things (IoT) allows to connect physical devices such as barcode scanners, receipt
printers, payment terminals, measurement tools, etc. to an Odoo database using an IoT system.
The following IoT systems are supported:
- :doc:`IoT box <iot/iot_box>`: micro-computer, plug-and-play device (i.e., the Odoo IoT program is
pre-installed);
- :doc:`Windows virtual IoT <iot/windows_iot>`: Odoo IoT program for Windows that can be installed
on a Windows computer.
.. note::
- :abbr:`MRP (Material Requirement Planning)` devices, including cameras and measurement tools,
are not compatible with Windows virtual IoT.
- Multiple IoT systems can be used at the same time.
- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,
this option is not supported by Odoo, and no troubleshooting assistance will be provided.
.. _iot/iot/iot-subscription:
IoT box subscription
====================
An IoT box subscription is required for production use of IoT systems. If you have issues related
to your subscription, contact the database's account manager or Odoo partner for assistance.
.. tip::
If the subscription is linked to an `Odoo.com <https://www.odoo.com>`_ portal user, check the
information on the portal's subscription page.
.. seealso::
- `Odoo's compatible IoT devices <https://www.odoo.com/app/iot-hardware>`_
- `Odoo Tutorials: Internet of Things (IoT) Tutorials
<https://www.odoo.com/slides/internet-of-things-iot-175>`_
- `IoT system FAQ <https://www.odoo.com/app/iot-faq>`_
.. cards::
.. card:: IoT box
:target: iot/iot_box
:large:
Set up an IoT box.
.. card:: Windows virtual IoT
:target: iot/windows_iot
:large:
Set up Windows virtual IoT.
.. card:: IoT system connection to Odoo
:target: iot/connect
Connect the IoT system to your Odoo database and troubleshoot potential connection issues.
.. card:: Devices
:target: iot/devices
Connect devices such as printers, screens, measurement tools, etc., to the IoT system.
.. card:: HTTPS certificate
:target: iot/iot_advanced/https_certificate_iot
Verify your IoT system and database meet the eligibility requirements for HTTPS certificate
generation and address any related issues.
.. card:: IoT system updates
:target: iot/iot_advanced/updating_iot
Update your IoT system's image, core code, and handlers to benefit from the latest IoT fixes
and features or reset the IoT system if needed.
.. toctree::
:titlesonly:
iot/config
iot/iot_box
iot/windows_iot
iot/connect
iot/iot_advanced
iot/devices
@@ -1,17 +0,0 @@
:nosearch:
=============
Configuration
=============
.. toctree::
:titlesonly:
:glob:
config/connect
config/pos
config/https_certificate_iot
config/updating_iot
config/troubleshooting
config/windows_iot
config/ssh_connect
@@ -1,181 +0,0 @@
==========================
Connect an IoT box to Odoo
==========================
An Internet of Things (IoT) box is a micro-computer device that allows for the connection of input
and output devices to an Odoo database. An :abbr:`IoT (Internet of Things)` box subscription is
required in order to use the :abbr:`IoT (Internet of Things)` box with a secured connection. A
computer is also required to set up the :abbr:`IoT (Internet of Things)` box.
.. seealso::
`IoT Box FAQ <https://www.odoo.com/app/iot-faq>`_
Begin the :abbr:`IoT (Internet of Things)` configuration process by :ref:`installing the IoT app
<general/install>` on the Odoo database through the :menuselection:`Apps` application.
.. image:: connect/install-iot-app.png
:align: center
:alt: The Internet of Things (IoT) app on the Odoo database.
Next, after the *IoT app* is installed, navigate to :menuselection:`IoT app --> IoT Boxes`, and then
click on the :guilabel:`Connect` button located in the upper-left corner of the :menuselection:`IoT
Boxes` dashboard.
.. image:: connect/connect-iot.png
:align: center
:alt: Connecting an IoT box to the Odoo database.
There are two recommended ways to connect the :abbr:`IoT (Internet of Things)` box to the database
once the *IoT app* is installed. Follow the steps in either of the next two sections to connect the
:abbr:`IoT (Internet of Things)` box via :ref:`wired ethernet connection <iot_connect/ethernet>` or
via :ref:`WiFi <iot_connect/wifi>`.
.. image:: connect/connect-iot-box.png
:align: center
:alt: Connection steps for a wired connection or WiFi connection.
.. important::
The disk image that the :abbr:`IoT (Internet of Things)` box SD card is formatted with is unique
to the version of the Odoo database that the :abbr:`IoT (Internet of Things)` box is running on.
Ensure that the :abbr:`IoT (Internet of Things)` box is :ref:`flashed <iot/config/flash>` with
the most up-to-date disk image.
.. _iot_connect/ethernet:
Ethernet connection
===================
The following is the process to connect the :abbr:`IoT (Internet of Things)` box via an ethernet
cable to the Odoo database (by way of the ethernet port; RJ-45).
First, connect all wired devices to the :abbr:`IoT (Internet of Things)` box (ethernet, :abbr:`USB
(Universal Serial Bus)` devices, etc.). At minimum, an HDMI screen should be connected. Then, plug
the :abbr:`IoT (Internet of Things)` box into a power source.
Immediately after the unit powers on and boots up, read the *pairing code* from the screen or from
the printout of a receipt printer connected to the :abbr:`IoT (Internet of Things)` box.
.. warning::
By default, the :abbr:`IoT (Internet of Things)` box will display the *pairing code* for a
maximum of 5 minutes after the unit boots up. After 5 minutes, the *pairing code* will disappear
for security purposes and the :abbr:`IoT (Internet of Things)` box will need to be rebooted
manually by unplugging the unit from the power source for ten seconds and re-plugging it back in.
.. note::
If no screen is attached to the :abbr:`IoT (Internet of Things)` box, then the *pairing code* can
be accessed from the :abbr:`IoT (Internet of Things)` box homepage by clicking on the
:guilabel:`POS Display` button. For instructions on how to access the :abbr:`IoT (Internet of
Things)` box homepage visit :ref:`iot_connect/token`.
On the computer, navigate to :menuselection:`IoT app --> IoT Boxes`, and then click on the
:guilabel:`Connect` button located in the upper-left corner of the the :menuselection:`IoT Boxes`
dashboard. Input the *pairing code* in the :guilabel:`Pairing Code` field and click on the
:guilabel:`Pair` button. The database will now link to the :abbr:`IoT (Internet of Things)` box and
it will appear on the :menuselection:`IoT Boxes` page.
.. _iot_connect/wifi:
WiFi connection
===============
The following is the process to connect the :abbr:`IoT (Internet of Things)` box via a WiFi
connection to the Odoo database.
First, ensure there is no ethernet cable plugged into the :abbr:`IoT (Internet of Things)` box.
Then, connect all wired devices to the :abbr:`IoT (Internet of Things)` box (:abbr:`USB (Universal
Serial Bus)` devices, etc.).
After connecting the devices, plug the :abbr:`IoT (Internet of Things)` box into to a power source.
On the computer, navigate to :menuselection:`IoT app --> IoT Boxes`, and then click on the
:guilabel:`Connect` button located in the upper-left corner of the the :menuselection:`IoT Boxes`
dashboard. Then copy the :guilabel:`Token` from the :guilabel:`WiFi connection` section as this will
later be used to link the Odoo database to the :abbr:`IoT (Internet of Things)` box.
Back on the computer, navigate to the available WiFi networks and connect to the :abbr:`IoT
(Internet of Things)` box WiFi network. The WiFi network dispersed by the :abbr:`IoT (Internet of
Things)` box will start with `IoTBox-xxxxxxxxxx`.
.. image:: connect/connect-iot-wifi.png
:align: center
:alt: WiFi networks available on the computer.
Upon connecting to the :abbr:`IoT (Internet of Things)` box WiFi, a browser will automatically
redirect to the :menuselection:`Configure Iot Box` wizard. Name the :abbr:`IoT (Internet of Things)`
box, then paste the previously copied *token* into the :guilabel:`Server Token` field, and then
click on :guilabel:`Next`.
.. image:: connect/server-token.png
:align: center
:alt: Enter the server token into the IoT box.
.. note::
If the :abbr:`IoT (Internet of Things)` box WiFi connection wizard doesn't start, then see the
documentation on :ref:`connecting with a token <iot_connect/token>`.
Now, choose the WiFi network that the :abbr:`IoT (Internet of Things)` box will connect with (enter
the password if there is one) and click on :guilabel:`Connect`. Wait a few seconds and the browser
will redirect to the :abbr:`IoT (Internet of Things)` box homepage. The computer may need to be
manually re-connected back to the original WiFi connection, if this does not happen automatically.
.. image:: connect/configure-wifi-network-iot.png
:align: center
:alt: Configuring the WiFi for the IoT box.
After completing each step, the :abbr:`IoT (Internet of Things)` box should appear when navigating
to :menuselection:`IoT app --> IoT Boxes` on the Odoo database.
.. image:: connect/iot-box-connected.png
:align: center
:alt: The IoT box has been successfully configured on the Odoo database.
.. important::
The :abbr:`IoT (Internet of Things)` box may need to be manually rebooted upon successfully
connecting via WiFi for the box to appear in the *IoT app* on the Odoo database. To do so, simply
unplug the device and plug it back into the power source after ten seconds.
.. _iot_connect/token:
Manually connecting the IoT box using the token
===============================================
A manual connection of the :abbr:`IoT (Internet of Things)` box to the :abbr:`IoT (Internet of
Things)` app can be made using the *token*, from a computer. The *token* can be found by navigating
to :menuselection:`IoT app --> IoT Boxes` and clicking on :guilabel:`Connect`.
Under the :guilabel:`WiFi Connection` section of the :guilabel:`Connect an IoT Box` page that
appears, click :guilabel:`Copy` to the right of the :guilabel:`Token`. This token will be entered
into the :abbr:`IoT (Internet of Things)` box homepage.
Access the :abbr:`IoT (Internet of Things)` box homepage by entering the :abbr:`IP (Internet
Protocol)` address of the :abbr:`IoT (Internet of Things)` box into a browser window from a computer
on the same network as the :abbr:`IoT (Internet of Things)` box (preferably by ethernet connection).
.. note::
The :abbr:`IP (Internet Protocol)` address can be accessed by the router admin console that the
:abbr:`IoT (Internet of Things)` box is connected to, or by connecting a receipt printer to the
:abbr:`IoT (Internet of Things)` box. A receipt will print out with the :abbr:`IoT (Internet of
Things)` box's :abbr:`IP (Internet Protocol)` address on it.
On the :abbr:`IoT (Internet of Things)` box homepage, enter the *token* under the :guilabel:`Server`
section by clicking on :guilabel:`Configure`. Then, paste the *token* into the :guilabel:`Server
Token` field and click :guilabel:`Connect`. The :abbr:`IoT (Internet of Things)` box will then link
to the Odoo database.
.. _iot/connect_schema:
IoT box schema
==============
Raspberry Pi 4
--------------
.. figure:: connect/iot-box-schema.png
The Odoo IoT box (Raspberry Pi 4) schema with labels.
Raspberry Pi 3
--------------
.. figure:: connect/iox-box-schema-3.png
The Odoo IoT box (Raspberry Pi 3) schema with labels.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -1,258 +0,0 @@
.. _iot/https_certificate_iot:
=======================
HTTPS certificate (IoT)
=======================
What is HTTPS?
==============
*Hypertext Transfer Protocol Secure* (HTTPS) is the secure version of *Hypertext Transfer Protocol*
(HTTP), which is the primary protocol used to send data back and forth between a web browser and a
website. :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is encrypted in order to increase the
security of data transfer.
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` uses an encryption protocol to encrypt
communications. The protocol is called *Transport Layer Security* (TLS), although formerly it was
known as *Secure Sockets Layer* (SSL).
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` occurs based upon the transmission of :abbr:`TLS
(Transport Layer Security)`/:abbr:`SSL (Secure Sockets Layer)` certificates, which verify that a
particular provider is who they say they are.
.. note::
In this documentation and throughout Odoo the term "HTTPS certificate" will be used to define the
fact that the :abbr:`SSL (Secure Sockets Layer)` certificate is valid and allows a :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` connection.
Why is it needed?
-----------------
In order to communicate with certain network devices (in particular for payment terminals), the
usage of :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is mandatory. If the :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` certificate isn't valid, some devices won't be able to
interact with the :abbr:`IoT (Internet of Things)` Box.
How to obtain a Hypertext Transfer Protocol Secure (HTTPS) certificate
======================================================================
The generation of the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate is automatic.
The :abbr:`IoT (Internet of Things)` Box will send a specific request to `<https://www.odoo.com>`_
which will send back the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate if the
:abbr:`IoT (Internet of Things)` box and database are eligible.
.. _iot/iot-eligibility:
Internet of Things (IoT) eligibility
------------------------------------
#. The database should be a **production** instance. The database instance should not be a copy, a
duplicate, a staging, or a development environment.
#. The Odoo subscription must:
- Have an :guilabel:`IoT Box Subscription` line.
- :guilabel:`Status` must be :guilabel:`In Progress`.
If the subscription is linked to a `<https://www.odoo.com>`_ portal user check the information
on the portal subscription page.
.. figure:: https_certificate_iot/sub-example-in-progress.png
:align: center
:alt: Odoo.com portal subscriptions filtered by "in progress".
In this case, both subscriptions are considered "in progress" as the :guilabel:`Filter By\:
In Progress` was used.
.. note::
If the subscription is in question, contact the database's Account Manager or Partner
regarding the matter.
Troubleshooting Hypertext Transfer Protocol Secure (HTTPS) certificate errors
=============================================================================
If anything goes wrong during the process of the "HTTPS certificate" generation or reception, a
specific error will code be given on the :abbr:`IoT (Internet of Things)` box home page.
.. tip::
Accessing the :abbr:`IoT (Internet of Things)` box homepage will check for the presence of the
"HTTPS certificate" and will attempt its generation if it is missing. As such, if there is an
error on the :abbr:`IoT (Internet of Things)` box home page, refresh the :abbr:`IoT (Internet of
Things)` home page to see if the error disappears.
`ERR_IOT_HTTPS_CHECK_NO_SERVER`
-------------------------------
Reason:
The configuration regarding the server is missing. In other words, the Odoo instance is not
connected with the IoT box.
Solution:
Ensure that the server is configured.
.. seealso::
:doc:`/applications/general/iot/config/connect`
`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`
-----------------------------------------
Reason:
An unhandled error happened when trying to read the existing :abbr:`HTTPS (Hypertext Transfer
Protocol Secure)` certificate.
Solution:
Ensure that the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate file is readable.
`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`
----------------------------------
Reason:
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing.
Solution:
Ensure that both values are configured as intended. To modify them, go to the :abbr:`IoT
(Internet of Things)` box home page, and navigate to :guilabel:`Credential`.
`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`
--------------------------------------
Reason:
An unexpected error happened when the :abbr:`IoT (Internet of Things)` box tried to reach
`<https://www.odoo.com>`_. The causes are likely due to the network
infrastructure/configuration:
- The :abbr:`IoT (Internet of Things)` box does not have access to internet.
- The network does not allow the :abbr:`IoT (Internet of Things)` box to communicate with
`<https://www.odoo.com>`_. This may be due to network devices preventing the communication
(firewalls, etc.) or the network configuration (:abbr:`VPN (Virtual Private Network)`,
etc.).
.. note::
More information regarding the error that occurred can be found in the full request
exception details, which are in the :abbr:`IoT (Internet of Things)` box logs.
Solution:
.. warning::
Consult with your system or network administrator should this issue arise. This error code
depends on the network infrastructure and goes beyond Odoo support's service scope.
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS`
-----------------------------------
Reason:
The IoT-box was able to reach `<https://www.odoo.com>`_ but received an unusual
`HTTP response (status codes)
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Status>`_.
This error code will also give the HTTP response status codes. For example, if the error reads
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS 404` it means that the page returned a 404 error, which is
the "Page Not Found" code.
Solution:
Check if `<https://www.odoo.com>`_ is down using a web browser, as it's possible that it is down
due to maintenance.
- If `<https://www.odoo.com>`_ is down due to maintenance, unfortunately there is nothing that
can be done but instead wait for it to recover.
- If `<https://www.odoo.com>`_ is not down due to maintenance, open a `support ticket
<https://www.odoo.com/help>`_ on the matter. Ensure that the 3 digits status code next to the
code error is included in the support ticket.
`ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT`
--------------------------------------
Reason:
The :abbr:`IoT (Internet of Things)` box was able to reach `<https://www.odoo.com>`_ but it
refused to deliver the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate.
Solution:
Ensure that the :abbr:`IoT (Internet of Things)` box and database are eligible for a
certificate: :ref:`Internet of Things (IoT) eligibility <iot/iot-eligibility>`.
How to ensure that the HTTPS certificate is correct
===================================================
If the certificate has been applied successfully, a new :abbr:`HTTPS (Hypertext Transfer Protocol
Secure)` :abbr:`URL (Uniform Resource Locator)` for the :abbr:`IoT (Internet of Things)` box ending
with `.odoo-iot.com` will appear on the Odoo database, inside of the :menuselection:`IoT`
application on that specific device's form.
.. image:: https_certificate_iot/odoo-new-domain.png
:align: center
:alt: Odoo IoT app IoT box with .odoo-iot.com domain.
When navigating to the :abbr:`URL (Uniform Resource Locator)` in a browser a secured :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` connection will be established.
.. figure:: https_certificate_iot/secured-connection.png
:align: center
:alt: Example of valid SSL certificate details on the browser.
Padlock in Chrome on Windows 10 attesting the fact that the connection is secured in :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)`.
The IoT-box homepage will now display an `OK` status next to `HTTPS certificate`. The
drop-down menu icon, when clicked, will reveal information regarding the certificate.
.. image:: https_certificate_iot/status-ok.png
:align: center
:alt: IoT box homepage with HTTPS certificate OK status.
Domain Name System (DNS) issue
==============================
If the :abbr:`IoT (Internet of Things)` box can be accessed from its :abbr:`IP (Intrernet Protocol)`
address but not the Odoo assigned domain: `.odoo-iot.com`; then the :abbr:`IoT (Internet of Things)`
box is likely running into a :abbr:`DNS (Domain Name System)` issue. On some browsers, it will give
an error code mentioning :abbr:`DNS (Domain Name System)` (like `DNS_PROBE_FINISHED_NXDOMAIN`).
These :abbr:`DNS (Domain Name System)` issues may appear as the following in different browsers:
.. tabs::
.. tab:: Chrome
.. figure:: https_certificate_iot/dns-chrome.png
:align: center
:alt: DNS issue on Chrome browser on Windows 10.
DNS issue on Chrome browser on Windows 10.
.. tab:: Firefox
.. figure:: https_certificate_iot/dns-firefox.png
:align: center
:alt: DNS issue on Firefox browser on Windows 10.
DNS issue on Firefox browser on Windows 10.
.. tab:: Edge
.. figure:: https_certificate_iot/dns-edge.png
:align: center
:alt: DNS issue on Edge browser on Windows 10.
DNS issue on Edge browser on Windows 10.
Domain Name System (DNS) issue solution
---------------------------------------
#. Should the router allow the :abbr:`DNS (Domain Name System)` to be manually changed, change the
DNS to use `Google DNS <https://developers.google.com/speed/public-dns>`_.
#. If your router doesn't allow for this, then a change will need to be made on the :abbr:`DNS
(Domain Name System)` settings of each of the devices using `Google DNS
<https://developers.google.com/speed/public-dns>`_. This will need to occur on **every** device
that plans to interact with the :abbr:`IoT (Internet of Things)` box (e.g. computer, tablet or
phone). The individual device configuration processes can be found on the website of the
device's manufacturer.
.. note::
Other :abbr:`IoT (Internet of Things)` devices such as payment terminals likely won't need
their :abbr:`DNS (Domain Name System)` settings changed as they are already configured with
custom :abbr:`DNS (Domain Name System)`.
.. warning::
Consult with your system or network administrator should this issue arise. This error code
depends on the network infrastructure, and it goes beyond Odoo support's service scope.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

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