Docs

Códigos de erro

Integração Corporativa

Códigos de erro

Toda resposta de erro inclui error_code estável (machine-readable) e message em português pronta para exibir ao usuário final. Use error_code na sua lógica, nunca o message.

Formato padrão

JSON
{
  "statusCode": 403,
  "error_code": "CONTRACT_INACTIVE",
  "message": "Seu plano está temporariamente indisponível. Entre em contato com sua seguradora.",
  "request_id": "req_4f2a..."
}

Tabela completa

error_codeHTTPCategoriaSignificadoAção sugerida
INVALID_API_KEY401AutenticaçãoAPI Key ausente, inválida ou revogada.Verifique o header X-API-Key. Gere uma nova chave se necessário.
INVALID_TOKEN401AutenticaçãoJWT inválido, expirado ou malformado.Faça login novamente para obter um novo access_token.
FORBIDDEN403AutenticaçãoToken válido mas sem permissão para o recurso.Confirme que o usuário possui corporateContext ou que a API Key tem o escopo necessário.
CONTRACT_INACTIVE403ElegibilidadeContrato corporativo inativo, suspenso ou expirado.Entre em contato com o gerente de conta NetGuincho.
USER_NOT_FOUND404ElegibilidadeCPF não vinculado ao contrato.Cadastre o segurado via POST /insurer-portal/customers.
USER_INACTIVE403ElegibilidadeSegurado existe mas está desativado.Reative via PATCH /insurer-portal/customers/:id com status=active.
LIMIT_EXCEEDED429ElegibilidadeLimite mensal de acionamentos atingido para este segurado.Aumente monthly_limit ou aguarde o próximo mês.
OPEN_REQUEST_EXISTS409SolicitaçãoJá existe um chamado em andamento para o segurado.Conclua ou cancele o chamado anterior antes de criar outro. ID retornado em open_request_id.
VALIDATION_ERROR422SolicitaçãoPayload inválido (campo faltando, tipo incorreto, valor fora do range).Veja a mensagem detalhada em "message" para o campo específico.
NO_PROVIDER_AVAILABLE503SolicitaçãoNenhum prestador disponível na região no momento.Aguarde alguns minutos e tente novamente. NetGuincho expande raio automaticamente após 5 min.
RATE_LIMITED429Rate limitExcedeu o limite de requisições por minuto.Respeite o header Retry-After. Considere implementar backoff exponencial.
INTERNAL_ERROR500ServidorErro interno inesperado.Reportar ao suporte com o request_id retornado para investigação.
SERVICE_UNAVAILABLE503ServidorAPI temporariamente indisponível (manutenção, degradação).Tente novamente após alguns segundos. Veja status.netguincho.com.br para incidentes ativos.

Tratamento recomendado

TypeScript
async function callEligibility(cpf: string) {
  try {
    const { data } = await api.post('/insurer-portal/eligibility/check', { cpf });
    return data;
  } catch (err) {
    if (!axios.isAxiosError(err) || !err.response) throw err;
    const { error_code, message } = err.response.data;

    switch (error_code) {
      case 'LIMIT_EXCEEDED':
        return { blocked: true, reason: 'limite mensal atingido', message };
      case 'USER_NOT_FOUND':
        return { blocked: true, reason: 'segurado não cadastrado', message };
      case 'CONTRACT_INACTIVE':
        // Alerta crítico interno
        notifyOps('Contrato NetGuincho inativo!');
        return { blocked: true, reason: 'contrato', message };
      case 'RATE_LIMITED':
        await sleep(parseInt(err.response.headers['retry-after'] ?? '60') * 1000);
        return callEligibility(cpf);
      default:
        throw err;
    }
  }
}