Compare commits

...

87 Commits

Author SHA1 Message Date
Fabrice Henrion
9d28b185c3 [IMP] typos 2025-09-23 18:32:39 +02:00
Antoine Vandevenne (anv)
81418fa957 [FIX] howtos/translations: fix typo in "wainting"
closes odoo/documentation#14648

X-original-commit: a1a8ca93f3
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-23 10:30:55 +00:00
ASPhilemon
68b0777e42 [IMP] tutorials/module_data: improve phrasing
closes odoo/documentation#14647

Forward-port-of: odoo/documentation#14593
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-23 10:30:53 +00:00
larm-odoo
4615ad3796 [ADD] Payroll: Headcount report
closes odoo/documentation#14624

X-original-commit: aaf815f5d9
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-22 15:47:48 +00:00
Antoine Vandevenne (anv)
f83496a9bd [IMP] supported_versions: release 19.0
closes odoo/documentation#14632

X-original-commit: 2a2ca31370
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-22 13:04:26 +00:00
Julien Castiaux
1a6794ddab [IMP] developer/api/external_api: new JSON-2 API
closes odoo/documentation#14570

X-original-commit: bd516548e7
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-09-22 10:00:31 +00:00
jero-odoo
9ed7717c03 [IMP] Inventory: lot numbers
closes odoo/documentation#14619

X-original-commit: 0d72063ea5
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2025-09-19 19:58:02 +00:00
jero-odoo
a412e1dc8a [IMP] Whatsapp: config field
closes odoo/documentation#14613

X-original-commit: 5f44a395b7
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-09-19 18:02:56 +00:00
jero-odoo
abeb26d0b6 [IMP] Quality: add print label qc
closes odoo/documentation#14607

X-original-commit: aa57c2f7a2
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-09-19 17:34:39 +00:00
Felicious
cd2fb55041 [IMP] inventory: mto feedback
closes odoo/documentation#14599

X-original-commit: c5091f002a
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-09-19 15:36:02 +00:00
jero-odoo
169e17b87c [ADD] VoIP: DIDWW config
closes odoo/documentation#14589

X-original-commit: 01f3e1aed1
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-09-18 00:58:10 +00:00
jero-odoo
e4004619d4 [IMP] Purchase: update control policy doc
closes odoo/documentation#14581

X-original-commit: abe756fb39
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-09-17 18:09:45 +00:00
mcsi-odoo
2a0260cb63 [IMP] elearning: clarification content types plus various edits
task-4902005

closes odoo/documentation#14394

X-original-commit: 6649cfbd23
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-09-17 11:45:50 +00:00
mial-odoo
746d14ac84 [IMP]: Update doc to match current Odoo 18.4
A lot of updates happened during the life of 18x versions and the doc needs to be updated to reflect that.

closes odoo/documentation#14569

X-original-commit: d7d8f00dc5
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-09-17 07:40:32 +00:00
larm-odoo
1fadcf5046 [IMP] Payroll: Updating work entries
closes odoo/documentation#14565

X-original-commit: 0596eadb7c
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-16 13:06:40 +00:00
larm-odoo
dfeff11d9c [IMP] Payroll: Updating contracts
closes odoo/documentation#14563

X-original-commit: 89852e0c55
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-16 13:06:39 +00:00
Paolo Gatti
ef7efd613d [IMP] developer: new CLI commands and improvements
Added the new `i18n` and `module` commands.
Added the existing `deploy`, `obfuscate`, `upgrade_code` commands.
Reviewed titles to make the commands stand out in the ToC.
Removed the no longer present `tsconfig` command.

task-4866527

closes odoo/documentation#14564

X-original-commit: 912b07fe25
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2025-09-15 19:42:57 +00:00
larm-odoo
0ead9fe115 [IMP] Payroll: Updating payslips
closes odoo/documentation#14546

X-original-commit: 8c7c60742e
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-12 20:41:18 +00:00
Brandon Mercier
762dd095f9 [IMP] Odoo SaaS dump + Base/Inherited/Duplicated views
closes odoo/documentation#14557

X-original-commit: ea0c7ccf30
Signed-off-by: Brandon Mercier (bram) <bram@odoo.com>
2025-09-12 15:42:30 +00:00
larm-odoo
b22d59fc53 [IMP] Payroll: Removing salary attachment report
closes odoo/documentation#14534

X-original-commit: 73469dcb76
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-12 02:09:39 +00:00
larm-odoo
14e6ed5b34 [ADD] Payroll: Time Off To Report
closes odoo/documentation#14530

X-original-commit: c5f717344c
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-12 02:09:38 +00:00
masp-odoo
bbba075c02 [IMP] website: create menu with cards for webdesign
task-5051186

closes odoo/documentation#14463

X-original-commit: 8d53aff7ef
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-09-12 00:07:48 +00:00
nees-odoo
795044f807 [IMP] Discuss: Canned responses update
Previously, the documentation described canned responses with a description field,
no explicit shortcut indicator, and included default filters in the view.

Now, the description field has been removed, and the UI displays `::` as the shortcut prefix,
and default filters have been removed from the view.

closes odoo/documentation#14515

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-09-10 17:01:54 +00:00
fja-odoo
8d3efe6654 [ADD] pos_qfpay: Add QFPay payment terminal
closes odoo/documentation#14191

Related: odoo/odoo#220059
Related: odoo/enterprise#93585
Signed-off-by: fja-odoo <fja@odoo.com>
2025-09-10 05:33:00 +00:00
emmi-odoo
b206e4e3da [IMP] pos/worldline: update Worldline doc
task-4929607

closes odoo/documentation#14514

X-original-commit: 4165ac31cf
Signed-off-by: Emmanuel Minga (EMMI) <emmi@odoo.com>
2025-09-10 04:10:42 +00:00
william-andre
d1bca2ba27 [IMP] account: remove tax_negate
closes odoo/documentation#14474

Related: odoo/odoo#225252
Related: odoo/enterprise#93761
Related: odoo/upgrade#8361
Signed-off-by: William André (wan) <wan@odoo.com>
2025-09-07 09:44:54 +00:00
Dylan Kiss (dyki)
c51d0b8597 [I18N] *: update .weblate.json
After the switch to Weblate, we now only use the `.weblate.json` file
instead of the previous `.tx/config` file.

We update the `.weblate.json` file to reflect the current state of the
module translations and remove the `.tx/config` file.

closes odoo/documentation#14507

X-original-commit: 66914b8aed
Related: odoo/odoo#225795
Related: odoo/enterprise#94040
Related: odoo/design-themes#1140
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
2025-09-07 02:15:49 +00:00
emmi-odoo
62a77f5c3f [IMP] pos/terminals: Update Payment terminals
task-4946909

closes odoo/documentation#14505

X-original-commit: 7234165f58
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Emmanuel Minga (EMMI) <emmi@odoo.com>
2025-09-06 12:29:29 +00:00
Brandon Mercier
2b4e7dc608 [FIX] Typos in "Page templates" and "Theme pages" example.
closes odoo/documentation#14500

X-original-commit: e07e9f9091
Signed-off-by: Brandon Mercier (bram) <bram@odoo.com>
2025-09-05 16:00:30 +00:00
masp-odoo
5ccbd972ae [ADD] website: new page structure
task-4850059

closes odoo/documentation#14417

X-original-commit: 1265b132bd
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2025-09-04 10:30:01 +00:00
larm-odoo
ce24ce46bf [IMP] Payroll: Updating salary attachments
closes odoo/documentation#14485

X-original-commit: 194c6f88e0
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-04 08:08:15 +00:00
larm-odoo
50c2e15ea1 [ADD] Payroll: Adding Commissions
closes odoo/documentation#14490

X-original-commit: e15765c1a9
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-04 08:08:12 +00:00
Paolo Gatti
c05dad60ac [IMP] fiscal_localizations/italy: Qualified Electronic Signature
Adapted the documentation to the added QES signature feature.

See: odoo/odoo#196054

task-4477745

closes odoo/documentation#14480

X-original-commit: 1ad2be143b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
2025-09-04 00:17:30 +00:00
larm-odoo
9027ca34c4 [ADD] Recruitment: Post Job Positions
closes odoo/documentation#14451

X-original-commit: 5ac44d2c34
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-09-04 00:17:15 +00:00
yaso
2b47e906a9 [IMP] footswitch: add keys info
This PR adds some information about foot pedals keys and how to find the
values each pedal represents.

task-4465533

closes odoo/documentation#13501

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-09-03 18:47:56 +00:00
“Dallas”
ce4c123474 [FIX] accounting/l10n_fi: remove Finvoice and TEAPPSXML
taskid-5031311

closes odoo/documentation#14470

X-original-commit: 71e11f109d
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-09-02 15:24:38 +00:00
jero-odoo
7161d016e9 [IMP] Productivity: update chatter
closes odoo/documentation#14443

X-original-commit: b359eed886
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-09-02 12:56:03 +00:00
Ricardo Gomes Rodrigues
8a35cc4b99 [IMP] sms_marketing: add Twilio documentation
task-4658352

closes odoo/documentation#14152

X-original-commit: e0a9aac7b2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2025-09-01 10:12:03 +00:00
afma-odoo
056497e051 [IMP] accounting: update peppol information on e-invoicing page
task-4737738
task-4794170
task-4360579

closes odoo/documentation#14365

X-original-commit: 75dae86e2d
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
2025-09-01 08:28:29 +00:00
emmi-odoo
56e7746f10 [IMP] pos/restaurant: Update Restaurant features page with child pages
task-4893658

closes odoo/documentation#14411

X-original-commit: 2dfd9dbba7
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Emmanuel Minga (EMMI) <emmi@odoo.com>
2025-08-29 17:06:49 +00:00
larm-odoo
63b9bfda8b [ADD] Payroll: Adding Batches
closes odoo/documentation#14447

X-original-commit: 7de3e12a93
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-29 05:12:55 +00:00
larm-odoo
e93b732d3c [IMP] Recruitment: Velocity analysis
closes odoo/documentation#14431

X-original-commit: 011a4503eb
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-28 20:33:48 +00:00
afma-odoo
0e7650bf88 [IMP] accounting: vendor bill digitization & update PO matching
task-4865418
task-4844221

closes odoo/documentation#14423

X-original-commit: 102cb27fb2
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
2025-08-28 10:23:45 +00:00
larm-odoo
a109d4c754 [ADD] Time Off: Add reporting
closes odoo/documentation#14415

X-original-commit: 60b4cdcf86
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-27 05:38:23 +00:00
ASPhilemon
4b4fc7fad7 [FIX] developer/tutorials: fix typo
closes odoo/documentation#14408

Forward-port-of: odoo/documentation#14403
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2025-08-27 01:52:47 +00:00
larm-odoo
0bf7fb49f8 [IMP] Time Off: Updating Request Time Off
closes odoo/documentation#14404

X-original-commit: 7b491b978c
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-26 20:39:20 +00:00
Louis Travaux
cb7e15e94b [FIX] fiscal_localizations: change iot Mac to identifier
The new identifier for IoT Boxes it the serial number (or motherboard uuid,
for Virtual IoT Boxes), we then need to update the documentation to lead to
IoT Boxes identifier instead of not existing anymore mac address.

closes odoo/documentation#14399

Task: 5001274
X-original-commit: c86e192683
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Louis Travaux (lotr) <lotr@odoo.com>
2025-08-26 05:54:45 +00:00
larm-odoo
164b40c60f [IMP] Time Off: Updating Management
closes odoo/documentation#14326

X-original-commit: 74f54d70e3
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-25 15:43:18 +00:00
larm-odoo
d1e02b7f54 [IMP] Payroll: Updating localizations
closes odoo/documentation#14331

X-original-commit: 9c882877fa
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-25 15:43:17 +00:00
Julien Castiaux
c65b0d769f [IMP] developer/reference/cli: --dev=access
closes odoo/documentation#14294

Related: odoo/odoo#222807
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-08-25 15:43:07 +00:00
Julien Castiaux
7b237096b0 [FIX] developer/reference/cli: --dev=all is a lie
--dev=all actually means --dev=xml,qweb,reload

Part-of: odoo/documentation#14294
Related: odoo/odoo#222807
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-08-25 15:43:07 +00:00
Julien Castiaux
884313c1bc [FIX] developer/reference/cli: --dev=pdb was removed
Does nothing since odoo/odoo#78857 and was removed in odoo/odoo#115076
both in 16.0.

Part-of: odoo/documentation#14294
Related: odoo/odoo#222807
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-08-25 15:43:07 +00:00
Julien Castiaux
18e8581d58 [FIX] developer/reference/cli: --dev=replica
Introduced by odoo/odoo#195280 in saas-18.1

Part-of: odoo/documentation#14294
Related: odoo/odoo#222807
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-08-25 15:43:07 +00:00
Julien Castiaux
ec7913246b [FIX] developer/reference/cli: --db_replica_host
Introduced by odoo/odoo#112000 in 17.0

Part-of: odoo/documentation#14294
Related: odoo/odoo#222807
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2025-08-25 15:43:07 +00:00
mcsi-odoo
9a15bdaff5 [IMP] spreadsheet: basics of creating and managing spreadsheets
task-4943625

closes odoo/documentation#14387

X-original-commit: 9f6207ce42
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-08-25 07:09:37 +00:00
Loredana Perazzo
2adf5c1923 [MOV] POS: customer display section moved + config and use update
task-4920460

The customer display section is now part of a bigger pos_hardware.rst documentation
page

closes odoo/documentation#14349

X-original-commit: 81a4eb459d
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-08-23 05:05:45 +00:00
chranky
6673db6162 [FIX] Fix typo in Warehouse documentation
closes odoo/documentation#14375

X-original-commit: 98470fdc53
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-08-23 05:05:41 +00:00
lman-odoo
ba1dbefdc1 [ADD] ecommerce/google merchant center: new page
task-4806648

closes odoo/documentation#14383

X-original-commit: 12ba968b87
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Larissa Manderfeld (lman) <lman@odoo.com>
2025-08-22 20:11:50 +00:00
jero-odoo
076776df76 [IMP] VoIP: Update axivox config
closes odoo/documentation#14379

X-original-commit: 4593d835bf
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-08-22 13:53:08 +00:00
mcsi-odoo
0e96a8ce26 [IMP] essentials: extra detail plus updates to favorited searches
task-5005364

closes odoo/documentation#14292

X-original-commit: ce82f6bd1c
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Siobhan McGonigle (mcsi) <mcsi@odoo.com>
2025-08-21 14:35:35 +00:00
Sam Lieber (sali)
0ca9c66d81 [IMP] UI: odoo spreadsheet svg icons
closes odoo/documentation#14354

X-original-commit: f054d73fda
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-08-20 15:10:27 +00:00
jero-odoo
e40d5d6048 [IMP] Discuss: channels for team communication
closes odoo/documentation#14358

X-original-commit: e060ac1bdc
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-08-20 12:55:52 +00:00
mial-odoo
e4fe95545c [IMP] Update l10n_mx to 18
closes odoo/documentation#14350

X-original-commit: 0c64fc51ab
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-20 08:47:33 +00:00
larm-odoo
3a49470838 [IMP] Referrals: Update alerts
closes odoo/documentation#14275

X-original-commit: 595229e8a6
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-18 18:31:39 +00:00
Tiffany Chang (tic)
612e1ac13a [I18N] *: re-export pot files
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#14338

X-original-commit: 72f5ed27a9
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-08-18 17:01:11 +00:00
masp-odoo
06a66ccd56 [IMP] website: seo indexation update and magic sheet
taskid-4478979

closes odoo/documentation#14244

X-original-commit: ccb5f6c39a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-18 07:09:57 +00:00
larm-odoo
36f7ce1797 [IMP] Time Off: Updating Allocations
closes odoo/documentation#14322

X-original-commit: 71331268f2
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-15 20:44:46 +00:00
jero-odoo
9a06e69204 [IMP] Sales: Subscriptions automated invoices edit
closes odoo/documentation#14318

X-original-commit: 23d7afd89c
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-08-15 19:08:09 +00:00
jero-odoo
6622e600db [IMP] General: Email Infinite Loops
closes odoo/documentation#14314

X-original-commit: 4a843badbd
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-08-15 19:08:06 +00:00
larm-odoo
a4b32b7372 [IMP] Time Off: Updating My Time
closes odoo/documentation#14310

X-original-commit: d97b8c4870
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-15 14:37:39 +00:00
celine de lannoy
d7a6a7a675 [IMP] tutorials/website_theme: Custom font, website settings, grid layout, mega-menu & page templates, custom gradient + update snippet addition
closes odoo/documentation#14304

X-original-commit: 64ede317ed
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-08-14 13:55:29 +00:00
Audrey (auva)
7762a884eb [REM] accounting: account_payment module install
Removing this doc as installing this module/patch is no longer necessary to disable online invoice payments

closes odoo/documentation#14293

X-original-commit: 0f2678baf7
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-14 05:59:58 +00:00
Ricardo Gomes Rodrigues
c3f552ba26 [IMP] partner_autocomplete: remove chatter section
The chatter infos were removed in task 4416928

task-id none

closes odoo/documentation#14299

X-original-commit: 22cb95662e
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-08-13 19:28:28 +00:00
jero-odoo
775dbc2f4d [IMP] Essentials: Activities Updates
closes odoo/documentation#14284

X-original-commit: 471111661d
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-08-13 13:18:35 +00:00
lman-odoo
b9ad2184be [IMP] website: change plausible warning
task-4853660

closes odoo/documentation#14282

X-original-commit: 56b262c890
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Larissa Manderfeld (lman) <lman@odoo.com>
2025-08-13 04:57:25 +00:00
nni@odoo.com
90627a9175 [IMP] payment_xendit: tokenization update
After communicating with Xendit, we found out that multi use tokens without authorization is only doable when customer has requested for the Merchant Initiated Transaction feature. This means that we should  by default not support tokenization but point out that they can enable saving payment method if they have requested the feature from Xendit Support team.

closes odoo/documentation#14266

X-original-commit: 8ebcbe0974
Related: odoo/odoo#222341
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Nigel Nicholas (nni) <nni@odoo.com>
2025-08-12 09:46:16 +00:00
larm-odoo
daa92467b9 [IMP] Attendances: Updating Main Details Section
closes odoo/documentation#14271

