Skip to main content

Tributus Engine - Brazilian Tax Engine and Calculator Library

Project description

Tributus Engine (Pacote Python)

Pacote Python da biblioteca Tributus Engine para calculo tributario brasileiro.

Instalacao

pip install .

O que a biblioteca cobre

  • ICMS e CSTs principais
  • FCP e DIFAL
  • IPI
  • PIS e COFINS
  • IBS e CBS
  • Biblioteca de calculo tributario com metodo centralizado via payload JSON
  • Catalogo fiscal por NCM/CEST e UF

Casos de uso

  • Calculo fiscal em ERP
  • API REST de tributacao
  • Simulacao de impacto tributario por produto
  • Cenarios com aliquota manual para homologacao e testes

Uso Rapido

1) Engine simplificada com payload dict

from tributus_engine import TaxEngine

engine = TaxEngine()

payload = {
    "operation": {
        "operation_type": "sale",
        "document_type": "nfe",
        "operation_date": "2026-06-02",
        "issuer_state": "SP",
        "recipient_state": "RJ",
        "issuer_country": "BR",
        "recipient_country": "BR",
        "consumer_final": True,
        "taxpayer_icms": False,
        "presence_indicator": "2"
    },
    "company": {
        "tax_regime": "lucro_presumido",
        "crt": "3",
        "has_pis_credit": False,
        "has_cofins_credit": False,
        "suframa": False,
        "taxpayer_icms": False,
        "taxpayer_ibs": False
    },
    "customer": {
        "state": "RJ",
        "taxpayer_icms": False,
        "consumer_final": True,
        "suframa": False,
        "taxpayer_ibs": False
    },
    "product": {
        "ncm": "22030000",
        "cest": "0300100",
        "origin": "0",
        "fiscal_category": "industrialized",
        "import_content": 0.0,
        "benefit_code": None,
        "is_imported": False,
        "has_st": True,
        "has_monophase": False,
        "is_fuel": False,
        "is_medicine": False
    },
    "values": {
        "quantity": "5",
        "unit_price": "200.00",
        "gross_value": "1000.00",
        "discount_value": "100.00",
        "freight_value": "50.00",
        "insurance_value": "10.00",
        "other_expenses": "20.00"
    }
}

result = engine.calculate_from_dict(payload)
print(result.to_dict())

2) Engine com taxas manuais (taxes)

payload["taxes"] = {
    "enabled": ["ipi", "icms", "fcp", "pis", "cofins", "ibs", "cbs"],
    "rates": {
        "icms": "17.00",
        "pis": "1.20",
        "cofins": "5.40",
        "ibs": "16.00",
        "cbs": "8.50"
    },
    "icms": {
        "cst": "00",
        "aliquota_icms_proprio": "17.00"
    },
    "ipi": {
        "aliquota_ipi": "10.00"
    },
    "pis": {
        "aliquota_pis": "1.20"
    },
    "cofins": {
        "aliquota_cofins": "5.40"
    }
}

result = engine.calculate_from_dict(payload)
print(result.to_dict())

3) Estrutura de taxes suportada

Campos principais aceitos no payload JSON:

  • enabled: lista dos tributos a calcular na sequencia centralizada.
  • rates: aliquotas simples por tributo quando nao houver configuracao mais especifica.
  • ipi: aliquota_ipi ou mode: specific + aliquota_por_unidade.
  • icms: cst, aliquota_icms_proprio, aliquota_icms_st, mva, percentual_reducao, percentual_reducao_st, percentual_diferimento, percentual_credito_sn, include_ipi_in_base.
  • fcp: aliquota_fcp, aliquota_fcp_st, aliquota_diferimento_fcp.
  • pis: aliquota_pis ou mode: specific + aliquota_por_unidade.
  • cofins: aliquota_cofins ou mode: specific + aliquota_por_unidade.
  • ibs: aliquota_efetiva_percentual, percentual_diferimento.
  • cbs: aliquota_efetiva_percentual, percentual_diferimento.

O retorno consolidado expõe taxes.{nome}.base, taxes.{nome}.rate, taxes.{nome}.amount e total.

4) Consulta de impostos/taxas por NCM/CEST para todas as UFs

taxes_by_state = engine.list_taxes_for_sale_all_states_from_dict({
    "product": {"ncm": "22030000", "cest": "0300100"}
})

print(taxes_by_state["SP"])
print(taxes_by_state["RJ"])

Modo de resolucao de taxas

Prioridade da engine:

  1. taxes enviado no payload
  2. catalogo interno por NCM/CEST/UF
  3. fallback automatico do provider

Na versao atual do metodo centralizado, o fluxo principal esperado e receber as incidencias e aliquotas no proprio JSON. Catalogo/provider continuam como extensoes futuras da superficie publica.

Desenvolvimento

python -m pip install -e .
python -m pytest tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tributus_engine-0.2.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tributus_engine-0.2.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file tributus_engine-0.2.0.tar.gz.

File metadata

  • Download URL: tributus_engine-0.2.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for tributus_engine-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0da4d01298f547263b62ed95c007605bd5b5f5267c867fbd80efdca8a661a200
MD5 f8f8b23d1e2e5590879b73cc103e07fa
BLAKE2b-256 a44dd69a2b8508d85f2a22ff33151c6761048cdaba7db17beb6893b906b78bc7

See more details on using hashes here.

File details

Details for the file tributus_engine-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tributus_engine-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20c54ed2b08b0800a05c5d5c4177c1859a95a68c67dc9abda03d37e95b30209c
MD5 f6b1461b7dbc439335efd5403a20f614
BLAKE2b-256 6a91f64ead9e21ba5df501e35d2b3de230337e05700beaf768ec0fd050c0695f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page