On the `currencies.php` model there is a method `toDecimal` which is labeled as the "precision" of a currency. As I understand it the intention is to turn a float similar to "12.622222" into "12.62". The functionality it actually provides is via the AppModel->truncateDecimal method which is a `minimum` precision as per the documentation. This leads to raw pricing data without truncated precision as per the currency's database configuration.
For example USD pricing will result in:
{
"id": "1",
"pricing_id": "1",
"package_id": "1",
"term": "1",
"period": "month",
"price": "10.00",
"setup_fee": "0.00",
"cancel_fee": "0.00",
"currency": "USD"
}
but pricing for GBP is
{
"id": "1",
"pricing_id": "1",
"package_id": "1",
"term": "1",
"period": "month",
"price": "6.9834",
"setup_fee": "0.00",
"cancel_fee": "0.00",
"currency": "GBP"
}
I believe the frontend or view layer of Blesta is obfuscating this minor problem from being apparent. It's a significant issue for identifying the accurate pricing when the Blesta API is being consumed directly.