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

Seu IPTU subiu muito? Você pode recorrer e tentar pagar menos em São Paulo

Rubens Chaves/Folhapress
Imagem: Rubens Chaves/Folhapress

Colaboração para o UOL, em São Paulo

08/02/2019 04h00

O reajuste no Imposto Predial e Territorial Urbano (IPTU) de São Paulo, em 2019, foi de 3,5%. Alguns proprietários de imóveis reclamam que terão de desembolsar um valor 50% maior.

A Prefeitura diz que essas pessoas pagarão mais porque saíram da zona de isenção. Pela legislação, imóveis com valor abaixo de R$ 160 mil são isentos de IPTU e até R$ 320 mil recebem descontos. Com um aumento do valor venal em 2018, 90 mil imóveis (2,5% do total) perderam os benefícios.

O reajuste é legal?

Muitos contribuintes de São Paulo souberam apenas em cima da hora que o IPTU havia aumentado. Pela lei, toda mudança no cálculo do IPTU precisa ser aprovada pelos vereadores no ano anterior ao que é cobrado, segundo Bruno Vosgerau, advogado tributarista da Vosgerau & Cunha Advogados. Esse é o princípio da anterioridade anual.

"Essa é uma forma de não pegar as pessoas desprevenidas. Mas, na prática, a lei pode ser aprovada até o último minuto do ano anterior e já valer em janeiro", disse Vosgerau.

Portanto, mesmo sendo divulgado em cima da hora, o reajuste é legal. "Para discutir, o único jeito é apontar algo que a Prefeitura tenha feito de errado. Não tem como brigar por ter sido avisado de última hora", afirmou Gustavo Andrejozuk, sócio da GNBA Advogados.

Para discordar do valor, os especialistas explicam que é preciso seguir alguns procedimentos e reunir documentos. Entenda melhor.

O que fazer se discordar do valor?

Diferentemente do Imposto de Renda (IR), cuja declaração é feita e entregue pelo contribuinte, o IPTU é calculado pela Prefeitura com base nos dados do próprio imóvel, que são públicos. Só depois a conta chega para o proprietário.

"Para reclamar do Imposto de Renda, você troca informações com a Receita, pode argumentar. Já o IPTU tem outro tipo de lançamento. É muito mais limitado o quanto você pode reclamar", afirmou Andrejozuk.

Segundo o especialista, até é possível reclamar do cálculo do IPTU, mas é preciso ter bons argumentos. Em outras palavras, o contribuinte precisa comprovar que a Prefeitura calculou errado o tributo.

Como comprovar que o IPTU está errado?

No caso dos contribuintes que perderam a isenção do IPTU em São Paulo, o principal argumento para discordar do reajuste é comprovar que o valor venal do imóvel é menor que o declarado pela Prefeitura. Para isso, é possível buscar uma empresa do ramo imobiliário e pedir que prepare um laudo apontando quanto a propriedade vale no mercado.

"A ideia do laudo é pegar um especialista que diga qual o valor venal com base na localização, no que tem nos arredores e no valor médio do metro quadrado, considerando área construída ou não", disse Andrejozuk.

Esse documento apenas tem validade quando preparado por uma empresa do ramo. "Não adianta mostrar o preço dos imóveis no Zap Imóveis nem mostrar o áudio de um corretor. É preciso ter algo escrito", disse o advogado.

O laudo comprobatório para imóveis comuns custa, em média, entre R$ 800 e R$ 900.

Como reclamar">var Collection = { "path" : "commons.uol.com.br/monaco/export/api.uol.com.br/collection/economia/noticias/data.json", "channel" : "economia", "central" : "economia", "titulo" : "Economia", "search" : {"tags":"22373"} };