X-original-commit: 4f4b7fd9bd
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2025-08-12 09:46:13 +00:00
LoredanaLrpz
3b6a135dc8 [IMP] POS: img visibility option removed from POS UI
task-4974694

closes odoo/documentation#14231

X-original-commit: 132400d487
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-08-11 08:23:35 +00:00
Sven Fuehr
f296bb12a6 [ADD] accounting/l10n_es: documentation for new Veri*Factu module
Spain introduces a new EDI called "Veri*Factu" to send all invoices
to the Spanish tax agency (AEAT).
It is mandatory for most tax payers (that cannot use any of the
other Spanish EDIs like SII or TicketBAI)

In the related community PR new modules were added to enable
sending invoices and PoS orders via "Veri*Factu".

This commit adds some documentation about how to enable and use
"Veri*Factu".

Community PR: https://github.com/odoo/odoo/pull/197635

task-3745982

closes odoo/documentation#14265

X-original-commit: b98053cb08
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
2025-08-08 19:31:00 +00:00
masp-odoo
4d374037ff [IMP] website: recaptcha/turnstile form spam protection extended
taskid-4337044

closes odoo/documentation#14255

X-original-commit: a207dfd06c
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-08 15:58:43 +00:00
Loredana Perazzo
d536328c4e [ADD] POS: Scale certification content
task-4893590

closes odoo/documentation#14236

X-original-commit: 927c7aefe1
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-08-08 14:16:08 +00:00
masp-odoo
6a6e1fcaf0 [IMP] website: domain names redirection of existing website
task-4894377

closes odoo/documentation#14248

X-original-commit: b14b39f469
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-08 06:38:35 +00:00
“Dallas”
ae3a1157bf [IMP] bank rec: massive update for 18.3 UI
This PR includes updates for multiple pages:
- Reconciliation
- Reconciliation Models
- Transactions
- Internal Transfers

task-4771607

This commit updates the bank reconciliation page and other related
pages to align with the 18.3 changes.

closes odoo/documentation#14250

X-original-commit: 86048fb99d
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-08-07 21:21:07 +00:00
Zachary Straub (ZST)
9ada4fbcd7 [ADD] l10n_gt: add Guatemalan fiscal localization
closes odoo/documentation#14240

X-original-commit: ef843806a2
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2025-08-06 18:22:15 +00:00
Zachary Straub (ZST)
192de032eb [REM] subscriptions: deprecate plans doc
closes odoo/documentation#14192

closes odoo/documentation#14226

X-original-commit: f335b0829a
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2025-08-04 23:35:39 +00:00
Audrey (auva)
4a6016a116 [IMP] payment providers/sepa: minor improvements
task-4988042

closes odoo/documentation#14220

X-original-commit: 3a42a592cc
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-04 10:46:26 +00:00
Audrey (auva)
6703f19312 [FIX] payment providers/worldline: live environment link
task-4882448

closes odoo/documentation#14215

X-original-commit: 11d2362b6a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-08-04 10:46:24 +00:00
403 changed files with 36516 additions and 9612 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@
*.mo *.mo
.* .*
!.gitattributes !.gitattributes
!.weblate.json
# Sphinx build files # Sphinx build files
_build/ _build/

View File

@@ -1,152 +0,0 @@
[main]
host = https://www.transifex.com
[o:odoo:p:odoo-18-doc:r:administration]
file_filter = locale/<lang>/LC_MESSAGES/administration.po
source_file = locale/sources/administration.pot
type = POT
minimum_perc = 0
resource_name = administration
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:applications]
file_filter = locale/<lang>/LC_MESSAGES/applications.po
source_file = locale/sources/applications.pot
type = POT
minimum_perc = 0
resource_name = applications
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:essentials]
file_filter = locale/<lang>/LC_MESSAGES/essentials.po
source_file = locale/sources/essentials.pot
type = POT
minimum_perc = 0
resource_name = essentials
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:finance]
file_filter = locale/<lang>/LC_MESSAGES/finance.po
source_file = locale/sources/finance.pot
type = POT
minimum_perc = 0
resource_name = finance
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:general]
file_filter = locale/<lang>/LC_MESSAGES/general.po
source_file = locale/sources/general.pot
type = POT
minimum_perc = 0
resource_name = general
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:hr]
file_filter = locale/<lang>/LC_MESSAGES/hr.po
source_file = locale/sources/hr.pot
type = POT
minimum_perc = 0
resource_name = hr
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:index]
file_filter = locale/<lang>/LC_MESSAGES/index.po
source_file = locale/sources/index.pot
type = POT
minimum_perc = 0
resource_name = index
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:inventory_and_mrp]
file_filter = locale/<lang>/LC_MESSAGES/inventory_and_mrp.po
source_file = locale/sources/inventory_and_mrp.pot
type = POT
minimum_perc = 0
resource_name = inventory_and_mrp
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:marketing]
file_filter = locale/<lang>/LC_MESSAGES/marketing.po
source_file = locale/sources/marketing.pot
type = POT
minimum_perc = 0
resource_name = marketing
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:productivity]
file_filter = locale/<lang>/LC_MESSAGES/productivity.po
source_file = locale/sources/productivity.pot
type = POT
minimum_perc = 0
resource_name = productivity
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:sales]
file_filter = locale/<lang>/LC_MESSAGES/sales.po
source_file = locale/sources/sales.pot
type = POT
minimum_perc = 0
resource_name = sales
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:services]
file_filter = locale/<lang>/LC_MESSAGES/services.po
source_file = locale/sources/services.pot
type = POT
minimum_perc = 0
resource_name = services
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:user_settings]
file_filter = locale/<lang>/LC_MESSAGES/settings.po
source_file = locale/sources/settings.pot
type = POT
minimum_perc = 0
resource_name = settings
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:studio]
file_filter = locale/<lang>/LC_MESSAGES/studio.po
source_file = locale/sources/studio.pot
type = POT
minimum_perc = 0
resource_name = studio
replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-18-doc:r:websites]
file_filter = locale/<lang>/LC_MESSAGES/websites.po
source_file = locale/sources/websites.pot
type = POT
minimum_perc = 0
resource_name = websites
replace_edited_strings = false
keep_translations = false
source_lang = en

81
.weblate.json Normal file
View File

@@ -0,0 +1,81 @@
{
"projects": {
"odoo-19-doc": [
{
"name": "administration",
"filemask": "locale/*/LC_MESSAGES/administration.po",
"new_base": "locale/sources/administration.pot"
},
{
"name": "applications",
"filemask": "locale/*/LC_MESSAGES/applications.po",
"new_base": "locale/sources/applications.pot"
},
{
"name": "essentials",
"filemask": "locale/*/LC_MESSAGES/essentials.po",
"new_base": "locale/sources/essentials.pot"
},
{
"name": "finance",
"filemask": "locale/*/LC_MESSAGES/finance.po",
"new_base": "locale/sources/finance.pot"
},
{
"name": "general",
"filemask": "locale/*/LC_MESSAGES/general.po",
"new_base": "locale/sources/general.pot"
},
{
"name": "hr",
"filemask": "locale/*/LC_MESSAGES/hr.po",
"new_base": "locale/sources/hr.pot"
},
{
"name": "index",
"filemask": "locale/*/LC_MESSAGES/index.po",
"new_base": "locale/sources/index.pot"
},
{
"name": "inventory_and_mrp",
"filemask": "locale/*/LC_MESSAGES/inventory_and_mrp.po",
"new_base": "locale/sources/inventory_and_mrp.pot"
},
{
"name": "marketing",
"filemask": "locale/*/LC_MESSAGES/marketing.po",
"new_base": "locale/sources/marketing.pot"
},
{
"name": "productivity",
"filemask": "locale/*/LC_MESSAGES/productivity.po",
"new_base": "locale/sources/productivity.pot"
},
{
"name": "sales",
"filemask": "locale/*/LC_MESSAGES/sales.po",
"new_base": "locale/sources/sales.pot"
},
{
"name": "services",
"filemask": "locale/*/LC_MESSAGES/services.po",
"new_base": "locale/sources/services.pot"
},
{
"name": "studio",
"filemask": "locale/*/LC_MESSAGES/studio.po",
"new_base": "locale/sources/studio.pot"
},
{
"name": "user_settings",
"filemask": "locale/*/LC_MESSAGES/settings.po",
"new_base": "locale/sources/settings.pot"
},
{
"name": "websites",
"filemask": "locale/*/LC_MESSAGES/websites.po",
"new_base": "locale/sources/websites.pot"
}
]
}
}

View File

