Este serviço será responsável por notificá-lo quando uma sessão de validação de identidade estiver sendo processada ou concluída.
Juntamente com a notificação, enviaremos um conjunto de headers HTTP que servirão para verificar a sua autenticidade.
Os headers HTTP que enviamos são:
X-Api-Key
: este header permitirá identificar qual api-secret deve-se usar, caso vários pares de api-key e api-secret tenham sido configurados.
X-Signature
: este cabeçalho contém a assinatura digital (timestamp + endpoint + body) que deve ser verificada para garantir a integridade da solicitação. Se a assinatura não corresponder, o pedido deve ser rejeitado.
X-Timestamp
: este header contém a hora em que a solicitação foi assinada no formato unix-epoch para que você possa verificar se a assinatura não expirou.
X-Endpoint
: o endpoint usado para gerar a assinatura. Use este header para gerar novamente a assinatura a ser validada, compare-a com o endpoint do seu serviço e verifique se elas correspondem.
A assinatura digital é um código HMAC-SHA256 construído usando o api-secret
e uma série de bytes composta pela concatenação do timestamp, do endpoint e do request body codificados em UTF-8.
A seguir é usado um pseudo-código para verificar se a assinatura digital de uma request é legítima:
requestSignature = request.headers['x-signature']
signatureData = encode(request.headers['x-timestamp'] + request.headers['x-endpoint'] + request.body , 'UTF-8')
clientApiSecretDecoded = base64.b64decode(apiSecret)
recreatedSignature = hmac(clientApiSecretDecoded, signatureData, 'SHA256')
validSignature = requestSignature == 'hmac-sha256 ' + recreatedSignature
Você precisará nos informar este endpoint para receber as notificações de uma sessão de validação de identidade. Você deverá nos enviar um código HTTP do tipo 2xx para que não enviemos a notificação novamente. Caso contrário, a enviaremos novamente.
api-secret
deve-se usar, caso vários pares de api-key
e api-secret
tenham sido configurados.Você precisa nos fornecer este endpoint para receber notificações de arquivos requeridos. Você deve retornar um código HTTP do tipo 2xx para que não enviemos a notificação novamente. Caso contrário, enviaremos novamente.
api-secret
deve-se usar, caso vários pares de api-key
e api-secret
tenham sido configurados.