Paypal is an American online payment provider available worldwide, and one of the few that does not charge a subscription fee.

Settings in PayPal

To access your PayPal account settings, log into PayPal, open the Account Settings, and open the Website payments menu.

PayPal account menu


Note that for PayPal to work in Odoo, the options Auto Return, PDT, and IPN must all be enabled.

Auto Return

The Auto Return feature automatically redirects customers to Odoo once the payment is processed.

From Website payments, go to Website preferences ‣ Update ‣ Auto return for website payments ‣ Auto return and select On. Enter the address of your Odoo database (e.g., in the Return URL field, and Save.


Any URL does the job. Odoo only needs the setting to be enabled since it uses another URL.

Payment Data Transfer (PDT)

PDT allows to receive payment confirmations, displays the payment status to the customers, and verifies the authenticity of the payments. From Website preferences ‣ Update, scroll down to Payment data transfer and select On.


PayPal displays your PDT Identity Token as soon as Auto return and Payment Data Transfer (PDT) are enabled. If you need the PDT Identity Token, disable and re-enable Payment data transfer to display the token again.

Instant Payment Notification (IPN)

IPN is similar to PDT, but allows for more notifications, such as chargeback notifications. To enable IPN, go to Website payments ‣ Instant payment notifications ‣ Update and click Choose IPN settings. Enter a Notification URL, select Receive IPN messages (Enabled), and Save.

PayPal Account Optional

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 Account Settings ‣ Website payments ‣ Update and select On for PayPal account optional.

Payment Messages Format

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.


Settings in Odoo


Odoo needs your API Credentials to connect with your PayPal account. To do so, go to Accounting ‣ Configuration ‣ Payment Providers and Activate PayPal. Then, enter your PayPal account credentials in the Credentials tab:

  • Email: the login email address in Paypal;

  • PDT Identity Token: the key used to verify the authenticity of transactions;

  • Use IPN: enable for PayPal to work properly in Odoo.


Save the PDT Identity Token for later use.

To set the PDT Identity Token, switch to developer mode and retrieve the token by following the configuration steps at Payment Data Transfer (PDT).


The PayPal Merchant ID is not required in Odoo.


If you are trying PayPal as a test, using a PayPal Sandbox account, change the State to Test Mode. We recommend doing this on a test Odoo database rather than on your main database.

Extra fees

You can charge extra fees to customers choosing to pay with PayPal in order to cover the transaction fees PayPal charges you.


Test environment


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 PayPal sandbox using the merchant account and follow the same configuration instructions. Enter your sandbox credentials in Odoo (Accounting ‣ Configuration ‣ Payment Providers ‣ PayPal in the Credentials tab, and make sure the status is set on Test Mode. We recommend doing this on a test Odoo database rather than your main database.

Run a test transaction from Odoo using the sandbox personal account.

See also