@@ -232,12 +232,11 @@ sphinx.transforms.i18n.docname_to_domain = (
# option. If a provided version has no label, the version string is used as label. # option. If a provided version has no label, the version string is used as label.
versions_names = { versions_names = {
'master': "Master", 'master': "Master",
'19.0': "Odoo 19",
'saas-18.4': "Odoo 18.4", 'saas-18.4': "Odoo 18.4",
'saas-18.3': "Odoo 18.3", 'saas-18.3': "Odoo 18.3",
'saas-18.2': "Odoo 18.2", 'saas-18.2': "Odoo 18.2",
'saas-18.1': "Odoo 18.1",
'18.0': "Odoo 18", '18.0': "Odoo 18",
'saas-17.4': "Odoo 17.4",
'17.0': "Odoo 17", '17.0': "Odoo 17",
'16.0': "Odoo 16", '16.0': "Odoo 16",
} }

View File

@@ -160,49 +160,21 @@ Web Services
============ ============
In order to programmatically retrieve the list of the databases displayed in the In order to programmatically retrieve the list of the databases displayed in the
`database manager <https://www.odoo.com/my/databases>`_, call the method `list` of the model `database manager <https://www.odoo.com/my/databases>`_, call the method ``list`` of the model
`odoo.database` via a :doc:`Web Service </developer/howtos/web_services>` call. ``odoo.database`` via an :doc:`external JSON-2 API </developer/reference/external_api>` call.
Inspired from the examples provided in the :doc:`Web Services </developer/howtos/web_services>` .. example::
section, this is how to retrieve this list with the library ``xmlrpc.client``:: .. code:: python
import xmlrpc.client import requests
USER = 'user@domain.tld' APIKEY = "your_apikey"
APIKEY = 'your_apikey'
root = 'https://www.odoo.com/xmlrpc/' requests.post(
uid = xmlrpc.client.ServerProxy(root + 'common').login('openerp', USER, APIKEY) "https://www.odoo.com/json/2/odoo.database/list",
sock = xmlrpc.client.ServerProxy(root + 'object') headers={
databases_list = sock.execute('openerp', uid, APIKEY, 'odoo.database', 'list') "Authorization": f"bearer {APIKEY}",
"X-Odoo-Database": "openerp",
And here is the equivalent example with JSON-RPC:: }
json={},
import json )
import random
import urllib.request
USER = 'user@domain.tld'
APIKEY = 'your_apikey'
def json_rpc(url, method, params):
data = {
'jsonrpc': '2.0',
'method': method,
'params': params,
'id': random.randint(0, 1000000000),
}
req = urllib.request.Request(url=url, data=json.dumps(data).encode(), headers={
"Content-Type": "application/json",
})
reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8'))
if reply.get('error'):
raise Exception(reply['error'])
return reply['result']
def call(url, service, method, *args):
return json_rpc(url, 'call', {'service': service, 'method': method, 'args': args})
url = 'https://www.odoo.com/jsonrpc'
uid = call(url, 'common', 'login', 'openerp', USER, APIKEY)
databases_list = call(url, 'object', 'execute', 'openerp', uid, APIKEY, 'odoo.database', 'list')

View File

@@ -31,60 +31,48 @@ This matrix shows the support status of every version.
- On-Premise - On-Premise
- Release date - Release date
- End of support - End of support
* - Odoo SaaS 18.4 * - **Odoo 19.0**
- |green| - |green|
- |green|
- |green|
- September 2025
- September 2028 (planned)
* - Odoo SaaS 18.4
- |red|
- N/A - N/A
- N/A - N/A
- July 2025 - July 2025
- -
* - Odoo SaaS 18.3 * - Odoo SaaS 18.3
- |green| - |red|
- N/A - N/A
- N/A - N/A
- May 2025 - May 2025
- -
* - Odoo SaaS 18.2 * - Odoo SaaS 18.2
- |green| - |red|
- N/A - N/A
- N/A - N/A
- March 2025 - March 2025
- -
* - Odoo SaaS 18.1
- |green|
- N/A
- N/A
- January 2025
-
* - **Odoo 18.0** * - **Odoo 18.0**
- |green| - |green|
- |green| - |green|
- |green| - |green|
- October 2024 - October 2024
- October 2027 (planned) - September 2027 (planned)
* - Odoo SaaS 17.4
- |red|
- N/A
- N/A
- July 2024
- October 2024
* - Odoo SaaS 17.2
- |red|
- N/A
- N/A
- April 2024
- October 2024
* - **Odoo 17.0** * - **Odoo 17.0**
- |green| - |green|
- |green| - |green|
- |green| - |green|
- November 2023 - November 2023
- October 2026 (planned) - September 2026 (planned)
* - **Odoo 16.0** * - **Odoo 16.0**
- |green| - |red|
- |green| - |red|
- |green| - |red|
- October 2022 - October 2022
- October 2025 (planned) - September 2025
* - **Odoo 15.0** * - **Odoo 15.0**
- |red| - |red|
- |red| - |red|

View File

@@ -15,7 +15,7 @@ The icon used to display activities varies, depending on the :ref:`activity type
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled. - :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled. - :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled. - :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled. - :icon:`fa-users` :guilabel:`(users)` icon: a meeting is scheduled.
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded. - :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled. - :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
@@ -33,13 +33,12 @@ Chatter
Activities can be created from the chatter on any record. Activities can be created from the chatter on any record.
To schedule a new activity, click the :guilabel:`Activities` button, located at the top of the To schedule a new activity, click the :guilabel:`Activity` button, located at the top of the
chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the
Schedule Activity form <activities/form>`. Schedule Activity form <activities/form>`.
.. image:: activities/chatter.png .. image:: activities/chatter.png
:align: center :alt: Activity button in chatter field.
:alt: New activity type form.
.. _activities/kanban: .. _activities/kanban:
@@ -54,7 +53,6 @@ Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Sch
<activities/form>`. <activities/form>`.
.. image:: activities/schedule-kanban-activity.png .. image:: activities/schedule-kanban-activity.png
:align: center
:alt: Kanban view of the CRM pipeline and the option to schedule an activity. :alt: Kanban view of the CRM pipeline and the option to schedule an activity.
.. note:: .. note::
@@ -80,7 +78,6 @@ appears.
the existing scheduled activity. Click on the activity type's icon to schedule another activity. the existing scheduled activity. Click on the activity type's icon to schedule another activity.
.. image:: activities/schedule-list-activity.png .. image:: activities/schedule-list-activity.png
:align: center
:alt: List view of the CRM pipeline and the option to schedule an activity. :alt: List view of the CRM pipeline and the option to schedule an activity.
.. _activities/activity: .. _activities/activity:
@@ -94,7 +91,6 @@ the top-right corner of the main menu bar, amongst the other view option icons.
To open the activity view, click the |clock|. To open the activity view, click the |clock|.
.. image:: activities/activities.png .. image:: activities/activities.png
:align: center
:alt: Top-right menu with the Activities icon called out. :alt: Top-right menu with the Activities icon called out.
In this view, all the available activities are listed in the columns, while the horizontal entries In this view, all the available activities are listed in the columns, while the horizontal entries
@@ -103,7 +99,7 @@ represent all the individual records.
Activities that appear green have a due date in the future, activities that appear orange are due Activities that appear green have a due date in the future, activities that appear orange are due
today, while activities appearing red are overdue. today, while activities appearing red are overdue.
Color bars in each column represent records for specific activity types, and display a number Colored bars in each column represent records for specific activity types, and display a number
indicating how many activities are scheduled for that type. indicating how many activities are scheduled for that type.
If multiple activity types are scheduled for a record, a number appears in the box, indicating the If multiple activity types are scheduled for a record, a number appears in the box, indicating the
@@ -114,11 +110,10 @@ total number of scheduled activities.
regardless of the activity type, or the view. regardless of the activity type, or the view.
To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus` To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus`
:guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form :guilabel:`(plus)` icon, and then :ref:`fill out the Schedule Activity form
<activities/form>`. <activities/form>`.
.. image:: activities/activity-view.png .. image:: activities/activity-view.png
:align: center
:alt: Activity view of the CRM pipeline and the option to schedule an activity. :alt: Activity view of the CRM pipeline and the option to schedule an activity.
.. _activities/form: .. _activities/form:
@@ -131,47 +126,47 @@ Activities can be scheduled from many different places, such as from the :ref:`c
the :ref:`Kanban view <activities/kanban>`, :ref:`list view <activities/list>`, or :ref:`activity the :ref:`Kanban view <activities/kanban>`, :ref:`list view <activities/list>`, or :ref:`activity
view <activities/activity>`. view <activities/activity>`.
Enter the following information on the form: First, select an activity type:
- :guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default - :icon:`fa-check` :guilabel:`To-Do`
options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`. - :icon:`fa-envelope` :guilabel:`Email`
Depending on what other applications are installed, additional options may be available. - :icon:`fa-phone` :guilabel:`Call`
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`. - :icon:`fa-users` :guilabel:`Meeting`
- :guilabel:`Do Stuff`
- :icon:`fa-upload` :guilabel:`Document`
- :icon:`fa-pencil-square-o` :guilabel:`Signature`
- :icon:`fa-check` :guilabel:`Grant Approval`
Then, enter the following information:
- **Summary**: enter a short title for the activity, such as `Discuss Proposal`.
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline. - :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different - :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
user to the activity, select them from the drop-down menu. user to the activity, select them from the drop-down menu.
- :guilabel:`Notes`: add any additional information for the activity in this field. - :guilabel:`Log a note`: add any additional information for the activity in this field.
When the :guilabel:`Schedule Activity` pop-up window is completed, click one of the following
buttons:
- :guilabel:`Open Calendar`: opens the user's calendar to add and schedule the activity.
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
field.
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
:guilabel:`Planned Activities` section.
.. important::
The :guilabel:`Open Calendar` button **only** appears if the :guilabel:`Activity Type` is set
to either :guilabel:`Call` or :guilabel:`Meeting`.
- :guilabel:`Schedule`: schedules the activity, and adds the activity to the chatter under
:guilabel:`Planned Activities`.
- :guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under
:guilabel:`Today`. The activity is not scheduled, and is automatically marked as done.
- :guilabel:`Done & Schedule Next`: adds the details of the activity to the chatter under
:guilabel:`Today`. The activity is not scheduled, is automatically marked as done, and a new
:guilabel:`Schedule Activity` pop-up window appears.
- :guilabel:`Cancel`: discards any changes made on the :guilabel:`Schedule Activity` pop-up window.
.. image:: activities/schedule-pop-up.png .. image:: activities/schedule-pop-up.png
:align: center
:alt: View of CRM leads and the option to schedule an activity. :alt: View of CRM leads and the option to schedule an activity.
Click :guilabel:`Save` to schedule the activity, and add the activity to the chatter under
:guilabel:`Planned Activities`. Click :guilabel:`Mark Done` to add the details of the activity to
the chatter under :guilabel:`Today`.
Schedule a meeting
~~~~~~~~~~~~~~~~~~
If :icon:`fa-users` :guilabel:`Meeting` is selected as the activity type, enter the information as
instructed above, then click :guilabel:`Schedule`. This opens the user's calendar to add and
schedule the activity.
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
field.
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
:guilabel:`Planned Activities` section.
.. _activities/all: .. _activities/all:
All scheduled activities All scheduled activities
@@ -180,7 +175,7 @@ All scheduled activities
To view a consolidated list of activities, organized by application, click the |clock| in the header To view a consolidated list of activities, organized by application, click the |clock| in the header
menu, located in the top-right corner. menu, located in the top-right corner.
If any activities are scheduled, the number of activities appear in a red bubble on the If any activities are scheduled, the number of activities appears in a red bubble on the
|clock|. |clock|.
All activities for each application are further divided into subsections, indicating where in the All activities for each application are further divided into subsections, indicating where in the
@@ -189,16 +184,14 @@ activities that are :guilabel:`Late`, due :guilabel:`Today`, and scheduled in th
:guilabel:`Future`. :guilabel:`Future`.
.. example:: .. example::
In the *Time Off* application, one activity is scheduled to be done in the *All Time Off* In the **Time Off** application, one activity is scheduled to be done in the *All Time Off*
requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard. requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard.
These requests appear in two separate lists in the all activities drop-down menu: one labeled These requests appear in two separate lists in the all activities drop-down menu: one labeled
`Time Off` and one labeled `Time Off Allocation`. `Time Off` and one labeled `Time Off Allocation`.
.. image:: activities/activities-menu.png .. image:: activities/activities-menu.png
:align: center :alt: The list of activities that is accessed from the main menu bar.
:alt: The list of activities that is accessed from the main menu bar. Two entries for the Time
Off application are highlighted.
.. tip:: .. tip::
The option to :ref:`Request a Document <documents/request>` is available at the bottom of the The option to :ref:`Request a Document <documents/request>` is available at the bottom of the
@@ -213,18 +206,16 @@ To view the currently configured types of activities in the database, navigate t
:menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`. :menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`.
.. image:: activities/settings-activities-types.png .. image:: activities/settings-activities-types.png
:align: center
:alt: Activity Types button in the Settings application under the Discuss section. :alt: Activity Types button in the Settings application under the Discuss section.
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found. Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
.. tip:: .. tip::
Individual applications have a list of *Activity Types* dedicated to that application. For Individual applications have a list of *Activity Types* dedicated to that application. For
example, to view and edit the activities available for the *CRM* application, go to example, to view and edit the activities available for the **CRM** application, go to
:menuselection:`CRM app --> Configuration --> Activity Types`. :menuselection:`CRM app --> Configuration --> Activity Types`.
.. image:: activities/activity-list.png .. image:: activities/activity-list.png
:align: center
:alt: The list of activity types already configured and available. :alt: The list of activity types already configured and available.
Edit activity types Edit activity types
@@ -241,10 +232,8 @@ Create new activity types
------------------------- -------------------------
To create a new :ref:`activity type <activities/types>`, click :guilabel:`New` from the To create a new :ref:`activity type <activities/types>`, click :guilabel:`New` from the
:guilabel:`Activity Types` page, and a blank activity type form loads. :guilabel:`Activity Types` page, and a blank activity type form loads. Enter a :guilabel:`Name` for
the activity type at the top of the form, then enter the following information on the form.
Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following
information on the form.
Activity Settings section Activity Settings section
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -257,7 +246,7 @@ Activity Settings section
- :guilabel:`Call` or :guilabel:`Meeting`: If selected, users have the option to open their - :guilabel:`Call` or :guilabel:`Meeting`: If selected, users have the option to open their
calendar to select a date and time for the activity. calendar to select a date and time for the activity.
- :guilabel:`Request Signature`: If selected, a link to open a signature request pop-up window is - :guilabel:`Request Signature`: If selected, a link to open a signature request pop-up window is
automatically added to the planned activity in the chatter. This requires the Odoo *Sign* automatically added to the planned activity in the chatter. This requires the Odoo **Sign**
application to be installed. application to be installed.
.. note:: .. note::
@@ -309,7 +298,6 @@ It is possible to have another activity either suggested or triggered. To do so,
:guilabel:`after previous activity deadline` or :guilabel:`after completion date`. :guilabel:`after previous activity deadline` or :guilabel:`after completion date`.
.. image:: activities/new-activity.png .. image:: activities/new-activity.png
:align: center
:alt: A new Activity form with all the fields filled out. :alt: A new Activity form with all the fields filled out.
.. seealso:: .. seealso::

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -197,8 +197,8 @@ Previous Period` and :guilabel:`(Time Filter): Previous Year`.
.. important:: .. important::
For some reports, the :guilabel:`Comparison` section **only** appears in the search bar drop-down For some reports, the :guilabel:`Comparison` section **only** appears in the search bar drop-down
menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is
because there is nothing to compare if no time period is specified. because there is nothing to compare if no time period is specified.
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
:icon:`fa-pie-chart` :guilabel:`(Pie Chart)` graph type or the :icon:`oi-view-pivot` :icon:`fa-pie-chart` :guilabel:`(Pie Chart)` graph type or the :icon:`oi-view-pivot`
@@ -260,19 +260,47 @@ following options:
- :guilabel:`Filter name`: Name of the favorited search. - :guilabel:`Filter name`: Name of the favorited search.
- :guilabel:`Default filter`: Sets the favorited search as the default filter for the view. - :guilabel:`Default filter`: Sets the favorited search as the default filter for the view.
- :guilabel:`Shared`: Makes the favorited search available to all users. Otherwise, by default, the
favorited search is only available to the user who created it.
Once the options are set, click :guilabel:`Save` to save the favorited search. Once the options are set, click :guilabel:`Save` to save the favorited search.
.. image:: search/favorites.png .. image:: search/favorites.png
:alt: Saving a favorite search on the Sales Analysis report. :alt: Saving a favorite search on the Sales Analysis report.
:scale: 80%
Saved favorites can be accessed by clicking the :icon:`fa-trash` :guilabel:`(delete)` icon in the Favorited searches are accessed by clicking the :icon:`fa-caret-down` :guilabel:`(dropdown)` icon
search bar, then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a in the search bar, and are shown under :icon:`fa-star` :guilabel:`Favorites`. Searches that are only
saved favorite, click the :icon:`fa-trash` :guilabel:`(delete)` icon next to the favorited search. visible to the current user, i.e., that are not shared, are shown first, while any :ref:`shared
favorites <search/favorites-share>`, whether created by the current user or another user, are shown
in a second section.
To edit, archive, or remove a favorited search, hover over the search name in the list of favorites
and click :icon:`fa-pencil` :guilabel:`(Edit favorite)`. The following fields can be modified:
:guilabel:`Filter Name`, :ref:`Shared with <search/favorites-share>`, :guilabel:`Default Filter`,
:guilabel:`Domain`. To archive or remove the favorite, click :icon:`fa-cog` :guilabel:`(Actions)`
then :icon:`oi-archive` :guilabel:`Archive` or :icon:`fa-trash` :guilabel:`Delete`, as appropriate.
.. tip:: .. tip::
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to - When a favorited search is in use, additional filters or groups can be used to further refine
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here, the search. The conditions applied by the favorited search can also be modified by hovering
all favorited searches can be viewed, edited, archived, or deleted. over the :icon:`fa-star` :guilabel:`(star)` beside the search name then clicking the
:icon:`fa-cog` :guilabel:`(cog)` icon. These changes only affect the current search.
- To edit the grouping or sorting of a favorited search, :ref:`activate developer mode
<developer-mode>` when editing the search, then modify the :guilabel:`Context` or
:guilabel:`Sort` fields as needed.
- To view *all* favorited searches, with developer mode activated, navigate to
:menuselection:`Settings app --> Technical --> User-defined Filters`. From here, all favorited
searches can be viewed, edited, archived, or deleted.
.. _search/favorites-share:
Share a favorited search
------------------------
By default, a favorited search is only available to the user who created it. To share a favorited
search with other users, click :guilabel:`Edit` when creating the favorite, or, for an existing
favorite, click :icon:`fa-pencil` :guilabel:`(Edit favorite)` after hovering over the search name in
the list of favorites.
In the :guilabel:`Shared with` field, select the relevant users from the drop-down menu, then click
:icon:`fa-cloud-upload` :guilabel:`(Save manually)`. The favorite is now visible for all selected
users under :icon:`fa-star` :guilabel:`Favorites`.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -30,7 +30,7 @@ Connect a bank for automatic synchronization
-------------------------------------------- --------------------------------------------
To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration
--> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the --> Add a Bank Account`, select your bank in the list, click :guilabel:`Connect`, and follow the
instructions. instructions.
.. seealso:: .. seealso::
@@ -45,7 +45,7 @@ If your banking institution is not available in Odoo, or if you don't want to co
account to your database, you can configure your bank account manually. account to your database, you can configure your bank account manually.
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank 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 Account`, click :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
information, and click :guilabel:`Create`. information, and click :guilabel:`Create`.
.. note:: .. note::
@@ -59,7 +59,7 @@ Create a cash journal
--------------------- ---------------------
To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting: To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field. Journals`, click :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
For more information on the accounting information fields, read the For more information on the accounting information fields, read the
:ref:`accounting/bank/configuration` section of this page. :ref:`accounting/bank/configuration` section of this page.
@@ -125,8 +125,8 @@ You can edit the currency used to enter the transactions.
Account number Account number
-------------- --------------
If you need to **edit your bank account details**, click on the external link arrow next to your If you need to **edit your bank account details**, click the external link arrow next to your
:guilabel:`Account Number`. On the account page, click on the external link arrow next to your :guilabel:`Account Number`. On the account page, click the external link arrow next to your
:guilabel:`Bank` and update your bank information accordingly. These details are used when :guilabel:`Bank` and update your bank information accordingly. These details are used when
registering payments. registering payments.

View File

@@ -26,7 +26,7 @@ select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconcilia
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
Transfer` account. Transfer` account.
.. tip:: .. important::
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends 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. the payment and the incoming transaction on the journal that receives the payment.

View File

@@ -2,18 +2,22 @@
Bank reconciliation Bank reconciliation
=================== ===================
**Bank reconciliation** is the process of matching your :doc:`bank transactions <transactions>` with **Bank reconciliation** is the process of validating :doc:`bank transactions <transactions>`. Many
your business records, such as :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills of these transactions are matched with counterpart items related to business records such as
<../vendor_bills>`, and :doc:`payments <../payments>`. Not only is this compulsory for most :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills <../vendor_bills>`, and
businesses, but it also offers several benefits, such as reduced risk of errors in financial :doc:`payments <../payments>`, while others that may not have a matching counterpart item (such as
reports, detection of fraudulent activities, and improved cash flow management. bank fees) can be written off :ref:`manually <accounting/reconciliation/set-account>` or with
:ref:`reconciliation models <accounting/reconciliation/model>`. Not only is bank reconciliation
compulsory for most businesses, but it also offers several benefits, such as reduced risk of errors
in financial reports, detection of fraudulent activities, and improved cash flow management.
Thanks to the bank :doc:`reconciliation models <reconciliation_models>`, Odoo pre-selects the Thanks to the :ref:`default matching rules <accounting/reconciliation/reconcile>` and customizable
matching entries automatically. bank :doc:`reconciliation models <reconciliation_models>`, Odoo selects the matching items
automatically when possible.
.. seealso:: .. seealso::
- `Odoo Tutorials: Bank reconciliation - `Odoo Tutorials: Bank reconciliation
<https://www.odoo.com/slides/slide/bank-reconciliation-2724>`_ <https://www.odoo.com/slides/slide/bank-reconciliation-6562>`_
- :doc:`bank_synchronization` - :doc:`bank_synchronization`
- :doc:`transactions` - :doc:`transactions`
@@ -22,123 +26,273 @@ matching entries automatically.
Bank reconciliation view Bank reconciliation view
======================== ========================
To access a bank journal's **reconciliation view**, go to your :guilabel:`Accounting Dashboard` and To access a journal's :guilabel:`Bank Matching` view, go to the :guilabel:`Accounting Dashboard` and
either: either:
- click the journal name (e.g., :guilabel:`Bank`) to display all transactions, including those - click the journal name (e.g., :guilabel:`Bank`) or its :guilabel:`Transactions` button to display
previously reconciled or all transactions, including those previously reconciled, or
- click the :guilabel:`Reconcile items` button to display all transactions Odoo pre-selected for - click the :guilabel:`x to reconcile` button to display only unreconciled transactions. To include
reconciliation. You can remove the :guilabel:`Not Matched` filter from the search bar to include previously reconciled transactions, remove the :guilabel:`Not Matched` filter from the search bar.
previously reconciled transactions.
.. image:: reconciliation/bank-card.png .. image:: reconciliation/bank-card.png
:alt: Reaching the bank reconciliation tool from your accounting dashboard :alt: Reaching the bank reconciliation tool from the accounting dashboard
The bank reconciliation view is structured into three distinct sections: transactions, counterpart The :guilabel:`Bank Matching` view is composed of lines for each transaction of the journal with the
entries, and resulting entry. newest displayed first. Each transaction has a date, a label, a partner (if set), :ref:`action
buttons <accounting/reconciliation/action-buttons>`, and the transaction amount. Each line can be
expanded to show additional information and buttons.
.. image:: reconciliation/user-interface.png .. image:: reconciliation/user-interface.png
:alt: The user interface of the reconciliation view of a bank journal. :alt: The user interface of the bank matching view of a bank journal.
.. note::
Once a :doc:`transaction <transactions>` is reconciled, the suggested action button(s) is
replaced with the counterpart entry/entries it was matched with or the account(s) it was written
off to.
.. _accounting/reconciliation/transactions:
Transactions Transactions
The transactions section on the left shows all bank transactions, with the newest displayed ------------
first. Click a transaction to select it.
Counterpart entries Every :doc:`transaction <transactions>` is linked to a journal entry that debits/credits the
The counterpart entries section on the bottom right displays the options to match the selected journal's main account and its :ref:`suspense account <accounting/bank/suspense>` until it is fully
bank transaction. Multiple tabs are available, including reconciled. At that point, the suspense account is replaced with the account of the counterpart item
:ref:`reconciliation/existing-entries`, :ref:`reconciliation/batch-payments`, or, in the case of :ref:`manual matching <accounting/reconciliation/set-account>`, the selected
:ref:`reconciliation/manual-operations`, and :guilabel:`Discuss`, which contains the chatter for account.
the selected bank transaction.
Resulting entry .. _accounting/reconciliation/action-buttons:
The resulting entry section on the top right displays the selected bank transaction matched with
the counterpart entries and includes any remaining debits or credits. In this section, you can Possible action buttons
validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model ~~~~~~~~~~~~~~~~~~~~~~~
buttons <reconciliation/button>` are also available in the resulting entry section.
Up to two suggested action buttons are available as primary buttons, but all available action
buttons are displayed when the transaction is expanded. The following action buttons are available
depending on the details of the transaction:
- :guilabel:`Set Partner`: Open a search view to add a partner to the transaction.
- :guilabel:`Set Account`: Open a search view to manually select an account to write off the full
amount of the transaction with this account. If necessary, :ref:`edit the line
<accounting/reconciliation/edit>` to change the amount.
- :guilabel:`Receivable`: Write off the transaction to the receivable account of the partner.
- :guilabel:`Sales`: Open a list view of sales orders belonging to the transaction's
:guilabel:`Partner` (or proceed directly to the form view if only one relevant sales order
exists). Select the relevant sales order(s) and click :guilabel:`Create Invoices`, then return to
the :guilabel:`Bank Matching` view and match the invoice(s) using the :guilabel:`Reconcile` action
button.
- :guilabel:`Payable`: Write off the transaction to the payable account of the partner.
- :guilabel:`Reconcile`: Open a search view of existing items from records such as customer
invoices, vendor bills, and payments. Select one or multiple items to add counterpart items with
the corresponding accounts of those items.
- :guilabel:`Batches`: Open a short list of :doc:`batch payments <../payments/batch>`. To view all
batch payments, click :guilabel:`Search More ...`. Select a batch payment to add a counterpart
item for each payment of the batch with the corresponding account of each payment.
- :doc:`reconciliation_models`: Each manual reconciliation model that could apply to the transaction
is displayed. Click the reconciliation model's action button to generate the counterpart items
defined on the reconciliation model.
.. note::
To remove the partner from a transaction, click the :icon:`fa-times` :guilabel:`(close)` icon
next to the partner's name.
Click the :icon:`fa-chevron-down` :guilabel:`(chevron down)` button next to the possible action
buttons of an expanded line to display any of the above action buttons that are hidden due to space
limitations, as well as the following:
- :guilabel:`Upload bills`: Upload one or more bills to be :doc:`digitized
<../vendor_bills/invoice_digitization>`. After digitization, the bills are available for matching
via the :guilabel:`Reconcile` action button.
- :guilabel:`Manage Models`: Open the list view of :doc:`reconciliation_models`.
- :guilabel:`Open Journal Entry`: Open the journal entry of this transaction.
- :guilabel:`Delete Transaction`: Delete this transaction.
.. note::
Uploading bills from the :guilabel:`Bank Matching` view does not automatically reconcile them
with the active transaction.
.. seealso::
:doc:`../../../essentials/in_app_purchase`
.. _accounting/reconciliation/reconcile: .. _accounting/reconciliation/reconcile:
Reconcile transactions Reconcile transactions
====================== ======================
Transactions can be matched automatically with the use of :doc:`reconciliation models When possible, Odoo automatically reconciles transactions based on their fields.
<reconciliation_models>`, or they can be matched with :ref:`existing entries
<reconciliation/existing-entries>`, :ref:`batch payments <reconciliation/batch-payments>`,
:ref:`manual operations <reconciliation/manual-operations>`, and :ref:`reconciliation model buttons
<reconciliation/button>`.
#. Select a transaction among unmatched bank transactions. If no partner is set on the transaction, the transaction's :guilabel:`Label` is compared with the
:guilabel:`Number`, :guilabel:`Customer Reference`, :guilabel:`Bill Reference`, and
:guilabel:`Payment Reference` of existing invoices, bills, and payments.
If a partner is set on the transaction, the transaction is instead matched with invoices, bills, and
payments of the partner based on the :guilabel:`Amount`. The following rules are used in a
sequential order to identify and apply a match:
- Exact match
- Discounted match: for payment terms with discounts for early payments
- Tolerance match: within 3% to account for merchant fees, rounding differences, and user errors
- Currency match: when the transaction is in a different currency than the invoice, bill, or
payment (with a 3% tolerance for exchange rate differences)
- Amount in label: if the invoice :guilabel:`Amount` is found in the transaction's
:guilabel:`Label`
In addition to using these fixed matching rules, transactions can be matched automatically with the
use of :doc:`reconciliation models <reconciliation_models>`. Otherwise, reconcile transactions
manually by following these steps:
#. Expand the desired line among unmatched bank transactions to display all available action
buttons.
#. Define the counterpart. There are several options for defining a counterpart, including #. Define the counterpart. There are several options for defining a counterpart, including
:ref:`matching existing entries <reconciliation/existing-entries>`, :ref:`manual operations :ref:`matching existing items <accounting/reconciliation/existing-items>`, :ref:`manually setting
<reconciliation/manual-operations>`, :ref:`batch payments <reconciliation/batch-payments>`, and the account <accounting/reconciliation/set-account>`, matching with :doc:`batch payments
:ref:`reconciliation model buttons <reconciliation/button>`. <../payments/batch>`, and using :ref:`reconciliation model buttons
#. If the resulting entry is not fully balanced, balance it by adding another existing counterpart <accounting/reconciliation/model>`.
entry or writing it off with a :ref:`manual operation <reconciliation/manual-operations>`. #. If the resulting entry is not fully balanced, add another existing counterpart item or write it
#. Click the :guilabel:`Validate` button to confirm the reconciliation and move to the next off by :ref:`setting the account <accounting/reconciliation/set-account>` of the remaining
transaction. amount.
.. tip:: .. _accounting/reconciliation/existing-items:
If you are not sure how to reconcile a particular transaction and would like to deal with it
later, use the :guilabel:`To Check` button instead. All transactions marked as :guilabel:`To
Check` can be displayed using the :guilabel:`To Check` filter.
.. note:: Existing items
Bank transactions are posted on the **journal's suspense account** until reconciliation. At this
point, reconciliation modifies the transaction journal entry by replacing the bank suspense
account with the corresponding receivable, payable, or outstanding account.
.. _reconciliation/existing-entries:
Match existing entries
----------------------
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
models. The entry order is based on :doc:`reconciliation models <reconciliation_models>`, with
suggested entries appearing first.
.. tip::
The search bar within the :guilabel:`Match Existing Entries` tab allows you to search for
specific journal items.
.. _reconciliation/batch-payments:
Batch payments
-------------- --------------
:doc:`Batch payments <../payments/batch>` allow you to group different payments to ease To reconcile transactions with existing items related to records such as customer invoices, vendor
reconciliation. Use the :guilabel:`Batch Payments` tab to find batch payments for customers and bills, and payments, click the :guilabel:`Reconcile` action button, select the matching journal
vendors. Similarly to the :guilabel:`Match Existing Entries` tab, the :guilabel:`Batch Payments` tab item(s) in the list, and click :guilabel:`Select`.
has a search bar that allows you to search for specific batch payments.
.. _reconciliation/manual-operations:
Manual operations
-----------------
If there is not an existing entry to match the selected transaction, you may instead wish to
reconcile the transaction manually by choosing the correct account and amount. Then, complete any
of the relevant optional fields.
.. tip::
You can use the :guilabel:`fully paid` option to reconcile a payment, even in cases where only a
partial payment is received. A new line appears in the resulting entry section to reflect the
open balance registered on the Account Receivable by default. You can choose another
account by clicking on the new line in the resulting entry section and selecting the
:guilabel:`Account` to record the open balance.
.. note:: .. note::
Lines are silently reconciled unless a write-off entry is required, which launches a If the :guilabel:`Partner` is set, this list is automatically filtered to only include items
reconciliation wizard. related to that partner.
.. image:: reconciliation/fully-paid.png .. tip::
:alt: Click on fully paid to manually set an invoice as entirely paid. Use the search bar within the :guilabel:`Search: Journal Items to Match` window to search for
specific journal items.
.. _reconciliation/button: If a transaction amount is lower than the invoice or bill it is reconciled with, the transaction is
fully reconciled, but the difference remains open on the counterpart item. The remaining amount can
be left open to be reconciled later or the invoice or bill can be marked as fully paid. To mark the
invoice or bill as fully paid, :ref:`edit <accounting/reconciliation/edit>` the line, click
:guilabel:`fully paid`, and :guilabel:`Save`. To reverse this, :ref:`edit
<accounting/reconciliation/edit>` the line again, click :guilabel:`partial payment`, and
:guilabel:`Save`.
Reconciliation model buttons If a transaction amount is greater than the invoice or bill it is reconciled with, the transaction
---------------------------- is only partially reconciled. The remaining balance can be reconciled as any other transaction
amount.
Use a :doc:`reconciliation model <reconciliation_models>` button for manual operations that are .. note::
frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and Existing items of draft entries can be matched. Eventual automatic moves (like currency exchange
can also be used in combination with existing entries. or cash basis moves) are created in draft simultaneously with the reconciliation. Posting the
original entry also posts the automatic move.
.. _accounting/reconciliation/set-account:
Set account
-----------
If no existing item matches the selected transaction, you can still write off the transaction
manually: Click :guilabel:`Set Account`, then choose the appropriate account. To write off only part
of the transaction, :ref:`edit the line <accounting/reconciliation/edit>` to reflect the correct
value and reconcile the remaining amount as desired.
.. tip::
If the partner is set, write the amount off to their receivable or payable account directly by
clicking the :guilabel:`Receivable` or :guilabel:`Payable` :ref:`action button
<accounting/reconciliation/action-buttons>`.
.. _accounting/reconciliation/model:
Reconciliation models
---------------------
Use :doc:`reconciliation models <reconciliation_models>` to create custom rules that can be applied
automatically or manually via custom buttons for operations that are frequently repeated. These
custom buttons allow you to quickly reconcile bank transactions manually and can also be combined
with other reconciliation models and with counterpart items when reconciling transactions.
.. example::
An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving
$3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to
create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank
transaction.
.. _accounting/reconciliation/edit:
Edit lines and unreconcile transactions
=======================================
To edit a counterpart item, expand the line, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon,
and edit the necessary fields in :guilabel:`Edit Line` window.
.. note::
When the counterpart item is an existing journal item, some fields are read-only.
If a transaction is partially matched with a counterpart item, use the link to mark the invoice as
:guilabel:`fully paid` or to switch back to a :guilabel:`partial payment`.
To unreconcile a transaction, delete all counterpart items associated with the transaction by
clicking on the :icon:`fa-trash` :guilabel:`(trash)` icon.
.. _accounting/reconciliation/netting:
Netting
=======
Netting (also known as AP/AR offsetting) is the process of balancing incoming debts from and
outgoing debts to the same partner. Reconciling the incoming and outgoing debts creates a new
journal entry that balances the debts. Two main scenarios exist:
- :ref:`A bank transaction balances <accounting/reconciliation/net-transaction>` (either fully or
partially) the incoming and outgoing debts.
- :ref:`No bank transaction balances <accounting/reconciliation/net-no-transaction>` the incoming
and outgoing debts. This situation can occur either when the debts balance each other completely
or when the debts remain unbalanced.
.. _accounting/reconciliation/net-transaction:
Netting with bank transactions
------------------------------
When a bank transaction balances (either fully or partially) the incoming and outgoing debts,
reconcile the bank transaction from the :guilabel:`Bank Matching` view like any other :ref:`existing
items <accounting/reconciliation/existing-items>`:
#. Click :guilabel:`Reconcile` on the transaction.
#. Select all the relevant counterpart items on both the payable and receivable side.
#. Click :guilabel:`Select`.
#. If a balance remains, depending on the details, the following situations are possible:
- An invoice, bill, or other item is not fully reconciled, and the remaining balance can be
:ref:`reconciled <accounting/reconciliation/reconcile>` with other bank transactions.
- The bank transaction itself is not fully reconciled, and the remaining balance can be
:ref:`reconciled <accounting/reconciliation/reconcile>` as in any other situation.
.. _accounting/reconciliation/net-no-transaction:
Netting without bank transactions
---------------------------------
When no bank transaction balances the incoming and outgoing debts, there is nothing to reconcile
from the :guilabel:`Bank Matching` view. However, the debt amount is visible in both the account
receivable and the account payable. To balance these debts so that they no longer appear on the
partner ledger, follow these steps:
#. Go to :menuselection:`Accounting --> Accounting --> Reconcile`.
#. Select the journal items that debit or credit the account receivable and account payable and
represent the debts to be netted.
#. Click :guilabel:`Reconcile`.
#. If the debts don't balance each other perfectly, a :guilabel:`Write-Off Entry` popup window
appears, allowing you to decide how to resolve the remaining balance:
- Select :guilabel:`Allow partials` to only partially reconcile the account receivable and
account payable and leave the remaining balance open.
- Use a :doc:`reconciliation model button <reconciliation_models>` to write off the balance.
- Manually choose an :guilabel:`Account`, and optionally adjust the :guilabel:`Tax`,
:guilabel:`Journal`, :guilabel:`Label`, :guilabel:`Date`, and :guilabel:`To Check` fields.
The items are then matched, and their balance is removed from the partner ledger, representing that
no payment is due for these debts.
.. note::
The workflow is the same whether there are only two equal debts in the receivable and payable
accounts or multiple debts in each account.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -2,111 +2,158 @@
Reconciliation models Reconciliation models
===================== =====================
Reconciliation models are used to automate the :doc:`bank reconciliation <reconciliation>` process, Reconciliation models are custom rules that complement the :ref:`default set of matching rules
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models <accounting/reconciliation/reconcile>` and enable more advanced automation of the :doc:`bank
can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`. reconciliation <reconciliation>` process. These models are especially useful when dealing with
recurring flows like writing off bank fees or :doc:`cash discounts
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction <../customer_invoices/cash_discounts>`.
conditions`.
.. seealso:: .. seealso::
- :doc:`bank_synchronization` `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
- `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
.. _models/type: .. _accounting/rec-models/config:
Reconciliation model types Configuration
========================== =============
To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click on the To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click the
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` menu on the bank journal and select :icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` menu on the bank journal, and select
:guilabel:`Models` under the :guilabel:`Reconciliation` section. For each reconciliation model, a :guilabel:`Models` under the :guilabel:`Reconciliation` section.
:guilabel:`Type` must be set. Three types of models exist:
- :guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry To create a new reconciliation model, click :guilabel:`New`.
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
reconcile with the active transaction based on the rules set in the model. The rules specified in
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
distribution;
- :guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the
transaction to a new entry based on conditions that must match the information on the transaction;
- :guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction
to existing invoices, bills, or payments based on conditions that must match the information on
the transaction.
Default reconciliation models Reconciliation models can be either :guilabel:`Manual` or :guilabel:`Automated`. Manual
============================= reconciliation models appear as :ref:`possible action buttons
<accounting/reconciliation/action-buttons>` when :doc:`reconciling <reconciliation>`. Automatic
reconciliation models apply automatically to transactions that meet the reconciliation model's
:ref:`matching conditions <accounting/rec-models/conditions>`.
In Odoo, different models are available by default depending on the company's fiscal localization. Each reconciliation model is configured with :ref:`matching conditions
These can be updated if needed. Users can also create their own reconciliation models by clicking <accounting/rec-models/conditions>` to identify the relevant bank transactions and :ref:`Counterpart
:guilabel:`New`. Items <accounting/rec-models/counterpart>` to be generated during reconciliation.
.. tip::
To create an activity on the transaction, select which type of activity to create in the
:guilabel:`Next Activity` field.
.. important:: .. important::
If a record matches with several reconciliation models, the first one in the *sequence* of models If a record matches with several reconciliation models, the first one in the *sequence* of models
is applied. You can rearrange the order by dragging and dropping the handle next to the name. is applied. Rearrange the order by dragging and dropping the handle next to the name.
.. image:: reconciliation_models/list-view.png .. image:: reconciliation_models/list-view.png
:alt: Rearrange the sequence of models in the list view. :alt: Rearrange the sequence of models in the list view.
Invoices/Bills perfect match .. _accounting/rec-models/conditions:
----------------------------
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching Matching conditions
existing invoices or bills with a bank transaction based on set conditions. -------------------
.. image:: reconciliation_models/invoices-bills-perfect-match.png A reconciliation model's matching conditions determine to which transactions it applies.
:alt: Set rules to trigger the reconciliation.
Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and The following fields can be used to restrict the reconciliation model's availability to transactions
the model conditions are perfectly met. In this case, it expects to find on the bank statement's that meet the conditions:
line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name
(as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
the payment automatically.
Invoices/Bills partial match if underpaid - :guilabel:`Journals`
----------------------------------------- - :guilabel:`Partners`
- :guilabel:`Amount`: Select :guilabel:`Is lower than or equal to`, :guilabel:`Is greater than or
equal to`, or :guilabel:`Is between` and enter the amount(s).
- :guilabel:`Label`: Select :guilabel:`Contains`, :guilabel:`Not Contains`, or :guilabel:`Match
Regex` and enter the transaction label's matching condition.
This model suggests a customer invoice or vendor bill that partially matches the payment when the .. tip::
amount received is slightly lower than the invoice amount, for example in the case of `Regular expressions <https://regexone.com/>`_, often abbreviated as **regex**, can be used in
**cash discounts**. The difference is reconciled with the account indicated in the Odoo in various ways to search, validate, and manipulate data. Regex can be powerful but also
:guilabel:`counterpart entries` tab. complex, so it's essential to use it judiciously.
The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the To use regular expressions in a reconciliation model, set the :guilabel:`Label` to
:guilabel:`Payment tolerance` should be set. :guilabel:`Match Regex` and add an expression. Odoo automatically retrieves the transactions
that match the regex expression and the conditions specified in the reconciliation model.
.. image:: reconciliation_models/partial-match.png
:alt: Set rules to trigger the reconciliation.
.. note:: .. note::
The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an A transaction must meet all conditions for the reconciliation model to be available for it. If no
overpayment is received. condition is defined (i.e., if all fields are left blank), the reconciliation model will be
available for all transactions.
.. _accounting/rec-models/counterpart:
Counterpart items
-----------------
Each line in the :guilabel:`Counterpart items` tab creates a journal item with the specified
details:
- :guilabel:`Partner`: Select the partner, if any, to set on the journal item.
- :guilabel:`Account`: Select the account, if any, to set on the journal item.
- :guilabel:`Amount Type`: Select how the amount of the journal item should be calculated:
- :guilabel:`Fixed`: Use a fixed amount.
- :guilabel:`Percentage of balance`: Use a percentage of the remaining balance of the
transaction, regardless of the transaction total.
- :guilabel:`Percentage of statement line`: Use a percentage of the transaction total, regardless
of the remaining balance of the transaction.
- :guilabel:`From label`: Use a percentage from the transaction's label using regex.
- :guilabel:`Amount`: Enter the amount to be used on the journal item. This field will be either a
fixed amount, percentage amount, or regex depending on the :guilabel:`Account Type`.
- :guilabel:`Taxes`: Select a tax, if any, to set on the journal item. This field is hidden behind
the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon by default.
- :guilabel:`Analytic`: Select an analytic distribution, if any, to set on the journal item.
- :guilabel:`Label`: Enter a label, if any, to set on the journal item.
.. note::
- While neither the :guilabel:`Partner` nor :guilabel:`Account` fields are mandatory, at least
one of the two must be set for the reconciliation model to work correctly.
- The reconciliation model can be used for :ref:`partner mapping <accounting/rec-models/partner>`
if the :guilabel:`Counterpart Items` include a :guilabel:`Partner` but no :guilabel:`Account`.
.. _accounting/rec-models/defaults:
Default reconciliation models
=============================
In Odoo, different models are available by default depending on the company's :doc:`fiscal
localization <../../fiscal_localizations>`. These can be updated if needed. The following
reconciliation models exist across most fiscal localizations.
Internal Transfers
------------------
The :guilabel:`Internal Transfers` reconciliation model is used for making :doc:`internal transfers
<internal_transfers>` from one bank or cash account to another by moving the entire transaction's
balance to a liquidity or internal transfer account. To fully transfer the amount from one account
to another, this reconciliation model must be used on both the incoming journal's transaction and
the outgoing journal's transaction.
.. seealso::
:doc:`internal_transfers`
Bank Fees
---------
The :guilabel:`Bank Fees` reconciliation model generates a counterpart item that moves the remaining
balance of a transaction to a bank fees account (that varies by :doc:`fiscal localization
<../../fiscal_localizations>`) and includes "Bank Fees" in the :guilabel:`Label` of the new item
that it creates. This reconciliation model is only applicable to transactions whose label contains
"Bank Fees" due to its :ref:`matching conditions <accounting/rec-models/conditions>`.
.. example::
An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving
$3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to
create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank
transaction.
Cash Discount
-------------
The :guilabel:`Cash Discount` reconciliation model generates a counterpart item that moves the
remaining balance of a transaction to a cash discount account (that varies by :doc:`fiscal
localization <../../fiscal_localizations>`) and includes "Cash Discount" in the :guilabel:`Label` of
the new item that it creates.
.. seealso:: .. seealso::
:doc:`../customer_invoices/cash_discounts` :doc:`../customer_invoices/cash_discounts`
Line with bank fees .. _accounting/rec-models/partner:
-------------------
This model suggests a counterpart entry according to the rules set in the model. In this case, the
reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the
:guilabel:`Label` can be used for example, to identify the information referring to the
:guilabel:`Bank fees` in the label of the transaction.
.. image:: reconciliation_models/bank-fees.png
:alt: Set rules to trigger the reconciliation.
.. note::
`Regular expressions <https://regexone.com/>`_, often abbreviated as **Regex**, can be used in
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
powerful but also complex, so it's essential to use it judiciously and with a good understanding
of the patterns you're working with.
To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type`
to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the
transactions that match your Regex expression and the conditions specified in your model.
.. image:: reconciliation_models/regex.png
:alt: Using Regex in Odoo
Partner mapping Partner mapping
=============== ===============
@@ -117,8 +164,8 @@ reconciliation. For example, you can create a partner mapping rule for incoming
specific reference numbers or keywords in the transaction description. When an incoming payment specific reference numbers or keywords in the transaction description. When an incoming payment
meets these criteria, Odoo automatically maps it to the corresponding customer's account. meets these criteria, Odoo automatically maps it to the corresponding customer's account.
To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the To create a partner mapping rule, configure any :ref:`matching conditions
:guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`. <accounting/rec-models/conditions>`, such as a specific transaction label, and then configure the
:guilabel:`Partner` and any other relevant fields in the :ref:`Counterpart Items
.. image:: reconciliation_models/partner-mapping.png <accounting/rec-models/counterpart>` tab. Setting an :guilabel:`Account` is not mandatory for
:alt: defining partner mapping partner mapping.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -8,13 +8,76 @@ and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not :doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist: want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <transactions/import>` delivered by your bank; - :ref:`Import bank transactions <accounting/transactions/import>` delivered by your bank;
- :ref:`Register bank transactions <transactions/register>` manually. - :ref:`Register bank transactions <accounting/transactions/register>` manually.
.. note:: .. note::
:ref:`Grouping transactions by statement <transactions/statements>` is optional. :ref:`Grouping transactions by statement <accounting/transactions/statements>` is optional.
.. _transactions/import: .. _accounting/transactions/view:
Transaction view
================
The list of transactions for the bank journal is displayed in the :guilabel:`Bank Matching` view. To
access it, go to the :guilabel:`Accounting Dashboard`, then either:
- click the journal name (e.g., :guilabel:`Bank`) or its :guilabel:`Transactions` button to display
all transactions, including those previously reconciled, or
- click the :guilabel:`x to reconcile` button to display only unreconciled transactions. To include
previously reconciled transactions, remove the :guilabel:`Not Matched` filter from the search bar.
Unreconciled transactions display the following information while collapsed:
- The date of the transaction
- A button linked to the chatter. The icon of this button can vary:
- The :icon:`fa-comments-o` :guilabel:`(comments)` icon displays only on hover and indicates that
there are no attachments or activities for the transaction.
- The :icon:`fa-paperclip` :guilabel:`(attachments)` icon indicates that there is an attachment on
the journal entry.
- The :icon:`fa-clock-o` :guilabel:`(activities)` icon indicates that there is an activity
scheduled on the journal entry.
- The label of the transaction
- The partner of the transaction (if one is set)
- Up to two :ref:`action buttons <accounting/reconciliation/action-buttons>`, depending on the
details of the transaction
- The balance of the transaction
.. note::
- When the chatter of a transaction is open, a blue tag highlights the related transaction.
- The chatter can be opened and closed by clicking the :icon:`fa-comments-o`
:guilabel:`(comments)` icon and the :icon:`fa-times` :guilabel:`(close)` icon in the top right
of the view.
- Once a transaction is :doc:`reconciled <reconciliation>`, its action buttons are replaced with
the labels of the item(s) it was reconciled with or the account if it was reconciled with the
:guilabel:`Set Account` action button.
.. _accounting/transactions/duplicate:
Duplicate transactions
======================
Duplicate transactions occur when either by human error or :doc:`bank sync <bank_synchronization>`
error, the same transaction is created multiple times. The duplicate transaction view identifies
potential duplicate transactions so they can be selected and deleted. To access the duplicate
transaction view, first access the :guilabel:`Bank Matching` view by going to the
:guilabel:`Accounting Dashboard` and clicking the bank journal's name, then open the :icon:`fa-cog`
:guilabel:`Actions` menu and click :guilabel:`Find Duplicate Transactions`.
Potential duplicate transactions are identified based on their amount, date, and account number, or
(if the transaction is created via :doc:`bank sync <bank_synchronization>`) the transaction ID.
Select a :guilabel:`Starting Date` to view the corresponding potential duplicate transactions, then
select the transactions to delete and click :icon:`fa-trash` :guilabel:`Delete Selected`.
.. note::
Any transactions created by :doc:`bank sync <bank_synchronization>` that the bank sync provider
determines to be potential duplicates are displayed in the :guilabel:`Provider Duplicates` tab.
This tab is only visible if there are any potential duplicates according to the provider.
.. _accounting/transactions/import:
Import transactions Import transactions
=================== ===================
@@ -23,40 +86,39 @@ Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053) - SEPA recommended Cash Management format (CAMT.053)
- Comma-separated values (CSV) - Comma-separated values (CSV)
- Excel (XLSX)
- Open Financial Exchange (OFX) - Open Financial Exchange (OFX)
- Quicken Interchange Format (QIF) - Quicken Interchange Format (QIF)
- Belgium: Coded Statement of Account (CODA) - Belgium: Coded Statement of Account (CODA)
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal, To import a file, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v`
click on :guilabel:`Import File`. :guilabel:`(ellipsis)` icon on the :guilabel:`Bank` journal, and select :guilabel:`Import file`.
.. tip::
Alternatively, you can also:
- click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank`
journal and select :guilabel:`Import file`;
- or access the transaction list by clicking the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)`
icon on the :guilabel:`Bank` journal and selecting :guilabel:`Transactions`, then click
the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Import records`.
Next, select the file and upload it. Next, select the file and upload it.
After setting the necessary formatting options and mapping the file columns with their related Odoo .. tip::
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions. Alternatively, access the transaction list by:
- clicking on the :guilabel:`Bank` journal's name, then clicking :guilabel:`Upload`
- dragging and dropping a file on the bank journal on the :guilabel:`Accounting Dashboard`
- dragging and dropping a file on the :guilabel:`Bank Matching` view
Certain file types such as CSV and XLSX, then require setting the necessary formatting options and
mapping the file columns with their related Odoo fields, after which you can run a :guilabel:`Test`
and :guilabel:`Import` your bank transactions. Other file types are mapped automatically.
.. seealso:: .. seealso::
:doc:`/applications/essentials/export_import_data` :doc:`/applications/essentials/export_import_data`
.. _transactions/register: .. _accounting/transactions/register:
Register bank transactions manually Register bank transactions manually
=================================== ===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting You can also record your bank transactions manually. To do so, go to the :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill Dashboard`, click the :guilabel:`Bank` journal's name, and then on :guilabel:`New`. The
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process. :guilabel:`Partner` field is optional to ease the reconciliation process, but the :guilabel:`Label`
and :guilabel:`Date` fields are mandatory.
.. _transactions/statements: .. _accounting/transactions/statements:
Statements Statements
========== ==========
@@ -65,74 +127,71 @@ A **bank statement** is a document provided by a bank or financial institution t
transactions that have occurred in a particular bank account over a specified period of time. transactions that have occurred in a particular bank account over a specified period of time.
In Odoo Accounting, it is optional to group transactions by their related statement, but depending In Odoo Accounting, it is optional to group transactions by their related statement, but depending
on your business flow, you may want to record them for control purposes. on your business flow, you may want to record them for record-keeping and organizational purposes.
To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the
:icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` icon next to the bank or cash journal you want to
check, then click :guilabel:`Statements`.
.. important:: .. important::
If you want to compare the ending balances of your bank statements with the ending balances of To ensure the ending balances of your bank statements in Odoo align with the ending balances of
your financial records, *don't forget to create an opening transaction* to record the bank the statements that are provided by your bank, create an opening transaction to record the bank
account balance as of the date you begin synchronizing or importing transactions. This is account balance as of the date you begin synchronizing or importing transactions. This is
necessary to ensure the accuracy of your accounting. necessary to ensure the accuracy of your accounting.
To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the .. tip::
:icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon next to the bank or cash journal you want to To access a statement's transactions, click :guilabel:`Transactions` directly from the
check, then click :guilabel:`Statements`. :guilabel:`Bank Statements` list view or open a statement and click the :guilabel:`Statement
lines` smart button.
.. _transactions/statement-kanban: .. _accounting/transactions/statement-kanban:
Statement creation from the kanban view Statement creation
--------------------------------------- ------------------
Open the bank reconciliation (kanban) view from the :guilabel:`Accounting Dashboard` by clicking on The :guilabel:`Bank Matching` view displays transactions from most recent to oldest and groups them
the name of the bank journal and identify the transaction corresponding to the last (most recent) by statement, with any recent transactions that do not belong to a statement at the top. To add
transaction of your bank statement. Click on the :guilabel:`Statement` button when hovering on the transactions to a statement, hover on the most recent transaction that should be included in the
upper separator line to create a statement from that transaction down to the oldest transaction that statement, and click the :guilabel:`Statement` button that appears on the upper separator line.
is not yet part of a statement. Doing so creates a statement from that transaction down to the oldest transaction that is not yet
part of a statement.
.. image:: transactions/statements-kanban.png .. image:: transactions/statements-kanban.png
:alt: A "Statement" button is visible when hovering on the line separating two transactions. :alt: A "Statement" button is visible when hovering on a transaction.
In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify
its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, and click :guilabel:`Save`. its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, add an attachment such as a PDF
of the statement if desired, and click :guilabel:`Save`.
.. _transactions/statement-list: .. tip::
Transactions can also be added to statements from the list view. Select all the transactions
corresponding to the bank statement, and, in the :guilabel:`Statement` column, select an existing
statement or create a new one by typing its reference, clicking on :guilabel:`Create and
edit...`, filling out the statement's details, and saving.
Statement creation from the list view .. _accounting/transactions/view-edit-print:
-------------------------------------
Open the list of transactions by clicking on the name of the bank journal and switching to the list
view. Select all the transactions corresponding to the bank statement, and, in the
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
saving.
.. _transactions/view-edit-print:
Statement viewing, editing, and printing Statement viewing, editing, and printing
---------------------------------------- ----------------------------------------
To view an existing statement, click on the statement amount in the reconciliation (kanban) view or To view an existing statement, click the statement amount in the :guilabel:`Bank Matching` view
click on the statement name in the bank transaction list view. From here, you can edit the or click the statement name and then the :icon:`fa-arrow-right` :guilabel:`(Internal link)` icon in
:guilabel:`Reference`, :guilabel:`Starting Balance`, or :guilabel:`Ending Balance`. the :guilabel:`Bank Matching` list view. From here, you can edit the :guilabel:`Reference`,
:guilabel:`Starting Balance`, :guilabel:`Ending Balance`, and :guilabel:`Attachments`.
.. note:: .. note::
Manually updating the :guilabel:`Starting Balance` automatically updates the :guilabel:`Ending - Manually updating the :guilabel:`Starting Balance` automatically updates the :guilabel:`Ending
Balance` based on the new value of the :guilabel:`Starting Balance` and the value of the Balance` based on the new value of the :guilabel:`Starting Balance` and the value of the
statement's transactions. statement's transactions.
- If the :guilabel:`Starting Balance` doesn't equal the previous statement's :guilabel:`Ending
Balance`, or if the :guilabel:`Ending Balance` doesn't equal the running balance
(:guilabel:`Starting Balance` plus the statement's transactions), a warning appears explaining
the issue. To maintain flexibility, it is still possible to save without first resolving the
issue.
.. warning:: To generate and print a PDF of the bank statement, click the :icon:`fa-cog` :guilabel:`(gear)` icon
If the :guilabel:`Starting Balance` doesn't equal the previous statement's :guilabel:`Ending and click :icon:`fa-print` :guilabel:`Statement`.
Balance`, or if the :guilabel:`Ending Balance` doesn't equal the running balance
(:guilabel:`Starting Balance` plus the statement's transactions), a warning appears explaining
the issue. To maintain flexibility, it is still possible to save without first resolving the
issue.
To attach a digital copy (i.e., JPEG, PNG, or PDF) of the bank statement for enhanced recordkeeping,
click the :icon:`fa-paperclip` :guilabel:`Attachments` button and select the file to attach.
To generate and print a PDF of the bank statement, click the :guilabel:`Print` button (if accessed
via the reconciliation view) or click on the :icon:`fa-cog`:guilabel:`(gear)` icon and click
:icon:`fa-print`:guilabel:`Statement` (if accessed via the list view).
.. note:: .. note::
When a bank statement is generated to be printed, it is automatically added to the When a bank statement is generated to be printed, it is automatically added to the
:guilabel:`Attachments`. :guilabel:`Attachments` if no file was attached when creating the statement.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -4,16 +4,235 @@ Electronic invoicing (:abbr:`EDI (electronic data interchange)`)
EDI, or electronic data interchange, is the inter-company communication of business documents, such EDI, or electronic data interchange, is the inter-company communication of business documents, such
as purchase orders and invoices, in a standard format. Sending documents according to an EDI as purchase orders and invoices, in a standard format. Sending documents according to an EDI
standard ensures that the machine receiving the message can interpret the information correctly. standard ensures that the system receiving the message can interpret the information correctly.
Various EDI file formats exist and are available depending on your company's country. Various EDI file formats are available depending on your company's country.
EDI feature enables automating the administration between companies and might also be required by The EDI feature allows companies to automate administrative processes. It may also be required by
some governments for fiscal control or to facilitate the administration. some governments for fiscal control or to support administrative procedures. Electronic sending of
documents such as customer invoices, credit notes, or vendor bills is one application of EDI.
Electronic invoicing of your documents such as customer invoices, credit notes or vendor bills is Odoo supports e-invoicing in many countries. Refer to the :ref:`country's page
one of the application of EDI. <accounting/e-invoicing/peppol-country-specific>` for more details.
Odoo supports e-invoicing in many countries. Refer to the country's page for more details: .. seealso::
:doc:`Fiscal localizations documentation <../../fiscal_localizations>`
.. _accounting/e-invoicing/configuration:
Configuration
=============
By default, the format available in the :ref:`send window <accounting/e-invoicing/generation>`
depends on the customer's country.
To define a specific e-invoicing format for a customer, go to :menuselection:`Accounting -->
Customers --> Customers`, access the customer form, go to the :guilabel:`Accounting` tab, and select
the appropriate :guilabel:`Format` in the :guilabel:`Customer invoices` section.
.. _accounting/e-invoicing/generation:
E-invoice generation
====================
From a confirmed invoice, click :guilabel:`Send`. In the :guilabel:`Print & Send` window, enable the
relevant e-invoicing format option (e.g., :guilabel:`by Peppol`), then click :guilabel:`Send` to
generate and attach the corresponding e-invoicing XML file.
.. _accounting/e-invoicing/peppol:
Peppol
======
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
between companies and governmental authorities. It is primarily used for electronic invoicing, and
its access points (connectors to the Peppol network) allow companies to send electronic documents
such as customer invoices and credit notes and receive documents like vendor bills and refunds.
In this case, Odoo acts as both an **access point** and an :abbr:`SMP (Service Metadata Publisher)`
and enables electronic invoicing transactions without the need to send invoices or bills by email or
post.
.. note::
- Peppol registration is **free** and available in Odoo Community.
- Supported formats for sending documents include **BIS Billing 3.0, XRechnung CIUS, and
NLCIUS**.
- | The following **countries** are eligible for **Peppol registration in Odoo**:
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State).
.. _accounting/e-invoicing/peppol-registration:
Registration
------------
To register on Peppol, go to :menuselection:`Accounting --> Configuration --> Settings` and scroll
to the :guilabel:`PEPPOL Electronic Invoicing` section. Then, follow these steps:
#. Click :guilabel:`Activate Electronic Invoicing` and fill in the following fields:
- Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant
country-specific Peppol endpoint identifier is selected in the dropdown list, then enter your
Peppol endpoint (usually a Company Registry or VAT number).
- :guilabel:`Email`
- :guilabel:`Phone`, including the country code (e.g., `+32` in Belgium)
#. Click :guilabel:`Activate Peppol`. The registration is then pending activation and should be
automatically activated within a day.
.. seealso::
`Peppol endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
(open the "Participant Identifier Schemes" as HTML page)
#. Define where documents should be received:
- :guilabel:`Receive in Journal`: If necessary, select another purchase journal in the
:guilabel:`Incoming Invoices Journal` field.
- :doc:`Receive in Documents <../../../productivity/documents>`: Select a folder in the
:guilabel:`Document Workspace` field if multiple purchase journals are used.
#. Click :guilabel:`Save`.
All invoices and vendor bills can then be sent/received directly using Peppol.
.. note::
- To update the :guilabel:`Primary contact email`, click :icon:`oi-arrow-right`
:guilabel:`Advanced Configuration`, modify it, and click :guilabel:`Save`.
- If you are using an access point from a previous provider, make sure to deregister from it
first, then register with your new access point, unless it's Hermes (BOSA). If using Hermes
(BOSA), no action is needed; the migration is handled automatically.
.. tip::
- To manually trigger the scheduled action used to check the Peppol registration status, enable
:ref:`developer mode <developer-mode>`, open the Settings app, go to :menuselection:`Settings
--> Technical --> Scheduled actions`, and search for :guilabel:`Peppol: update participant
status`. Open the scheduled action, then click :guilabel:`Run Manually`.
- To try Peppol without sending real data, enable demo mode by selecting :guilabel:`Odoo Demo
ID` as the Peppol endpoint identifier. To switch back to production mode, :ref:`deregister from
the demo mode <accounting/e-invoicing/peppol-deregister>` and :ref:`register
<accounting/e-invoicing/peppol-registration>` in production.
.. _accounting/e-invoicing/contact-verification:
Contact verification
--------------------
Before sending an invoice to a contact using Peppol, make sure the contact is registered as a Peppol
participant. To do so, follow these steps:
#. Go to :menuselection:`Accounting --> Customers --> Customers` and access the customer's form.
#. In the :guilabel:`Accounting tab`, check the following information in the :guilabel:`Customer
invoices` section:
- :guilabel:`eInvoice format`: Select the relevant format.
- Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant
country-specific Peppol endpoint identifier is selected in the dropdown list, then enter the
customer's endpoint identifier, usually a Company Registry or VAT number.
#. To verify the contact, enable :ref:`developer mode <developer-mode>` and click
:guilabel:`Verify`. Its :guilabel:`Peppol endpoint verification` is marked as :guilabel:`Valid`
if the contact is found on the Peppol network.
.. image:: electronic_invoicing/customer-form.png
:alt: verify contact registration
.. important::
While Odoo prefills the endpoint number based on the information available for a contact,
verifying these details with the contact is recommended.
.. _accounting/e-invoicing/send-invoices:
Send invoices
-------------
All posted invoices that are ready to be sent via Peppol can be viewed in the :guilabel:`Invoices`
list view in the following ways:
- Use the :icon:`oi-settings-adjust` (:guilabel:`adjust settings`) button to add the
:guilabel:`Peppol status` column.
- Apply the :guilabel:`Peppol Ready` filter in the search bar.
To send the invoice to the customer via Peppol, click :guilabel:`Send` on the confirmed invoice
form. In the :guilabel:`Send` window, enable the :guilabel:`by Peppol` option and click
:guilabel:`Send`.
.. tip::
- :ref:`Multiple invoices <accounting/invoice/sending-multiple-invoices>` can also be sent in
batches via Peppol.
- Set the preferred :ref:`Invoice sending <accounting/invoice/sending>` method for a customer to
:guilabel:`by Peppol` in the :guilabel:`Customer Invoices` section of the customer form's
:guilabel:`Accounting` tab.
The status is updated to :guilabel:`Done` once the invoices have been successfully delivered to the
contact's access point.
.. _accounting/e-invoicing/receive-vendor-bills:
Receive vendor bills
--------------------
New documents received via Peppol are checked multiple times a day. Depending on the
:ref:`registration settings <accounting/e-invoicing/peppol-registration>`, received documents
are automatically:
- either imported into the purchase journal set in the :guilabel:`PEPPOL Electronic Invoicing`
section, and corresponding vendor bills are created as drafts;
- or received via the :ref:`Documents app
<accounting/e-invoicing/receive-vendor-bills-documents-app>`.
.. tip::
To manually trigger the scheduled action used to retrieve incoming Peppol documents, enable
:ref:`developer mode <developer-mode>`, open the Settings app, go to :menuselection:`Settings -->
Technical --> Scheduled actions`, and search for :guilabel:`Peppol: retrieve new documents`. Open
the scheduled action, then click :guilabel:`Run Manually`.
.. _accounting/e-invoicing/receive-vendor-bills-documents-app:
Vendor bills reception in Documents
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. note::
Make sure the :guilabel:`Documents - Import from Peppol` (`documents_account_peppol`) module is
:ref:`installed <general/install>`.
To receive vendor bills via the :doc:`Documents app <../../../productivity/documents>`, follow these
steps:
#. In the Documents app, create a specific :ref:`folder <documents/folders>` or enable :ref:`file
centralization <documents/file-centralization>` for :guilabel:`Accounting` documents.
#. Open the Accounting app, go to :menuselection:`Accounting --> Configuration --> Settings`, and
scroll to the :guilabel:`PEPPOL Electronic Invoicing` section.
#. In the :guilabel:`Document Workspace` field, choose the relevant folder.
#. Use the :guilabel:`Document Tags` field to add tags to incoming Peppol documents for easy
identification.
#. Click :guilabel:`Save`.
Then, open the Document app, navigate to the appropriate folder, select the relevant vendor bills,
and click :guilabel:`Create Vendor Bill`. The corresponding vendor bill is then created.
.. _accounting/e-invoicing/peppol-deregister:
Peppol deregistration from Odoo
-------------------------------
Only one Peppol receiver registration can be active for each Peppol endpoint identifier at a time.
To stop using Odoo as the Peppol access point, e.g., to switch to another provider or reconfigure
the registration for a new database, you must first deregister from Peppol. To do so, go to
:menuselection:`Accounting --> Configuration --> Settings`, scroll down to the :guilabel:`PEPPOL
Electronic Invoicing` section, and click :icon:`oi-arrow-right` :guilabel:`Advanced Configuration`.
Then click :guilabel:`Remove from Peppol` and confirm.
Once removed, the Peppol registration is deleted from the database, and documents can no longer be
sent or received via Peppol in Odoo.
.. _accounting/e-invoicing/peppol-country-specific:
Country-specific e-invoicing details
====================================
Refer to the following pages for detailed, country-specific information:
- :doc:`Argentina <electronic_invoicing/argentina>` - :doc:`Argentina <electronic_invoicing/argentina>`
- :doc:`Austria <electronic_invoicing/austria>` - :doc:`Austria <electronic_invoicing/austria>`
@@ -25,6 +244,7 @@ Odoo supports e-invoicing in many countries. Refer to the country's page for mor
- :doc:`Ecuador <electronic_invoicing/ecuador>` - :doc:`Ecuador <electronic_invoicing/ecuador>`
- :doc:`Estonia <electronic_invoicing/estonia>` - :doc:`Estonia <electronic_invoicing/estonia>`
- :doc:`Finland <electronic_invoicing/finland>` - :doc:`Finland <electronic_invoicing/finland>`
- :doc:`Guatemala <electronic_invoicing/guatemala>`
- :doc:`Hungary <electronic_invoicing/hungary>` - :doc:`Hungary <electronic_invoicing/hungary>`
- :doc:`Ireland <electronic_invoicing/ireland>` - :doc:`Ireland <electronic_invoicing/ireland>`
- :doc:`Italy <electronic_invoicing/italy>` - :doc:`Italy <electronic_invoicing/italy>`
@@ -39,261 +259,3 @@ Odoo supports e-invoicing in many countries. Refer to the country's page for mor
- :doc:`Spain <electronic_invoicing/spain>` - :doc:`Spain <electronic_invoicing/spain>`
- :doc:`Spain - Basque Country <electronic_invoicing/basque_country>` - :doc:`Spain - Basque Country <electronic_invoicing/basque_country>`
- :doc:`Uruguay <electronic_invoicing/uruguay>` - :doc:`Uruguay <electronic_invoicing/uruguay>`
.. seealso::
- :doc:`Fiscal localizations documentation <../../fiscal_localizations>`
- `Magic Sheet - E-invoicing in Odoo [PDF]
<https://drive.google.com/drive/folders/1NGC_bVygboE0A7ge-O69TX7JwFPNBhhu>`_
.. _e-invoicing/configuration:
Configuration
=============
By default, the format available in the :ref:`send window <e-invoicing/generation>` depends on your
customer's country.
You can define a specific e-invoicing format for each customer. To do so, go to
:menuselection:`Accounting --> Customers --> Customers`, open the customer form, go to the
:guilabel:`Accounting` tab and select the appropriate format.
.. image:: electronic_invoicing/customer-form.png
:alt: Select an EDI format for a specific customer
National electronic invoicing
-----------------------------
Depending on your company's country (e.g., :doc:`Italy <../../fiscal_localizations/italy>`,
:doc:`Spain <../../fiscal_localizations/spain>`, :doc:`Mexico
<../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in
a specific format for all your invoices. In this case, you can define a default e-invoicing format
for your sales journal.
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your sales journal,
go to the :guilabel:`Advanced Settings` tab, and enable the formats you need for this journal.
.. _e-invoicing/generation:
E-invoices generation
=====================
From a confirmed invoice, click :guilabel:`Send & Print` to open the send window. Check the
e-invoicing option to generate and attach the e-invoice file.
.. image:: electronic_invoicing/send-window.png
:alt: The Peppol option is checked and an e-invoicing XML file is attached to the email.
.. _e-invoicing/peppol:
Peppol
======
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
documents.
Odoo is an **access point** and an :abbr:`SMP (Service Metadata Publisher)`, enabling electronic
invoicing transactions without the need to send invoices and bills by email or post.
If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
.. important::
- Peppol registration is **free** and available in Odoo Community
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
**Refunds** via Peppol.
- You can send and receive in one of the following supported document formats:
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
- | The following **countries** are eligible for **Peppol registration in Odoo**:
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
.. _e-invoicing/peppol-registration:
Registration
------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
save**. Click :guilabel:`Start sending via Peppol` to open the registration form.
.. note::
This registration form also pops up if you choose to :guilabel:`Send & Print` an
invoice via Peppol without completing the registration process.
.. image:: electronic_invoicing/peppol-registration-settings.png
:alt: Peppol registration button
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
Odoo database and receive other documents in another software, register as a **sender**.
.. tip::
- You can always register as a sender first and register to receive documents later.
- When registering, you can specify if you would also like to receive documents.
.. image:: electronic_invoicing/peppol-registration-wizard.png
:alt: Peppol registration form
Fill in the following information:
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
service provider, insert the :guilabel:`Migration key` from the previous provider (the field
becomes visible after you tick the checkbox).
- :guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
For example, the preferred EAS code for most companies in Belgium is `0208`.
- :guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number.
- :guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium).
- :guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol
registration.
If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode.
Otherwise, select :guilabel:`Live`.
.. tip::
- Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or
partner verification.
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
allows to register on Peppol and send/receive test invoices to/from other participants.
To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to
:menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup
menu in the **Settings** app. The option :guilabel:`Test` is now available.
.. image:: electronic_invoicing/peppol-system-parameter.png
:alt: Peppol test mode parameter
.. seealso::
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
(open the "Participant Identifier Schemes" as HTML page)
When set up, request a verification code to be sent to you by clicking :guilabel:`Send a
registration code by SMS`. A text message containing a code is sent to the phone number provided to
finalize the verification process.
.. image:: electronic_invoicing/peppol-phone-verification.png
:alt: phone validation
Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated.
If you chose to only send documents, then the status changes to :guilabel:`Can send but
not receive`.
If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending
registration to receive`. In that case, it should be automatically activated within a day.
Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices
Journal`.
.. tip::
To manually trigger the cron that checks the registration status, enable the
:ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`,
and search for the :guilabel:`PEPPOL: update participant status` action.
Your receiver application status should be updated soon after you are registered on the Peppol
network.
.. image:: electronic_invoicing/peppol-receiver.png
:alt: receiver application
All invoices and vendor bills can now be sent directly using the Peppol network.
.. important::
To update the email that Odoo can use to contact you, modify the email and click
:guilabel:`Update contact details`.
Configure Peppol services
-------------------------
Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button
becomes visible to allow you to enable or disable document formats that other participants
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
on the installed modules).
Contact verification
--------------------
Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they
are also registered as a Peppol participant.
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and open the customer's
form. Then go to :menuselection:`Accounting tab --> Electronic Invoicing`, select the correct
format, and make sure their :guilabel:`Peppol EAS code` and the :guilabel:`Endpoint` are filled in.
Then, click :guilabel:`Verify`. If the contact exists on the network, their Peppol endpoint validity
is set to Valid.
.. image:: electronic_invoicing/peppol-contact-verify.png
:alt: verify contact registration
.. important::
While Odoo prefills both the EAS code and the Endpoint number based on the information available
for a contact, it is better to confirm these details directly with the contact.
It is possible to verify the Peppol participant status of several customers at once.
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
If the participant is registered on the Peppol network but cannot receive the format you selected
for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot
receive this format`.
.. image:: electronic_invoicing/peppol-participant-format.png
:alt: verify contact ubl format
Send invoices
-------------
Once ready to send an invoice via the Peppol network, simply click :guilabel:`Send & Print` on the
invoice form. To queue multiple invoices, select them in the list view and click
:menuselection:`Actions --> Send & Print`; they will be sent in a batch later on. Both
:guilabel:`BIS Billing 3.0` and :guilabel:`Send via PEPPOL` checkboxes need to be ticked.
.. image:: electronic_invoicing/peppol-send-print.png
:alt: Send peppol invoice
Posted invoices that can be sent via Peppol are marked as :guilabel:`Peppol Ready`.
To display them, use the :guilabel:`Peppol Ready` filter or access the Accounting dashboard and
click :guilabel:`Peppol ready invoices` on the corresponding sales journal.
.. image:: electronic_invoicing/peppol-ready-invoices.png
:alt: Filter Peppol ready invoices
Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The
status is changed to `Done` after they have been successfully delivered to the contact's Access
Point.
.. image:: electronic_invoicing/peppol-message-processing.png
:alt: Peppol message status
.. tip::
By default, the Peppol status column is hidden on the Invoices list view. You can choose to have
it displayed by selecting it from the optional columns, accessible from the top right corner of
the Invoices list view.
A cron runs regularly to check the status of these invoices. It is possible to check the status
before the cron runs by clicking :guilabel:`Fetch Peppol invoice status` in the corresponding
sales journal on the Accounting dashboard.
.. image:: electronic_invoicing/peppol-fetch-message-status.png
:alt: Fetch invoice Peppol status
Receive vendor bills
--------------------
Once a day, a cron checks whether any new documents have been sent to you via the Peppol network.
These documents are imported, and the corresponding vendor bills are created automatically as
drafts.
.. image:: electronic_invoicing/peppol-receive-bills.png
:alt: peppol receive bills
If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the
Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click
:guilabel:`Fetch from Peppol`.
.. image:: electronic_invoicing/peppol-fetch-bills.png
:alt: Fetch bills from Peppol

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -27,10 +27,10 @@ Compliance with Finnish e-invoicing regulations
Odoo invoicing module makes it easy for businesses to adhere to Finland's e-invoicing regulations. Odoo invoicing module makes it easy for businesses to adhere to Finland's e-invoicing regulations.
Here is how Odoo ensures compliance: Here is how Odoo ensures compliance:
- **Supported formats**: Odoo supports the e-invoicing formats widely used in Finland, including - **Supported formats**: Odoo supports the standardized XML in :abbr:`UBL (Universal Business
TEAPPSXML, Finvoice, and the standardized XML in :abbr:`UBL (Universal Business Language)` format Language)` format required for Peppol compliance. This ensures compatibility with regulations for
required for Peppol compliance. This ensures compatibility with Finnish platforms such as Handi sending invoices to the Finnish government, as well as sending invoices to customers and receiving
for public sector invoicing and eKuitti for enhanced receipt management and e-invoicing. invoices from vendors.
- **Secure storage and retrieval**: In accordance with Finnish regulations requiring businesses to - **Secure storage and retrieval**: In accordance with Finnish regulations requiring businesses to
store invoices for a minimum of seven years, Odoo securely archives all invoices in a tamper-proof store invoices for a minimum of seven years, Odoo securely archives all invoices in a tamper-proof
system, allowing for easy retrieval during audits. system, allowing for easy retrieval during audits.

View File

@@ -0,0 +1,56 @@
:orphan:
======================================
Odoo electronic invoicing in Guatemala
======================================
The Odoo **Invoicing** and **Accounting** applications offer legally compliant e-invoicing solutions
tailored to meet Guatemala's regulatory requirements, including those established by the
`Superintendencia de Administración Tributaria (SAT) <https://portal.sat.gob.gt/>`_.
Legal framework for e-invoicing in Guatemala
============================================
Guatemala has mandated electronic invoicing under the :abbr:`FEL (Factura Electrónica en Línea)`
system, which applies to most businesses to enhance fiscal control and modernize tax administration.
Key elements include:
- **Factura Electrónica en Línea (FEL)**: A mandatory e-invoicing system required for B2B, B2C, and
:abbr:`B2G (business-to-government)` transactions, regulated by the :abbr:`SAT (Superintendencia
de Administración Tributaria)`. Each authorized document must be digitally signed and contain a
unique certification code.
- **Integration with SAT**: All electronic documents must be issued through a certified certifier
`(Proveedor de Certificación)` and validated by the :abbr:`SAT (Superintendencia de Administración
Tributaria)` before being delivered to the customer. Once validated, the document receives a
certification date and unique UUID.
- **XML Format**: Guatemala mandates the use of XML for electronic documents, following SAT's
official XSD schema to ensure interoperability and traceability.
- **Adoption Timeline**: The transition to FEL has been implemented gradually by economic activity
and taxpayer profile, but it is now mandatory for most business sectors in the country.
Compliance with Guatemalan e-invoicing regulations
==================================================
Odoo Invoicing simplifies compliance with Guatemala's e-invoicing requirements by offering native
FEL integration and automation features:
- **Supported formats**: Odoo supports most mandatory FEL document types in SAT-compliant XML,
including invoices (:abbr:`FACT`), credit notes (:abbr:`NCRE`), and debit notes (:abbr:`NDEB`).
Each document is automatically submitted to a certified certifier (Infile), digitally signed, and
validated by the SAT in real time.
- **Secure storage and retrieval**: In accordance with Guatemalan regulations, Odoo provides
centralized and secure storage of certified documents, including their XML and PDF graphical
representations, with full access for audits and control processes.
- **Automatic tax calculation and reporting**: Odoo automates VAT (IVA) and applicable tax
computations, ensuring compliance with local tax rates, exemption rules, and reporting structures
as defined by the SAT.
.. seealso::
:doc:`Guatemalan fiscal localization documentation <../../../fiscal_localizations/guatemala>`
.. admonition:: Disclaimer
This page provides a general overview of Guatemalan e-invoicing regulations and how Odoo supports
compliance with SAT requirements. It is not intended as legal or tax advice. We recommend
consulting with a tax advisor or legal professional familiar with Guatemala's e-invoicing
regulations to ensure full compliance tailored to your specific business requirements.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -15,6 +15,8 @@ create draft invoices:
Sales Sales
===== =====
.. _accounting/inv-process/so:
Sales Order ‣ Invoice Sales Order ‣ Invoice
--------------------- ---------------------

