;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

BC adia para fevereiro início do open banking, que promete menos juros

Início da primeira fase de implementação do open banking estava marcada para o próximo dia 30 - Edu Andrade/Fatopress/Estadão Conteúdo
Início da primeira fase de implementação do open banking estava marcada para o próximo dia 30 Imagem: Edu Andrade/Fatopress/Estadão Conteúdo

Antonio Temóteo

Do UOL, em Brasília

27/11/2020 14h36Atualizada em 27/11/2020 14h56

O BC (Banco Central) adiou de 30 de novembro de 2020 para 1º de fevereiro de 2021 o início da primeira fase de implementação do open banking, compartilhamento de dados que promete baratear os juros. Além disso, a última fase de implementação do projeto ou de 25 de outubro de 2021 para 15 de dezembro de 2021.

  • Na primeira fase, os participantes devem divulgar informações dos produtos e serviços que oferecem. Terceiros poderão consultar as informações, reunir as informações e comparar.
  • Na segunda fase, haverá o compartilhamento dos dados dos clientes. Os clientes devem autorizar. Só depois os dados podem ser compartilhados. Esta fase deve ser finalizada até 15 de julho de 2021 para a divulgação das transações dos clientes.
  • Na terceira fase, ocorre a iniciação de transações de pagamentos. Será finalizada até 30 agosto de 2021.
  • Na quarta fase, ocorre a expansão dos serviços, até dezembro de 2021.

O sistema estabelece o compartilhamento padronizado de dados e serviços por instituições financeiras e demais instituições autorizadas a funcionar pelo BC por meio de abertura e integração de plataformas e infraestruturas de sistemas de informação.

Segundo o Banco Central, o objetivo é aumentar a competição no sistema financeiro, com a entrada de mais fintechs no mercado para oferecer produtos e serviços a clientes que hoje são atendidos basicamente apenas pelos grandes bancos.

Na avaliação do BC, o open banking empodera o consumidor, amplia a participação das fintechs no mercado, aumenta a inovação e a inclusão no mercado financeiro e, assim, promover a competitividade.

Um exemplo: um cliente que está chegando perto de ultraar o limite no cheque especial. Com a circulação de informações desse cliente, uma fintech saberia que esse consumidor poderia receber uma oferta de empréstimo, com uma taxa mais baixa que a praticada pelo banco em que essa pessoa tem conta.

Todo e qualquer compartilhamento de dados só será realizado após claro consentimento do consumidor, destacou o diretor de regulação do Banco Central.

Participantes

O open banking será obrigatório para os grandes e médios bancos, classificados pelos Banco Central como S1 e S2. Os demais agentes de mercado, como fintechs, têm entrada optativa, mas uma vez dentro têm que compartilhar informações.

Haverá regulação e autorregulação

As regras do open banking são divididas em dois grupos. Na parte regulada, ou seja, determinada pelo Banco Central, estão as regras como o escopo dos participantes, o escopo mínimo de dados e serviços, os requisitos para compartilhamento, as responsabilidades pelo compartilhamento, a contratação de terceiros não regulados, a gratuidade no ressarcimento entre participantes, o conteúdo mínimo de convenção e o cronograma de implementação.

Na parte da autorregulação, ou seja, as regras que serão definidas pelos próprios participantes, estão a estrutura responsável pela governança, os padrões tecnológicos e procedimentos operacionais, a resolução de disputas e o ressarcimento entre os participantes.