== IRPF-Livre 2022 r19250 Este é um projeto que usa o código publicado em 2007 pela Receita Federal para criar uma versão Livre do programa para preenchimento de declarações de Imposto de Renda de Pessoa Física, IRPF. Com ele, você vai poder preparar sua declaração de imposto de renda em liberdade, podendo gravá-la em disquete para entrega em agências do Banco do Brasil ou da Caixa Econômica Federal. Agradeço à Receita Federal por publicar o código da versão de 2007 sob a GNU LGPL versão 2 (licença mais visível no IRPF.jar), ainda que tenham "esquecido" de publicar os fontes correspondentes, inclusive das outras bibliotecas LGPL que usaram. De toda forma, publicaram código Java não ofuscado e com informação de debugging, o que permitiu a descompilação quase que completa. Para a versão de 2008, o trabalho foi um pouco maior, pois IRPF2008 é claramente não-Livre, ainda que esteja repleto de ilegalidades. Apesar do ofuscamento e da remoção da informação simbólica, foi possível fazer engenharia reversa suficiente para perceber algumas modificações necessárias para a versão nova, mas a maior parte das atualizações para 2008 pode ser feita meramente comparando os arquivos gerados pelo IRPF-Livre com os gerados pelo IRPF2008. Somente para questões de compatibilidade, como códigos e disposição de informações nos arquivos, foi necessário consultar os arquivos do IRPF2008. O mesmo procedimento vem sendo seguido para as versões dos anos seguintes. Dada a dificuldade de reproduzir exatamente as alterações efetuadas desde a versão de 2007 sem contaminar o IRPF-Livre com os termos de licenciamento não-Livres das versões mais novas, há algum risco de que alguma atualização tenha faltado. O que é certo é que nem todas as funcionalidades adicionadas desde a versão de 2008 foram adicionadas ao IRPF-Livre: ganhos de capital, renda variável, opção de tributação alternativa para rendimentos acumulados, declarações de espólio e de saída definitiva e doações dedutíveis são alguns dos casos ainda não tratados no IRPF-Livre. Se você precisar de alguma dessas funcionalidades para sua declaração, fique à vontade para entrar em contato conosco (veja abaixo), mas não deixe de verificar se o Declara (*), outro Software Livre para preparar declarações de IRPF, já não atende à sua necessidade. (*) https://cascardo.eti.br/blog/Declara/ Para localizar limitações e completar a versão Livre do IRPF, sugiro que se use a versão privativa para o único propósito moralmente legítimo de um software privativo: para o desenvolvimento de um substituto Livre. Isto é, prepare sua declaração utilizando a versão Livre, gere a cópia de segurança e o arquivo para envio, e depois, na versão privativa, restaure a cópia de segurança, modifique alguns valores de modo a forçar um recálculo dos resultados, modifique de volta e finalmente gere os arquivos novamente. Verifique que os arquivos gerados sejam idênticos. Se não forem, há algo errado na versão Livre. Por favor tente criar uma declaração fictícia que reproduza a diferença e envie para softwares-impostos@fsfla.org. Se forem idênticos, você terá certeza de que sua declaração é perfeitamente indistinguível de uma preparada pela versão privativa, e poderá entregá-la com toda a confiança. == Como usar Não há interface gráfica, somente uma interface "linha de comando", introduzida já em 2007. Sabe o quê? Eu a adorei! Pude fazer tudo que sempre quis e o programa não permitia, tipo copiar e ajustar contas bancárias quando um banco compra o outro, substituição global ou parcial de CNPJs, alteração da ordem dos itens para seguir a dos documentos recebidos, etc. Então... Rodando algo tipo gij -jar irpf-livre-cl.jar (pode trocar gij pelo interpretador Java de sua preferência; funciona bem com o IcedTea também), você vai receber uma mensagem de ajuda que indica os comandos disponíveis. Como a gente vai usar bastante esse comando, sugiro criar uma função shell, um alias, um script, seja o que for: irpf () { gij -jar irpf-livre-cl.jar $1 @CPF@; } Por exemplo, o comando shell acima vai permitir que você execute comandos como 'irpf comando', e ele já vai passar seu CPF implicitamente (supondo que você substituiu @CPF@ acima pelo seu CPF, né? :-) Vou supor daqui pra frente que você fez algo nessa linha. A ideia é usar comandos para criar uma declaração nova: irpf nova ou importar uma declaração do ano passado: irpf importa Se você criar uma declaração do zero e depois resolver importar uma com o mesmo cpf, ou vice-versa, ele vai dar erro. Use: irpf remove antes que a importação ou a criação funcione. Nos dois casos, ele vai criar um arquivo que representa a declaração em aplicacao/dados/@CPF@/@CPF@.xml. Naturalmente, pro segundo você vai precisar do arquivo de declaração (backup ou gravada para transmissão) e, se quiser, o recibo correspondente, ambos no diretório corrente. O do recibo é em tese desnecessário, pois o número do recibo já está presente no arquivo gerado para envio (sério!) mas, para evitar acidentes, a interface de linha de comando só vai registrar o número de recibo se o arquivo de recibo estiver presente. Note que o número do recibo não era importado na versão 2007 do IRPF-Livre. Atente para o fato de que aplicacao/dados/iddeclaracoes.xml contém informação de identificação (nome, cpf, recibo do ano anterior, etc). Para preservar uma declaração, não basta preservar o arquivo de nome @CPF@.xml. Antes de fazer qualquer coisa, sugiro fazer um backup dessa declaração, até pra poder acompanhar as alterações que você vá fazer: irpf grava Aí, só de farra, tire uma cópia do arquivo xml e vê se o backup volta do mesmo jeito: cp aplicacao/dados/@CPF@/@CPF@.xml copia.xml irpf restaura diff copia.xml aplicacao/dados/@CPF@/@CPF@.xml Tá ganhando confiança, né? Então vamos em frente... === Preenchendo a declaração Então, agora que você já tem um arquivo xml pronto pra preencher, talvez já com dados de uma declaração anterior, mãos à obra. É um arquivinho texto. O chato é a linha longa: não tem quebra de linha alguma no xml gerado. Recomendo passar os arquivos xml através de um filtro pra deixá-los mais bonitinhos antes de sair editando. Pro programa, não faz diferença nenhuma, mas pra nós, humanos, é a diferença entre sair correndo em desespero ou tudo fazer sentido. O que usei pra deixar o xml bonitinho foi xmllint, do libxml2. Tipo assim: xmllint --format aplicacao/dados/@CPF@/@CPF@.xml > decl.xml aí edita o decl.xml. Não precisa se preocupar em fazer as contas, basta ir preenchendo o que está lá. Se você estiver usando versões antigas do gij, não ligue para os "0.,00" (ponto e vírgula um do lado do outro no lugar só da vírgula); não sei por que os dois pontos decimais estão aparecendo, mas eu deixei eles lá e tudo funcionou normal. Melhor não mexer, né? :-) Com o IcedTea, aparece só a vírgula. Quando você tiver editado um pouco e quiser ver no que dá: cp decl.xml aplicacao/dados/@CPF@/@CPF@.xml irpf recalcula mv decl.xml diff.xbk xmllint --format aplicacao/dados/@CPF@/@CPF@.xml > decl.xml diff -U0 decl.xbk decl.xml Viu só?, ele já atualiza os valores calculados a partir de outros. Legal, né? Pode também verificar que as coisas que você editou entraram no arquivo de declaração: diff -U0 @CPF@-IRPF-A-2022-2021-ORIGI.{BAK,DBK} Se for declaração retificadora, substitua ORIGI por RETIF. ==== Códigos e listas Então... Editar o xml é relativamente fácil quando você sabe o que está fazendo. O duro é quando você não sabe. Tipo, no caso de campos em que entram códigos, ou listas cujos componentes você nem tem ideia. Sobre os códigos, a dica é procurar dentro do .jar (use o Emacs para abri-lo como zip, ou expanda o conteúdo) algum arquivo .xml relacionado, como tipoBens.xml ou tipoPagamentos.xml. São neles que as tabelas de códigos estão descritas. Pode haver descrições mais legíveis em help/html. Veja help/index.xml (como arquivo texto) para uma lista dos tópicos e os respectivos arquivos html (target=), ou abuse do grep help/html, mas tenha em conta que as informações lá se aplicam ao programa privativo de liberdade da Receita Federal de 2007. Quanto aos quadros auxiliares, sempre que houver alguma entrada do tipo: para preencher, troque por: (atente para o fato de que a barra antes do primeiro sinal de maior foi removida) Aí use o recalcula e você vai ver que ele expandiu o item pra você com todos os campos disponíveis. Bacana, né? :-) Nem todos os campos são necessários. De fato, em quase todos os quadros auxiliares com ItemQuadroOutrosRendimentos em tipoItens, o campo especificacao é descartado. Na dúvida se faz sentido preencher o campo, experimente colocar alguma coisa, gravar e restaurar. Se o conteúdo desaparecer, com certeza não precisa preencher. Especialmente na lista de bens, há vários campos que até são preservados, mas que não são necessários, ou até que devem ser deixados em branco. Sinto muito, não implementei a lógica para decidir quais campos descartar. Basicamente, os campos relacionados a endereço, matrícula, registro, área, etc, só devem ser preenchidos para imóveis; os de agência, conta e contaDV, só para contas correntes e poupança, mas não para aplicações financeiras. Na dúvida, veja quais informações o programa da Receita Federal solicita no quadro correspondente, e desconsidere as demais. Pelo menos no caso específico de pagamentos, o programa privativo prefere-os ordenados por tipo, e parece depender dessa ordem para identificar corretamente os maiores beneficiários de despesas médicas no header da declaração (NR_BASE_BENEF_DESP_MED_{MAIOR,DOIS}). === Identificação da Máquina, ou do IRPF-Livre A versão final do IRPF2010 passou a preencher o campo ENDERECO_MAC com o endereço físico (MAC) de rede de uma interface de rede externa e operante no momento da gravação da declaração. Somente máquinas virtuais Java superiores a 1.6 oferecem a funcionalidade necessária para determinar esse endereço. Ao invés de exigir que usuários do GNU Interpreter for Java (como eu) abandonem essa plataforma, decidi deixar que o usuário escolha o endereço a informar. Você DEVE preencher o campo enderecoMAC na identificação da declaração, no arquivo aplicacao/dados/iddeclaracoes.xml, se quiser obter arquivos idênticos aos do IRPF privativo. Ouvi relatórios de que deixá-lo em branco faz com que o arquivo seja rejeitado pelo programa de envio, apesar de não fazer sentido exigir que a máquina usada para preencher a declaração esteja conectada à Internet, ou mesmo tenha interfaces de rede. O divertido é que dá pra usar esse campo enderecoMAC para mandar uma mensagem à Receita Federal, usando 12 caracteres hexadecimais maiúsculos quaisquer, por exemplo, "C0DECAFEBABE", "00171BE0DADE", "001F8EED0300", ou "0E13370E1337". Em 2011, mandei por engano com "001F8EEDO300" (note a letra O, em vez de zero) e funcionou, então pode ser que continue aceitando outros caracteres! Desde 2013, tenho identificado as declarações com "ARECEITAFEDE" no enderecoMAC. === Roteiro mais comum Se você está começando uma declaração do zero, preencha as entradas em "contribuinte", em aplicacao/dados//.xml, e nome em aplicacao/dados/iddeclaracoes.xml; se houver importado uma declaração do ano anterior, ou restaurado uma declaração do mesmo ano, apenas verifique se os dados importados continuam corretos e, se necessário, ajuste "enderecoDiferente" em aplicacao/dados/iddeclaracoes.xml. Se a declaração incluir dependentes, liste-os sob "dependentes". Se incluir alimentandos, liste-os sob "alimentandos". Se você ou dependentes forem trabalhadores assalariados contratados por pessoa jurídica, preencha a coleção apropriada sob "rendPJ". Lance os rendimentos isentos informados por bancos no quadro apropriado sob "rendIsentos", ou nos campos não iniciado por "total". Veja quando e como preencher "indiceDoBem" logo a seguir. Lance rendimentos tributados exclusivamente na fonte (exceto os décimos terceiros salários, já lançados) nos quadros ou campos sob "rendTributacaoExclusiva". O campo "indiceDoBem" só precisa ser preenchido para alguns tipos de rendimentos (os que são detalhados em fichas 84, 86 e 88). Na dúvida, preencha com alguma coisa e, se o dado desaparecer ao gravar e restaurar, é porque não é necessário. Mas preencher com quê? Com a chave atribuída ao bem (veja AChava abaixo). A verificação de pendências alerta caso o conteúdo de nomeFonte não conste da discriminação do bem, como indício de que a chave esteja incorreta. Se tiver pagamentos que possam ser abatidos, lance-os sob "pagamentos". Preencha o tipo com T se o pagamento for referente ao titular, ou D se for do dependente ou alimentando, e aí nomeie o dependente ou alimentando em "dependenteOuAlimentando". Liste os bens que devem ser declarados sob "bens" ou, se houver importado uma declaração do ano anterior, verifique ou lance os valores atualizados. O campo AChava não deve ser preenchido; ele armazena a chave do bem quando do último recálculo. O comando recalcula preenche-o, atribuindo a cada bem uma chave correspondente à sua posição na lista, contando a partir de 1. A presença dessas chaves ajuda a preencher os quadros auxiliares que precisam fazer referência às chaves dos bens, mas cuidado: as chaves reais dos bens correspondem à sua posição na lista, e recalcula não modifica chaves de bens em quadros auxiliares, apenas armazena no campo AChava o índice correspondente à posição do bem. Por isso o campo não se chama AChave, mas AChava: é a chave que o recalcula achava que o bem teria, se permanecesse na posição em que estava. Se você reordenar, inserir ou remover bens, as chaves subsequentes mudam, e se já houver preenchido quadros auxiliares usando o que AChava que fossem as chaves, vai precisar revisar. Quem sabe um dia haverá funcionalidade para ajustar chaves nos quadros auxiliares... Por enquanto, a recomendação é deixar para preencher os quadros auxiliares que fazem referência a bens depois que a lista de bens estiver estabilizada. Atenção: a codificação de bens mudou para dois níveis (grupo e código) entre IRPF2021 e IRPF2022! A tabela tipoBens.xml tem os novos códigos em COL1, com os códigos dos grupos em COL4. O importador tenta converter, mas alguns códigos (26, 47, 53, 54, 59, 62, 69, 72, 74, 96) não têm correspondente único ou óbvio. Recomendo verificação geral. Observação: há espaço para várias outras informações, tais como rendimentos provenientes de pessoa física, do exterior, imposto pago no exterior, dividas, e esses têm alguma chance de funcionar. Outros têm menos chances, pois não os tenho sequer testado ao longo dos últimos mais de 10 anos de atualizações, mas vai que funcionam! Outras novidades que pareçam implementadas incompletamente provavelmente estão mesmo. Se precisar declarar algo envolvendo essas funcionalidades menos comuns, recomendo fazer a verificação detalhada (veja abaixo); mesmo assim, pode ser que acabe precisando usar outro programa, como o já mencionado declara. Recalcule, solicite o resumo e, se for o caso, altere a opção "tipoDeclaracao" entre completa (0) e simplificada (1) no arquivo aplicacao/dados/iddeclaracoes.xml. Se houver imposto a restituir, preencha "banco" (código numérico), "agencia", "contaCredito", "dvContaCredito" e "contaTipo" (1 = conta corrente, 2 = conta poupança, 3 = conta pagamento, 4 = pix) se desejar, para que a restituição, uma vez aprovada, seja depositada nesse banco. Já se houver imposto a pagar, se já for tarde demais para débito automático da primeira quota ou quota única, o IRPF-Livre consegue gerar os números do código de barras para pagamento eletrônico da quota única, ou da primeira quota, até o vencimento. irpf darf Se houver interesse em parcelar, recomendo habilitar o débito automático para as demais, mas nunca testei. Para testar, ative "debitoAutomatico", escolha "numQuotas" (incidem juros sobre quotas posteriores à primeira) e preencha "indicadorPrimeiraQuota" se estiver declarando cedo o suficiente para que até a primeira quota possa ser debitada automaticamente e boa sorte ;-) Preencha "numerocReciboDecAnterior" com o número do recibo da declaração anterior, se não for uma declaração retificadora. A importação já preenche esse campo, se o arquivo de recibo de entrega estiver junto ao da declaração. OU preencha o número do recibo da declaração a ser retificada em "numReciboDecRetif", e marque declaracaoRetificadora com 1. Preencha o "enderecoMAC" em aplicacao/dados/iddeclaracoes.xml, grave, verifique e prepara a declaração para entrega. Se desejar fazer uma verificação mais detalhada, restaure algum dos arquivos gravados no programa da Receita Federal, verifique que os totais do resumo conferem, grave a declaração e compare os arquivos gravados. Se você preencheu o "enderecoMAC" com o endereço físico de rede da sua máquina com o mesmo valor identificado pelo programa da Receita Federal, os arquivos devem ser idênticos. Se não forem, pode ser que você tenha preenchido campos demais na declaração de bens, ou podem ter sido inseridos zeros na frente de algum campo (vi isso acontecer em Renavan informado com menos de 11 dígitos), ou pode ser que tenhamos um erro. Diferenças na primeira linha normalmente são consequência de diferenças nas demais, então concentre-se nas demais para tentar identificar a razão das diferenças. Se não conseguir, entre em contato. === Finalizando Então, depois de vários ciclos de edição, você acha que tá tudo pronto, né? Não custa dar uma verificadinha: irpf verifica Se houver pendências, fatais ou não, ele vai avisar. Se você por acaso extraiu manualmente um arquivo de recibo com apenas 10 dígitos, o sistema vai acusar que o número é inválido. Há um comando para calcular os dígitos verificadores: irpf calculaDV Aí, pode ser hora de ver se é melhor fazer declaração completa ou simplificada. Há um comando que diz quanto tem a pagar ou a receber como restituição, com a opção de modelo escolhida, mas avisa se a opção não for a mais vantajosa: irpf resumo Feitas correções e alterações finais (ou não), pode gravar cópias de segurança, restaurá-las, ou preparar a declaração para entrega, com os seguintes comandos: irpf grava irpf restaura irpf prepara Para transmitir o @CPF@-IRPF-A-2022-2021-ORIGI.DEC para a Receita Federal, recomenda-se o uso do programa rnetclient (*), um Software Livre desenvolvido pelo nosso amigo Thadeu Cascardo para cumprir a função do programa de envio privativo recomendado pela Receita Federal. Infelizmente, não existe mais a opção de entregar em disquete ou pendrive nas agências da Receita Federal, do Banco do Brasil ou da Caixa Econômica Federal. (*) http://git.cascardo.info/?p=cascardo/rnetclient.git;a=summary Se por acaso o servidor da Receita Federal se recusar a receber sua declaração preparada pelo IRPF-Livre do ano, pedindo para atualizar a versão do programa gerador, mesmo que não haja versões mais novas do IRPF-Livre para aquele ano, tem jeito e não é difícil contornar. Basta editar o arquivo aplicacao.properties, que fica em res/ na árvore de fontes e na raiz do irpf-livre-cl.jar (experimente rodar "emacs irpf-livre-cl.jar" e surpreenda-se com a facilidade para editar arquivos dentro de um .zip, se já não estiver acostumado com ela ;-). Para ajustar a versão do programa, basta mudar as linhas que definem versao, versao_txt e release; a que realmente importa, porque vai no arquivo gerado, é versao_txt. Na versão 1.0, era 100; na versão 1.5, passou para 150. Isso deve bastar para que o programa receptor de declarações reconheça sua declaração como gerada por um programa atualizado. Normalmente não é um problema, pois não tem havido mudanças de formato versões do mesmo ano. Se houver, você logo saberá, se o extrato de processamento da declaração avisar que não conseguiu descompactar sua declaração ou alguma mensagem igualmente não aplicável. Na dúvida, não custa baixar as versões .zip/.jar do IRPF privativo de liberdade e comparar (mecanicamente; são grandes) os arquivos mapeamentoTxt.xml dentro do irpf.jar ali empacotado. --- Tanto o IRPF-Livre quanto o rnetclient foram desenvolvidos e são mantidos com grandes esforços de engenharia reversa. Isso não deveria ser necessário. Não há razão para que os formatos de arquivo sejam documentados de forma insuficiente para a implementação de programas equivalentes, nem para que os protocolos de envio sejam secretos. Todas as funcionalidades necessárias para cumprir essas funções estão hoje disponíveis em implementações Livres. Mesmo assim, a Receita Federal continua criminosamente sustentando, em diversos pedidos de acesso à informação, que o código fonte dos programas que ela oferece contém informação que poderia comprometer a segurança dos dados fiscais sob sua custódia. O SERPRO, que desenvolve os programas e mantém as bases de dados, não só desmentiu, como afirmou que não há razão para que contenham tal informação, que seria uma falha se contivesse, e que, mesmo que contivesse algo nessa linha, não permitiria acesso às informações, pois os mecanismos de guarda são bastante mais elaborados do que essa simplificação presume. Cabe a nós, cidadãos, pressionar a Receita Federal e os órgãos de fiscalização para que cumpram sua obrigação de transparência, ao invés de se valer de mentiras para evitá-las. Então, protocole em http://acessoainformacao.gov.br/ um pedido ao Ministério da Fazenda do código fonte do IRPF, do ReceitaNet e dos demais programas da Receita Federal, para ajudar a pressionar. São também bem-vindas contribuições para a FSFLA, para ajudar a manter nossos esforços, inclusive a manutenção deste programa. Nesta linha, seriam particularmente valiosas ofertas de aconselhamento jurídico ou de fundos para custear ações judiciais para que se dê transparência ativa à informação relativa a esses programas, de modo a facilitar o desenvolvimento de equivalentes Livres, ou, ainda melhor, que os programas sejam oferecidos pelo próprio governo como Software Livre. Entre em contato com membros do conselho da FSFLA através do endereço de email info@fsfla.org. === Imprimindo Em tese, tem código que poderia permitir a impressão da declaração e do recibo, mas não consegui fazer funcionar :-( Creio que o problema seja causado por diferenças de versão entre as bibliotecas utilizadas no programa original e as que baixei para substituí-las. Infelizmente a Receita Federal se recusa a informar sequer quais versões dessas bibliotecas Livres foram utilizadas, e desisti de descobrir por conta própria. Se alguma boa alma se animar a arrumar isso (quem sabe eu mesmo), vamos poder imprimir as declarações e os recibos, se bem que uma porção de coisas terá de ser atualizada, pois o código de impressão ainda é de 2007! Se não, quando alguém pedir a declaração ou o recibo, a gente imprime o xml ou o par .DEC/.REC mesmo. Certo? Afinal, os formatos são (parcialmente) públicos :-) Se você quiser ajudar, rode: svn co https://www.fsfla.org/svn/fsfla/software/irpf-livre-2022 ou git svn clone https://www.fsfla.org/svn/fsfla/software/irpf-livre-2022 e mande patches, sugestões, comentários ou relatórios de problemas para softwares-impostos@fsfla.org. É preciso se inscrever antes em http://www.fsfla.org/mailman/listinfo/softwares-impostos/ Para outras notícias, consulte meu microblog, blog e/ou página: https://identi.ca/lxoliva http://www.fsfla.org/blogs/lxo/ http://www.fsfla.org/~lxoliva/ Pode haver versões mais novas, ou versões atualizadas para retificar declarações antigas, em: https://www.fsfla.org/~lxoliva/snapshots/irpf-livre Faça bom uso! -- Alexandre Oliva == Histórico Os números após o "r" abaixo são o identificador da versão dentro no nosso repositório Subversion. Tipo, svn co -r3330 vai baixar os fontes da versão r3330. Versões anteriores estão em outro local do repositório. === r19250 Atualizado para IRPF2022 1.8. Modificado código da versão. Ajustada a lista de países. === r18760 Atualizado para IRPF2022 1.6. Adicionados email, celular e informação sobre se o dependente resite com o titular da declaração. Adicionada descrição para pagamentos. Adicionado CPF Vinculado para alimentandos. Adicionado índice/chave do bem no quadro auxiliar de rendimentos, e um campo que guarda os índices atribuídos a cada bem pelo comando recalcula. Adicionados grupos de códigos de bens, CIB de imóvel rural, CEI/CNO de construção. Implementado mapeamento dos códigos de bens na importação de declaração de 2021. Implementada reordenação das fichas de bens por código quando da gravação, com recuperação da ordem anterior à gravação pelas chaves quando da restauração. === r18091 Atualizado para IRPF2021 1.5. Adicionado tipo de conta para receber restituição: 1-Conta corrente, 2-Conta Poupança, 3-Conta pagamento. Adicionada recuperação de email e telefone celular na importação da declaração do ano anterior. Adicionado cálculo e preenchimento de obrigatoriedade de devolução do auxílio emergencial conforme renda tributável declarada. Reagregados pagamentos de despesas médicas (agora inclusive para hospitais e clínicas) para efeitos de cálculo dos maiores beneficiários. === r17548 Atualizado para IRPF2020 1.8. Removidas declaração e dedução de contribuição patronal à Previdência Social de empregado doméstico. Adicionado campo dependente a bens e direitos, a ser preenchido com o CPF do titular ou do dependente se solicitado. Adicionado campo banco a bens e direitos, a ser preenchido com o código do banco em que se mantenha conta corrente (61) ou poupança (41). === r16184 Implementado comando para geração do DARF para quota única/primeira, ainda em 2018, mas nunca empacotado. Atualizado para IRPF2019 1.0. Requer CPF de todos os dependentes e alimentandos. Removido campo registro nos bens. Recupera CPF do cônjuge e NIT na importação da declaração do ano anterior (sugere-se aos casados que tenham usado IRPF-Livre para iniciar declarações de anos anteriores importando declarações passadas que verifiquem se a informação não ficou faltando). Atualizado para IRPF2019 1.5. Gera fichas de resumo e declaração conforme modelo selecionado na gravação de cópias de reserva. Remove duplicata do email da ficha recibo. Desconsidera despesas hospitalares dentre as maiores despesas médicas identificadas na ficha header. === r14876 Atualizado conforme IRPF2018 1.4. Aumentado o campo para número de telefone. Calculada a alíquota efetiva. Reimplementadas as fichas de rendimentos isentos e tributados exclusivamente na fonte. Adicionados vários novos campos às fichas de bens. === r13736 Atualizado conforme IRPF2017 1.1. Ficha de identificação do contribuinte agora contém DDD e número do telefone celular, bem como endereço de email. Implementados quadro auxiliar e fichas de Participação nos Lucros e Resultados, funcionando corretamente apenas para o titular. Preenchido o FILLER3 do HEADER com o Crc32 do CPF do titular. (Obrigado pela dica, Thadeu Cascardo!) === r12844 Atualizado conforme IRPF2016-1.1.zip. Agora se compila diretamente com o ecj, ao invés de seu uso indireto através do gcj; também compile com javac (do IcedTea 1.8), mas aí não roda com gij. Removida a funcionalidade de transporte de valores da declaração do cônjuge, pois a ficha cônjuge não existe mais, agora é só o CPF. Adicionado suporte a rendimentos de aluguéis e outros provenientes de pessoa física; a NIT/PIS/PASEP nas fichas de contribuinte e dependente no exterior; a valor de pagamento anual de dívidas. NÃO FOI ADICIONADO suporte à discriminação de rendimentos referentes a trabalho não assalariado recebidos de pessoa física ou do exterior (carnê-leão), a pagamentos a Funpresp (fundações de previdência complementar de servidores públicos), nem aos novos campos da ficha 31 (Detalhe Pensão), à qual já não tínhamos suporte algum. === r12119 Atualizado conforme IRPF2015-1.0a.zip. Adicionados quadros auxiliares de rendimentos de poupança e de outras aplicações financeiras. Adicionado campo de imposto de renda retido na fonte sobre 13º salário aos rendimentos de PJ para titular e dependentes. === r11952 Corrigido preenchimento do campo IN_PREPREENCHIDA, na ficha 16, usando "0" ao invés do "N". === r11815 Implementado o detalhamento de rendimentos não tributáveis e tributáveis exclusivamente na fonte, lançados como "Outros", auferidos somente pelo titular. Atualizada versão para IRPF2014v1.4. === r11242 Atualizado para 2014, conforme IRPF2014v1.0. Adicionada referência ao rnetclient para transmissão via Internet. === r10308 Reintroduzidos alguns recálculos removidos com a introdução do transporte automático de totais. === r10298 Atualizado conforme IRPF2013v1.1. === r10236 Atualizado para 2013, conforme IRPF2013v1.0. Importação de declaração anterior agora preserva fontes pagadoras e beneficiários de pagamentos. Adicionado campo para declarar rendimento isento proveniente de restituição de IRPF; outros tipos novos de rendimentos isentos não foram adicionados. Tampouco foi implementada a nova infraestrutura para declarar doações dedutíveis. Por outro lado, o transporte de vários totais, inclusive os dos quadros auxiliares, agora é automático. === r10209 Corrigido erro na geração de declarações simplificadas: havia faltado preencher um novo campo. Atualizados os comentários. === r8561 Atualizado para 2012, conforme IRPF2012v1.0. Implementado o comando resumo. === r7853 Atualizado conforme IRPF2011v1.0. Não foram adicionadas funcionalidades para rendimentos recebidos acumuladamente, nem para declarações de saída definitiva do país. A novidade positiva é que, na importação de declarações do ano anterior, bens cujos valores não mudaram de um ano para o outro terão o valor transportado automaticamente. Integrada primeira contribuição externa, para aceitar pontuação em CPFs dados na linha de comando. === r6675 Novos comandos recalcula e conjuges. Faz recálculo automático do resultado do cônjuge, dos totais de rendimentos isentos e tributados exclusivamente na fonte. === r6674 Atualizado conforme versão final do IRPF2010. Adiciona preenchimento opcional, com conteúdo à escolha do usuário, do campo ENDERECO_MAC. === r6622 Atualizado para 2010. === r4952 Atualizado para 2009. === r4871 Rejeita número de recibo inadequado para a declaração, seja retificadora ou não. === r4715 Adiciona facilidades para obtenção de número de recibo no momento da gravação da declaração e para cálculo dos dígitos verificadores de recibos do ano anterior e de declaração a retificar. === r3397 O programa não capota mais ao ser executado sem argumentos. Reportado por Claudio "Patola" Sampaio. Menção implícita à versão 2007-r3373, para retificar declarações de 2007. === r3330 Primeira versão experimental para 2008. Já funciona com a minha declaração, gerando um arquivo igualzinho ao do IRPF2008 da Receita Federal. A declaração gerada com esta versão foi entregue com sucesso dia 2008-04-28, na Agência 4259-5 do Banco do Brasil. === r1003 Corrige um erro na geração de declaração para envio. A única diferença entre a versão que eu usei pra preparar minha declaração e esta que publiquei é que eu atualizei este arquivo com o histórico. === r987 Todas as funcionalidades exceto impressão estão contempladas. === r976 Primeira versão com interface de linha de comando, ainda com muitas limitações. === r952 Primeira versão livre publicada empacotada, com binário que talvez rodasse com interface gráfica em máquinas virtuais Java privativas. Aparentemente, nem isso :-( == Legalidades Copyright 2007-2021 FSFLA Alexandre Oliva IRPF-Livre é Software Livre; você pode redistribuir e/ou modificar a maior parte dele de acordo com os termos da GNU Lesser General Public License publicada pela Free Software Foundation; tanto a versão 2.1 dessa licença, quanto (à sua escolha) qualquer versão posterior. Alguns componentes podem ser distribuídos e/ou modificados de acordo com outras licenças, incluídas no executável e consolidadas no arquivo list/licenses nos fontes. IRPF-Livre é distribuído na esperança de que ele seja útil, mas SEM QUALQUER GARANTIA; até mesmo sem qualquer garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a GNU Lesser General Public License para mais detalhes. Você deve ter recebido uma cópia da GNU Lesser General Public License junto com IRPF-Livre; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. Veja uma tradução não oficial da licença em http://creativecommons.org/licenses/LGPL/2.1/legalcode.pt IRPF-Livre is free software; you can redistribute and/or modify most of it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Some components can be distributed and/or modified under different licenses, included in the executable and consolidated in the file list/licenses in the source tree. IRPF-Livre is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with IRPF-Livre; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.