Fluxos de Integração

Entenda como funciona o fluxo de vínculo de contas e suas integrações como ITP ou Detentora de Contas.

Vínculo de Conta e Pagamento

O fluxo abaixo representa a interação de qualquer ITP com uma detentora de contas integrada ao Brick Bank® para realizar o vínculo de dispositivo. Perceba que:

Iniciador de Pagamentos

O fluxo abaixo representa a interação de uma ITP integrada ao Brick Bank® com qualquer detentora de contas para o vínculo de conta e pagamento sem redirecionamento.

Vínculo de Dispositivo

  1. O usuário solicita o vínculo de conta via Open Finance junto à instituição Iniciadora de Pagamentos [1] e seleciona a instituição Detentora de Contas para selecionar e vincular a conta em seu dispositivo;
  2. A instituição Iniciadora de Pagamentos realiza uma solicitação de vínculo ao Brick Bank® [2] através do endpoint POST /api/admin/payment-initiation/v1/enrollments com os dados de vínculo de conta no body da requisição;
  3. O Brick Bank® recebe a requisição, valida o body e realiza uma requisição para a Detentora de Contas criar o vínculo de dispositivo (enrollmentId). [3];
    1. O vínculo é criado com o status AWAITING_RISK_SIGNAL [4];
  4. O Brick Bank® recebe as informações de vínculo de dispositivo e retorna os dados para a Iniciadora de Pagamentos [5];
  5. A instituição Iniciadora de Pagamentos envia os sinais de riscos do dispositivo através do endpoint POST /api/enrollments/{enrollmentId}/risk-signals [6];
  6. O Brick Bank recebe os parâmetros de sinais de riscos e envia para a Detentora de Contas [7];
    1. O status do vínculo altera para AWAITING_HOLDER_VALIDATION;
  7. A Detentora de Contas envia os dados de sinais de riscos recebidos para o Brick Bank [8];
  8. O Brick Bank retorna as informações de sinais de riscos para a Iniciadora de Pagamentos [9];
  9. A Iniciadora de Pagamentos informa o usuário e o redireciona para a Detentora de Contas para realizar a autenticação [10];
  10. O usuário faz a autenticação e em seguida, a Detentora de Contas apresenta a tela de informações de vínculo de dispositivo [11];

Autorização do Vínculo

  1. O usuário autoriza o vínculo na Detentora de Contas [12];
    1. O status do vínculo altera para AWAITING_ENROLLMENT;
  2. A Detentora de Contas redireciona o usuário para a Iniciadora de Pagamentos [13];
    1. A Iniciadora de Pagamentos notifica o usuário que o vínculo foi concluído com sucesso;
  3. A Iniciadora de Pagamentos solicita o token de callback para o Brick Bank® através do endpoint POST /api/admin/payment-initiation/v1/enrollments/callback [14];
  4. O Brick Bank solicita o token de callback para a Detentora de Contas [15] que retorna o token gerado para o Brick Bank [16];
  5. O Brick Bank retorna o token de callback para a Iniciadora de Pagamentos [17];
  6. A Iniciadora de Pagamentos faz a busca de criação de chave através do endpoint POST /enrollments/{enrollmentId}/fido-registration-options [18];
  7. O Brick Bank faz a busca de parâmetros de criação de chave para a Detentora de Contas [19];
  8. A Detentora de Conta retorna os parâmetros [20];
  9. O Brick Bank recebe os parâmetros e retorna para a Iniciadora de Pagamentos [21];
  10. A Iniciadora de Pagamentos solicita um gesto para o usuário realizar a autenticação (biometria, FaceID, PIN, etc) [22];
  11. O usuário realiza o gesto de sua preferência [23];
  12. A Iniciadora de Pagamentos cria a credencial [24] e envia os dados da credencial gerada para o Brick Bank através do endpoint POST /enrollments/{enrollmentId}/fido-registration} [25];
  13. O Brick Bank® recebe os dados da credencial e envia para a Detentora de Contas [26];
  14. A Detentora de Contas recebe os dados da credencial, valida e armazena [27];
    1. O status do vínculo altera para AUTHORISED;
  15. A Detentora de Contas retorna para o Brick Bank® o HTTP 204 No Content para sinalizar que a solicitação foi realizada com sucesso [28];
  16. O Brick Bank® retorna para a Iniciadora de Pagamentos o HTTP 204 No Content para sinalizar que a solicitação foi realizada com sucesso [29];
  17. A Iniciadora de Pagamentos sinaliza ao usuário que o vínculo de conta foi realizado com sucesso [30];

Efetivação do Pagamento

  1. O usuário realiza um pagamento sem redirecionamento na Iniciadora de Pagamentos [31];
  2. A Iniciadora de Pagamentos obtém os parâmetros de autenticação através da chamada na API (POST {enrollmentId}/fido-sign-options) para o Brick Bank® [32];
  3. O Brick Bank® recebe a requisição e consulta os parâmetros na Detentora de Contas [33] que retorna os parâmetros para o Brick Bank® [34];
  4. O Brick Bank® recebe os parâmetros e retorna para a Iniciadora de Pagamentos [35];
  5. A Iniciadora de Pagamentos solicita o gesto do usuário para aprovar o pagamento [36];
  6. O usuário autentica através dos parâmetros definidos e aprova o pagamento [37];
  7. A Iniciadora de Pagamentos recebe o gesto do usuário e aprova o pagamento para o Brick Bank® através da chamada (POST /consent) [38];
  8. O Brick Bank® recebe a autorização do pagamento e chama o Detentor de Contas através do POST /{consentId}/authorise, que retorna todas as informações de autorização do pagamento [39];
  9. A Detentora de Contas autoriza o pagamento e retorna todas as informações de autorização para o Brick Bank® [40];
  10. O Brick Bank® retorna todas as informações de autorização do pagamento para a Iniciadora de Pagamento [41];
  11. A Iniciadora de Pagamentos apresenta a tela de efetivação do pagamento [42].

