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_ipioumode: 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_pisoumode: specific+aliquota_por_unidade.cofins:aliquota_cofinsoumode: 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:
taxesenviado no payload- catalogo interno por NCM/CEST/UF
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0da4d01298f547263b62ed95c007605bd5b5f5267c867fbd80efdca8a661a200
|
|
| MD5 |
f8f8b23d1e2e5590879b73cc103e07fa
|
|
| BLAKE2b-256 |
a44dd69a2b8508d85f2a22ff33151c6761048cdaba7db17beb6893b906b78bc7
|
File details
Details for the file tributus_engine-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tributus_engine-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20c54ed2b08b0800a05c5d5c4177c1859a95a68c67dc9abda03d37e95b30209c
|
|
| MD5 |
f6b1461b7dbc439335efd5403a20f614
|
|
| BLAKE2b-256 |
6a91f64ead9e21ba5df501e35d2b3de230337e05700beaf768ec0fd050c0695f
|