[IMP] payment providers: PayPal

taskid-3184602.

16.0 -> Change extra fees category to :ref: main page payment provider
16.2 -> Remove Odoo credentials section
        Remove PDT identity token
        Remove merchant ID note
        Remove test mode section on environment test

Took the opportunity to redo the whole page.

closes odoo/documentation#4735

X-original-commit: ede03aa87b
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
This commit is contained in:
Tom Aarab (toaa) 2023-05-10 14:04:30 +00:00
parent 532b6be429
commit a7bb89ce47
3 changed files with 89 additions and 85 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,106 +1,82 @@
======
Paypal
PayPal
======
`Paypal <https://www.paypal.com/>`_ is available and popular worldwide. It doesn't charge any
subscription fee, and creating an account is very easy. That's why we recommend it for starters in
Odoo. It works as a seamless flow where the customer is routed to the Paypal website to register the
payment.
`Paypal <https://www.paypal.com/>`_ is an American online payment provider available worldwide, and
one of the few that does not charge a subscription fee.
Settings in Odoo
================
.. seealso::
- :ref:`payment_providers/add_new`
Credentials tab
---------------
Odoo needs your **API Credentials** to connect with your PayPal account, which comprise:
- **Email**: your login email address in Paypal.
- **PDT Identity Token**: the key used to verify the authenticity of transactions.
You can copy your credentials from your Paypal account and paste them into the related fields under
the **Credentials** tab.
To set the **PDT Identity Token**, retrieve the token by following the configuration
step :ref:`paypal/enable-pdt`.
.. important::
If you are trying Paypal as a test, using a :ref:`Paypal Sandbox account <paypal/testing>`,
change the **State** to *Test Mode*. We recommend doing this on a test Odoo database rather than
on your main database.
Fees tab
--------
You can charge extra fees to your customers for paying with Paypal to cover the transaction fees
Paypal charges you. Once redirected to Paypal, your customer sees an extra amount applied to the
order amount.
To activate this, go to Paypal configuration's :guilabel:`Fees` tab in Odoo and activate
:guilabel:`Add Extra Fees`.
You can refer to `Paypal Fees <https://www.paypal.com/webapps/mpp/paypal-fees>`_ to set up fees.
.. note::
`Traders in the EU <https://europa.eu/youreurope/citizens/consumers/shopping/pricing-payments/
index_en.htm>`_ are not allowed to charge extra fees for paying with credit cards.
Settings in Paypal
Settings in PayPal
==================
First, set up your Paypal account to build a seamless customer experience with Odoo.
To access your PayPal account settings, log into PayPal, open the :guilabel:`Account Settings`, and
open the :guilabel:`Website payments` menu.
Log into your PayPal account and open the account settings. Then, go to :menuselection:`Account menu
--> Account settings --> Website payments`.
.. image:: paypal/paypal-account.png
:align: center
:alt: PayPal account menu
Enable Auto Return
------------------
.. important::
Note that for PayPal to work **in Odoo**, the options :ref:`Auto Return <paypal/auto-return>`,
:ref:`PDT <paypal/pdt>`, and :ref:`IPN <paypal/ipn>` **must** all be enabled.
The *Auto Return* feature automatically redirects your customers to Odoo once the payment is
processed.
.. _paypal/auto-return:
From the *Website payments* settings page, go to :menuselection:`Website preferences --> Update -->
Auto return for website payments` and select **On**. Enter the address of your Odoo database (e.g.,
`https://yourcompany.odoo.com`) in the **Return URL** field.
Auto Return
-----------
The **Auto Return** feature automatically redirects customers to Odoo once the payment is processed.
From :guilabel:`Website payments`, go to :menuselection:`Website preferences --> Update --> Auto
return for website payments --> Auto return` and select :guilabel:`On`. Enter the address of your
Odoo database (e.g., `https://yourcompany.odoo.com`) in the :guilabel:`Return URL` field, and
:guilabel:`Save`.
.. note::
Any URL will do the job. Odoo only needs the setting to be enabled since it uses another URL.
Any URL does the job. Odoo only needs the setting to be enabled since it uses another URL.
.. _paypal/enable-pdt:
.. _paypal/pdt:
Enable Payment Data Transfer (PDT)
Payment Data Transfer (PDT)
---------------------------
:abbr:`PDT (Payment Data Transfer)` allows to receive payment confirmations, displays the payment
status to the customers, and verifies the authenticity of the payments. From :menuselection:`Website
preferences --> Update`, scroll down to :guilabel:`Payment data transfer` and select :guilabel:`On`.
.. tip::
PayPal displays your **PDT Identity Token** as soon as :ref:`Auto return <paypal/auto-return>`
and :ref:`Payment Data Transfer (PDT) <paypal/pdt>` are enabled. If you need the **PDT Identity
Token**, disable and re-enable :guilabel:`Payment data transfer` to display the token again.
.. _paypal/ipn:
Instant Payment Notification (IPN)
----------------------------------
Enable the *Payment Data Transfer* feature to receive payment confirmations immediately. This
feature also displays the payment status to the customers and verifies the authenticity of the
payments.
:abbr:`IPN (Instant Payment Notifications)` is similar to **PDT**, but allows for more
notifications, such as chargeback notifications. To enable **IPN**, go to :menuselection:`Website
payments --> Instant payment notifications --> Update` and click :guilabel:`Choose IPN settings`.
Enter a :guilabel:`Notification URL`, select :guilabel:`Receive IPN messages (Enabled)`, and
:guilabel:`Save`.
From the *Website payments* settings page, go to :menuselection:`Website preferences --> Update -->
Payment data transfer` and select **On**. PayPal displays your **PDT Identity Token** as soon as
the change is saved.
Paypal Account Optional
PayPal Account Optional
-----------------------
We advise you to not prompt customers to log in with a Paypal account when they get to pay. Let them
pay with debit/credit cards as well, or you might lose some deals. Make sure this setting is turned
on.
We advise not to prompt customers to log in with a PayPal account upon payment. It is better and
more accessible for customers to pay with a debit/credit card. To disable that prompt, go to
:menuselection:`Account Settings --> Website payments --> Update` and select :guilabel:`On` for
:guilabel:`PayPal account optional`.
Payment Messages Format
-----------------------
Suppose you use accented characters (or anything else than primary Latin characters) for your
customer names or addresses. In that case, you **must** configure the encoding format of the payment
request sent by Odoo to Paypal. Otherwise, some transactions fail without notice.
If you use accented characters (or anything other than primary Latin characters) for customer names
or addresses, then you **must** configure the encoding format of the payment request sent by Odoo to
PayPal. If you do not, some transactions fail without notice.
To do so, go to `your production account <https://www.paypal.com/cgi-bin/customerprofileweb
?cmd=_profile-language-encoding>`_. Then, click *More Options* and set the two default encoding
formats as **UTF-8**.
Your Paypal account is ready!
?cmd=_profile-language-encoding>`_. Then, click :guilabel:`More Options` and set the two default
encoding formats as :guilabel:`UTF-8`.
.. tip::
- For Encrypted Website Payments & EWP_SETTINGS error, please check the `Paypal documentation
@ -110,6 +86,33 @@ Your Paypal account is ready!
`link <https://sandbox.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-language-encoding>`_
to configure the encoding format in a test environment.
Settings in Odoo
================
.. seealso::
:ref:`payment_providers/add_new`
Credentials
-----------
Odoo needs your **API Credentials** to connect with your PayPal account. To do so, go to
:menuselection:`Accounting --> Configuration --> Payment Providers` and :guilabel:`Activate` PayPal.
Then, enter your PayPal account credentials in the :guilabel:`Credentials` tab:
- :guilabel:`Email`: the login email address in Paypal;
- :guilabel:`PDT Identity Token`: the key used to verify the authenticity of transactions.
Extra fees
----------
You can charge :ref:`extra fees <payment_providers/features/extra_fees>` to customers choosing to
pay with PayPal in order to cover the transaction fees PayPal charges you.
.. note::
- You can refer to `Paypal Fees <https://www.paypal.com/webapps/mpp/paypal-fees>`_ to set up
fees.
- `Traders in the EU <https://europa.eu/youreurope/citizens/consumers/shopping/pricing-payments/index_en.htm>`_ are not allowed to charge extra fees for paying with credit cards.
.. _paypal/testing:
Test environment
@ -118,19 +121,20 @@ Test environment
Configuration
-------------
Thanks to Paypal Sandbox accounts, you can test the entire payment flow in Odoo.
Thanks to PayPal sandbox accounts, you can test the entire payment flow in Odoo.
Log into the `Paypal Developer Site <https://developer.paypal.com/>`_ using your Paypal
credentials, which creates two sandbox accounts:
Log into the `Paypal Developer Site <https://developer.paypal.com/>`_ using your PayPal credentials,
which creates two sandbox accounts:
- A business account (to use as merchants, e.g.,
`pp.merch01-facilitator@example.com <mailto:pp.merch01-facilitator@example.com>`_).
`pp.merch01-facilitator@example.com <mailto:pp.merch01-facilitator@example.com>`_);
- A default personal account (to use as shoppers, e.g.,
`pp.merch01-buyer@example.com <mailto:pp.merch01-buyer@example.com>`_).
Log into Paypal Sandbox using the merchant account and follow the same configuration instructions.
Enter your sandbox credentials in Odoo and ensure Paypal is set on *Test Mode*. We recommend doing
this on a test Odoo database rather than your main database.
Log into PayPal sandbox using the merchant account and follow the same configuration instructions.
Enter your sandbox credentials in Odoo (:menuselection:`Accounting --> Configuration --> Payment
Providers --> PayPal` in the :guilabel:`Credentials` tab, and make sure the status is set on
:guilabel:`Test Mode`.
Run a test transaction from Odoo using the sandbox personal account.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB