Rotina: Fiscal e SPED
Apuração de impostos (ICMS, PIS/COFINS, IPI), geração de obrigações acessórias (SPED Fiscal, SPED Contribuições, GIA, REINF) e envio ao fisco.
Módulos Delphi
| Arquivo | Papel |
|---|---|
source/RFC001/URFC001.pas | Apuração de ICMS mensal |
source/RFC002/URFC002.pas | Geração do arquivo SPED Fiscal (EFD-ICMS/IPI) |
source/RFC003/URFC003.pas | Geração do SPED Contribuições (EFD-PIS/COFINS) |
source/RFC004/URFC004.pas | GIA (Guia de Informação e Apuração de ICMS) |
source/RFC005/URFC005.pas | REINF (Escrituração de Rendimentos e Retenções) |
source/MFC016/UMFC016.pas | Escrituração fiscal — lançamentos manuais |
source/TFA001-TFA085/ | Telas de faturamento (NF-e, CT-e) que alimentam a escrituração |
Tabelas do Banco de Dados
GIAICMS — Apuração Mensal de ICMS
DDL: docs/schema/tables/GIAICMS.sql
Chave primária: (CD_EMPRESA, NR_MES, NR_ANO)
| Campo | Tipo | Descrição |
|---|---|---|
| NR_MES | SMALLINT | Mês de apuração |
| NR_ANO | SMALLINT | Ano de apuração |
| VL_DEBITO_PROPRIO | NUMERIC(15,2) | Débito de ICMS próprio (saídas) |
| VL_DEBITO_ST | NUMERIC(15,2) | Débito de ICMS-ST (responsabilidade de substituição) |
| VL_CREDITO_ENTRADAS | NUMERIC(15,2) | Crédito de ICMS nas entradas |
| VL_CREDITO_OUTROS | NUMERIC(15,2) | Outros créditos (transferência, incentivo fiscal) |
| VL_SALDO_ANTERIOR | NUMERIC(15,2) | Saldo credor do mês anterior |
| VL_SALDO_DEVEDOR | NUMERIC(15,2) | ICMS a recolher (= Débito − Crédito) |
| VL_SALDO_CREDOR | NUMERIC(15,2) | Saldo credor transportado para próximo mês |
| VL_ESTORNO_DEBITO | NUMERIC(15,2) | Estornos de débito no período |
| VL_ESTORNO_CREDITO | NUMERIC(15,2) | Estornos de crédito no período |
| ST_APURACAO | CHAR(1) | 'A'=Aberta, 'F'=Fechada/Transmitida |
| DT_APURACAO | TIMESTAMP | Data de fechamento |
| CD_USUARIO | VARCHAR(5) | Usuário que fechou |
CST — Código de Situação Tributária
DDL: docs/schema/tables/CST.sql
Chave primária: (CD_CST, TP_IMPOSTO)
| Campo | Tipo | Descrição |
|---|---|---|
| CD_CST | VARCHAR(3) | Código CST (ex: '040', '500', '060') |
| TP_IMPOSTO | CHAR(1) | 'I'=ICMS, 'P'=PIS, 'C'=COFINS, 'Q'=IPI |
| DS_CST | VARCHAR(100) | Descrição (ex: 'Tributada integralmente') |
| ST_CREDITO | CHAR(1) | 'S' = gera crédito na entrada |
| ST_DEBITO | CHAR(1) | 'S' = gera débito na saída |
NCM — Nomenclatura Comum do Mercosul
DDL: docs/schema/tables/NCM.sql
Chave primária: (CD_NCM)
| Campo | Tipo | Descrição |
|---|---|---|
| CD_NCM | VARCHAR(10) | Código NCM (8 dígitos) |
| DS_NCM | VARCHAR(250) | Descrição fiscal do produto |
| PC_IPI | NUMERIC(5,2) | Alíquota de IPI padrão |
| ST_ATIVO | CHAR(1) | 'S'/'N' |
CFO — Código Fiscal de Operação (CFOP)
DDL: docs/schema/tables/CFO.sql
Chave primária: (CD_CFO)
| Campo | Tipo | Descrição |
|---|---|---|
| CD_CFO | VARCHAR(5) | Código CFOP (ex: '5102', '6102', '1202') |
| DS_CFO | VARCHAR(120) | Descrição da operação |
| TP_OPERACAO | CHAR(1) | 'E'=Entrada, 'S'=Saída |
| TP_DESTINO | CHAR(1) | '1'=Dentro do estado, '2'=Outro estado, '3'=Exterior |
| ST_CREDITOICMS | CHAR(1) | 'S' = CFOP gera crédito de ICMS |
| ST_CREDITOPIS | CHAR(1) | 'S' = gera crédito de PIS |
| ST_CREDITOCOFINS | CHAR(1) | 'S' = gera crédito de COFINS |
SPEDAPURACAODEDUCAO — Deduções de PIS/COFINS
DDL: docs/schema/tables/SPEDAPURACAODEDUCAO.sql
| Campo | Tipo | Descrição |
|---|---|---|
| NR_MES | SMALLINT | Mês de referência |
| NR_ANO | SMALLINT | Ano de referência |
| TP_DEDUCAO | CHAR(2) | Tipo de dedução (alinhado às tabelas SPED) |
| VL_DEDUCAO | NUMERIC(15,2) | Valor a deduzir |
| DS_DEDUCAO | VARCHAR(240) | Descrição |
SPEDREINF — Eventos EFD-REINF
DDL: docs/schema/tables/SPEDREINF.sql
| Campo | Tipo | Descrição |
|---|---|---|
| NR_LOTE | INTEGER | Número do lote REINF |
| TP_EVENTO | VARCHAR(10) | Ex: 'R-2010', 'R-2020', 'R-4010' |
| NR_PROTOCOLO | VARCHAR(60) | Protocolo de retorno do governo |
| ST_REINF | CHAR(1) | 'P'=Pendente, 'E'=Enviado, 'R'=Retificado |
| DT_ENVIO | TIMESTAMP | Data do envio |
| DS_ERRO | VARCHAR(4000) | Descrição de erros de validação |
SPEDEMPRESAREGISTRO — Configuração da Escrituração
DDL: docs/schema/tables/SPEDEMPRESAREGISTRO.sql
| Campo | Tipo | Descrição |
|---|---|---|
| DT_INICIAL | DATE | Início do período de escrituração |
| DT_FINAL | DATE | Fim do período |
| TP_ESCRITURACAO | CHAR(1) | 'F'=SPED Fiscal, 'C'=SPED Contribuições |
| TP_INCIDENCIA | CHAR(1) | '1'=Lucro Real, '2'=Lucro Presumido, '3'=Simples |
| ST_ESCRITURACAO | CHAR(1) | 'A'=Aberta, 'T'=Transmitida |
| NR_RECIBO | VARCHAR(60) | Recibo de transmissão |
| CD_AMBIENTE | CHAR(1) | '1'=Produção, '2'=Homologação |
Regimes e Incidências Suportados
| Regime | Tratamento PIS/COFINS | Tratamento ICMS |
|---|---|---|
| Lucro Real (cumulativo) | CST 01–02 — crédito integral | Débito × Crédito |
| Lucro Real (não-cumulativo) | CST 50–99 — sem crédito | Débito × Crédito |
| Lucro Presumido | CST 01–02 cumulativo | Débito × Crédito |
| Simples Nacional | Não gera SPED Contribuições | PGDAS mensalmente |
| MEI | Isento | Isento |
Fluxo de Apuração de ICMS
┌──────────────────────────────────────────────────────────┐
│ 1. ALIMENTAÇÃO (ao longo do mês) │
│ Saídas: ITEMNOTA (TP_NOTA='S') → débito de ICMS │
│ Entradas: ITEMNOTA (TP_NOTA='E') → crédito de ICMS │
│ Cada item tem: PC_ICMS, VL_ICMS, CD_CST, CD_CFO │
│ Devolução: inverte débito/crédito │
└─────────────────────────┬────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ 2. APURAÇÃO MENSAL (RFC001) │
│ SUM(VL_ICMS) por tipo (débito/crédito) no período │
│ VL_SALDO_DEVEDOR = VL_DEBITO − VL_CREDITO − SALDO_ANT │
│ Se positivo: ICMS a recolher → gera DARJ/DARE/GNRE │
│ Se negativo: VL_SALDO_CREDOR → transportado │
│ ST_APURACAO := 'F' │
└─────────────────────────┬────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ 3. GIA (RFC004) │
│ Geração do arquivo GIA (formato estadual) │
│ Obrigação acessória estadual (ex: GIA-SP, GIA-RJ) │
│ Transmitido via site da SEFAZ estadual │
└──────────────────────────────────────────────────────────┘
Fluxo de Geração do SPED Fiscal (EFD-ICMS/IPI)
RFC002 — Geração SPED Fiscal
REGISTRO 0000 (abertura do arquivo)
DT_INICIAL, DT_FINAL, CNPJ, IE, CD_MUN
BLOCO A (serviços — NFS-e)
A001 → A010 (cabeçalho, registros por NFS)
BLOCO C (notas fiscais de mercadorias)
C001 → C100 (NF de entrada/saída)
C110 (observações)
C170 (itens — ITEMNOTA: CD_ITEM, QT, VL, CD_CST, CD_CFO, PC_ICMS)
C190 (totais por CST/CFO/alíquota)
C195 (complemento de operação)
BLOCO D (CT-e e MDF-e)
D001 → D100, D190 (transporte)
BLOCO E (apuração de ICMS e IPI)
E110 (ICMS operações próprias — VL_DEBITO, VL_CREDITO, VL_SALDO)
E111 (ajustes da apuração)
E116 (obrigações a recolher — vencimentos)
E200 (ICMS-ST)
E210–E250 (detalhamento ST por estado)
BLOCO G (CIAP — crédito ICMS ativo imobilizado)
BLOCO H (inventário — INVENTARIO × ESTOQUE)
H005 (data do inventário, VL_TOTAL_ESTOQUE)
H010 (por item: CD_ITEM, QT, VL_UNIT, VL_ITEM)
BLOCO 9 (totalização de registros)
9001–9999
Fluxo de Geração do SPED Contribuições (EFD-PIS/COFINS)
RFC003 — Geração SPED Contribuições
BLOCO 0 (abertura — TP_INCIDENCIA, CNPJ, IE)
BLOCO A (serviços com retenção)
BLOCO C (documentos fiscais de mercadorias)
C100–C190 (NFs de entrada com crédito)
C500 (NF fatura de energia/comunicação)
BLOCO D (transporte)
BLOCO F (operações — créditos extemporâneos, depreciação)
BLOCO M (apuração — centro do arquivo)
M100 (crédito de PIS)
M200 (contribuição PIS — débito − crédito)
M210 (ajustes)
M400 (receitas isentas/não tributadas)
M500 (crédito de COFINS)
M600 (contribuição COFINS)
M800 (receitas isentas COFINS)
BLOCO P (CSLL para PIS/COFINS não cumulativo — Lucro Real)
BLOCO 1 (complementos e informações adicionais)
1020 (SPEDAPURACAODEDUCAO — deduções configuradas)
BLOCO 9 (totalização)
EFD-REINF (RFC005)
Eventos suportados:
| Evento | Conteúdo |
|---|---|
| R-1000 | Informações do contribuinte |
| R-1070 | Tabela de processos administrativos/judiciais |
| R-2010 | Retenção de contribuição previdenciária — serviços tomados |
| R-2020 | Retenção — serviços prestados |
| R-2030 | Recursos recebidos por associação desportiva |
| R-2040 | Recursos repassados a associação desportiva |
| R-2050 | Comercialização da produção rural por produtor |
| R-2060 | CPRB — Contribuição previdenciária sobre receita bruta |
| R-4010 | Pagamentos/créditos a beneficiário pessoa física (IR/ISS) |
| R-4020 | Pagamentos/créditos a beneficiário pessoa jurídica |
| R-9000 | Exclusão de evento enviado anteriormente |
Parâmetros (PARMFISC)
| Parâmetro | Tipo | Efeito |
|---|---|---|
TP_REGIMEFISCAL | CHAR | 'LP'=Lucro Presumido, 'LR'=Lucro Real, 'SN'=Simples Nacional |
ST_APURICMSPROPRIO | S/N | 'S' = apura ICMS próprio; 'N' = substituto tributário |
ST_CREDITOICMSST | S/N | 'S' = permite crédito de ICMS-ST em devoluções |
CD_AMBIENTE_SPED | CHAR | '1'=Produção, '2'=Homologação |
ST_GERAGIA | S/N | 'S' = gera GIA estadual |
ST_GERAREINF | S/N | 'S' = habilita envio do EFD-REINF |
Influências em Outros Módulos
→ Emissão NF-e
- Cada NF emitida alimenta os blocos C/D do SPED
CD_CST,CD_CFO,PC_ICMS,PC_IPIde ITEMNOTA são os dados do SPED
→ Recebimento de Mercadoria
- NFs de entrada alimentam créditos de ICMS/PIS/COFINS na apuração
- Devoluções a fornecedor revertem créditos já escriturados
→ Estoque e Movimentação
- MOVESTOQUE alimenta o Bloco H (inventário físico) do SPED Fiscal
→ Pedido de Venda
- Notas de saída geradas por pedidos alimentam débitos de ICMS e contribuições de PIS/COFINS
→ Transporte — CT-e e MDF-e
- CT-e emitidos compõem o Bloco D do SPED Fiscal
- Retenção de CSLL/IR em fretes alimenta eventos do REINF