View File

@@ -49,7 +49,7 @@ Bank reconciliation
------------------- -------------------
Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can
:ref:`reconcile them with the batch payment <reconciliation/batch-payments>`. :ref:`reconcile <accounting/reconciliation/reconcile>` them with the batch payment.
.. seealso:: .. seealso::
- :doc:`../payments` - :doc:`../payments`

View File

@@ -89,6 +89,8 @@ Once an |sdd| mandate is active, subsequent |sdd| payments can be generated via
active |sdd| mandate can also use this payment method for :doc:`online purchases active |sdd| mandate can also use this payment method for :doc:`online purchases
<../../payment_providers/sdd>`. <../../payment_providers/sdd>`.
.. _accounting/batch_sdd/close-revoke-mandate:
Closing or revoking a mandate Closing or revoking a mandate
----------------------------- -----------------------------
@@ -104,7 +106,8 @@ date. However, payments that have already been registered are still included in
XML file <accounting/batch_sdd/XML>`. XML file <accounting/batch_sdd/XML>`.
.. warning:: .. warning::
Closed or revoked mandates cannot be reactivated. - Mandates are automatically closed 36 months after the date of the last collection.
- Closed or revoked mandates cannot be reactivated.
.. _accounting/batch_sdd/XML: .. _accounting/batch_sdd/XML:

