;(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

Boletos vencidos de todos os tipos poderão ser pagos em qualquer banco

Kelly Oliveira

Da Agência Brasil

08/11/2018 14h19

A partir deste sábado (10), boletos vencidos poderão ser pagos em qualquer banco ou correspondente e não apenas na instituição financeira em que foram emitidos.

Isso será possível com a conclusão da implementação da Nova Plataforma de Cobrança (NPC), sistema desenvolvido pela Federação Brasileira de Bancos (Febraban) em parceria com os bancos.

LEIA TAMBÉM:

Na última fase do processo, a a ser obrigatório o cadastramento de títulos referentes a faturas de cartão de crédito e doações no novo sistema.

Segundo a Febraban, além da praticidade, a implementação da NPC torna o processo de pagamento via boleto mais seguro, sem risco de fraudes.

Outra mudança diz respeito ao comprovante de pagamento, que será mais completo, apresentando todos os detalhes do boleto, (juros, multa, desconto, etc) e as informações do beneficiário e pagador.

O projeto da Nova Plataforma de Cobrança começou há quatro anos.

Desde 2016 ele vem incorporando na sua base de dados os boletos de pagamentos já dentro das normas exigidas pelo Banco Central, ou seja, com informações do F (Cadastro de Pessoa Física) ou CNPJ (Cadastro Nacional de Pessoa Jurídica) do emissor, data de vencimento e valor, além do nome e número do F ou CNPJ do pagador.

A Febraban diz que essas informações são importantes para checar a veracidade dos documentos na hora de se fazer o pagamento.

Caso os dados do boleto a ser pago não coincidam com aqueles registrados na base da Nova Plataforma, ele é recusado, pois o boleto pode ser falso.

Para fazer a migração do modelo antigo de processamento para o atual, os bancos optaram por incluir os boletos no novo sistema por etapas, de acordo com o valor a ser pago.

Esse processo começou em meados do ano ado para boletos acima de R$ 50 mil (os de menor volume) e termina no dia 10 de novembro, com a incorporação dos boletos de cartão de crédito e doações.

A previsão inicial era que o processo fosse concluído em 22 de setembro. Entretanto, em junho deste ano, após dificuldades de clientes para pagar boletos, a Febraban alterou o cronograma.

Última fase

Com uma participação de cerca de 40% do total de títulos emitidos no país, os boletos de cartões de crédito e doações têm uma característica em comum: o valor a ser pago pelo consumidor pode não ser exatamente o que consta em cada boleto.

No caso dos cartões, porque há opções de pagamento, como valor mínimo, duas ou três parcelas. No caso das doações, ele também pode escolher um valor diferente do que está impresso no boleto.

Segundo a Febraban, da mesma forma que nas fases anteriores, se os boletos não estiverem cadastrados na base do novo sistema, os bancos irão recusá-los.

Se isso acontecer, o pagador deve procurar o beneficiário, que é o emissor do boleto, para quitar o débito ou solicitar o cadastramento do título.

(Edição: Kleber Sampaio)