Pular para conteúdo

Localização de titular

Realiza a consulta da existência de certificado no PSC SerproID, mediante a informação de CPF ou CNPJ.


POST /user-discovery

Solicitação

A aplicação deve solicitar ao endpoint de localização de titular do PSC SerproID, https://serproid.serpro.gov.br/oauth/v0/oauth/user-discovery postando via application/json os parâmetros necessários.

Parâmetros

JSON:

  • client_id - (string) - deve conter o client_id (identificador único) da aplicação
  • client_secret - (string) - deve conter a client_secret (senha) da aplicação, utilizado em conjunto com o client_id para a sua identificação
  • user_cpf_cnpj - (string) - identifica o tipo de certificado a ser consultado, Pessoa física ou jurídica, "CPF" ou "CNPJ", respectivamente
  • val_cpf_cnpj - (string) -valor do "CPF" ou "CNPJ" do certificado autorizado, dependendo do valor informado no campo user_cpf_cnpj

Exemplo

O exemplo encontra-se com quebras de linha e espaços para melhor leitura

POST /oauth/v0/oauth/user-discovery HTTP/1.1
Host: serproid.serpro.gov.br
Content-Type: application/json

{
    "client_id": "{client_id}",
    "client_secret": "{client_secret}",
    "user_cpf_cnpj": "<cpf_ou_cnpj>",
    "val_cpf_cnpj": "<valor_do_cpf_ou_cnpj>"
}
curl -X POST \
https://serproid.serpro.gov.br/oauth/v0/oauth/user-discovery \
-H 'Content-Type: application/json' \
-d '{
        "client_id": "{client_id}",
        "client_secret": "{client_secret}",
        "user_cpf_cnpj": "<cpf_ou_cnpj>",
        "val_cpf_cnpj": "<valor_do_cpf_ou_cnpj>"
    }'

Resposta da solicitação

O PSC SerproID irá verificar todos os parâmetros para validar a solicitação. As credenciais da aplicação, client_id e client_secret, serão checadas para realizar a sua autenticação. Será verificado a existência de certificados no PSC SerproID conforme os parâmetros informados nos campos user_cpf_cnpj e val_cpf_cnpj.

Solicitação válida (Sucesso)

Se a solicitação estiver válida, o PSC SerproID irá retornar a existência ou não de certificado via HTTP code 200 na resposta da solicitação no formato application/json.

Parâmetros

JSON:

  • status - (string) resultado da consulta de existência ou não de certificado no PSC SerproID, "S" para resultado positivo ou "N" - para resultado negativo
  • slots- (string) - lista de certificados da pessoa consultada, atualmente será retornado uma lista vazia, inclusive no cenário de existência de certificado
Exemplo
HTTP/1.1 200 OK
Content-Type: application/json

{
    "status": "S_ou_N",
    "slots": []
}

Solicitação inválida (Erro)

Se a solicitação for considerada inválida, seja devido a verificação dos parâmetros informados ou caso algum erro inesperado aconteça, o PSC SerproID retornará um erro no formato application/json com o HTTP code correspondente ao tipo do erro.

Parâmetros

JSON:

  • code - (string) - código do tipo do erro
  • msg- (string) - mensagem de erro
  • debug - (string) - informações adicionais sobre o erro
Exemplo
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
    "code": "AUTENTICACAO_INVALIDA_CLIENT_OAUTH",
    "msg": "Falha na autenticidade do client_id e client_secret",
    "debug": ""
}
Lista de erros
Tipo do erro HTTP Code Detalhes
CAMPO_OBRIGATORIO 412 O campo ... é obrigatório
VALOR_PARAMETRO_INVALIDO 400 Valor do parâmetro ... inválido
CLIENTE_OAUTH_NAO_IDENTIFICADO 412 Não foi possível identificar a aplicação cliente.
AUTENTICACAO_INVALIDA_CLIENT_OAUTH 401 Falha na autenticidade do client_id e client_secret.
USER_DISCOVERY_FAIL 500 Falha no processo de localização do titular.