View File

@@ -4,10 +4,6 @@
Online payments Online payments
=============== ===============
.. toctree::
online/install_portal_patch
To make it more convenient for your customers to pay the invoices you issue, you can activate the To make it more convenient for your customers to pay the invoices you issue, you can activate the
**Invoice Online Payment** feature, which adds a *Pay Now* button on their **Customer Portal**. This **Invoice Online Payment** feature, which adds a *Pay Now* button on their **Customer Portal**. This
allows your customers to see their invoices online and pay directly with their favorite payment allows your customers to see their invoices online and pay directly with their favorite payment

View File

@@ -1,57 +0,0 @@
===================================================
Install the patch to disable online invoice payment
===================================================
Following recent changes in Odoo 16, you might be warned that disabling the :guilabel:`Invoice
Online Payment` setting will uninstall modules. If you want to disable the feature without
uninstalling modules, follow the steps below to install the module **Payment - Account / Invoice
Online Payment Patch**.
.. note::
| If your Odoo database is created after the module **Payment - Account / Invoice Online Payment
Patch** was released, you don't have anything to do.
| To check if the module is already installed, go to :guilabel:`Apps`, remove the `Apps` filter,
and search for `account_payment`. If the module **Payment - Account / Invoice Online Payment
Patch** is present and marked as installed, your Odoo database is already up-to-date and you
are able to disable the feature without side-effect.
Update Odoo to the latest release
=================================
The possibility to disable the :guilabel:`Invoice Online Payment` setting without side-effect is
made available through a new Odoo module; to be able to install it, you must make sure that your
Odoo source code is up-to-date.
If you use Odoo on Odoo.com or Odoo.sh platform, your code is already up-to-date and you can proceed
to the next step.
If you use Odoo with an on-premise setup or through a partner, you must update your installation as
detailed in :doc:`this documentation page </administration/on_premise/update>`, or by contacting
your integrating partner.
Update the list of available modules
====================================
New modules must be *discovered* by your Odoo instance to be available in the **Apps** menu.
To do so, activate the :ref:`developer mode <developer-mode>`, and go to :menuselection:`Apps -->
Update Apps List`. A wizard will ask for confirmation.
Install the module Invoice Online Payment Patch
===============================================
.. warning::
You should never install new modules in your production database without first testing them in a
duplicate or staging environment. For Odoo.com customers, a duplicate database can be created
from the database management page. For Odoo.sh users, you should use a staging or duplicate
database. For on-premise users, you should use a staging environment---contact your integrating
partner for more information regarding how to test a new module in your particular setup.
The module should now be available in your :guilabel:`Apps` menu. Remove the ``Apps`` filter and
search for ``account_payment``; the module :guilabel:`Payment - Account / Invoice Online Payment Patch`
should be available for installation. If you cannot find the module after having updated the list
of available modules, it means your Odoo source code is not up-to-date; refer to step one of this
page.
Once the module is installed, disabling the feature will work as intended and will not ask you to
uninstall installed applications or modules.

