diff --git a/content/applications/finance/payment_acquirers/paypal/paypal-account.png b/content/applications/finance/payment_acquirers/paypal/paypal-account.png new file mode 100644 index 000000000..836dd47b5 Binary files /dev/null and b/content/applications/finance/payment_acquirers/paypal/paypal-account.png differ diff --git a/content/applications/finance/payment_providers/paypal.rst b/content/applications/finance/payment_providers/paypal.rst index 521f804b1..c1858d8f1 100644 --- a/content/applications/finance/payment_providers/paypal.rst +++ b/content/applications/finance/payment_providers/paypal.rst @@ -1,106 +1,82 @@ ====== -Paypal +PayPal ====== -`Paypal `_ 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 `_ 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 `, - 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 `_ to set up fees. - -.. note:: - `Traders in the EU `_ 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 `, + :ref:`PDT `, and :ref:`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 ` + and :ref:`Payment Data Transfer (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 `_. 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 `_ 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 ` to customers choosing to +pay with PayPal in order to cover the transaction fees PayPal charges you. + +.. note:: + - You can refer to `Paypal Fees `_ to set up + fees. + - `Traders in the EU `_ 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 `_ using your Paypal -credentials, which creates two sandbox accounts: +Log into the `Paypal Developer Site `_ using your PayPal credentials, +which creates two sandbox accounts: - A business account (to use as merchants, e.g., - `pp.merch01-facilitator@example.com `_). + `pp.merch01-facilitator@example.com `_); - A default personal account (to use as shoppers, e.g., `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. diff --git a/content/applications/finance/payment_providers/paypal/paypal-account.png b/content/applications/finance/payment_providers/paypal/paypal-account.png new file mode 100644 index 000000000..836dd47b5 Binary files /dev/null and b/content/applications/finance/payment_providers/paypal/paypal-account.png differ