odoo/odoo#185664

Created by Bugfix, Levi Siuzdak
Merged at 0b8aecada0c530d8576f3bc569c45cfe031988b3

Statuses:

label
odoo-dev:17.0-opw-4191877-mercado_pago_currency_rounding-sile
head
4f1414006811aab964bf758cf5a20bccbf7a1e11
merged
10 months ago by Sales, Antoine Vandevenne (anv)
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

[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