View File

@@ -34,8 +34,8 @@ tax, and click on :guilabel:`Save`.
.. _taxes/list_activation: .. _taxes/list_activation:
Activate sales taxes from the list view Activate taxes from the list view
======================================= =================================
As part of your :ref:`fiscal localization package <fiscal_localizations/packages>`, most of your As part of your :ref:`fiscal localization package <fiscal_localizations/packages>`, most of your
country's sales taxes are already preconfigured on your database. However, only a few taxes are country's sales taxes are already preconfigured on your database. However, only a few taxes are

View File

@@ -38,18 +38,17 @@ click :guilabel:`New`.
Automatically Automatically
------------- -------------
Vendor bills can be automatically created through various methods: Vendor bills can be automatically created by sending an email to an :ref:`email alias
<accounting/bill-digitization/email-alias>` associated with the purchase journal, or by
- Emailing to an :ref:`email alias <invoice-digitization/email-alias>` associated with the purchase :ref:`uploading a PDF <accounting/bill-digitization/manual-upload>`.
journal. If the email does not contain a valid file, an automatic response notifies the sender
that no document was received.
- Uploading a PDF: To upload a bill, go to :menuselection:`Accounting --> Vendors --> Bills`, then
click :guilabel:`Upload`.
.. note:: .. note::
- Once the bill is uploaded, the PDF document appears on the right side of the screen, making it - Once the bill is uploaded, the PDF document appears on the right side of the screen, making it
easy to fill in the bill information. easy to fill in the bill information.
- Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic completion. - Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic
completion and :ref:`matched with purchase orders
<accounting/bill-digitization/vendor-bills-matching-po>` to replace OCR-detected data with the
existing purchase order's details.
- Services such as digitizing scanned or PDF vendor bills in Odoo require :doc:`In-App - Services such as digitizing scanned or PDF vendor bills in Odoo require :doc:`In-App
Purchase (IAP) </applications/essentials/in_app_purchase>` credits. Purchase (IAP) </applications/essentials/in_app_purchase>` credits.
@@ -62,6 +61,10 @@ options:
- :guilabel:`Ask after 3 validations without edits` - :guilabel:`Ask after 3 validations without edits`
- :guilabel:`Never` - :guilabel:`Never`
.. seealso::
:ref:`Vendor bills matching with purchase orders
<accounting/bill-digitization/vendor-bills-matching-po>`
.. _accounting/vendor_bills/bill-completion: .. _accounting/vendor_bills/bill-completion:
Bill completion Bill completion

