From 7f6535dcc8806cdb601f38779c56b19b9bba569f Mon Sep 17 00:00:00 2001 From: "Jonathan Castillo (jcs)" Date: Wed, 18 Jan 2023 14:28:36 +0000 Subject: [PATCH] [ADD] accounting: configuration of silverfin integration task-2918697 closes odoo/documentation#3354 Signed-off-by: Castillo Jonathan (jcs) --- .../finance/accounting/reporting.rst | 1 + .../accounting/reporting/silverfin.rst | 41 ++++++++++++++++++ .../reporting/silverfin/api-key.png | Bin 0 -> 13920 bytes 3 files changed, 42 insertions(+) create mode 100644 content/applications/finance/accounting/reporting/silverfin.rst create mode 100644 content/applications/finance/accounting/reporting/silverfin/api-key.png diff --git a/content/applications/finance/accounting/reporting.rst b/content/applications/finance/accounting/reporting.rst index a288ac20a..1a83f5ea2 100644 --- a/content/applications/finance/accounting/reporting.rst +++ b/content/applications/finance/accounting/reporting.rst @@ -9,3 +9,4 @@ Reporting reporting/overview reporting/declarations + reporting/silverfin diff --git a/content/applications/finance/accounting/reporting/silverfin.rst b/content/applications/finance/accounting/reporting/silverfin.rst new file mode 100644 index 000000000..325037da0 --- /dev/null +++ b/content/applications/finance/accounting/reporting/silverfin.rst @@ -0,0 +1,41 @@ +===================== +Silverfin integration +===================== + +`Silverfin `_ is a third-party service provider that offers a cloud +platform for accountants. + +Odoo and Silverfin provide an integration to automate the synchronisation of data. + +Configuration +============= + +To configure this integration, you need to input the following data into your Silverfin account: + +- user's email address +- :ref:`Odoo API key ` +- URL of the Odoo database +- name of your Odoo database + +.. _silverfin/api-key: + +Odoo API key +------------ + +To create a new API key, navigate to `Odoo's website `_ and sign in with your +administrator account. Next, open `your account security settings in developer mode +`_, click on :guilabel:`New API Key`, confirm your +password, give a descriptive name to your new key, and copy the new API key. + +.. important:: + - You can copy the API key only at its creation, and you cannot retrieve it later. + - The API key provides full access to your user account. Store it securely. + - If you need it again, create a new API key. + - You can delete your existing API keys from this same page. + +.. image:: silverfin/api-key.png + :align: center + :alt: creation of an Odoo external API key for an integration with Silverfin + +.. seealso:: + :doc:`/developer/api/external_api` diff --git a/content/applications/finance/accounting/reporting/silverfin/api-key.png b/content/applications/finance/accounting/reporting/silverfin/api-key.png new file mode 100644 index 0000000000000000000000000000000000000000..be2fea141b564a6540729456ed07ce28ac2ff92f GIT binary patch literal 13920 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