Realizar compartilhamento de dados via CIBA

O fluxo abaixo representa a interação da Receptora de Dados com uma Transmissora de Dados para o compartilhamento de dados via Open Finance, utilizando a autenticação desacoplada (backchannel) do protocolo CIBA. Perceba que:

  1. toda a comunicação entre a Receptora de Dados e a Transmissora de Dados é feita através da plataforma Celcoin;
  2. o usuário não é redirecionado entre as instituições: a autenticação e a decisão sobre o consentimento acontecem no canal digital da Transmissora de Dados; e
  3. qualquer acesso aos dados deverá ser viabilizado pela própria Transmissora de Dados, que é o backend dos dados.

Para visualizar o diagrama de sequência completo, acesse Diagrama de sequência da jornada CIBA.

Criação do consentimento

  1. O usuário solicita o compartilhamento de seus dados via Open Finance junto à instituição Receptora de Dados [1];
  2. A Receptora de Dados obtém um token de acesso sistêmico junto à Celcoin, por meio da chamada POST /token com o grant type client_credentials [2];
  3. A Receptora de Dados solicita a criação do consentimento de dados à Celcoin, por meio da chamada POST /consents [3];
  4. O consentimento é criado com o status AWAITING_AUTHORISATION;

Início do protocolo CIBA

  1. A Receptora de Dados solicita a autenticação CIBA à Celcoin, por meio da chamada POST /bc-authorize [4];
  2. A Celcoin encaminha a solicitação de autenticação CIBA à Transmissora de Dados, por meio da chamada POST /internal-bc-authorize [5];
🚧

Ponto de atenção

A Transmissora de Dados deve disponibilizar um endpoint para receber a chamada POST /internal-bc-authorize. Esta é uma ação do cliente, obrigatória para que o fluxo CIBA prossiga para os passos das aprovações.

  1. A Transmissora de Dados notifica o usuário (ou os aprovadores do consentimento) sobre o pedido de compartilhamento de dados [6];

Autenticação e decisão do usuário

  1. O usuário realiza a autenticação no canal digital da Transmissora de Dados [7];
  2. O usuário aprova ou rejeita o consentimento na Transmissora de Dados [8];

Aprovação do compartilhamento

  1. A Transmissora de Dados notifica a aprovação do consentimento à Celcoin, por meio da chamada POST /api/admin/v1/organizations/{{client_name}}/backchannel/{{authReqId}}/consent [9];
  2. A Celcoin notifica a aprovação à Receptora de Dados, por meio da chamada POST /cb com o authorization_code [10];
  3. O status do consentimento é alterado para AUTHORISED;
  4. A Receptora de Dados obtém o token de acesso do cliente junto à Celcoin, por meio da chamada POST /token com o auth_req_id [13];
  5. A Receptora de Dados consulta a API de Recursos na Celcoin, por meio da chamada GET /resources/v3/resources [14]; e
  6. A Celcoin encaminha a consulta à Transmissora de Dados, que é o backend dos dados, por meio da chamada GET /resources/v3/resources [15].

Rejeição do compartilhamento

  1. A Transmissora de Dados notifica a rejeição do consentimento à Celcoin, por meio da chamada POST /api/admin/v1/organizations/{{client_name}}/backchannel/{{authReqId}}/cancel [11];
  2. A Celcoin notifica a rejeição à Receptora de Dados, por meio da chamada POST /cb [12];
  3. O status do consentimento é alterado para REJECTED.

Endpoints do fluxo

PassoOrigemDestinoEndpoint
[2]Receptora de DadosCelcoinPOST /token (client_credentials)
[3]Receptora de DadosCelcoinPOST /consents
[4]Receptora de DadosCelcoinPOST /bc-authorize
[5]CelcoinTransmissora de DadosPOST /internal-bc-authorize
[9]Transmissora de DadosCelcoinPOST /api/admin/v1/organizations/{{client_name}}/backchannel/{{authReqId}}/consent
[10]CelcoinReceptora de DadosPOST /cb (authorization_code)
[11]Transmissora de DadosCelcoinPOST /api/admin/v1/organizations/{{client_name}}/backchannel/{{authReqId}}/cancel
[12]CelcoinReceptora de DadosPOST /cb
[13]Receptora de DadosCelcoinPOST /token (auth_req_id)
[14]Receptora de DadosCelcoinGET /resources/v3/resources
[15]CelcoinTransmissora de DadosGET /resources/v3/resources

Especificação das APIs

Para consultar a especificação completa de cada API (parâmetros, exemplos de requisição e códigos de resposta), acesse:


Did this page help you?