https://github.com/scemist/fiscalbrasil
Esta biblioteca é uma solução para calcular impostos e todos os valores relacionados sobre vendas no Brasil.
https://github.com/scemist/fiscalbrasil
brasil brazil fiscal impostos nfs notafiscal php php8 tributario
Last synced: 10 months ago
JSON representation
Esta biblioteca é uma solução para calcular impostos e todos os valores relacionados sobre vendas no Brasil.
- Host: GitHub
- URL: https://github.com/scemist/fiscalbrasil
- Owner: Scemist
- License: mit
- Created: 2025-05-25T19:56:26.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-07-05T17:35:26.000Z (about 1 year ago)
- Last Synced: 2025-07-26T13:44:06.386Z (12 months ago)
- Topics: brasil, brazil, fiscal, impostos, nfs, notafiscal, php, php8, tributario
- Language: PHP
- Homepage:
- Size: 49.8 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## O Que é Esta Biblioteca?
Esta biblioteca é uma solução para calcular impostos e todos os valores relacionados sobre vendas no Brasil.
## O Que **não** é Esta Biblioteca?
Esta biblioteca não faz integrações com serviços externos e nem gera notas fiscais eletrônicas (NF-e) diretamente. Ela se concentra no cálculo de tributos e na estruturação dos dados necessários para a emissão de notas fiscais.
# 💡 Como Uso?
Gerando um pedido com dois itens
```php
addItem(new ItemPedido(
nome: 'Guitarra Stratocaster',
preco: 1099.0,
quantidade: 1,
unidade: Unidade::UNIDADE,
ncm: new NCM('9207.90.10'),
cst: new CST('000'),
cfop: new CFOP('5102'),
));
$pedido->addItem(new ItemPedido(
nome: 'Pedal de Efeito',
preco: 399.0,
quantidade: 2,
unidade: Unidade::UNIDADE,
ncm: new NCM('9207.90.90'),
cst: new CST('000'),
cfop: new CFOP('5102')
));
# Utilizando os Dados Gerados
$notaFiscal = $pedido->getNotaFiscal();
echo
'Subtotal: ', $notaFiscal->getSubtotal(), PHP_EOL,
'ICMS: ', $notaFiscal->getICMS(), PHP_EOL,
'IPI: ', $notaFiscal->getIPI(), PHP_EOL,
'Total com Impostos: ', $notaFiscal->getTotalComImpostos(), PHP_EOL,
'Nota Fiscal:', PHP_EOL,
$notaFiscal->getXml(), PHP_EOL;
```
## 🚀 Resultado
```
Subtotal: 1897,00
ICMS: 227,64
IPI: 94,85
Total com Impostos: 2219,49
Simples Nacional
SP
MG
2025-05-26T01:34:33+00:00
1897.00
227.64
Guitarra Stratocaster
1
1099.00
131.88
54.95
0.00
0.00
Pedal de Efeito
2
399.00
95.76
39.90
0.00
0.00
```
# 📝 Quais os Requisitos para Usar?
Para o correto cálculo de impostos no Brasil, algumas informações são obrigatórias e esta biblioteca não pode inferir automaticamente. Você precisará informar.
Dividimos essas informações em três grupos:
### 🏢 **Empresa**
Informações sobre sua própria empresa, como:
* Regime tributário (Simples Nacional, Lucro Presumido etc.)
* Estado de origem da mercadoria
Esses dados são informados ao criar o **Pedido**.
### 👤 **Cliente**
Informações sobre o destinatário da nota fiscal:
* Tipo de pessoa (Física ou Jurídica)
* Estado de destino
* Se é consumidor final
* Se é contribuinte de ICMS ([Consulta se Tem IE no Destino](https://www.consultaie.com.br/))
Também informadas ao criar o **Pedido**.
### 📦 **Produto**
Informações fiscais fixas sobre o produto:
* **NCM** (Classificação Fiscal)
* **CEST** (se aplicável)
* **Origem da mercadoria**
* **Aplica IPI?**
* **Aplica ST (Substituição Tributária)?**
Essas informações devem estar cadastradas no banco de dados e são utilizadas automaticamente ao criar os **itens do Pedido**.
## 🧾 Exemplos de Cadatros
Na pasta `exemplos/`, você encontrará arquivos JSON simulando a estrutura das tabelas `produtos` e `pedidos` com todos os campos obrigatórios. Eles servem como referência para seu sistema de cadastro.
## 📃 Onde Encontro Estes Dados ao Fazer o Cadastro do Produto?
* **NCM** (Classificação Fiscal): disponível no site da Receita Federal ou em ferramentas como:
👉 [Portal Classif – Receita Federal](https://portalunico.siscomex.gov.br/classif/#/sumario)
* **CEST**: normalmente derivado do NCM. Se não souber, busque por "CEST \[nome do produto]" ou consulte seu contador.
* **Origem da mercadoria** (Código de origem):
* `0`: Nacional
* `1`: Importado diretamente
* `2`: Importado adquirido de terceiros
* **Aplica IPI?**
* ✅ Sim: se sua empresa fabrica ou importa o produto
* ❌ Não: se apenas revende produtos prontos comprados no Brasil
* **Aplica ST?**
* ✅ Sim: cada estado tem uma Tabela de Produtos Sujeito a Substituição Tributária (ST). Se o produto estiver nessa tabela, marque como sim.
* ❌ Não: se não ou se estiver em dúvida (o sistema pode validar depois)
## ✅ Conclusão
Todos esses campos são **obrigatórios** para que a biblioteca calcule corretamente os tributos e gere a nota fiscal.
Garanta que eles estejam corretamente preenchidos no cadastro de produtos.
# 📍 Status da Biblioteca
> Em desenvolvimento Alpha. Não é recomendada para produção ainda.