Logo

Referência

Códigos de Erro HTTP

A API utiliza códigos de status HTTP padrão para indicar o resultado de cada requisição. Cada resposta de erro inclui uma mensagem descritiva para facilitar o diagnóstico.

Códigos HTTP Utilizados

200

OK

Requisição processada com sucesso. Os dados estão no campo data.

400

Bad Request

A requisição é inválida ou malformada.

  • Parâmetros obrigatórios ausentes
  • Valores ou formatos de campos inválidos
  • JSON malformado no corpo da requisição
  • Regras de negócio violadas (ex: valor abaixo do mínimo)
401

Unauthorized

Falha na autenticação.

  • Header api-secret ausente
  • API Secret inválido ou revogado
  • API Secret pertence a ambiente diferente
403

Forbidden

Acesso negado. O recurso existe mas você não tem permissão.

  • Recurso pertence a outro usuário
  • Funcionalidade não habilitada para sua conta
  • Conta bloqueada ou com restrições
404

Not Found

O recurso solicitado não foi encontrado.

  • URL do endpoint inválida
  • ID do recurso não existe
  • Recurso foi removido
429

Too Many Requests

Limite de requisições atingido. Aguarde antes de tentar novamente.

  • Rate limit por minuto excedido
  • Operação paralela em andamento (ex: transferência sendo processada)
500

Internal Server Error

Erro inesperado em nossos servidores. Tente novamente ou contate o suporte.

Tratamento de Erros

Exemplo em JavaScriptjavascript
async function criarTransacao(payload) {
  try {
    const response = await fetch('/v1/transactions', {
      method: 'POST',
      headers: {
        'api-secret': process.env.API_SECRET,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(payload)
    });

    const data = await response.json();

    if (!response.ok || !data.success) {
      const errorMessage = data.error?.message || 'Erro desconhecido';
      
      switch (response.status) {
        case 400:
          throw new Error(`Dados inválidos: ${errorMessage}`);
        case 401:
          throw new Error('API Secret inválida ou ausente');
        case 429:
          throw new Error('Rate limit atingido. Aguarde e tente novamente.');
        default:
          throw new Error(`Erro ${response.status}: ${errorMessage}`);
      }
    }

    return data.data;
  } catch (error) {
    console.error('Erro na requisição:', error.message);
    throw error;
  }
}

Dica de debugging

Todos os erros incluem o campo error.message com uma descrição em português do problema. Use estas mensagens para identificar rapidamente a causa do erro durante a integração.