Erros e boas práticas

O formato de toda resposta, o que cada status significa e quando tentar de novo.

https://app.reton.com.br/api/v1Atualizado em 30 de setembro de 2026
Navegar na API

Toda resposta da API — de sucesso ou de erro — vem no mesmo "envelope". Olhe primeiro o success: se for true, o resultado está em data; se for false, o motivo está em error.

Os comandos desta página saem prontos para copiar. A chave fica só nesta aba — não é salva nem enviada.

O formato de toda resposta

CampoO que é
successtrue deu certo; false deu erro.
dataO resultado (só quando success é true).
error.codeCódigo do erro, para o seu programa decidir o que fazer (ex.: CONFLICT). Não muda.
error.messageExplicação em português, para mostrar ou registrar no log. O texto pode mudar — não compare com ele.
error.detailsQuando existe, uma lista com o detalhe (ex.: qual campo está errado).
meta.requestIdIdentificador da chamada. Mande para o suporte quando algo der errado — com ele achamos a chamada.
Sucesso
{  "success": true,  "data": {    "id": "con_LC4dQtpwbrLudiRS",    "…": "…"  },  "meta": {    "requestId": "req_V1StGXR8Z5jdHi6B"  }}
Erro de validação · 400
{  "success": false,  "error": {    "code": "VALIDATION_ERROR",    "message": "Erro de validação nos dados enviados.",    "details": [      {        "field": "valor",        "message": "valor é obrigatório e deve ser numérico",        "code": "invalid_type"      }    ]  },  "meta": {    "requestId": "req_V1StGXR8Z5jdHi6B"  }}

O que cada status significa

StatusSignificaTentar de novo?
200 / 201Deu certo (201 = algo foi criado).—
400O pedido está errado: campo faltando, formato inválido, regra de negócio (ex.: saldo insuficiente). Leia error.message.Não. Corrija antes.
401Chave ausente, errada ou revogada.Não. Veja Autenticação.
403A conta não está no plano Pro.Não.
404O que você pediu não existe na sua conta.Não.
409Conflito com o que já existe (cliente repetido, venda já estornada…). error.code diz qual.Não. Trate o caso.
422O pedido está certo, mas não pode ser feito agora (ex.: desativar a única loja).Não.
500Falha do nosso lado.Sim, depois de alguns segundos.
Timeout / sem respostaA rede caiu no meio do caminho — a chamada pode ou não ter sido gravada.Sim, com os mesmos dados (veja abaixo).

Códigos de erro

error.codeStatusQuando
VALIDATION_ERROR400 / 422Dado inválido ou regra de negócio. Em erro de campo, details traz field, message e code.
UNAUTHORIZED401Problema com a chave.
FORBIDDEN403Plano sem API.
NOT_FOUND404Não encontrado.
CONFLICT409Já existe (ex.: cliente com o mesmo celular — o id dele vem em details).
INTERACAO_DUPLICADA409Venda idêntica no mesmo dia, sem codigoItem.
INTERACAO_NAO_ENCONTRADA404Estorno de uma venda que não existe.
INTERACAO_JA_ESTORNADA409Estorno de uma venda já estornada.
ESTORNO_PONTOS_UTILIZADOS409O cliente já usou o que a venda gerou.
SEM_RECOMPENSA409Estorno só da pontuação, numa venda que não pontuou.
ESTORNO_RECOMPENSA_BLOQUEADO409Estorno só da pontuação que não pode ser feito (já usada ou já estornada).
INTERNAL_ERROR500Falha nossa. Tente de novo.

Reenviar sem duplicar

Rede cai. Quando a chamada de venda não tem resposta, você não sabe se ela entrou. A regra é simples: mande de novo, com os mesmos dados e o mesmo codigoItem. Se já tinha entrado, o Reton devolve a original (200, "duplicada": true) e não soma nada duas vezes — nem pontos, nem o uso de cashback.

  • Espere um pouco entre as tentativas (2s, depois 4s, depois 8s…) e desista depois de umas 5.
  • Guarde num log o requestId das chamadas que falharam.
  • No cadastro de cliente, o reenvio também é seguro: a segunda chamada volta 409 com o id de quem já foi criado.

Limites de uso

Hoje não há um limite fixo de chamadas por segundo — mas mande as vendas conforme acontecem, uma por vez, em vez de milhares em rajada. Para trazer o histórico inteiro de uma vez, fale com o suporte: a importação por planilha ou a integração assistida é o caminho certo.

As vendas contam na franquia de transações do seu plano, do mesmo jeito que as registradas no painel.

Isso foi útil?

Ainda precisa de ajuda?

Não achou o que procurava? A gente responde de gente pra gente.