Detentor de Contas

O fluxo abaixo representa a iniciação de pagamentos de qualquer ITP com uma detentora de contas integrada ao Brick Bank® para a realização do vínculo de conta pagamento sem redirecionamento por meio do Open Finance:

  1. toda a comunicação com o ecossistema é feita através da plataforma Brick Bank®, abstraindo toda a camada de segurança e validação de consentimento.

Vínculo de Dispositivo

  1. O usuário solicita a realização do vínculo de conta através do Open Finance [1].
  2. O ITP retorna uma lista de marcas de Detentores de Contas ativos [2];
  3. O usuário seleciona a marca do Detentor de Contas para realizar o vínculo de conta [3];
  4. O ITP identifica a Detentora de Contas selecionada anteriormente e realiza uma solicitação de consentimento ao Brick Bank® [4], o qual realiza todas as validações de segurança e de autorização para a Detentora de Contas e cria o vínculo [5];
    1. O consentimento é criado com o status AWAITING_RISK_SIGNALS;
  5. O Brick Bank® retorna para o ITP a URL de redirecionamento para a Detentora de Contas e o ITP informa o usuário e o redireciona para a Detentora de Contas [6];
  6. A Detentora de Contas apresenta a tela de autenticação para o usuário [7];
  7. O usuário realiza a autenticação na Detentora de Contas [8];
  8. A Detentora de Contas captura o CPF/CNPJ do usuário/empresa e criptografa essa informação [9];
  9. A Detentora de Contas realiza a chamada POST /{interactionId}/login, e envia os dados criptografados do cliente no body da requisição [10];
  10. O Brick Bank® recebe a requisição e realiza uma consulta para verificar se os dados do vínculo pertencem ao usuário recém autenticado [11];
    1. A Detentora de Contas deve disponibilizar uma API para descriptografar o CPF/CNPJ [12];
    2. Em caso de divergência entre os dados do vínculo e os dados do login, o Brick Bank® realiza uma trava de segurança para que o vínculo não seja aprovado por um usuário indevido;
  11. O Brick Bank® retorna todos os dados do consentimento para a Detentora de Contas [13] para que ela monte a tela de autorização [14];

Autorização do Vínculo

  1. O usuário autoriza o vínculo de conta na Detentora de Contas [15];
  2. A Detentora de Contas realiza uma chamada na API POST /interactionId/consent para aprovar o vínculo no Brick Bank® [16];
    1. <confirmar o status do vínculo>
  3. O Brick Bank® retorna para a Detentora de Contas a URL de redirecionamento para o ITP [17];
  4. A Detentora de Contas informa o usuário e o redireciona para o ITP [18];
  5. A Iniciadora de Pagamentos obtém os parâmetros para a criação de uma nova credencial via chamada (POST /fido-registration-options) para o Brick Bank® [19];
  6. O Brick Bank® recebe a requisição e gera os parâmetros FIDO no FIDO2 Server implementado no Brick Bank® [20] e retorna os parâmetros para a Iniciadora de Pagamentos [21] e [22];
  7. A Iniciadora de Pagamentos cria a credencial do usuário [23];
  8. A Iniciadora de Pagamentos envia os dados da credencial via chamada (POST {enrollmentId}/fido-registration) para o Brick Bank® [24];
  9. E em seguida, o Brick Bank® envia os dados da credencial para o FIDO2 Server [25] realizar a validação [26];
  10. O FIDO2 Server confirma a validação com o HTTP Status 204 para o Brick Bank® [27];
  11. O Brick Bank® retorna a confirmação com o HTTP Status 204 para a Iniciadora de Pagamentos [28];

Efetivação do Pagamento

  1. O usuário realiza um pagamento sem redirecionamento na Iniciadora de Pagamentos [29];
  2. A Iniciadora de Pagamentos obtém os parâmetros de autenticação através da chamada na API (POST {enrollmentId}/fido-sign-options) para o Brick Bank® [30];
  3. O Brick Bank® consulta os parâmetros no FIDO2 Server [31] que retorna todos os parâmetros para o Brick Bank® [32];
  4. O Brick Bank® recebe os parâmetros e retorna para a Iniciadora de Pagamentos [33];
  5. A Iniciadora de Pagamentos solicita o gesto do usuário para aprovar o pagamento [34];
  6. O usuário autentica através dos parâmetros definidos e aprova o pagamento [35];
  7. A Iniciadora de Pagamentos recebe o gesto do usuário e aprova o pagamento para o Brick Bank® através da chamada (POST {consentId}/authorise) [36];
  8. O Brick Bank® realiza a autorização do pagamento no FIDO2 Server [37], que retorna todas as informações de autorização do pagamento [38];
  9. O Brick Bank® retorna todas as informações de autorização do pagamento para a Iniciadora de Pagamento [39];
  10. A Iniciadora de Pagamentos apresenta a tela de efetivação do pagamento [40].