View File

@@ -1,101 +1,217 @@
================================ =====================
AI-powered document digitization Document digitization
================================ =====================
**Invoice digitization** is the process of converting paper documents into vendor bill and customer Document digitization refers to the process of converting paper or digital documents into records
invoice forms in your accounting. in a database. Using :abbr:`OCR (optical character recognition)` and artificial intelligence
technologies, Odoo reads the content and automatically creates and fills in the record's details.
This process is mainly used for vendor bills (or refunds).
Odoo uses :abbr:`OCR (optical character recognition)` and artificial intelligence technologies to .. note::
recognize the content of the documents. Vendor bill and customer invoice forms are automatically Although less common, this digitization process can also be applied to customer invoices and
created and populated based on the scanned invoices. credit notes. The :ref:`settings <accounting/bill-digitization/configuration>` need to be
adjusted accordingly.
.. seealso:: .. seealso::
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_ - `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
- `Odoo Tutorials: Vendor Bill Digitization - `Odoo Tutorials: Vendor Bill Digitization
<https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_ <https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_
- :doc:`/applications/essentials/in_app_purchase`
.. _accounting/bill-digitization/configuration:
Configuration Configuration
============= =============
In :menuselection:`Accounting --> Configuration --> Settings --> Digitization`, check the box Go to :menuselection:`Accounting --> Configuration --> Settings` and navigate to the
:guilabel:`Document Digitization` and choose whether :guilabel:`Vendor Bills` and :guilabel:`Digitization` section. Enable the :guilabel:`Document Digitization` option and choose
:guilabel:`Customer Invoices` (this includes customer credit notes) should be processed whether :guilabel:`Vendor Bills` should be processed automatically or on demand.
automatically or on demand.
If you enable the :guilabel:`Single Invoice Line Per Tax` option, only one line is created per tax
in the new bill, regardless of the number of lines on the invoice.
Invoice upload
==============
Upload invoices manually
------------------------
From the :guilabel:`Accounting Dashboard`, click on the :guilabel:`Upload` button of your vendor
bills journal.
Alternatively, go to :menuselection:`Accounting --> Customers --> Invoices` or
:menuselection:`Accounting --> Vendors --> Bills` and select :guilabel:`Upload`.
.. _invoice-digitization/email-alias:
Upload invoices using an email alias
------------------------------------
You can configure your connected scanner to send scanned documents to an email alias. Emails sent to
these aliases are converted into new draft customer invoices or vendor bills.
You can modify the email alias of a journal. To do so, go to the :guilabel:`Settings` app. Under
:guilabel:`General Settings: Discuss`, enable :guilabel:`Custom Email Servers`, add an
:guilabel:`Alias Domain`, and :guilabel:`Save`.
The email alias is now available in the :guilabel:`Advanced Settings` tab of the journal. Emails
sent to this address will be converted automatically into new invoices or bills.
.. note:: .. note::
If you use the :doc:`Documents </applications/productivity/documents>` app, you can automatically If the :guilabel:`Single Invoice Line Per Tax` option is enabled, only one line is created per
send your scanned invoices to the :guilabel:`Finance` workspace (e.g., tax in the new vendor bill, regardless of the number of lines on it.
`inbox-financial@example.odoo.com`).
The default email aliases `vendor-bills@` and `customer-invoices@` followed by the .. _accounting/bill-digitization/vendor-bills-upload:
:guilabel:`Alias Domain` you set are automatically created for the :guilabel:`Vendor Bills` and
:guilabel:`Customer Invoices` journals, respectively. Emails sent to these addresses are converted
automatically into new invoices or bills.
To change a default email alias, go to Vendor bills upload
:menuselection:`Accounting --> Configuration --> Accounting: Journals`. Select the journal you want ===================
to edit, click on the :guilabel:`Advanced Settings` tab, and edit the `Email Alias`.
Invoice digitization Vendor bills are :ref:`uploaded manually <accounting/bill-digitization/manual-upload>` or sent to a
==================== :ref:`designated email alias <accounting/bill-digitization/email-alias>` to be digitized. They can
also be :ref:`automatically posted <accounting/bill-digitization/auto-post-bills>` for selected
vendors.
According to your settings, the document is either processed automatically, or you need to click on .. note::
:guilabel:`Send for digitization` to do it manually. Once the bill is uploaded, the document preview appears on the right side of the screen.
Once the data is extracted from the PDF, you can correct it if necessary by clicking on the .. seealso::
respective tags (available in :guilabel:`Edit` mode) and selecting the proper information instead. :doc:`Vendor bills <../vendor_bills>`
Data recognition with AI .. _accounting/bill-digitization/manual-upload:
========================
It is essential to review and correct (if needed) the information uploaded during digitization. Manual upload
Then, you have to post the document by clicking on :guilabel:`Confirm`. In this manner, the AI -------------
learns, and the system identifies the correct data for future digitizations.
In the Accounting dashboard, drag and drop vendor bills into the desired purchase journal or click
:guilabel:`Upload` on the purchase journal.
.. _accounting/bill-digitization/email-alias:
Upload via email alias
----------------------
Vendor bills can be uploaded via an email alias associated with the relevant journal in two ways:
- scanned from a connected scanner configured to send email to an email alias;
- sent directly to an email alias.
Each PDF attached to the email is automatically converted into a new draft vendor bill.
.. note::
- Only PDF and XML formats are processed via an email alias associated with a journal.
- JPEG files must be processed via :ref:`email alias in the Documents app
<documents/email-aliases>`.
To add an email alias to a journal, follow these steps:
#. Make sure an :doc:`alias domain <../../../websites/website/configuration/domain_names>` has been
configured.
#. The default email alias `vendor-bills@` followed by the alias domain is automatically created
and available in the :guilabel:`Advanced Settings` tab of the :guilabel:`Vendor Bills` journal.
#. To change a default email alias, go to :menuselection:`Accounting --> Configuration -->
Journals`, select the corresponding journal, and edit the :guilabel:`Email Alias` in the
:guilabel:`Advanced Settings` tab.
#. Configure the connected scanner to send scanned documents to the email alias, if needed.
.. note::
Alternatively, an :ref:`email alias in the Documents app <documents/email-aliases>` can be used
to automatically send vendor bills to the :guilabel:`Finance` :ref:`folder
<documents/folders>` (e.g., `inbox-financial@example.odoo.com`).
.. _accounting/bill-digitization/auto-post-bills:
Automatic vendor bill posting
-----------------------------
.. note::
To use the :guilabel:`Auto-post bills` option, the :guilabel:`Digitize automatically` setting in
the :ref:`Document Digitization <accounting/bill-digitization/configuration>` section must be
enabled for vendor bills.
To automatically post digitized vendor bills for specific vendors, go to :menuselection:`Accounting
--> Vendors --> Vendors` and click the desired vendor. In the :guilabel:`Accounting` tab of the
contact form, select an :guilabel:`Auto-post bills` option in the :guilabel:`Automation` section:
- :guilabel:`Always`
- :guilabel:`Ask after 3 validations without edits`: When the third uploaded bill is confirmed
without any edits, an :guilabel:`Autopost Bills` window appears. The following options can be
chosen: :guilabel:`Activate auto-validation`, :guilabel:`Ask me later`, or :guilabel:`Never for
this vendor`.
- :guilabel:`Never`
.. note::
Since automation is triggered after three validated bills without edits, the contact name must
already exist in the database, and each uploaded vendor bill must include a bill date.
.. _accounting/bill-digitization/digitization:
Digitization and data recognition with AI
=========================================
Depending on the :ref:`settings <accounting/bill-digitization/configuration>`, documents are either
automatically digitized or require manual processing if digitization is set to on-demand only.
To manually digitize an :ref:`uploaded document
<accounting/bill-digitization/vendor-bills-upload>`, click :guilabel:`Digitize document`.
Once the document has been digitized, a blue banner appears; click :icon:`oi-arrow-right`
:guilabel:`Refresh`. Review and correct any information uploaded during digitization: click on the
related field(s) to edit them, or click :guilabel:`Reload AI data` to refresh the data.
Then, click :guilabel:`Confirm` to post the document.
.. tip::
Once a document has been digitized, the :guilabel:`Vendor` field remains empty if the vendor
doesn't exist in the database. To add it, click the :icon:`fa-caret-down` :guilabel:`(down arrow)`
in the :guilabel:`Vendor` field; the vendor name appears highlighted in the document preview on
the right. Click it to open a new vendor form with the name pre-filled.
.. note::
The following vendor bill fields are recognized by OCR:
- :guilabel:`Vendor`, :guilabel:`Bill Reference`, :guilabel:`Bill Date`, :guilabel:`Payment
Reference` (only in the Belgian +++xxx/xxxx/xxxxx+++ format), :guilabel:`Recipient Bank`,
:guilabel:`Due Date`, and the currency (in a :doc:`multi-currency
<../get_started/multi_currency>` environment and if the currency is activated).
- From the :guilabel:`Invoices Lines` tab: :guilabel:`Product` description/label,
:guilabel:`Quantity`, unit :guilabel:`Price`, :guilabel:`Taxes` (if the :ref:`tax is activated
<taxes/list_activation>`; this field is not recognized by OCR for the :doc:`Indian
localization <../../fiscal_localizations/india>`), :guilabel:`Untaxed Amount`, and
:guilabel:`Total`.
.. _accounting/bill-digitization/vendor-bills-matching-po:
Purchase order matching
=======================
When a digitized vendor bill is recognized by :abbr:`OCR (optical character recognition)`, Odoo
searches the database for a matching purchase order. If found, the vendor bill can be manually
matched with the existing open purchase order lines.
Once a vendor bill has been :ref:`uploaded <accounting/bill-digitization/vendor-bills-upload>` and
:ref:`digitized <accounting/bill-digitization/digitization>`, click the :guilabel:`Purchase
matching` smart button to access the :guilabel:`Purchase matching` list view, displaying all
purchase order lines linked to the vendor assigned to the vendor bill. Then, select the relevant
purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`.
.. tip::
In the :guilabel:`Purchase Matching` list view, update the :guilabel:`Quantity` and
:guilabel:`Price` in the purchase order lines, if necessary.
If there is no existing purchase order related to the vendor of the uploaded vendor bill, a new
purchase order can be directly created from the vendor bill lines. To do so, follow these steps:
#. Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in with the
correct vendor.
#. Click the :guilabel:`Purchase matching` smart button, select the draft vendor bill in the list
(shown in grey), and click :guilabel:`Add to PO`.
#. In the :guilabel:`Add to Purchase Order` window, start typing in the :guilabel:`Purchase Order`
field and select :guilabel:`Create and edit`.
#. In the :guilabel:`Create Purchase Order` window, select the vendor assigned to the vendor bill,
then complete all :ref:`required fields <purchase/manage_deals/create-new-rfq>` and click
:guilabel:`Confirm`.
#. In the :guilabel:`Purchase Matching` list view, select the relevant purchase order lines and the
draft vendor bill (shown in grey), and click :guilabel:`Match`.
.. Note::
If any information required for the purchase order fields is missing, click :guilabel:`Save and
Close` in the :guilabel:`Create Purchase Order` window. Then, open the Purchase app to fill in
the fields and :ref:`confirm the purchase order <purchase/manage_deals/confirm-order>`.
.. tip::
- Electronic vendor bills with embedded XML ensure more accurate and efficient processing.
- Alternatively, the :ref:`Auto-complete <accounting/vendor_bills/bill-completion>` feature
can transfer information from the purchase order to the vendor bill, without requiring OCR.
.. _accounting/bill-digitization/pricing:
Pricing Pricing
======= =======
The **invoice digitization** is an In-App Purchase (IAP) service that requires prepaid credits to The document digitization feature is an In-App Purchase (IAP) service requiring prepaid credits.
work. Digitizing one document consumes one credit. Digitizing one document uses one credit.
To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Digitization` To buy credits, :ref:`go to the Settings app <iap/buying_credits>` or :menuselection:`Accounting -->
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on Configuration --> Settings`, navigate to the :guilabel:`Digitization` section, and click
:guilabel:`View My Services`. :guilabel:`Buy credits`.
.. note:: .. note::
Enterprise Odoo users with a valid subscription get free credits to test IAP features before - Odoo Enterprise 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, purchasing more credits for the database. This includes demo/training databases, educational
educational databases, and one-app-free databases. databases, and one-app-free databases.
- XML files don't require OCR credits because they contain structured data that can be processed
directly, without OCR.
.. seealso:: .. seealso::
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_ - `Odoo In-App Purchase Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
- :doc:`/applications/essentials/in_app_purchase` - :doc:`/applications/essentials/in_app_purchase`

