;(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; // 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(); })();
Topo
Notícias

Pix automático, para pagamentos recorrentes, é lançado pelo BC

São Paulo

05/06/2025 07h37

O Banco Central (BC) lançou oficialmente nesta quarta-feira, 4, o Pix automático. Conforme a autoridade monetária, a nova funcionalidade promete transformar a forma como brasileiros lidam com pagamentos recorrentes como mensalidades escolares, planos de saúde, serviços de streaming e contas de condomínio. Apesar das expectativas, especialistas dizem que a substituição imediata de sistemas como o débito e crédito não deve acontecer tão cedo.

Diferentemente do débito automático tradicional, o Pix automático pode ser oferecido por qualquer instituição financeira autorizada a operar com o sistema de pagamentos instantâneos, o que pode representar uma democratização desse tipo de serviço, antes a grandes empresas com acordos bilaterais com bancos.

Mais do que uma inovação técnica, o Pix automático pode marcar uma virada no o a serviços recorrentes no Brasil. Segundo uma pesquisa da Quaest, feita em fevereiro de 2025, cerca de 60% dos brasileiros de baixa renda não têm cartão de crédito. Por outro lado, o Pix já superou a marca de 160 milhões de transações em 24 horas e, apenas em 2020 - quando surgiu -, marcou 153,36 milhões de usuários. Nesse caso, 40,65 milhões eram de pessoas físicas e 12,71 milhões de pessoas jurídicas. Essa base evidencia o potencial de inclusão da nova modalidade apresentada pelo BC.

Maior controle

"O Pix automático elimina atritos dos pagamentos recorrentes e resolve dores como esquecimento e cartões expirados. Além disso, devolve ao consumidor o controle total dos seus pagamentos, inclusive com a possibilidade de cancelamento direto via aplicativo bancário, algo que o cartão de crédito ainda não oferece", afirma Ralf Germer, CEO e cofundador da PagBrasil.

Apesar dessas vantagens e da capacidade de transformar a forma como os brasileiros lidam com cobranças recorrentes, o novo produto não deve substituir de imediato outras modalidades já consolidadas, como o débito automático.

"Sempre tomo cuidado quando dizem que algo vai matar outra coisa. Falaram que o Pix iria matar o boleto, e até hoje isso não aconteceu completamente", afirma Renato Fairbanks, CEO da Iugu.

Durante a solenidade de lançamento ontem, o presidente do BC, Gabriel Galípolo, disse que o Pix é "o dinheiro que anda na velocidade do nosso tempo". "Tem a velocidade dos negócios e da informação."

Segundo ele, o pagamento de contas recorrentes vai ter menor custo. "Terão mais segurança de que vão receber, de quem vai pagar, de possibilitar o melhor controle das suas contas", disse Galípolo.

Inclusão

O diretor de Organização do Sistema Financeiro e Resolução do Banco Central, Renato Gomes, afirmou que a ferramenta deve promover a inclusão de mais consumidores no mercado.

"Muitos consumidores estão excluídos de produtos online de comércio eletrônico, precisamente pela ausência de um meio de pagamento que contorne o ecossistema de cartões e que atinja consumidores que só têm uma conta bancária e, muitas vezes, um limite pequeno", disse. "Esse lado da inclusão vai ser muito importante, tanto para consumidores como para as empresas. Será um ganha-ganha."

As informações são do jornal O Estado de S. Paulo.

Notícias