Iniciando a Integração¶
Procedimentos para a Integração¶
A aplicação que irá consumir os serviços da API da Prova de vida deve estar obrigatoriamente integrada ao sistema do Login Único . Além disso, há necessidade de liberar o ambiente de homologação para aplicação cliente possa utilizar. Essa liberação ocorre por meio do envio das informações listadas abaixo:
Credenciais de acesso aos serviços de Homologação
CPF de um representante do orgão ou entidade dona do serviço a ser integrado
E-mail do representante do orgão ou entidade
CPNJ do orgão ou entidade
Para pessoas que realizarão testes no Aplicativo (Validação Facial), e não constam na base do TSE, deve-se enviar as informações abaixo para cadastro da biometria facial
Nome
CPF
Foto no formato 3X4
Para liberação de acesso ao APP de Homologação, deve-ser enviar a informação:
Email do Google ou e-mail AppleID
Essas informações deverão ser encaminhadas para o e-mail: int-provavida-govbr@economia.gov.br, por um representante do órgão ou entidade. O representante ficará responsável pelas credenciais de acesso gerada por integrantes da Secretaria de Governança Digital (SGD) do Ministério da Economia (ME).
Métodos e interfaces de integração¶
Autenticação¶
Para que a autenticação aconteça, é preciso chamar serviço com intuito de adquirir um ticket de acesso (token) para os serviços protegidos da Prova de vida. O serviço de autenticação segue o padrão OAuth 2.0 .
A requisição é feita através de um POST para o endereço: https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials
Parâmetros do Header para a requisição: https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials
Variável |
Descrição |
Content-Type |
Tipo do conteúdo da requisição que está sendo enviada. Nesse caso estamos enviando como um application/json |
Authorization |
Informação codificada em Base64, no seguinte formato: CLIENT_ID:CLIENT_SECRET (senha de acesso do serviço consumidor)(utilizar codificador para Base64 |
Exemplo de header:
Content-Type: application/json
Authorization: ZWM0MzE4ZDYtZjc5Ny00ZDY1LWI0ZjctMzlhMzNiZjRkNTQ0OkFJSDRoaXBfTUJYcVJkWEVQSVJkWkdBX2dRdjdWRWZqYlRFT2NWMHlFQll4aE1iYUJzS0xwSzRzdUVkSU5FcS1kNzlyYWpaZ3I0SGJuVUM2WlRXV1lJOA==
O serviço retornará, em caso de sucesso, no formato JSON, as informações conforme exemplo:
Response: 200
{
"access_token": "(Token de acesso a serviços protegidos da Prova de vida.)",
"token_type": "(O tipo do token gerado. Padrão: Bearer)",
"expires_in": "(Tempo de vida do token em segundos.)",
"scope": "(Escopos autorizados pelo provedor de autenticação. Padrão: '*')",
"cnpj": "(CNPJ da organização solicitante da Prova de vida.)",
"jti": "(Identificador único do token, reconhecido internamente pelo provedor de autenticação.)"
}
Transação simplificada da Prova de vida¶
A Transação é sem suporte a resposta automática utilizando selo biométrico GovBr. Ou seja, não apresenta na resposta informações sobre validação facial feita pelo usuário em um momento anterior à solicitação. Portanto, a solicitação de Prova de vida não pode ser autorizada automaticamente.
A Transação cria um pedido de Prova de vida para o cidadão (CPF). O Cidadão é informado via push notification no aplicativo “Meu Gov.Br”. Tem como retorno apenas o UUID da transação.
A autorização do usuário pode ser dada por confirmação ou por biometria facial no app “Meu Gov.Br”.
Parâmetros do Header para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/transacoes
Variável |
Descrição |
Content-Type |
Tipo do conteúdo da requisição que está sendo enviada. Nesse caso estamos enviando como um application/json |
Authorization |
Palavra Bearer e o access_token da requisição POST do https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials |
Parâmetros do Body para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/transacoes
{
"solicitante": {
"cnpj": "(CNPJ do Solicitante.)",
"nome": "(Orgão Solicitante.)",
"servico": "(Nome do Serviço cliente.)"
},
"cpf": "(CPF do usuário que realizará a Prova de Vida.)",
"motivo": "(Motivo da Prova de Vida. Exemplo: Obter benefício previdenciário)",
"tipo": "(Tipo da solicitação. Padrão: 'B')",
"expiracao_em": "(Tempo de vida da transação em minutos)",
"mensagem_falha": "(Mensagem apresentada ao usuário no caso de falha na Prova de vida)",
"mensagem_sucesso": "(Mensagem apresentada ao usuário no caso de sucesso na Prova de vida)"
}
Exemplo de body:
{
"solicitante": {
"cnpj": "33.683.111/0001-07",
"nome": "Secretaria de Governo Digital",
"servico": "AppGovBr"
},
"cpf": "01534562567",
"motivo": "prova de vida para obtenção de selo",
"tipo": "B",
"expiracao_em": "120",
"mensagem_falha": "Não foi possível confirmar a prova de vida, volte ao sistema XYZ para obter mais informações",
"mensagem_sucesso": "Sua prova de vida foi realizada com sucesso, volte ao sistema XYZ para continuar o processo de autorização"
}
Ao chamar o serviço, o pedido de autorização de transação é criado e enviado para o usuário autorizar usando o App “Meu GovBr”. O serviço retornará, em caso de sucesso, o código que identifica unicamente a transação (UUID), conforme exemplo:
Response: 201
Body
0a4f7059-78b3-1b16-8179-56713d547f8a
Transação com verificação do selo de Biometria Facial¶
A Transação é com suporte a resposta automática utilizando selo biométrico GovBr. A resposta da requisição contém informações sobre validação facial feita pelo usuário em um momento anterior à solicitação. Portanto, a solicitação de Prova de vida pode ser autorizada automaticamente.
Diferente da transação simplicada, a requisição com verificação do selo possui o parâmetro “selogovbr_reuso_em” no body. O valor desse parâmetro é o intervalo de tempo em minutos anterior a data da transação. A Prova de vida será autorizada automaticamente caso o usuário tiver feito a validação facial dentro desse intervalo.
A Transação cria um pedido de Prova de vida para o cidadão (CPF). O Cidadão é informado via push notification no aplicativo “Meu Gov.Br”.
Caso a Prova de vida não seja autorizada automaticamente, o usuário (cidadão) pode autorizar por confirmação ou por biometria facial no app “Meu Gov.Br”.
Parâmetros do Header para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes
Variável |
Descrição |
Content-Type |
Tipo do conteúdo da requisição que está sendo enviada. Nesse caso estamos enviando como um application/json |
Authorization |
Palavra Bearer e o access_token da requisição POST do https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials |
Parâmetros do Body para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes
{
"solicitante": {
"cnpj": "(CNPJ do Solicitante.)",
"nome": "(Orgão Solicitante.)",
"servico": "(Nome do Serviço cliente.)"
},
"cpf": "(CPF do usuário que realizará a Prova de Vida.)",
"motivo": "(Motivo da Prova de Vida. Exemplo: Obter benefício previdenciário)",
"tipo": "(Tipo da solicitação. Padrão: 'B')",
"selogovbr_reuso_em": "(Intervalo de tempo em minutos anterior a data da transação)",
"expiracao_em": "(Tempo de vida da transação em minutos)",
"mensagem_falha": "(Mensagem apresentada ao usuário no caso de falha na Prova de vida)",
"mensagem_sucesso": "(Mensagem apresentada ao usuário no caso de sucesso na Prova de vida)"
}
Exemplo de body:
{
"solicitante": {
"cnpj": "33.683.111/0001-07",
"nome": "Secretaria de Governo Digital",
"servico": "AppGovBr"
},
"cpf": "01534562567",
"motivo": "prova de vida para obtenção de selo",
"tipo": "B",
"selogovbr_reuso_em": "999999",
"expiracao_em": "120",
"mensagem_falha": "Não foi possível confirmar a prova de vida, volte ao sistema XYZ para obter mais informações",
"mensagem_sucesso": "Sua prova de vida foi realizada com sucesso, volte ao sistema XYZ para continuar o processo de autorização"
}
Resultados esperados do Acesso à Transação com verificação do selo¶
A transação retornará, em caso de autorização automática com selo, no formato JSON, as informações conforme exemplo:
Response: 201

Caso o usuário realizar validação facial antes da data definida no atributo “reusar_apartir”, a transação não é autorizada automaticamente, e retornará, no formato JSON as informações conforme exemplo:
Response: 201
{
"id": "0a4f7059-78b3-1b16-8179-56713d547f8a",
"solicitante": {
"cnpj": "33.683.111/0001-07",
"nome": "Secretaria de Governo Digital",
"servico": "AppGovBr"
},
"cpf": "01534562567",
"motivo": "solicitação de prova de vida para liberação de benefício",
"tipo": "B",
"criado_em": "2021-05-10T14:14:38.083677-03:00",
"expiracao_em": "2021-05-10T14:14:38.083677-03:00",
"selogovbr": {
"reusar_apartir": "2019-06-16T03:35.083677-03:00",
"disponivel": true,
"data": "2019-02-15T15:34:51-03:00",
"usado": false
}
}
No exemplo acima, como a transação não foi autorizada automaticamente, o JSON retornado não apresenta o atributo RESPOSTA.
Obter dados usando id das Transações¶
É possível fazer requisição para obter dados das Transações da Prova de vida usando o id (UUID) retornado pelos serviços:
https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/transacoes (sem verificação do selo)
https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes (com verificação do selo)
Para acessar o serviço que disponibiliza os dados vinculados a uma determinada transação, a aplicação cliente deverá realizar uma requisição por meio do método GET à URL: https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes/{idtransacao}
Exemplo de requisição:
https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes/0a4f7059-78b3-1b16-8179-5746089d7fb7
Parâmetros para GET https://h.meugov.estaleiro.serpro.gov.br/api/vbeta2/transacoes/{idtransacao}
Variável |
Descrição |
Authorization |
No header, palavra Bearer e o acess_token da requisição POST do https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials |
idtransação |
id (UUID) da transação de prova de vida |
O resultado em formato JSON depende se o id utilizado for de uma Transação simplificada da Prova de vida ou de uma Transação com verificação do selo de Biometria Facial.
Exemplos de Resultado:
O atributo RESPOSTA do código JSON abaixo indica que o usuário já respondeu a autorização para realizar prova de vida e qual foi a resposta. Caso o usuário não tivesse respondido a autorização, o atributo RESPOSTA não estaria presente.
Response: 200
{
"id": "0a4f7059-78b3-1b16-8179-5746089d7fb7",
"solicitante": {
"cnpj": "Secretaria de Governo Digital",
"nome": "SERPRO",
"servico": "AppGovBr"
},
"motivo": "string",
"tipo": "B",
"criado_em": "2020-06-08T19:42:54-03:00",
"expiracao_em": "2020-06-08T23:42:54-03:00",
"resposta": {
"autorizado": true,
"data": "2020-06-08T22:31:45-03:00"
}
}
O código JSON abaixo é um exemplo de resposta para um id cuja transação foi autorizada automaticamente.
Response: 200
{
"id": "fb5g8247-95c1-2f23-9580-6813178c9bf8",
"solicitante": {
"cnpj": "33.683.111/0001-07",
"nome": "Secretaria de Governo Digital",
"servico": "AppGovBr"
},
"cpf": "01534562567",
"motivo": "solicitação de prova de vida para liberação de benefício",
"tipo": "B",
"criado_em": "2021-05-10T14:14:38.083677-03:00",
"expiracao_em": "2021-05-10T16:14:38.083677-03:00",
"selogovbr": {
"reusar_apartir": "2019-06-16T03:35.083677-03:00",
"disponivel": true,
"data": "2021-04-23T15:34:51-03:00",
"usado": true
},
"resposta": {
"autorizado": true,
"data": "2021-05-10T14:14:38.083677-03:00"
}
}
Enviar mensagens para o usuário¶
Para acessar o serviço que envia mensagem ao usuário, a aplicação cliente deverá realizar uma requisição por meio do método POST à URL: https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/mensagens
Parâmetros do Header para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/mensagens
Variável |
Descrição |
Authorization |
Palavra Bearer e o acess_token da requisição POST do https://h.meugov.estaleiro.serpro.gov.br/auth/oauth/token?grant_type=client_credentials |
Content-Type |
Tipo do conteúdo da requisição que está sendo enviada. Nesse caso estamos enviando como um application/json |
Parâmetros do Body para POST https://h.meugov.estaleiro.serpro.gov.br/api/vbeta1/mensagens
{
"remetente": {
"cnpj": "(CNPJ do orgão dono da aplicação cliente.)",
"nome": "(Nome do Orgão.)"
},
"titulo": "(Título da mensagem a ser enviada para o usuário.)",
"conteudo": "(Conteúdo da mensagem.)",
"tipo": "(Tipo da requisição. Padrão B)",
"cpf": "(CPF do usuário para o qual deseja enviar a mensagem.)"
}
Ao chamar o serviço, a mensagem é enviada para o usuário, que recebe via push notification no aplicativo “Meu GovBr”. A mensagem pode ser enviada diretamente ao cidadão (CPF) ou enviada para todos (broadcast). Caso seja enviada para todos, o parâmetro “cpf” não deve ser informado na requisição.
O serviço retornará, em caso de sucesso, o código que identifica unicamente a mensagem (UUID), conforme exemplo:
Response: 201
Body
{“7f000101-729a-1bab-8172-9a9c74160001”}
A aplicação cliente, utilizando determinados serviços, pode utilizar o id da mensagem para receber informações sobre a mesma ou para deletá-la.
Exemplos de requisição:
Recebe informações de mensagem enviada
Deleta mensagem enviada
Resultados Esperados e Erros do Acesso aos Serviços da Prova de Vida¶
Como visto anteriormente, os acessos aos serviços (transações) da Prova de Vida ocorrem por meio de chamadas de URLs e as respostas são códigos presentes conforme padrão do protocolo HTTP por meio do retorno JSON. O retorno mostra o código de sucesso ou de erro e a respectiva descrição.
Exemplos de códigos HTTP de sucesso:
200: Sucesso
201: Dado cadastrado com Sucesso, retornando o ID do dado
Exemplos de códigos HTTP de erro:
400: Algum dado informado incorretamente. Exemplo:
{
"status": "BAD_REQUEST",
"message": "Argumentos não válidos",
"errors": {
"cpf": "número do registro de contribuinte individual brasileiro (CPF) inválido"
}
}
401: Usuário não autenticado
422: Erro de validação na requisição. Exemplo:
{
"timestamp": "2021-05-10T14:14:38.083677-03:00",
"status": 422,
"error": "Unprocessable Entity",
"message": "A não é um tipo válido [B,C]",
"path": "/vbeta1/transacoes"
}