Skip to content

O SDK PHP (6.8.17) não consegue enviar o valor decimal de interest.amount e gera uma exceção JsonMapperException na API. #65

@wicjobs

Description

@wicjobs

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions