Webhooks

Este serviço será responsável por notificá-lo quando uma sessão de validação de identidade estiver sendo processada ou concluída.

Processo de verificação da assinatura digital da request

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

Notificações de sessão de validação

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.

Parâmetros disponíveis
Header Parameters
X-Api-Keystringrequired
Este header permitirá identificar qual api-secret deve-se usar, caso vários pares de api-key e api-secret tenham sido configurados.
Exemplo: X-Api-Key: h3Ws4Cv09JcCdw7732ig+1Eq3I2b+IWOI1anUu1A4dE=
X-Signaturestringrequired
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.
Exemplo: X-Signature: hmac-sha256 N70BkBKch1gwQDPj0jF0ooB9QQVXBEp5VQE+SGe6Z0k=
X-Timestampstringrequired
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.
Exemplo: X-Timestamp: 1637117179
X-Endpointstringrequired
O endpoint que você usou para gerar a assinatura, e para o qual é feita a solicitação. Use este header para gerar novamente a assinatura a ser validada, e compare-o com o endpoint do seu serviço para verificar se eles correspondem.
Exemplo: X-Endpoint: /client/api/session/completed
Body Parameters
event_idstringrequired
Identificador de evento.
Exemplo: identity-session-status-changed
Enum: identity-session-status-changed
idempotency_keystringrequired
Identificador idempotente para criar o evento.
Exemplo: 27Ky00tAZ0Rdi7G2Vt9iino8AYs
sessionobjectrequired
Sessão de validação de identidade

Esta seção foi útil para você?

POST/identity/v1/<session-event-client-url>
{
"event_id":
"identity-session-status-changed"
"idempotency_key":
"27Ky00tAZ0Rdi7G2Vt9iino8AYs"
"session":{
"id":
"iss-27KxRhP9YB4ouoyt6a5vVJlY9fR"
"status":
"VERIFIED"
}
}
Respostas de amostra

Notificação de arquivo requerido

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.

Parâmetros disponíveis
Header Parameters
X-Api-Keystringrequired
Este header permitirá identificar qual api-secret deve-se usar, caso vários pares de api-key e api-secret tenham sido configurados.
Exemplo: X-Api-Key: h3Ws4Cv09JcCdw7732ig+1Eq3I2b+IWOI1anUu1A4dE=
X-Signaturestringrequired
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.
Exemplo: X-Signature: hmac-sha256 N70BkBKch1gwQDPj0jF0ooB9QQVXBEp5VQE+SGe6Z0k=
X-Timestampstringrequired
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.
Exemplo: X-Timestamp: 1637117179
X-Endpointstringrequired
O endpoint que você usou para gerar a assinatura, e para o qual é feita a solicitação. Use este header para gerar novamente a assinatura a ser validada, e compare-o com o endpoint do seu serviço para verificar se eles correspondem.
Exemplo: X-Endpoint: /client/api/session/completed
Body Parameters
event_idstringrequired
Identificador de evento.
Exemplo: identity-required-file
Enum: identity-required-file
idempotency_keystringrequired
Identificador idempotente para criar o evento.
Exemplo: 27Ky00tAZ0Rdi7G2Vt9iino8AYs
sessionobjectrequired
Sessão de validação de identidade
actionobjectrequired
Ação requerida

Esta seção foi útil para você?

POST/identity/v1/<required-file-event-client-url>
{
"event_id":
"identity-required-file"
"idempotency_key":
"27Ky00tAZ0Rdi7G2Vt9iino8AYs"
"session":{
"id":
"iss-27KxRhP9YB4ouoyt6a5vVJlY9fR"
}
"action":{
"file_type":
"company-document"
"reason":
"Falta uma carta de representação legal"
"requested_at":
"2023-02-09T13:20:32.593Z"
}
}
Respostas de amostra