The problem
Paypal supports a limited number of currencies that causes problems when your customer pays their invoice in a currency that does not supoprted by Paypal.
Here is the list of currencies that supported by Paypal: https://developer.paypal.com/docs/api/reference/currency-codes/
What this module does
When customer carries out payment in a currency that is not supported by PayPal, this module will convert the payment amount into an amount in a currency (which is configurable) that is supported by Paypal before sending the payment data to Paypal.
During payment processing and payment notification, this module ensures that the converted amount is equavalent to the orginal one for full reconciliation.
During reconciliation, the difference due to exchange rate will be encoded into the exchange rate journal
Example
- Assume that
- Company currency is VND (Vietnam Dong – đ), which is not a currency supported by Paypal
- Invoice INV/2019/0001 is amounted 2,000,010đ (in VND)
- The Paypal acquired is configured with USD as the default currency for conversion this case
- Exchange rate between VND/USD: 23,100
- Payment processing
- Convert VND to USD: 2,000,010 / 23,100 = 86.580519481, and will be rounded into 86.58
- Request Paypal to process payment for the $86.58
- After processing, Paypal notifies Odoo with sucess processing of the amount of $86.58.
- Odoo verifies this amount and generate a payment of $86.58 and posted with value of $86.58 * 23,100 = 1,999,998đ
- During reconciliation, the diffence of 12đ (between 1,999,998đ and 2,000,010đ) will be encoded into the exchange rate different. The corresponding invoice will be set to paid.
Editions Supported
- Community Edition
- Enterprise Edition