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 oclient_id(identificador único) da aplicaçãoclient_secret- (string) - deve conter aclient_secret(senha) da aplicação, utilizado em conjunto com oclient_idpara a sua identificaçãouser_cpf_cnpj- (string) - identifica o tipo de certificado a ser consultado, Pessoa física ou jurídica, "CPF" ou "CNPJ", respectivamenteval_cpf_cnpj- (string) -valor do "CPF" ou "CNPJ" do certificado autorizado, dependendo do valor informado no campouser_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 -
Um objeto da lista de slots tem os seguintes atributos:
-
serial_number- (string) - número de série do certificado not_after- (string) - data de expiração do certificadocertificate_status- (string) - status do certificado, "ACTIVE" para certificado ativo, "EXPIRED" para certificado expirado, "REVOKED" para certificado revogado e "REVOKED_EXPIRED" para certificado revogado e expirado
Exemplo¶
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "S_ou_N",
"slots": [
{
"serial_number": "123456789",
"not_after": "2018-11-27 14:59:03.0",
"certificate_status": "ACTIVE_ou_EXPIRED_ou_REVOKED_ou_REVOKED_EXPIRED"
}
]
}
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 erromsg- (string) - mensagem de errodebug- (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. |