npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

impostos-brasil

v1.3.0

Published

Esta biblioteca simplifica os calculos dos impostos INSS e IR do Brasil

Downloads

1,823

Readme

impostos-brasil

Package codecov License

Uma biblioteca TypeScript robusta e fácil de usar para calcular impostos sobre a folha de pagamento (CLT) no Brasil, incluindo INSS, IRPF e PLR.

🎯 Propósito

O objetivo desta biblioteca é simplificar o cálculo complexo dos principais impostos brasileiros no contexto do pagador de impostos, que envolvem faixas progressivas, deduções específicas e variações temporais de alíquotas. Ela é ideal para sistemas de RH, calculadoras financeiras ou qualquer aplicação que precise simular o salário líquido e encargos de um trabalhador.

✨ Diferenciais

  • Cálculo Progressivo: Implementação precisa do cálculo "fatiado" por faixas, conforme a legislação vigente.
  • Série Temporal Inteligente: Projeção de múltiplos meses considerando 13º salário, regras de férias (período aquisitivo) e PLR.
  • Gestão de Vigências Cronológicas: Utiliza um mapa especializado (AnoMesAliquotasFaixasMap) para lidar com tabelas históricas de forma precisa.
  • Regras Modernas: Suporte à nova lógica de isenção progressiva (Isenção de R$ 5k e desconto progressivo até R$ 7.350).
  • Deduções Flexíveis: Suporte a deduções de saúde e instrução com recorrência mensal ou anual (com aplicação automática de limites legais).
  • Injeção de Tabelas: Permite sobrepor as tabelas oficiais com mapas de alíquotas customizados para simulações específicas.

🚀 Instalação

npm install impostos-brasil

📚 Documentação da API

  • https://salgueiroso.github.io/impostos-brasil/

💻 Exemplos de Uso

1. Cálculo Simples de INSS

import { calcularINSS, toBRL, toPercent } from 'impostos-brasil';

const resultado = calcularINSS(5000);

console.log(`Valor do INSS: ${toBRL(resultado.vlImposto)}`);
console.log(`Alíquota Efetiva: ${toPercent(resultado.aliquotaEfetiva)}`);
console.log(`Líquido: ${toBRL(resultado.vlLiquido)}`);

2. Cálculo de IRPF

Para o IRPF, é necessário informar a base de cálculo (geralmente o salário bruto menos o INSS e outras deduções).

import { calcularIRPF, toBRL, toPercent } from 'impostos-brasil';

const salarioBruto = 5000;
const baseCalculo = 4450; // Ex: Salário - INSS

const resultado = calcularIRPF(salarioBruto, baseCalculo, true);

console.log(`Imposto Retido: ${toBRL(resultado.vlImposto)}`);
console.log(`Salário Líquido: ${toBRL(resultado.vlLiquido)}`);

3. Simulação de Série Anual (Cenário Completo)

A função calcularSerie permite projetar o ganho anual completo, incluindo variáveis como férias e 13º salário.

import { calcularSerie, Ferias, Meses, TipoRecorrencia,toAno, toBRL, toPercent } from 'impostos-brasil';
const salarioBruto = 10000;
const incluir13 = true;

const resultadoAnual = calcularSerie({
    qtdSeries: 12,
    vlBrutoMensal: salarioBruto,
    incluir13: incluir13,
    incluirFerias: Ferias.IgnorarPrimeiroAno,
    mesFerias: Meses.Setembro,
    deducaoSaude: 0,
    deducaoSaudeRecorrencia: TipoRecorrencia.Mensal,
    deducaoInstrucao: 0,
    deducaoInstrucaoRecorrencia: TipoRecorrencia.Anual,
    mesPLR: Meses.Abril,
    vlPLR: 5000,
    vigenciaAno: toAno(2025),
    vigenciaMes: Meses.Novembro
});


console.log(`Bruto Mensal: ${toBRL(salarioBruto)}`);
console.log(`Bruto Periodo: ${toBRL(resultadoAnual.vlBrutoTotal)}`);
console.log(`INSS Periodo: ${toBRL(resultadoAnual.vlImpostoInssTotal)}`);
console.log(`IRPF Periodo: ${toBRL(resultadoAnual.vlImpostoIrpfTotal)}`);
console.log(`Líquido Periodo: ${toBRL(resultadoAnual.vlLiquidoTotal)}`);
console.log(`Aliquota Efetiva: ${toPercent(resultadoAnual.pAliquotaEfetivaTotal)}`);
console.log(`Imposto Periodo: ${toBRL(resultadoAnual.vlImpostoTotal)}`);

for (let mes of resultadoAnual.meses) {
    console.log(`Mês ${Meses[mes.mes]} (${mes.indice}):`);
    console.log(`  Informacoes: ${mes.informacoesAdicionais}`);
    console.log(`  Salário Bruto: ${toBRL(mes.vlSalarioBruto)}`);
    console.log(`  INSS: ${toBRL(mes.inss.vlImposto)}`);
    console.log(`  Base de calculo IRPF: ${toBRL(mes.irpf.vlBaseDeCalculo)}`);
    console.log(`  IRPF: ${toBRL(mes.irpf.vlImposto)}`);
    if (!!mes.irpfPLR) {
        console.log(`  Base de calculo IRPF PLR: ${toBRL(mes.irpfPLR?.vlBaseDeCalculo ?? 0)}`);
        console.log(`  IRPF PLR: ${toBRL(mes.irpfPLR?.vlImposto ?? 0)}`);
    }
    console.log(`  Salário Líquido: ${toBRL(mes.vlSalarioLiquido)}`);
}

🛠️ Estrutura de Dados

Imposto

Tanto o INSS quanto o IRPF retornam uma interface detalhada:

  • vlImposto: O valor final a ser pago.
  • vlLiquido: O valor líquido após o desconto do imposto sobre o valor bruto.
  • aliquotaEfetiva: A porcentagem real paga sobre o bruto.
  • faixas: Detalhamento de quanto foi cobrado em cada faixa da tabela progressiva.

Para demais propriedades, consultar a interface Imposto na documentação de api em https://salgueiroso.github.io/impostos-brasil/interfaces/Imposto.html

📅 Vigências Suportadas

A biblioteca utiliza tabelas de alíquotas oficiais persistidas em arquivos JSON, permitindo que o motor de cálculo selecione a regra tributária exata de acordo com o ano e mês da simulação.

As constantes com os mapas de faixas são as seguintes:

  • vigenciaFaixasInss
  • vigenciaFaixasIrpf
  • vigenciaFaixasIrpfPLR

Constantes de Vigência:

Você pode consultar os mapas carregados ou verificar os anos disponíveis programaticamente:

import { vigenciaFaixasIrpf } from 'impostos-brasil';

// Lista todos os anos civis que possuem tabelas cadastradas
const anosCobertos = Array.from(vigenciaFaixasIrpf.anos());

As constantes exportadas são: vigenciaFaixasInss, vigenciaFaixasIrpf e vigenciaFaixasIrpfPLR.

⚖️ Aviso Legal e Isenção de Responsabilidade

Esta ferramenta é fornecida apenas para fins informativos e de simulação. Os cálculos gerados por esta biblioteca não devem ser utilizados para fins legais, contábeis ou oficiais.

Os resultados podem variar dependendo de interpretações específicas da legislação, benefícios variáveis ou convenções coletivas de trabalho. Para cálculos legalmente válidos, emissão de guias ou conformidade com a Receita Federal e eSocial, você deve sempre utilizar sistemas oficiais ou consultar um profissional contador habilitado.

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.


Desenvolvido por Acacio Salgueiro