Pular para o conteúdo

Códigos de Erro

Todos os erros da API retornam uma resposta JSON padronizada:

{
"codigo": "CODIGO_DO_ERRO",
"descricao": "Descrição legível do que ocorreu."
}
HTTPCódigoDescriçãoCausa
400DADOS_INVALIDOSO campo numeroContratoSap é obrigatórioRequisição enviada sem o campo obrigatório
404CONTRATO_NAO_ENCONTRADONenhum contrato foi encontrado para o número SAP informadoO numeroContratoSap não existe no sistema
502ERRO_SERVICO_EXTERNOOcorreu um erro ao processar sua requisiçãoO Xjur APIM retornou erro ou está indisponível
504TIMEOUT_SERVICO_EXTERNOO serviço não respondeu a tempoA chamada ao Xjur APIM excedeu o timeout configurado (10s)

O campo numeroContratoSap é obrigatório e não foi enviado na requisição.

{
"codigo": "DADOS_INVALIDOS",
"descricao": "O campo numeroContratoSap é obrigatório"
}

Como resolver: Inclua o campo numeroContratoSap no corpo da requisição.


Não foi encontrado nenhum contrato com o número SAP informado na consulta ao Xjur APIM.

{
"codigo": "CONTRATO_NAO_ENCONTRADO",
"descricao": "Nenhum contrato foi encontrado para o número SAP informado."
}

Como resolver: Verifique se o valor de numeroContratoSap está correto e se o contrato existe no sistema Xjur.


O Xjur APIM retornou uma resposta de erro (4xx ou 5xx) durante a consulta ou atualização do contrato.

{
"codigo": "ERRO_SERVICO_EXTERNO",
"descricao": "Ocorreu um erro ao processar sua requisição. Tente novamente em instantes."
}

Possíveis causas:

  • Token JWT expirado ou sem permissão no APIM
  • Contrato em estado que não permite atualização
  • Serviço externo com instabilidade

Como resolver: Verifique o token JWT e tente novamente. Se persistir, entre em contato com o suporte Xjur.


A chamada ao Xjur APIM demorou mais do que o limite configurado (padrão: 10 segundos).

{
"codigo": "TIMEOUT_SERVICO_EXTERNO",
"descricao": "O serviço não respondeu a tempo. Tente novamente em instantes."
}

Como resolver: Tente novamente após alguns instantes. Se o timeout persistir com frequência, contate o suporte para ajustar o SLA configurado.

var response = await client.PutAsJsonAsync("/sap/contratos", payload);
if (!response.IsSuccessStatusCode)
{
var erro = await response.Content.ReadFromJsonAsync<ErrorResponse>();
var acao = erro?.Codigo switch
{
"DADOS_INVALIDOS" => "Verifique os dados enviados.",
"CONTRATO_NAO_ENCONTRADO" => "Número SAP inválido ou contrato inexistente.",
"TIMEOUT_SERVICO_EXTERNO" => "Tente novamente em instantes.",
"ERRO_SERVICO_EXTERNO" => "Contate o suporte Xjur.",
_ => "Erro desconhecido."
};
Console.WriteLine($"[{erro?.Codigo}] {acao}");
}
const res = await fetch('/sap/contratos', { method: 'PUT', ... });
if (!res.ok) {
const erro = await res.json();
const mensagens = {
DADOS_INVALIDOS: 'Verifique os campos obrigatórios.',
CONTRATO_NAO_ENCONTRADO: 'Número SAP não encontrado.',
TIMEOUT_SERVICO_EXTERNO: 'Serviço temporariamente indisponível.',
ERRO_SERVICO_EXTERNO: 'Erro interno — contate o suporte.',
};
console.error(mensagens[erro.codigo] ?? 'Erro desconhecido.');
}