Compartilhar via


Códigos de resposta da API de referências

Aplica-se a: Partner Center | Referências do Partner Center

Funções apropriadas: Administrador de indicações | Usuário de indicações

As APIs REST de Referências do Partner Center retornam um objeto JSON que contém um código de status. Este código indica se sua solicitação foi bem-sucedida ou por que ela falhou.

Respostas de sucesso

Um código de status 2xx indica que a solicitação do cliente foi recebida, compreendida e aceita com sucesso. Os seguintes códigos de status 2xx indicam uma resposta bem-sucedida:

  • 200: Sucesso confirmado
  • 201: Recurso criado
  • 202: Aceito
  • 204: Sem conteúdo a ser devolvido

Respostas de erro

Qualquer resposta com um código de status 4xx ou 5xx inclui uma mensagem de erro com detalhes sobre as condições de erro desse código.

A tabela a seguir lista e descreve os códigos de status HTTP que podem ser retornados para cenários de erro.

Código de status Mensagem de status Descrição
400 Solicitação incorreta Não é possível processar a solicitação porque ela está malformada ou incorreta.
401 Não Autorizado As informações de autenticação necessárias estão ausentes ou não são válidas para o recurso.
403 Proibido Acesso negado ao recurso solicitado. O usuário pode não ter permissão suficiente.
404 Não encontrado O recurso solicitado não existe.
405 Método Não Permitido O método HTTP na solicitação não é permitido no recurso.
406 Não Aceitável Este serviço não é compatível com o formato solicitado no cabeçalho Accept.
409 Conflito O estado atual entra em conflito com o que a solicitação espera. Por exemplo, a pasta pai especificada pode não existir.
410 Não existe mais O recurso solicitado não está mais disponível no servidor.
411 Comprimento Obrigatório Um cabeçalho Content-Length é necessário na solicitação.
412 Falha na Pré-condição Uma pré-condição fornecida na solicitação (como um cabeçalho if-match) não corresponde ao estado atual do recurso.
413 A entidade da solicitação é muito grande O tamanho da solicitação excede o limite máximo.
415 Tipo de Mídia Sem Suporte O tipo de conteúdo da solicitação é um formato ao qual o serviço não dá suporte.
416 Intervalo Solicitado Não Satisfatório O intervalo de bytes especificado é inválido ou não está disponível.
422 Entidade Não Processável Não é possível processar a solicitação porque ela está semanticamente incorreta.
423 Bloqueado O recurso que está sendo acessado está bloqueado.
429 Número Excessivo de Solicitações O aplicativo cliente é limitado e não deve tentar repetir a solicitação por algum tempo.
500 Erro interno do servidor Ocorreu um erro de servidor interno ao processar a solicitação.
501 Não Implementado O recurso solicitado não está implementado.
503 Serviço indisponível O serviço está temporariamente indisponível para manutenção ou está sobrecarregado. Será possível repetir a solicitação após um atraso, cuja duração pode ser especificada no cabeçalho Retry-After.
504 Tempo Limite do Gateway O servidor, enquanto atuava como um proxy, não recebeu uma resposta oportuna do servidor upstream que precisava acessar na tentativa de concluir a solicitação. Pode ocorrer junto com 503.
507 Armazenamento Insuficiente Atingiu a cota máxima de armazenamento.
509 Limite de Largura de Banda Excedido O aplicativo cliente foi limitado por exceder o limite máximo de largura de banda. Seu aplicativo pode repetir a solicitação novamente após algum tempo.

Tipo de recurso de erro

A resposta de erro é um único objeto JSON que contém uma única propriedade denominada erro. Esse objeto inclui todos os detalhes do erro. É possível usar as informações retornadas aqui em vez de ou além do código de status HTTP.

A tabela e os exemplos de código a seguir descrevem o esquema de uma resposta de erro.

Nome Tipo Descrição
code string Sempre retornado. Indica o tipo de erro que ocorreu. Não nulo.
message string Sempre retornado. Descreve o erro em detalhes e fornece mais informações de depuração. Não nulo, não vazio. O comprimento máximo é de 1.024 caracteres.
innerError objeto Opcional. Ocorreu outro objeto de erro com informações mais específicas sobre o erro.
innerError.code Cadeia de caracteres numérica Sempre retornado, se innerError não for nulo. Fornece informações de código de erro mais específicas sob o valor do código de erro superior.
innerError.message string Sempre retornado, se innerError não for nulo. Fornece uma mensagem de erro mais específica na cadeia de caracteres de mensagem de erro superior.
innerError.details matriz objeto Opcional. Contém mais detalhes sobre o erro. Útil principalmente em erros de validação de entrada.
destino string Opcional. O alvo no qual o erro se originou.

