From c04399c0b3883b11b1ee3b75dc821f8700c07dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CAudrey?= <“auva@odoo.com”> Date: Thu, 15 Jun 2023 12:52:19 +0000 Subject: [PATCH] [IMP] Payment providers - Stripe: Add missing webhook events task-3373642 closes odoo/documentation#4771 X-original-commit: 394246d043e3eb0e6ff4290bc682a49c76d23360 Signed-off-by: Antoine Vandevenne (anv) Signed-off-by: auva-odoo --- .../finance/payment_providers/stripe.rst | 67 +++++++++--------- .../stripe_enable_local_payment_method.png | Bin 14807 -> 18245 bytes 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/content/applications/finance/payment_providers/stripe.rst b/content/applications/finance/payment_providers/stripe.rst index f28dc1a61..05f9685fd 100644 --- a/content/applications/finance/payment_providers/stripe.rst +++ b/content/applications/finance/payment_providers/stripe.rst @@ -18,8 +18,8 @@ The method to acquire your credentials depends on your hosting type: .. tabs:: .. group-tab:: Odoo Online - #. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set - payments* button on the onboarding banner. + #. Go to the **eCommerce** or the **Sales** app and click the :guilabel:`Activate Stripe` or + the :guilabel:`Set payments` button on the onboarding banner. #. Fill in the requested information and submit the form. #. Confirm your email address when Stripe sends you a confirmation email. #. At the end of the process, you are redirected to Odoo. If you submitted all the requested @@ -34,24 +34,25 @@ The method to acquire your credentials depends on your hosting type: .. group-tab:: Odoo.sh or On-premise - #. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set - payments* button on the onboarding banner. + #. Go to the **eCommerce** or the **Sales** app and click the :guilabel:`Activate Stripe` or + the :guilabel:`Set payments` button on the onboarding banner. #. Fill in the requested information and submit the form. #. Confirm your email address when Stripe sends you a confirmation email. - #. At the end of the process, you are redirected to the payment provider **Stripe** on Odoo. + #. At the end of the process, you are redirected to the payment provider **Stripe** in Odoo. #. :ref:`Fill in your credentials `. #. :ref:`Generate a webhook `. #. Enable the payment provider. #. You are all set and can continue to :ref:`stripe/local-payment-methods`. .. tip:: - To connect your Stripe account after the onboarding is already completed, go to - :menuselection:`Accounting --> Configuration --> Payment Providers --> Stripe` and click on the - *Connect Stripe* button. + To connect your Stripe account after the onboarding has already been completed, go to + :menuselection:`Accounting --> Configuration --> Payment Providers --> Stripe` and click the + :guilabel:`Connect Stripe` button. .. important:: - If you are testing Stripe (in **test mode**), change the **State** to *Test Mode*. We recommend - doing this on a test Odoo database rather than on your main database. + If you are testing Stripe (in **test mode**), change the :guilabel:`State` to + :guilabel:`Test Mode`. We recommend doing this on a test Odoo database rather than on your main + database. .. _stripe/api-keys: @@ -82,38 +83,40 @@ create a webhook either automatically or manually. .. tab:: Manage the webhook automatically Make sure your :ref:`Publishable and Secret keys ` are filled in, then click - on the :guilabel:`Generate your Webhook` button. + the :guilabel:`Generate your Webhook` button. .. tip:: - To update the webhook, click once again on the :guilabel:`Generate your Webhook` button. + To update the webhook, click once again the :guilabel:`Generate your Webhook` button. .. tab:: Manage the webhook manually Visit the `webhooks page on Stripe `_, or log into your - Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on - :guilabel:`Add endpoint` in your :guilabel:`Hosted endpoints` and insert the following data - into the pop-up form: + Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click + :guilabel:`Add endpoint` and insert the following data in the + :guilabel:`Listen to Stripe events` form: - - | In the :guilabel:`Endpoint URL`, enter your Odoo database's URL followed by - | `/payment/stripe/webhook`. + - | In the :guilabel:`Endpoint URL` field, enter your Odoo database's URL followed by + `/payment/stripe/webhook`. | For example: `https://yourcompany.odoo.com/payment/stripe/webhook` - - At the bottom of the form, you can select events to listen to. Click on :guilabel:`Select - events`. Then: + - At the bottom of the form, click :guilabel:`+ Select events`, then: + - In the :guilabel:`Charge` section, select :guilabel:`charge.refunded` and + :guilabel:`charge.refund.updated`. - In the :guilabel:`Payment Intent` section, select - :guilabel:`payment_intent.amount_capturable_updated` and + :guilabel:`payment_intent.amount_capturable_updated`, + :guilabel:`payment_intent.payment_failed` and :guilabel:`payment_intent.succeeded`. - In the :guilabel:`Setup Intent` section, select :guilabel:`setup_intent.succeeded`. .. note:: It is possible to select other events, but they are currently not processed by Odoo. - When you click on :guilabel:`Add endpoint`, your Webhook is configured. Click on - :guilabel:`reveal` to display your signing secret. + Once you have selected the events, click :guilabel:`Add events`, then :guilabel:`Add endpoint` + to generate your webhook. Click :guilabel:`Reveal` to display your signing secret. .. tip:: - To update an existing webhook, click on it. Then, click on the three dots at the right side - of the **Webhook URL** and on :guilabel:`Update details`. + To update an existing webhook, click on it. Then, click the three dots at the right side + of the **Webhook URL** and select :guilabel:`Update details`. Configuration tab ----------------- @@ -127,7 +130,7 @@ Stripe allows you to **capture an amount manually** instead of having an immedia feature earmarks an amount on the customer's account for a determined period of time that depends on the payment method used. -To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as explained in the +To set it up, enable the :guilabel:`Capture Amount Manually` option in Odoo, as explained in the :ref:`payment providers documentation `. .. warning:: @@ -158,9 +161,9 @@ Odoo supports the following local payment methods: - Przelewy24 (P24) To enable some of these local payment methods with Stripe, go to -:menuselection:`Payment Providers --> Stripe --> Configuration` and add the desired -payment methods in the **Supported Payment Methods** field. If the desired payment method is already -listed, you don't have anything to do. +:menuselection:`Payment Providers --> Stripe --> Configuration` and add the desired payment methods +in the :guilabel:`Supported Payment Methods` field. If the desired payment method is already listed, +you don't have anything to do. .. image:: stripe/stripe_enable_local_payment_method.png :align: center @@ -169,7 +172,7 @@ listed, you don't have anything to do. .. note:: - If a payment method record does not exist in the database and its related local payment method is listed above, it is considered enabled with Stripe. - - If a local payment method is not listed above, it is not supported and cannot be enabled. + - If a local payment method is not listed, it is not supported and cannot be enabled. .. _stripe/express-checkout: @@ -187,7 +190,7 @@ be done either automatically from Odoo, or manually from Stripe. .. tab:: Register automatically from Odoo #. Navigate to your payment provider and make sure that it is :guilabel:`enabled`. - #. Go to the :guilabel:`Configuration` tab and click on the :guilabel:`Enable Apple Pay` + #. Go to the :guilabel:`Configuration` tab and click the :guilabel:`Enable Apple Pay` button. A notification shows that the web domain was successfully registered with Apple. .. tab:: Register manually from Stripe @@ -195,9 +198,9 @@ be done either automatically from Odoo, or manually from Stripe. Visit the `Apple pay web domains page on Stripe `_, or log into your Stripe dashboard and go to :menuselection:`Settings --> Payments methods --> Apple Pay --> Configure - --> Web domains`. Then, click on :guilabel:`Add new domain` and insert the web domain of your + --> Web domains`. Then, click :guilabel:`Add new domain` and insert the web domain of your Odoo database into the pop-up form. Odoo already hosts the verification file of Stripe. Click - on :guilabel:`Add` to register your web domain with Apple. + :guilabel:`Add` to register your web domain with Apple. .. important:: This operation must be repeated whenever your web domain changes. diff --git a/content/applications/finance/payment_providers/stripe/stripe_enable_local_payment_method.png b/content/applications/finance/payment_providers/stripe/stripe_enable_local_payment_method.png index 24959b2c0f9b3cb64439b50d80e993b51de05c4a..cba21b87c39e6afaf7104d8216d303d80ec14ece 100644 GIT binary patch literal 18245 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 N002ovPDHLkV1iv7rt1Iz literal 14807 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