Como registrar um WebHook para receber as atualizações de eventos de consentimento
Para se manter atualizado sobre qualquer evento no ciclo de vida do consentimento, você deve registrar uma API de webhook para receber as informações de atualização.
O endpoint do webhook deve estar no método POST, em https. O domínio e a URI podem estar em qualquer formato que você tenha em sua plataforma, para os exemplos abaixo consideraremos o exemplo de endpoint POST https://www.my-domain.com/webhook
Depois de implementar esta API em sua plataforma, você precisa registrá-la para receber notificações por meio de nossa API de registro de webhook.
Mas para acessar essa API, você precisa realizar uma etapa anterior, que consiste em se autenticar usando as credenciais do seu aplicativo. Descreveremos o passo a passo neste tópico.
Acess Token Request (usando as credenciais do My First App)
curl --location --request POST 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/portal/onboard/v1/token' \ --header 'Content- Type: application/json' \ --data-raw '{ "client_id":"64b51075-45bf-46cc-aed4-29b69b51816d", "client_secret": "9257b897-01ca- 4ebd-9fd4-************"}'
Acess Token Response
{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSY0hYOGxFRl93QmxFNUF3eXY2TV9JQUFEUm1pSzV5SWlnW "expires_in": 3600, "refresh_expires_in": 0, "token_type": "Bearer", "not-before-policy": 0, "scope": "email profile" }
Agora você precisa obter o conteúdo do parâmetro "access_token" e incluí-lo como um cabeçalho Authentication Bearer para todas as futuras chamadas de API.
Gerado o access_token, vamos registrar seu webhook usando a solicitação abaixo.
API de registro de webhook
curl --location 'https://onboard.smartkeys.celcoin.dev.fsapps.io/api/smart-keys/interceptors' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{your_generated_access_token_here}}' \ --data '{ "endpoint": "https://www.my-domain.com/webhook", "isAuthenticated": false, "authenticationType": "", "user": "", "password": "", "type": "DATA" }'
A solicitação retornará os seguintes códigos de status Http.
HTTP Status Code |
|
---|---|
201 | Webhook succesfully registered. |
400 | Bad Request - error at request field validations. |
401 | The used token is not allowed to access the resource. |
Isso é tudo! Agora, a qualquer atualização de status de consentimento, o API POST https://www.my-domain.com/webhook receberá uma solicitação com o campo body conforme abaixo:
{ "event": "before:consent:create", "data": { ... } }
O campo data traz detalhes sobre o evento de consentimento. Já o evento de campo traz o novo status de consentimento, que pode ser uma das possibilidades abaixo.
Evento | Detalhes |
---|---|
before : consent : create | Recebemos uma solicitação para uma criação de consentimento. |
after : consent : create | Todos os campos de consentimento foram validados, está seguindo todos os padrões necessários e foi criado. |
consent : approved | O consentimento foi aprovado pelo usuário. |
consent : rejected | O consentimento foi rejeitado pelo usuário. |
consent : expired | O consentimento expirou. Não foi aprovado ou rejeitado após 60 minutos da criação OU após aprovação/rejeição não foi consumido em 70 minutos. |
consent : revoke | Consentimento revogado pelo usuário (geralmente após aprovação) |
Testando o webhook
Para testar o processo do WebHook, ele também pode ser configurado na seção Gestão de Endpoints do portal de desenvolvimento. Utilizaremos o Site WebHook (https://webhook.site/) para simular o processo. O site irá gerar um URL WebHook conforme mostrado abaixo.
Copie a URL do WebHook gerada e registre-se nas Configurações do aplicativo na seção "Gerenciamento de endpoints". Você deve inserir como método POST e receberá um Json no body.
Em seguida, clique no botão Salvar.