Ambiente
PHP 8.x
API: https://api.pagar.me/core/v5 (sandbox)
Problema 1: o valor decimal de interest.amount é perdido
Ao usar CreateInterestRequest com type=percentage, o SDK exige int $amount.
Se precisarmos de uma porcentagem decimal (por exemplo, 0,99 para juros mensais), o SDK converte para 0 e a API rejeita com o código 422.
Exemplo:
$interest = new CreateInterestRequest(1, 'percentage', 0.99); // torna-se 0
$boleto->setInterest($interest);
API Response (raw)
422
{
"message": "The request is invalid.",
"errors": {
"order.payments[0].boleto.interest.amount": [
"The amount must be greater than 0 and no more than 100."
]
}
}
### Problema 2: O SDK lança uma JsonMapperException em vez de retornar uma ApiException
Quando a API retorna uma resposta de erro, o SDK lança:
apimatic\jsonmapper\JsonMapperException
Could not find required constructor arguments for PagarmeApiSDKLib\Exceptions\ErrorException: request
Isso impede o acesso ao corpo da resposta e dificulta a depuração.
Comportamento esperado:
Permitir valores decimais para `interest.amount` (percentual) ou documentar e tratar claramente a conversão.
Quando a API retornar um erro, apresenta como uma `ApiException` com a resposta bruta.