Bem-vindo ao Portal NCM
Bem-vindo ao Portal NCM
Sistema de Validação de Tributação
Este portal foi desenvolvido para facilitar a validação e gerenciamento de NCM (Nomenclatura Comum do Mercosul) com conformidade tributária completa.
Validação NCM
Verifique a conformidade tributária de seus NCMs
Referências
Gerencie referências de tributação no Oracle
| NCM | Emp | Categ | ICMS D% | ICMS F% | Fora ST | Fora Difal | PIS% | COFINS% | IPI% | BC PIS/COF | ICMS Reduz | MVA% | UF Emis | UF Dest | ICMS Inter% |
|---|
✓ Corretos
0
✗ Erros
0
Conformidade
0%
Buscar Referências
Resultado da Busca 0
Consulta IPI
Lista todos os NCMs únicos registrados no Linx e indica se o NCM existe na tabela NCM do Mysql
Resultado IPI 0
Comparação PEC_CLASS_FISCAL → MySQL (registros existentes no MySQL)
Criação de Referência
| NCM | Produtos Linx |
Com Ref. | Pendentes | Regra MySQL | Status |
|---|
Análise de Referência da Matriz
Valida se as referências criadas nas empresas matrizes (3.1 e 1.1) estão em conformidade com o Portal Fiscal. Divergências podem ser corrigidas diretamente.
| NCM | Rev. | Cat. | Tipo | UF | Origem | Mono | PIS/COF (Linx) | Divergências (Linx → Portal) | Status | Ação |
|---|
Análise de Referências entre Filiais
Auditoria PIS/COFINS
Conferência CST Origem x Destino
Validar Monofásico
Compara o regime Monofásico de cada NCM entre o Linx (PEC_CLASS_FISCAL) e o Portal Scardua. Selecione a empresa para iniciar.
| NCM | Descrição | Monofásico no Linx | Monofásico no Portal Scardua | Situação | Ações |
|---|
Documentação do Sistema NCM
Guia completo dos processos e fluxos de trabalho
📌 Visão Geral do Sistema
Objetivo
O Portal NCM é um sistema integrado para gerenciar, validar e manter a conformidade tributária de Nomenclaturas Comuns do Mercosul (NCM) em dois bancos de dados:
- 🗄️ MySQL: Banco de Dados Base com padrões de tributação
- 🗄️ Oracle: Sistema de Referências com regras por revenda/empresa
Arquitetura
SQL BASE (MySQL) ↔ VALIDAÇÃO ↔ REFERÊNCIAS (Oracle) ↔ CORREÇÕES
Funcionalidades Principais
| 🔍 Busca | Localiza NCM em ambos os bancos (MySQL + Oracle) |
| ✅ Validação | Compara padrões base com referências criadas |
| 🔧 Correção | Atualiza referências no Oracle para conformidade |
| 📊 Relatórios | Gera resumos de conformidade tributária |
🔍 Processo de Busca NCM
Novo Endpoint Unificado
O novo endpoint /api/buscar-ncm-completo/:ncm realiza busca integrada em ambos os bancos:
Fluxo de Busca
- Verificação de Entrada: Valida NCM com 8 dígitos
- Busca MySQL: Procura na tabela
ncm- Critério:
codigo_ncm = ? - Retorna: Dados de tributação base (ICMS, PIS, COFINS, IPI, etc.)
- Se não encontrar: Marca como
não encontradomas continua
- Critério:
- Busca Oracle: Procura na tabela
FAT_REF_NCM_COD_TRIB- Critério:
NCM BETWEEN NCM_INICIAL AND NCM_FINAL - Retorna: Todas as referências que cobrem este NCM
- Dados incluem: Empresa, Revenda, Categoria, UF, Tributação Específica
- Critério:
- Consolidação: Retorna objeto com dados de ambos os bancos
Resposta da API
{
"ncm": "12345678",
"busca": {
"mysql": {
"encontrado": true,
"total": 3,
"mensagem": "3 dados de tributação base encontrado(s)"
},
"oracle": {
"encontrado": true,
"total": 5,
"mensagem": "5 referência(s) de tributação encontrada(s)"
}
},
"mysql": [ /*dados base*/ ],
"oracle": [ /*referências oracle*/ ],
"status_geral": "ENCONTRADO"
}
Vantagens
✅ Retorna informação clara do que foi encontrado
✅ Permite análise completa de tributação
📊 Referências Oracle
Tabela FAT_REF_NCM_COD_TRIB
Esta é a tabela principal que armazena as referências de tributação por faixa de NCM.
Colunas Principais
| Campo | Descrição | Exemplo |
|---|---|---|
| EMPRESA | Identificador da empresa (FK GER_EMPRESA) | 1 (Scardua) |
| REVENDA | Código da revenda/filial | '01', '02' |
| NCM_INICIAL | NCM inicial da faixa coberta | 12345600 |
| NCM_FINAL | NCM final da faixa coberta | 12345699 |
| CATEGORIA | Categoria de cliente (FK GER_CATEGORIA_CLIENTE) | '01 - Consumidor' |
| TIPO_TRANSACAO | Tipo de movimento (venda, etc) | '2' |
| UF | Estado de destino (FK GER_UF) | 'MG', 'SP' |
| PCT_PIS / PCT_COFINS | Percentual de impostos | 2.30, 10.80 |
| COD_TRIBUTACAO_ORI/DEST | Código fiscal origem/destino (FK GER_CODIGO_TRIBUTACAO) | 'T001', 'T002' |
Hierarquia de Busca
1. NCM está dentro da faixa (NCM_INICIAL ≤ NCM ≤ NCM_FINAL)
2. E Empresa/Revenda combinados com Categoria e UF coincidem
✅ Processo de Validação
O que é Validação
A validação compara os padrões base (MySQL) com as referências criadas (Oracle) para verificar conformidade tributária.
Critérios de Validação
1. Revenda existe? Busca em GER_REVENDA
2. Padrão existe? Busca na tabela MySQL pelo NCM
3. Dados coincidem? Compara tributação (PIS, COFINS, ICMS, etc)
Status de Validação
| ✓ CORRETO | Referência Oracle conforme com padrão MySQL |
| ⚠️ ALERTA | Pequenas discrepâncias encontradas |
| ✗ ERRO | Referência não encontrada ou dados inconsistentes |
Fluxo Detalhado
- Busca todas as referências Oracle para o NCM
- Para cada referência:
- Valida se empresa/revenda existe
- Busca padrão no MySQL com critérios: NCM + Categoria + Empresa + UF Origem + UF Destino
- Se encontrar: Compara dados tributários
- Se não encontrar: Registra como erro
- Computa resumo: Total ✓, ⚠️, ✗ e percentual de conformidade
🗂️ Banco de Dados
Estrutura MySQL
Tabela Principal: ncm
Armazena padrões base de tributação por NCM, categoria de cliente, empresa e estados.
codigo_ncm (PK) ├─ categoria_cliente ├─ empresa ├─ icms_dentro, icms_fora ├─ pis, cofins, ipi ├─ bc_pis_cof, bc_icms ├─ mva ├─ uf_emissor, uf_destino ├─ aliquota ├─ ativo └─ data_modificado
Estrutura Oracle
Tabelas Relacionadas:
1. FAT_REF_NCM_COD_TRIB (Principal)
EMPRESA (FK GER_EMPRESA) ├─ REVENDA (FK GER_REVENDA) ├─ NCM_INICIAL, NCM_FINAL ├─ TIPO_TRANSACAO (FK FAT_TIPO_TRANSACAO) ├─ CATEGORIA (FK GER_CATEGORIA_CLIENTE) ├─ UF (FK GER_UF) ├─ COD_TRIBUTACAO_ORI (FK GER_CODIGO_TRIBUTACAO) ├─ COD_TRIBUTACAO_DEST (FK GER_CODIGO_TRIBUTACAO) ├─ CODFISCAL_OPERACAO (FK FAT_CODFISCAL_OPERACAO) ├─ PCT_PIS, PCT_COFINS ├─ PCT_MARGEM_LUCRO_NCM ├─ SITUACAO (FK VEI_SITUACAO) └─ (outros campos de base e benefício fiscal)
2. Tabelas de Suporte
GER_EMPRESA: Empresas do grupoGER_REVENDA: Revendas/filiais com UFGER_CATEGORIA_CLIENTE: Categorias de clientesGER_UF: Estados brasileirosGER_CODIGO_TRIBUTACAO: Códigos de tributaçãoFAT_TIPO_TRANSACAO: Tipos de movimentoFAT_CODFISCAL_OPERACAO: CFOPs (Código Fiscal Operação)VEI_SITUACAO: Status de validação
Mapeamento Empresa
| MySQL | Oracle |
| Comercial Scardua | 1 |
| Tração Fort | 2 |
| Porto Livre | 3 |
🔎 Busca de Referências - NCM sem Cadastro
Funcionalidade Principal
A aba "Referências" permite buscar faixas de NCM criadas no Oracle que ainda não possuem cadastro na base MySQL.
Como Usar
- Selecionar Empresa (obrigatório): Escolha entre Comercial Scardua, Tração Fort ou Porto Livre
- Revenda (opcional): Filtrar por uma revenda específica
- Categoria do Cliente (opcional): Selecione uma categoria se quiser refinar a busca
- Operação (opcional): Filtrar por tipo de transação (P21, V21, etc)
- Clique em "Buscar NCM sem Cadastro" para executar a busca
Resultado da Busca
A tabela retorna faixas/ranges de NCM (não NCMs individuais), mostrando:
- Range NCM: Faixa de NCM inicial até final (ex: 27100001 a 27109900)
- Inicial/Final: Números que delimitam a faixa
- Qtd. NCMs: Quantidade total de NCMs nessa faixa
- Empresa/Revenda/Categoria: Informações do filtro
- Status:
- 🟢 Com Cadastro: Pelo menos um NCM da faixa existe no MySQL
- 🔴 Sem Cadastro: Nenhum NCM da faixa foi encontrado no MySQL
📥 Exportar Resultados
O botão "Exportar Sem Cadastro" aparece quando há faixas sem cadastro encontradas. Clique para baixar um arquivo CSV com:
- Todas as faixas que NÃO têm cadastro no MySQL
- Informações completas (empresa, revenda, categoria, operação, UF)
- Arquivo nomeado com timestamp:
ncm-ranges-sem-cadastro-2026-03-16T14-35-20.csv
Fluxo de Dados
1. QUERY ORACLE (FAT_REF_NCM_COD_TRIB) ↓ Obtém faixas de NCM com filtros aplicados └─ Retorna: range(inicial, final), empresa, revenda, categoria, etc 2. QUERY MYSQL (tabela ncm) ↓ Busca todos os códigos registrados para a empresa └─ Retorna: lista de NCMs cadastrados 3. COMPARAÇÃO ↓ Verifica se pelo menos 1 NCM de cada range existe no MySQL ↓ Marca como: COM_CADASTRO (existe) ou SEM_CADASTRO (não existe) └─ Retorna: lista completa de ranges com status 4. APRESENTAÇÃO E EXPORTAÇÃO ↓ Exibe ranges em tabela interativa └─ Permite exportar ranges sem cadastro em CSV
Exemplo de Resposta
{
"erro": false,
"mensagem": "Encontrados 1 range(s) COM cadastro e 0 SEM cadastro",
"filtros": {
"empresa": "1",
"revenda": "1",
"categoria": "20",
"operacao": "P21"
},
"total": 1,
"com_cadastro": 1,
"sem_cadastro": 0,
"total_ncms": 9900,
"resultado_ncm": [
{
"ncm_range": "27100001 a 27109900",
"ncm_inicial": "27100001",
"ncm_final": "27109900",
"quantidade_ncm": 9900,
"empresa": 1,
"revenda": 1,
"categoria": "20 - Grupo Scardua",
"tipo_transacao": "P21",
"uf": "MG",
"status": "COM_CADASTRO",
"amostra_encontrada": "27100001"
}
]
}
⚠️ Observações Importantes
- Ranges vs NCMs Individuais: O sistema retorna ranges (faixas) para melhor performance, não desempacotando cada NCM individual
- Validação de Amostra: Para ranges grande, apenas os primeiros 10 NCMs são verificados para confirmar o status
- Categoria Formatada: Categorias no MySQL incluem descrição (ex: "20 - Grupo Scardua"), então a busca usa LIKE no prefixo
- Performance: Buscas com muitos filtros podem levar alguns segundos dependendo do volume de dados
| Código | Descrição | Calcula ICMS? | Transações vinculadas | Ações |
|---|---|---|---|---|
| Carregando... | ||||
| Nome | Descrição | Códigos vinculados | Ações |
|---|---|---|---|
| Carregando... | |||
Define quais CFOPs aparecem na busca da Criação/Edição de Referência para cada combinação de Tipo de Transação + UF Destino + Categoria de Cliente + CST Destino (Trib. Destino já resolvida), listando explicitamente os códigos de CFOP desejados. Deixe "Qualquer" numa dimensão para ela valer para todos os valores (curinga). Sem nenhuma regra cadastrada para uma combinação, o sistema mostra todos os CFOPs sem restringir (a regra de UF Origem ≠ UF Destino → CFOP de fora do estado continua valendo sempre, independente desta configuração). A alíquota de ICMS não é cadastrada aqui — ela vem sempre do NCM do produto.
| Tipo de Transação | UF Destino | Categoria | CST Destino | CFOP(s) | Ativo | Ações |
|---|---|---|---|---|---|---|
| Carregando... | ||||||
CST (2 dígitos) cuja família não tem variante "com redução de BC" aplicável (suspensão, diferimento, ICMS já retido por Substituição Tributária, outras). Quando a Trib. Origem escolhida tem um desses CST, a Trib. Destino sempre repete o mesmo código, mesmo que o NCM tenha redução de BC cadastrada no Portal.
| CST | Descrição | Ativo | Ações |
|---|---|---|---|
| Carregando... | |||
Quais códigos de CFOP aparecem no seletor "CFOP(s)" da Configuração de CFOP acima — a descrição é buscada em tempo real no Oracle/Linx, não é cadastrada aqui. Cadastre só os códigos que fazem sentido oferecer; nenhum vem pré-configurado.
| CFOP | Ativo | Ações |
|---|---|---|
| Carregando... | ||
Quais códigos de Tipo de Transação aparecem no seletor "Tipo de Transação" da Configuração de CFOP acima — a descrição é buscada em tempo real no Oracle/Linx. Cadastre só os códigos que fazem sentido oferecer; nenhum vem pré-configurado.
| Tipo de Transação | Ativo | Ações |
|---|---|---|
| Carregando... | ||
Regra fixa: a origem da mercadoria (dígito ORIGEM do código de tributação) da Trib. Origem precisa ser igual à da Trib. Destino. Esta tela liga ou desliga essa validação por código de origem — desative um código aqui se ele não deve ser validado.
| Origem (CST) | Descrição | Validação Ativa | Ações |
|---|---|---|---|
| Carregando... | |||