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

Datas de pagamento da restituição do IR 2025: veja calendário

Imposto de renda 2025 - Joédson Alves/Agência Brasil
Imposto de renda 2025 Imagem: Joédson Alves/Agência Brasil
do UOL

Colaboração para o UOL

29/05/2025 06h30

As devoluções do Imposto de Renda 2025 terão início no fim de maio.

Cronograma dos lotes de restituição do IRPF

Ao todo, serão liberados cinco grupos de pagamentos, organizados com base em critérios de prioridade. Confira o calendário:

1º lote: 30 de maio

2º lote: 30 de junho

3º lote: 31 de julho

4º lote: 20 de agosto

5º lote: 30 de setembro

Idosos com mais de 80 anos terão preferência na liberação dos valores. Em seguida, vêm os contribuintes com 60 anos ou mais, pessoas com deficiência ou doença grave, profissionais cuja principal fonte de renda é o magistério, além daqueles que utilizaram a declaração pré-preenchida ou optaram por receber a restituição via Pix.

Entrega da declaração do IRPF

O envio das declarações começou em 17 de março e vai até 30 de maio. Segundo a Receita Federal, mais de 10,5 milhões de contribuintes já enviaram o documento.

A isenção do imposto se aplica apenas a quem recebeu, em 2024, até dois salários mínimos por mês (R$ 2.824). A proposta do governo federal que pretende ampliar a faixa de isenção para quem ganha até R$ 5 mil mensais ainda está em tramitação no Congresso e só deve entrar em vigor a partir do próximo ano, caso seja aprovada até lá.

Quem está obrigado a declarar o Imposto de Renda?

Deve apresentar a declaração quem se enquadra em pelo menos um dos critérios a seguir:

Recebeu rendimentos tributáveis (como salários ou aposentadorias) que somaram mais de R$ 33.888 em 2024;

Obteve receita bruta com atividade rural acima de R$ 169.440,00 ou deseja compensar prejuízos nessa atividade;

Possuía, em 31 de dezembro de 2024, bens, direitos ou propriedades (incluindo terra nua) com valor total superior a R$ 800 mil;

ou a residir no Brasil em qualquer mês de 2024 e permaneceu nessa condição até o final do ano;

Teve rendimentos isentos, não tributáveis ou tributados exclusivamente na fonte cuja soma ultraou R$ 200 mil;

Obteve lucro com a venda de bens ou direitos que esteja sujeito à tributação em algum mês;

Realizou transações na bolsa de valores, mercado futuro ou similares com valor acima de R$ 40 mil ou com apuração de lucro tributável;

Optou pela isenção do IR sobre lucro na venda de imóvel residencial, desde que o valor tenha sido usado na compra de outro imóvel no Brasil dentro de 180 dias da venda;

Declarou ativos, bens e obrigações de empresa controlada no exterior como se fossem de sua titularidade direta;

É titular de trust ou contratos similares regidos por legislação estrangeira;

Decidiu atualizar o valor de mercado de seus bens e ativos no exterior;

Recebeu rendimentos de aplicações financeiras, lucros ou dividendos oriundos do exterior;

Atualizou o valor de imóveis em dezembro de 2024 com tributação diferenciada sobre ganho de capital.

Notícias