odoo/odoo#191214

Created by fw-bot
Merged at d092b2f73ea8f4caae3eab1d4034bea096e85137

Statuses:

label
odoo-dev:master-17.0-opw-4191877-mercado_pago_currency_rounding-sile-g1CJ-fw
head
6fe0d6832f8499f2288f9aa1c8d2f4a44a1c5c03
merged
10 months ago by Bugfix, Levi Siuzdak
odoo/odoo
17.0 #185664
saas-17.2 #191084
saas-17.4 #191175
18.0 #191191
saas-18.2
saas-18.3
saas-18.4
19.0
master #191214

[FW][FIX] payment_mercado_pago: round payment tx amounts for COP, HLN & NIO

Versions

  • 17.0+

Steps

  1. Use COP, HLN or NIO as currency;
  2. create a SO or invoice with a non-integer amount total;
  3. create a payment link;
  4. pay using Mercado Pago.

Issue

> Error processing payment
> Prices in COP currency must be expressed with integer values

Cause

Our currency defaults follow the ISO 4217 standard for minor units. For three currencies (COP, HLN & NIO), Mercado Pago only accepts integer amounts instead of the standard 2 decimals, resulting in a failed payment transaction.

Solution

In the payload sent to Mercado Pago, round the amount down if it uses one of the affected currencies.

opw-4191877

Forward-Port-Of: #191084
Forward-Port-Of: #185664