View File

@@ -84,7 +84,7 @@ Fiscal localization modules are available for the countries listed below.
- :doc:`Germany <fiscal_localizations/germany>` - :doc:`Germany <fiscal_localizations/germany>`
- Guinea - Guinea
- Greece - Greece
- Guatemala - :doc:`Guatemala <fiscal_localizations/guatemala>`
- Guinea-Bissau - Guinea-Bissau
- Honduras - Honduras
- :doc:`Hong Kong <fiscal_localizations/hong_kong>` - :doc:`Hong Kong <fiscal_localizations/hong_kong>`
@@ -164,6 +164,7 @@ Fiscal localization modules are available for the countries listed below.
fiscal_localizations/egypt fiscal_localizations/egypt
fiscal_localizations/france fiscal_localizations/france
fiscal_localizations/germany fiscal_localizations/germany
fiscal_localizations/guatemala
fiscal_localizations/hong_kong fiscal_localizations/hong_kong
fiscal_localizations/india fiscal_localizations/india
fiscal_localizations/indonesia fiscal_localizations/indonesia

View File

@@ -224,7 +224,7 @@ your :guilabel:`Bank` journal on your dashboard.
:alt: Import CODA files :alt: Import CODA files
.. seealso:: .. seealso::
:ref:`Import bank files <transactions/import>` :ref:`Import bank files <accounting/transactions/import>`
.. _belgium/soda: .. _belgium/soda:
@@ -576,8 +576,8 @@ IoT box, you must contact us through our `support contact form <https://www.odoo
provide the following information: provide the following information:
- your VAT number; - your VAT number;
- your company's name, address, and legal structure; and - your company's name, address, and legal structure;
- the Mac address of your IoT Box. - the identifier of your IoT Box.
Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To 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 verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the

View File

@@ -101,8 +101,8 @@ To send invoices to Chorus Pro, the following configuration is required:
#. :doc:`Install </applications/general/apps_modules>` the :guilabel:`France - Factur-X integration #. :doc:`Install </applications/general/apps_modules>` the :guilabel:`France - Factur-X integration
with Chorus Pro` (`l10n_fr_facturx_chorus_pro`) module. with Chorus Pro` (`l10n_fr_facturx_chorus_pro`) module.
#. :ref:`Register <e-invoicing/peppol-registration>` with Peppol, as invoices are sent from Odoo to #. :ref:`Register <accounting/e-invoicing/peppol-registration>` with Peppol, as invoices are sent
Chorus Pro via the :ref:`Peppol <e-invoicing/peppol>` network. from Odoo to Chorus Pro via the :ref:`Peppol <accounting/e-invoicing/peppol>` network.
#. If you dont already have a Chorus Pro account, go to the `Chorus Pro #. If you dont already have a Chorus Pro account, go to the `Chorus Pro
<https://portail.chorus-pro.gouv.fr/aife_csm>`_ page, click :guilabel:`Créer un compte`, and <https://portail.chorus-pro.gouv.fr/aife_csm>`_ page, click :guilabel:`Créer un compte`, and
create one. create one.
@@ -150,7 +150,7 @@ To send invoices to Chorus Pro, follow these steps:
Once the invoice is sent, the Peppol status of the invoice is updated to :guilabel:`Done`. Once the invoice is sent, the Peppol status of the invoice is updated to :guilabel:`Done`.
.. seealso:: .. seealso::
:ref:`Peppol <e-invoicing/peppol>` :ref:`Peppol <accounting/e-invoicing/peppol>`
.. _localizations/france/fec: .. _localizations/france/fec:

View File

@@ -0,0 +1,291 @@
=========
Guatemala
=========
.. |SAT| replace:: :abbr:`SAT (Superintendencia de Administración Tributaria)`
.. |EDI| replace:: :abbr:`EDI (Electronic Data Interchange)`
.. |UUID| replace:: :abbr:`UUID (Universally Unique Identifier)`
.. _guatemala/intro:
Introduction
============
With the Guatemalan localization, you can connect to the tax authority Superintendencia de
Administración Tributaria (SAT) to generate electronic documents with its XML, fiscal folio, and
electronic signature.
The supported documents are:
- :guilabel:`FACT-Factura`,
- :guilabel:`FCAM-Factura Cambiaria`,
- :guilabel:`FPEQ-Factura de Pequeño Contribuyente`,
- :guilabel:`NCRE-Credit Note`,
- :guilabel:`NDEB-Debit Note`,
- :guilabel:`NABN-Nota de Abono`,
- :guilabel:`FCAP-Factura Cambiaria Pequeño Contribuyente`,
- :guilabel:`FACT-Factura with Export Complement`.
The localization requires an `Infile <https://infile.com.gt/>`_ account, which enables users to
generate electronic documents within Odoo.
.. seealso::
:doc:`Documentation on e-invoicing's legality and compliance in Guatemala
<../accounting/customer_invoices/electronic_invoicing/guatemala>`
Glossary
--------
The following terms are used throughout the Guatemalan localization:
- **SAT**: *Superintendencia de Administración Tributaria* is the government entity responsible for
enforcing tax payments in Guatemala.
- **FEL**: *Factura Electrónica en Línea* is the electronic invoicing system mandated by the SAT in
Guatemala, which requires businesses to issue and manage electronic documents in compliance with
local regulations.
- **EDI**: *Electronic Data Interchange* refers to the sending of electronic documents.
- **Infile**: is the third-party organization that facilitates the interchange of electronic
documents between companies and the Guatemalan government.
- **UUID**: *Universally Unique Identifier* is a unique alphanumeric code assigned by the SAT to
each certified electronic document in the FEL system, used for traceability and official
validation.
- **Phrases**: Type of Phrases with specific Scenario Codes are used in the Guatemalan localization
to comply with the requirements of the SAT. They should be added depending on the issuer regime,
receiver, and operation type. These phrases are used in the XML and PDF documents.
- **Establishment Code**: A unique identifier assigned by the SAT to each business establishment,
which is required for electronic invoicing.
- **Quetzal**: The official currency of Guatemala, represented by the symbol GTQ. This is the base
currency for all financial transactions in the Guatemalan localization.
Configuration
=============
Modules installation
--------------------
:ref:`Install <general/install>` the following modules to get all the features of the Guatemalan
localization:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`Guatemala - Accounting`
- `l10n_gt`
- The default :doc:`fiscal localization package <../fiscal_localizations>`. It adds accounting
characteristics for the Guatemalan localization, which represent the minimum configuration
required for a company to operate in Guatemala according to the guidelines set by the |SAT|.
The module's installation automatically loads the chart of accounts and taxes.
* - :guilabel:`Guatemala Accounting EDI`
- `l10n_gt_edi`
- Includes all the technical and functional requirements to generate and validate
:doc:`Electronics Documents <../accounting/customer_invoices/electronic_invoicing>`, based on
the technical documentation published by the |SAT|. The authorized documents are :ref:`listed
above <guatemala/intro>`.
.. note::
Odoo automatically installs the base module **Guatemala - Accounting** when a database is
installed with `Guatemala` selected as the country. However, to enable electronic invoicing, the
**Guatemala Accounting EDI** (`l10n_gt_edi`) module needs to be manually :ref:`installed
<general/install>`.
Company
-------
To configure your company information, open the **Settings** app, scroll down to the
:guilabel:`Companies` section, click :guilabel:`Update Info`, and configure the following:
- :guilabel:`Company Name`
- :guilabel:`Address`, including the :guilabel:`Street`, :guilabel:`City`, :guilabel:`State`,
:guilabel:`ZIP`, and :guilabel:`Country`
- :guilabel:`Tax ID`: Enter the identification number for the selected taxpayer type.
- :guilabel:`VAT Affiliation`: Select the VAT affiliation for the company, which is the type of
Regime the company belongs to.
- :guilabel:`Legal Name`: The legal name of the company, which is used in the XML and PDF documents.
- :guilabel:`Establishment Code`: A necessary part of the XML when creating an electronic document.
If this field is not set, all electronic documents will be rejected.
To locate the :guilabel:`Establishment Code` in your `SAT account <https://portal.sat.gob.gt/>`_,
go to :menuselection:`FEL --> Administración de Establecimientos`. The list of registered
establishments is displayed along with their corresponding codes.
.. important::
After configuring the company in the database settings, navigate to the company's contact form
and verify that the :guilabel:`Identification Number` :guilabel:`Type` is set to :guilabel:`NIT`.
Electronic invoicing credentials
--------------------------------
In Guatemala, electronic invoicing is mandatory for most businesses. Odoo connects with the
authorized provider, Infile, to generate and submit electronic documents to the |SAT| for
validation.
Before issuing electronic documents, you must configure and connect Odoo to Infile to ensure they
are properly validated and assigned an official |UUID|.
Infile
~~~~~~
Sign a service agreement directly with `Infile <https://infile.com.gt/>`_. Infile will then provide
the necessary credentials to input in Odoo.
Odoo
~~~~
In Odoo, once you have completed the Infile process, navigate to :menuselection:`Accounting -->
Configuration --> Settings`, scroll down to the :guilabel:`Guatemalan Localization` section, then
follow these steps:
#. Select the :guilabel:`Infile Web Services` environment, either :guilabel:`Test` or
:guilabel:`Production`.
#. Enter the :guilabel:`Infile Credentials`:
- :guilabel:`Infile WS Username or Prefix`
- :guilabel:`Infile Token`
- :guilabel:`Infile Key`
#. Click on :guilabel:`Save`.
.. note::
The :guilabel:`Infile Credentials` are provided by Infile and are required for both test and
production environments. If they are not available, contact Infile support.
.. tip::
The demo environment is for testing only and does not generate legal documents, |UUID| keys, or
fiscal folios. No Infile account or credentials are needed to use the demo environment.
Multi-currency
~~~~~~~~~~~~~~
The official currency exchange rate in Guatemala is provided by the Bank of Guatemala. Odoo can
connect directly to its services and get the currency rate either automatically or manually.
.. seealso::
:doc:`Multi-currencies <../accounting/get_started/multi_currency>`
Master data
-----------
Chart of accounts
~~~~~~~~~~~~~~~~~
The :doc:`chart of accounts <../accounting/get_started/chart_of_accounts>` is installed by default
as part of the set of data included in the localization module, the accounts are mapped
automatically in taxes, default accounts payable, and default accounts receivable.
Accounts can be added or deleted according to the company's needs.
Contacts
~~~~~~~~
The following fields must be completed on contact forms:
- :guilabel:`Company Name`
- :guilabel:`Address`, including the :guilabel:`Street`, :guilabel:`City`, :guilabel:`State`,
:guilabel:`ZIP`, and :guilabel:`Country`
- :guilabel:`Identification Number`:
- :guilabel:`Type`: Select an identification type.
- :guilabel:`Number`: Required to confirm an electronic invoice.
.. note::
To automatically include a specific phrase in the XML and PDF of every electronic invoice for a
contact, select it in :guilabel:`Phrases` field in the :guilabel:`Sales & purchase` tab of the
contact form.
Taxes
~~~~~
As part of the Guatemala localization module, taxes are automatically created with their configuration
and related financial accounts.
Electronic invoices
===================
Once the database has been configured successfully, electronic documents can be created and sent.
Once :doc:`customer invoices <../accounting/customer_invoices>` are validated, they can be sent
electronically to |SAT| via Infile, provided the following fields are completed:
- :guilabel:`Customer`: Type the customer's information.
- :guilabel:`GT Document Type`: Select the type of document you want to create, i.e.,
:guilabel:`FACT - Factura Electrónica` or :guilabel:`FCAM - Factura Cambiara`. By default, the
document type is set to :guilabel:`FACT`.
- :guilabel:`Due date`: To compute if the invoice is due now or later.
- :guilabel:`Journal`: Select the sales journal.
- :guilabel:`Products`: Specify the product(s) with the correct taxes.
When done, click :guilabel:`Confirm`.
.. note::
If you need to add a specific phrase based on the transaction, go to the :guilabel:`Other Info`
tab and add the corresponding phrase in :guilabel:`GT Phrases`. These phrases are used in the XML
and PDF documents.
.. note::
If you need to add an addendum to the invoice, you can do so in the :guilabel:`Terms and
Conditions` field. The addendum will be included in the XML document and can be used to provide
additional information or notes related to the invoice.
After the invoice confirmation, click :guilabel:`Send`. In the wizard that appears, make sure to
enable the :guilabel:`Send to SAT` and :guilabel:`by Email` checkboxes to send the XML to the |SAT|
through Infile's web service and the validated invoice to the client's email, and click
:guilabel:`Send`. Then, the following occurs:
- The XML document is created.
- The |UUID| is generated.
- The XML is processed synchronously by Infile.
- If accepted, the file is displayed in the chatter, and the email to the client with the
corresponding :file:`pdf` and :file:`xml` file is sent.
- If the file contains errors, a warning message displays the reason(s) and the email is not sent.
.. image:: guatemala/pdf-xml-chatter-guatemala.png
:alt: EDI documents available in the chatter.
The :guilabel:`SAT` tab then displays the following:
- :guilabel:`Datetime`: Timestamp recorded of the XML creation.
- :guilabel:`GT Status`: Status result obtained in the |SAT| response. If the file contains errors,
a warning message displays the reason(s) and the email is not sent.
- :guilabel:`UUID`: The unique identifier assigned by the |SAT| to the electronic document.
- :guilabel:`Download Certificate`: To download the sent XML file, even if the |SAT| result was
rejected.
.. image:: guatemala/sat-tab-electronic-document.png
:alt: EDI document record available in SAT tab.
.. _localization/guatemala/credit-notes:
Debit and credit notes
----------------------
To send a debit or credit note to Infile, first create the :ref:`debit
<accounting/credit_notes/issue-debit-note>` or :ref:`credit note
<accounting/credit_notes/issue-credit-note>`.
Then, in the :guilabel:`Send` window, click :guilabel:`Send to SAT (Guatemalan EDI)` to submit it
for real-time validation. Upon successful validation, the QR code from Infile is embedded in the
debit or credit note PDF.
Export invoices
---------------
Exportation invoices must meet the following conditions:
- The customer's :guilabel:`Identification type` must be :guilabel:`VAT`, :guilabel:`Passport`, or
:guilabel:`Foreign ID`.
- The following fields must be defined in the customer invoice's :guilabel:`Other Info` tab, under
the :guilabel:`Accounting` section:
- :guilabel:`Incoterm`
- :guilabel:`GT Phrases`: :guilabel:`Type 4 Code 1`
- :guilabel:`Consignatory Company`
- All invoice lines must include taxes set to 0%.
.. image:: guatemala/l10n-gt-factura-de-cliente.png
:alt: Exportation invoices main data.

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -592,33 +592,22 @@ Process
.. _italy/digital-signature: .. _italy/digital-signature:
Digital qualified signature Qualified electronic signature
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For invoices and bills intended for the :abbr:`PA (Public Administration)`, a **Digital Qualified Invoices and bills intended for the :abbr:`PA (Public Administration)` must include a **qualified
Signature** is required for all files sent through the :abbr:`SdI (Sistema di Interscambio)`. The electronic signature** when submitted through the :abbr:`SdI (Sistema di Interscambio)`. This
XML file must be certified using a certificate that is either: signature is automatically applied in the :abbr:`XAdES (XML Advanced Electronic Signature)` format
when the invoice's partner has a 6-digit long :guilabel:`Destination Code` (which indicates a
:abbr:`PA (Public Administration)` business).
- a **smart card**; .. note::
- a **USB token**; When such an invoice is transmitted to the Tax Agency, the generated `.xml` file is signed on the
- an :abbr:`HSM (Hardware Security Module)`. Odoo servers, returned to the database, and attached to the invoice automatically.
.. warning::
Odoo **cannot** digitally sign documents for you. When a 6-digit long :guilabel:`Codice
Destinatario` is detected, then the :abbr:`EDI (Electronic Data Interchange)` process stops, and
the invoice is set on the :guilabel:`Requires user signature` state. You can download the
document in XML, sign it with any :guilabel:`Digital Qualified Signature` provider's external
program and send it through the :abbr:`AdE (Agenzia Delle Entrate)` portal.
Acceptance or Refusal Acceptance or Refusal
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
.. warning::
As Odoo does not handle sending signed invoices to :abbr:`PA (Public Administration)` businesses,
these states cannot be directly triggered by Odoo. When you upload the invoice on the :abbr:`AdE
(Agenzia Delle Entrate)` portal, Odoo receives notifications about it, putting the correct
:guilabel:`SdI State` on the invoice.
After receiving the invoice through the :abbr:`SdI (Sistema di Interscambio)`, the :abbr:`PA (Public After receiving the invoice through the :abbr:`SdI (Sistema di Interscambio)`, the :abbr:`PA (Public
Administration)` business has 15 days to accept the invoice. If it does, then the process ends here. Administration)` business has 15 days to accept the invoice. If it does, then the process ends here.
If the :abbr:`PA (Public Administration)` business refuses the invoice, it is still considered valid If the :abbr:`PA (Public Administration)` business refuses the invoice, it is still considered valid

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

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