Pular para o conteúdo

Erros e Rate Limit

Nossa API verifica a validade de todos os campos enviados na requisição antes de avançar para a criação, consulta ou gerenciamento de pedidos, transações e recursos.

Utilizamos os códigos de resposta convencionais do HTTP para indicar o sucesso ou a falha de uma requisição.

Portanto, os códigos 2xx denotam sucesso, enquanto os 4xx indicam erros decorrentes de dados informados incorretamente (por exemplo, campos obrigatórios não preenchidos ou um cartão sem data de validade), e os 5xx indicam falhas na execução da nossa aplicação.

Todas as transações com algum tipo de erro, terão na nossa resposta a indicação: hasError: true.

{
"hasError": true,
...
}

Se houver algum problema durante a requisição, com o cartão, reprovação de crédito, o corpo da resposta terá a indicação de hasError: true, juntamente com o item "response:" ... acompanhando a mensagem com detalhamento do problema.

AtributoTipoDescrição
hasErrorbooleanIdentifica que ocorreu um erro durante o processamento da requisição.
responsemixedPode conter uma string com o descrição do erro ou um objeto.
dataobjectCaso seja criação de uma nova transação, irá retornar informações do pedido.

O item response do corpo do JSON, pode conter duas variações de informação, conforme o HTTP code. Veja o detalhamento abaixo:

  • HTTP 5xx: O response vai ser preenchido com uma string relatando o erro. Por ser um erro interno, será uma mensagem genérica como: “Ops, aconteceu um erro.”
{
"hasError": true,
"response": "Ops, aconteceu um erro."
}
  • HTTP 401: Não houve permissão de acesso através da chave de API informada.
// Tentativa sem bearer token
{
"hasError": true,
"response": "Acesso não autorizado."
}
// Bearer token não encontrado no sistema
{
"hasError": true,
"response": "Token de API não encontrado no sistema."
}
  • HTTP 422: O response terá um objeto, pois deve ser um erro na validação das informações enviadas, como CEP inválido, e-mail inválido, cartão de crédito inválido…
{
"hasError": true,
"response": {
"customer.email": [
"O e-mail preenchido não é válido."
],
"customer.taxvat": [
"O CPF informado é inválido."
]
}
}
  • HTTP 2xx: Uma string descrevendo o motivo do erro da transação.
{
"hasError": true,
"data": {
"order_number": "8391644868821",
"public_key": "88MBZL",
"status": "unpaid"
},
"response": "Transação não autorizada. O limite do cartão foi excedido. Entre em contato com o banco emissor do cartão."
}
CódigoStatusDescrição
200OKSucesso
400Bad RequestRequisição inválida
401UnauthorizedChave de API inválida
404Not FoundO recurso solicitado não existe
422Unprocessable EntityParâmetros inválidos, normalmente usado para avisos de dados incorretos no JSON.
429Too Many RequestsQuantidade de requisições realizadas pelo IP maior que o permitido pela nossa plataforma.
500Internal Server ErrorOcorreu um erro interno

Nossa aplicação tem uma limitação de 90 requisições por minuto. Caso você ultrapasse o limite, receberá como retorno da requisição:

429: Too Many Requests

{
"hasError": true,
"response": "Too many requests."
}