Exemplo de resposta de erro

{
  "error": {
    "code": "unauthenticated",
    "message": "The caller is not authenticated.",
    "innerError": {
      "code": "99902",
      "message": "Request not authenticated",
      "details": null
    }
  }
}

Outro exemplo com o objeto innerError.details preenchido:

{
  "error": {
    "code": "invalidRequest",
    "message": "The request is malformed or incorrect.",
    "innerError": {
      "code": "99901",
      "message": "InvalidInput",
      "details": [
        {
          "InvalidReferralForCoSellConversion": [
            "If PartnerLed referral has no solution it cannot be converted to co-sell referral"
          ]
        }
      ]
    }
  }
}

Propriedade do código

A propriedade code contém um dos seguintes valores possíveis. Seus aplicativos devem estar preparados para lidar com qualquer um desses erros.

Código Código de status HTTP Descrição
invalidRequest 400 A solicitação está malformada ou incorreta.
não autenticado 401 O chamador não está autenticado.
accessDenied 403 O chamador não tem permissão para executar a ação.
itemNotFound 404 O recurso não pôde ser encontrado.
resourceModified 409 O recurso que está sendo atualizado foi alterado desde a última vez que o chamador o leu, geralmente uma incompatibilidade de eTag.
preconditionFailed 412 Uma pré-condição fornecida na solicitação (como um cabeçalho if-match) não corresponde ao estado atual do recurso.
generalException 500 Ocorreu um erro não especificado.
serviceNotAvailable 503 O serviço não está disponível. Repita a solicitação após um atraso. Pode haver um cabeçalho Retry-After.

Propriedade de mensagem

A propriedade message na raiz contém uma mensagem de erro destinada ao desenvolvedor para leitura. As mensagens de erro não são localizadas e não devem ser exibidas diretamente para o usuário. Seu código não deve verificar message os valores apenas porque eles podem ser alterados a qualquer momento e geralmente contêm informações dinâmicas específicas para a solicitação com falha. Você deve codificar os códigos de erro retornados nas code propriedades e, em seguida, combiná-los com o texto da mensagem.

Objeto InnerError

O innererror objeto pode conter recursivamente mais innererror objetos com códigos de erro mais específicos. O aplicativo cliente, ao lidar com um erro, deve percorrer todos os códigos de erro disponíveis e usar o mais detalhado que eles entendem.

Há mais alguns erros que seu aplicativo pode encontrar nos objetos aninhados innererror . Os aplicativos não são obrigados a lidar com esses erros, mas podem fazer isso se quiserem. O serviço pode adicionar novos códigos de erro ou parar de retornar os antigos a qualquer momento, por isso é importante que todos os aplicativos sejam capazes de lidar com os [códigos de erro básicos].

Códigos do Erro

Veja a seguir os códigos de erro retornados pelas APIs:

Status HTTP Código de erro HTTP Código do erro Descrição
BadRequest 400 99901 Entrada inválida
Não Autorizado 401 99902 Unauthorized access
BadRequest 400 99903 Entrada ausente
NotFound 404 99,904 Recurso não encontrado
InternalServerError 500 99905 Erro não especificado
TooManyRequests 429 99906 Número excessivo de solicitações
InternalServerError 500 99907 Erro interno transitório
BadRequest 400 99908 A propriedade não pode ser atualizada
BadRequest 400 99909 A propriedade não é anulável
PreconditionFailed 412 99910 O valor da etiqueta não corresponde
BadRequest 400 99911 Status de referência inválido para convidar
BadRequest 400 99912 Solução com o tipo 'nome' é necessária
Proibido 403 99913 Organização não incluída na lista de permissões para criar recursos
Proibido 403 99914 Organização não incluída na lista de permissões para participar de compromissos de venda conjunta
InternalServerError 500 99915 Falha na execução de solicitações internas
Conflito 409 99917 Recurso já modificado por meio de outra solicitação
PreConditionFailed 412 99918 Uma pré-condição fornecida na solicitação (como um cabeçalho if-match) não corresponde ao estado atual do recurso.
BadRequest 400 99919 Qualificação de referência inválida para atualização
InternalServerError 500 99999 Exceção geral durante o processamento da solicitação