Especificaciones

Segue-se uma descrição técnica dos requisitos para invocar o serviço Rest que solicitará, por meio de uma assinatura eletrónica, a prova de que o TPP possui o certificado QSealC correspondente, conforme descrito no regulamento eIDAS.

Especificações técnicas

Endpoint do serviço Rest

https://[DOMAIN]/BeRestServices/rest/tppservices/[API_ID]/registry

Dados de entrada

  • timeStamp - Data e hora em que o pedido é iniciado. Para gerar este valor, deve usar o padrão Tempo Universal Coordenado (UTC) com o formato aaaa-MM-dd HH: mm: ssZ.
  • b64Signature - Assinatura no formato binário codificado em Base64. O algoritmo da assinatura deve ser SHA256withRSA e o que é assinado são os dados usados no campo anterior codificado em UTF-8.
  • b64Certificate - Certificado no formato binário codificado em Base64. Corresponde à parte pública do certificado usado para fazer a assinatura anterior.
  • phone - Número de contacto do TPP.
  • email - Endereço eletrónico do contacto do TPP.
  • callbackURL – URL do CallBack.

Exemplo de mensagem enviada:

{
	"timeStamp": "2019-05-24 14:17:29Z",
	"b64Signature": "HnMxPYD5s+0/LdGgdhYYZbuTQHGGp0JIZTOmvr/ub3GI6p6USwIk9VdCtmW5kWT5XFJdYApZO2dRJO+l9aEj66jnfHqFiYyrnQHs0JhItw0OsD2C8Vr3wLN4sMJGG31Y+rqLw8yh4SQ0RZxCXbbH3NwLodsak8jTfLKeIz8Km4wU8jFUr89fuYgdumQhqdAhCsszIA8to4HjlrtrUzY9SXpuPcnkdbPqfSitBAF8Qxd9dsXI2F6SR2NuDICpo4JqahXXjwErX6VwgoDeoHGtf+hZ46bDLSw5NQP3NSd/XJ622QrGyXWnJoLLKEZameHo++tw+dFmRKTGVWlygHxBqw==",
	"b64Certificate": "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",
	"phone": "666777777",
	"email": "test@mail.com",
	"callbackURL" : "https://URL/callback/"
}

Dados de saída

  • userName - Nome de utilizador gerado para acesso ao portal de desenvoltimento de APIs da entidade.
  • userPassword - Password gerada para o utilizador.
  • appId - Identificador da aplicação criada.
  • key - Chaves geradas para uso na autenticação do OAUTH 2.0. Para cada chave, os campos a seguir são devolvidos.
  • keyType - Tipo de chave. É facultada uma chave para usar em SANDBOX e outra para usar em PRODUÇÃO.
  • consumerKey - Identificador para OAUTH 2.
  • consumerSecret - Senha para o OAUTH 2.
  • error - Se ocorrer um erro no serviço, é indicado neste campo.

Exemplo de resposta recebida:

{
	"userName":"USER1559057720366",
	"userPassword":"H377LWr3Y1",
	"appId":"07289155-071d-4f59-9c03-f151625c8990",
	"key":[
		{
			"keyType":"SANDBOX",
			"consumerKey":"dmHiuwCsx3Y6gGfNpLZfTWDOT3ga",
			"consumerSecret":"Eu3AGGqO2jbnWUEA4P0ElG5jLGMa"
		},
		{
			"keyType":"PRODUCTION",
			"consumerKey":"OHN5tti0IX1RceedELh7thdcB5ga",
			"consumerSecret":"flBfLtgEHBqs1zN5bi7mVTsq7_ka"
		}
	],
	"error":""
}

Os possíveis erros que o serviço pode devolver são:

  • Error timestamp format - O carimbo de tempo não tem um formato correto.
  • Timestamp not valid - O carimbo de tempo é posterior à data de envio.
  • Timestamp expired - Excedeu o tempo estabelecido para aceitar o carimbo de tempo. O limite de tempo é de 30 segundos.
  • Error base64 certificate format - A codificação Base64 do certificado não está correta.
  • Error certificate format - Os dados enviados não correspondem a um certificado gerado corretamente.
  • Certificate not valid - O certificado expirou ou foi revogado.
  • Error base64 signature format - A codificação Base64 da assinatura não está correta.
  • Error signature format - Os dados enviados não correspondem a uma assinatura corretamente formada.
  • Signature not valid - A assinatura não é válida.
  • Internal error - Ocorreu um erro interno no registo do TPP e na configuração do acesso às APIs.
Volver