# 🧾 API NFe Flow

Documentação dos endpoints de consulta da API NFe Flow.

---

## 🌍 Endpoint - Consulta de Países

Endpoint responsável por consultar informações de países por meio da view `vw_nfe_flow_paises`, que retorna os dados dos países cadastrados.

> 📥 **GET** `/api/v1/nfe/classificacao/pais/{codigo_pais}`

### 🔎 Parâmetros

* `codigo_pais` → Código do país conforme tabela adotada pela NF-e (ex.: `1058`)

### 🔁 Endpoint alternativo

Consulta por nome do país, utilizando a mesma view `vw_nfe_flow_paises`, com filtro por nome original ou nome normalizado.

> 📥 **GET** `/api/v1/nfe/classificacao/pais/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Nome oficial do país para busca (ex.: `BRASIL`)

### 📦 Resposta

```json
[
  {
    "pais_ibge": "1058",
    "pais": "BRASIL",
    "pais_normalizado": "BRASIL",
    "situacao": "ATIVO",
    "inicio_vigencia": "2006-01-01",
    "fim_vigencia": null
  }
]
```

### ✅ Descrição dos campos

* `pais_ibge` → Código do país utilizado no documento fiscal, conforme tabela adotada pela NF-e/Bacen (ex.: `1058` = `BRASIL`)
* `pais` → Nome oficial do país conforme tabela carregada no projeto
* `pais_normalizado` → Nome do país padronizado pelo projeto em caixa alta e sem acentuação para busca
* `situacao` → Situação do registro na tabela interna da API (`ATIVO` quando disponível para uso)
* `inicio_vigencia` → Data inicial de vigência do registro conforme tabela carregada no projeto
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto

---

## 🗺️ Endpoint - Consulta de Estados

Endpoint responsável por consultar estados por meio da view `vw_nfe_flow_estados`, com filtro por sigla, nome ou nome normalizado.

> 📥 **GET** `/api/v1/nfe/estado/{uf}`

### 🔎 Parâmetros

* `uf` → Sigla do estado para busca (ex.: `SP`)

### 📦 Resposta

```json
[
  {
    "codigo_ibge": "35",
    "uf": "SP",
    "nome_uf": "São Paulo",
    "nome_uf_normalizado": "SAO PAULO"
  }
]
```

### ✅ Descrição dos campos

* `codigo_ibge` → Código da UF segundo a tabela do IBGE utilizada pela NF-e (ex.: `35` = `SP`)
* `uf` → Sigla da unidade federativa conforme padrão nacional (ex.: `SP`)
* `nome_uf` → Nome oficial da unidade federativa
* `nome_uf_normalizado` → Nome da UF padronizado pelo projeto em caixa alta e sem acentuação para busca

---

## 🏙️ Endpoint - Consulta de Cidades por UF

Endpoint responsável por consultar cidades a partir do nome da cidade e da sigla da UF, utilizando a view `vw_nfe_flow_municipios`.

> 📥 **GET** `/api/v1/nfe/localidade/estado/{uf}/cidade/{nome_cidade}`

### 🔎 Parâmetros

* `uf` → Sigla do estado (ex.: `SP`, `RJ`)
* `nome_cidade` → Nome da cidade (ex.: `São Paulo`)

### 📦 Resposta

```json
[
  {
    "nome_cidade": "São Paulo",
    "nome_cidade_normalizado": "SAO PAULO",
    "ibge_cidade": "3550308",
    "uf": "SP",
    "nome_uf": "São Paulo",
    "nome_uf_normalizado": "SAO PAULO",
    "ibge_uf": "35",
    "pais": "BRASIL",
    "ibge_pais": "1058"
  }
]
```

### ✅ Descrição dos campos

* `nome_cidade` → Nome oficial do município conforme tabela do IBGE utilizada pela NF-e
* `nome_cidade_normalizado` → Nome do município padronizado pelo projeto em caixa alta e sem acentuação para busca
* `ibge_cidade` → Código do município conforme tabela do IBGE usada no documento fiscal (campo `cMun`)
* `uf` → Sigla da unidade federativa do município
* `nome_uf` → Nome oficial da unidade federativa
* `nome_uf_normalizado` → Nome da UF padronizado pelo projeto para busca
* `ibge_uf` → Código da UF segundo tabela do IBGE (ex.: `35` = `SP`)
* `pais` → Nome do país associado ao município na tabela do projeto
* `ibge_pais` → Código do país utilizado pela NF-e (ex.: `1058` = `BRASIL`)

---

## 📦 Endpoint - Consulta de NCM por Código

Endpoint responsável por consultar informações de NCM (Nomenclatura Comum do Mercosul) a partir do código, utilizando a view `vw_nfe_flow_ncm`.

> 📥 **GET** `/api/v1/nfe/classificacao/ncm/{codigo_ncm}`

### 🔎 Parâmetros

* `codigo_ncm` → Código NCM oficial com 8 dígitos (ex.: `01012100`)

### 📦 Resposta

```json
[
  {
    "ncm": "01012100",
    "descricao": "CAVALOS REPRODUTORES DE RAÇA PURA",
    "descricao_normalizada": "CAVALOS REPRODUTORES DE RACA PURA",
    "ipi": "4.00",
    "unidade_tributavel_exportacao_descricao": "Unidade",
    "unidade_tributavel_exportacao_sigla": "UN",
    "inicio_vigencia": "2026-02-01",
    "fim_vigencia": null
  }
]
```

### ✅ Descrição dos campos

* `ncm` → Código da Nomenclatura Comum do Mercosul utilizado no item da NF-e
* `descricao` → Descrição oficial da NCM conforme tabela vigente utilizada pelo projeto
* `descricao_normalizada` → Descrição da NCM padronizada pelo projeto sem acentuação para busca
* `ipi` → Alíquota de IPI vinculada ao NCM na tabela carregada pela API
* `unidade_tributavel_exportacao_descricao` → Descrição da unidade tributável de comércio exterior vinculada ao NCM
* `unidade_tributavel_exportacao_sigla` → Sigla da unidade tributável de comércio exterior (ex.: `UN`)
* `inicio_vigencia` → Data inicial de vigência do registro utilizado pela API
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto

---

## 🧾 Endpoint - Consulta de CFOP

Endpoint responsável por consultar informações de CFOP (Código Fiscal de Operações e Prestações) a partir do código, utilizando a view `vw_nfe_flow_cfop`.

> 📥 **GET** `/api/v1/nfe/classificacao/cfop/{codigo_cfop}`

### 🔎 Parâmetros

* `codigo_cfop` → Código CFOP oficial com 4 dígitos (ex.: `5102`)

### 🔁 Endpoint alternativo

Consulta por descrição do CFOP, utilizando a mesma view `vw_nfe_flow_cfop`, com filtro por descrição original ou normalizada.

> 📥 **GET** `/api/v1/nfe/classificacao/cfop/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do CFOP para busca (ex.: `VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS`)

### 📦 Resposta

```json
[
  {
    "cfop": "5102",
    "descrição": "VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS",
    "descricao_normalizada": "VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS",
    "aplicação": "VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS",
    "aplicacao_normalizada": "VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS",
    "inicio_vigencia": "1998-07-01",
    "fim_vigencia": null,
    "indnfe": 1,
    "indcomunica": 0,
    "indtransp": 0,
    "inddevol": 0,
    "indretor": 0,
    "indanula": 0,
    "indremes": 0,
    "indcomb": 0
  }
]
```

### ✅ Descrição dos campos

* `cfop` → Código Fiscal de Operações e Prestações conforme tabela oficial de CFOP
* `descrição` → Descrição oficial do CFOP na tabela carregada pela API
* `descricao_normalizada` → Descrição do CFOP padronizada pelo projeto sem acentuação para busca
* `aplicação` → Texto de aplicação do CFOP conforme tabela utilizada no projeto
* `aplicacao_normalizada` → Texto de aplicação padronizado pelo projeto sem acentuação para busca
* `inicio_vigencia` → Data inicial de vigência do registro de CFOP carregado pela API
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto
* `indnfe` → Indica se o CFOP é aplicável à NF-e (`1` = sim, `0` = não)
* `indcomunica` → Indica se o CFOP é aplicável a operações de comunicação
* `indtransp` → Indica se o CFOP é aplicável a operações de transporte
* `inddevol` → Indica se o CFOP caracteriza devolução
* `indretor` → Indica se o CFOP caracteriza retorno
* `indanula` → Indica se o CFOP caracteriza anulação
* `indremes` → Indica se o CFOP caracteriza remessa
* `indcomb` → Indica se o CFOP é aplicável a combustíveis

---

## 🛠️ Endpoint - Consulta de Serviços

Endpoint responsável por consultar serviços detalhados a partir do código do serviço raiz, utilizando a view `vw_nfe_flow_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/{codigo_servico}`

### 🔎 Parâmetros

* `codigo_servico` → Código do item detalhado da lista de serviços (ex.: `1.01`)

### 🔁 Endpoint alternativo

Consulta por código do serviço raiz, utilizando a view `vw_nfe_flow_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/raiz/{codigo_servico_raiz}`

### 🔎 Parâmetros

* `codigo_servico_raiz` → Código do grupo raiz da lista de serviços (ex.: `1`)

### 🔁 Endpoint alternativo

Consulta por descrição do serviço raiz, utilizando a view `vw_nfe_flow_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do serviço para busca (ex.: `Análise e desenvolvimento de sistemas`)

### 📦 Resposta

```json
[
  {
    "codigo_raiz": "1",
    "descricao_raiz": "Serviços de informática e congêneres",
    "descricao_raiz_normalizada": "SERVICOS DE INFORMATICA E CONGENERES",
    "codigo_servico": "1.01",
    "descricao_servico": "Análise e desenvolvimento de sistemas",
    "descricao_servico_normalizada": "ANALISE E DESENVOLVIMENTO DE SISTEMAS"
  }
]
```

### ✅ Descrição dos campos

* `codigo_raiz` → Código do grupo raiz da lista de serviços utilizada no projeto
* `descricao_raiz` → Descrição oficial do grupo raiz da lista de serviços
* `descricao_raiz_normalizada` → Descrição do grupo raiz padronizada pelo projeto sem acentuação para busca
* `codigo_servico` → Código do item detalhado da lista de serviços
* `descricao_servico` → Descrição oficial do item detalhado conforme lista de serviços utilizada no projeto
* `descricao_servico_normalizada` → Descrição do item detalhado padronizada pelo projeto sem acentuação para busca

---

## 🧩 Endpoint - Consulta de Serviços Detalhados

Endpoint responsável por consultar serviços a partir do código do serviço raiz, utilizando a view `vw_nfe_flow_servico_detalhes`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/raiz/{codigo_servico_raiz}/json`

### 🔎 Parâmetros

* `codigo_servico_raiz` → Código do grupo raiz da lista de serviços (ex.: `1`)

### 📦 Resposta

```json
[
  {
    "codigo": "1",
    "detalhes": [
      {
        "codigo": "1.01",
        "descricao": "Análise e desenvolvimento de sistemas",
        "normalizado": "ANALISE E DESENVOLVIMENTO DE SISTEMAS"
      },
      {
        "codigo": "1.02",
        "descricao": "Programação",
        "normalizado": "PROGRAMACAO"
      }
    ]
  }
]
```

### ✅ Descrição dos campos

* `codigo` → Código do grupo raiz da lista de serviços
* `detalhes` → Lista de itens detalhados relacionados ao grupo raiz, contendo:
  * `codigo` → Código oficial do item detalhado da lista de serviços
  * `descricao` → Descrição oficial do item detalhado
  * `normalizado` → Descrição padronizada pelo projeto sem acentuação para busca

---

## 🧱 Endpoint - Consulta de Serviços Raiz Simplificado

Endpoint responsável por consultar serviços a partir do código do serviço raiz, utilizando a view `vw_nfe_flow_captu_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/raiz/{codigo_servico_raiz}/simplificado`

### 🔎 Parâmetros

* `codigo_servico_raiz` → Código do grupo raiz da lista de serviços (ex.: `1`)

### 🔁 Endpoint alternativo

Consulta do serviço raiz por descrição, utilizando a view `vw_nfe_flow_captu_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/raiz/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do serviço para busca (ex.: `Análise e desenvolvimento de sistemas`)

### 📦 Resposta

```json
[
  {
    "codigo_raiz": "1",
    "descricao": "Serviços de informática e congêneres",
    "descricao_normalizada": "SERVICOS DE INFORMATICA E CONGENERES"
  }
]
```

### ✅ Descrição dos campos

* `codigo_raiz` → Código do grupo raiz da lista de serviços
* `descricao` → Descrição oficial do grupo raiz
* `descricao_normalizada` → Descrição do grupo raiz padronizada pelo projeto sem acentuação para busca

---

## 🔧 Endpoint - Consulta de Serviços Simplificado

Endpoint responsável por consultar serviços a partir do código do serviço detalhado, utilizando a view `vw_nfe_flow_detalhe_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/{codigo_servico}/simplificado`

### 🔎 Parâmetros

* `codigo_servico` → Código do item detalhado da lista de serviços (ex.: `1.01`)

### 🔁 Endpoint alternativo

Consulta de serviço detalhado por descrição, utilizando a view `vw_nfe_flow_detalhe_servico`.

> 📥 **GET** `/api/v1/nfe/classificacao/servico/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do item detalhado para busca (ex.: `Análise e desenvolvimento de sistemas`)

### 📦 Resposta

```json
[
  {
    "codigo_servico": "1.01",
    "descricao": "Análise e desenvolvimento de sistemas",
    "descricao_normalizada": "ANALISE E DESENVOLVIMENTO DE SISTEMAS"
  }
]
```

### ✅ Descrição dos campos

* `codigo_servico` → Código oficial do item detalhado da lista de serviços
* `descricao` → Descrição oficial do item detalhado
* `descricao_normalizada` → Descrição do item detalhado padronizada pelo projeto sem acentuação para busca

---

## 🚗 Endpoint - Consulta de Veículo

Endpoint responsável por consultar tipo e espécie de veículo a partir do código do tipo ou da espécie, utilizando a view `vw_nfe_flow_classificacao_veiculo`.

> 📥 **GET** `/api/v1/nfe/classificacao/veiculo/tipo/{codigo_tipo_veiculo}`

### 🔎 Parâmetros

* `codigo_tipo_veiculo` → Código do tipo de veículo conforme tabela NF-e/RENAVAM (ex.: `06`)

### 🔁 Endpoint alternativo

Consulta por descrição do tipo de veículo.

> 📥 **GET** `/api/v1/nfe/classificacao/veiculo/tipo/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do tipo ou da espécie para busca (ex.: `Automóvel`)

### 🔁 Endpoint alternativo

Consulta por código da espécie de veículo.

> 📥 **GET** `/api/v1/nfe/classificacao/veiculo/especie/{codigo_especie_veiculo}`

### 🔎 Parâmetros

* `codigo_especie_veiculo` → Código da espécie de veículo conforme tabela NF-e/RENAVAM (ex.: `1`)

### 🔁 Endpoint alternativo

Consulta por descrição da espécie de veículo.

> 📥 **GET** `/api/v1/nfe/classificacao/veiculo/especie/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial da espécie do veículo para busca (ex.: `Passageiro`)

### 🔁 Endpoint alternativo

Consulta por combinação entre tipo e espécie.

> 📥 **GET** `/api/v1/nfe/classificacao/veiculo/tipo/{codigo_tipo_veiculo}/especie/{codigo_especie_veiculo}`

### 🔎 Parâmetros

* `codigo_tipo_veiculo` → Código do tipo de veículo conforme tabela NF-e/RENAVAM (ex.: `06`)
* `codigo_especie_veiculo` → Código da espécie de veículo conforme tabela NF-e/RENAVAM (ex.: `1`)

### 📦 Resposta

```json
[
  {
    "tipo": "06",
    "tipo_descricao": "Automóvel",
    "tipo_descricao_normalizada": "AUTOMOVEL",
    "especie": "1",
    "especie_descricao": "Passageiro",
    "especie_descricao_normalizada": "PASSAGEIRO",
    "inicio_vigencia": "2020-03-12",
    "fim_vigencia": null
  }
]
```

### ✅ Descrição dos campos

* `tipo` → Código do tipo de veículo conforme tabela oficial utilizada pela NF-e (ex.: `06` = `Automóvel`)
* `tipo_descricao` → Descrição oficial do tipo de veículo
* `tipo_descricao_normalizada` → Descrição do tipo de veículo padronizada pelo projeto sem acentuação para busca
* `especie` → Código da espécie do veículo conforme tabela oficial (ex.: `1` = `Passageiro`)
* `especie_descricao` → Descrição oficial da espécie do veículo
* `especie_descricao_normalizada` → Descrição da espécie padronizada pelo projeto sem acentuação para busca
* `inicio_vigencia` → Data inicial de vigência do registro utilizado pela API
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto

---

## 💳 Endpoint - Consulta de Bandeiras de Cartão

Endpoint responsável por consultar bandeiras de cartão a partir do código da bandeira, utilizando a view `vw_nfe_flow_bandeiras_cartao`.

> 📥 **GET** `/api/v1/nfe/classificacao/bandeira/{codigo_bandeira}`

### 🔎 Parâmetros

* `codigo_bandeira` → Código da bandeira do cartão conforme tabela oficial da NF-e (ex.: `01`)

### 🔁 Endpoint alternativo

Consulta por nome da operadora.

> 📥 **GET** `/api/v1/nfe/classificacao/bandeira/operadora/{operadora}`

### 🔎 Parâmetros

* `operadora` → Nome da operadora para busca (ex.: `Visa`)

### 📦 Resposta

```json
[
  {
    "codigo": "01",
    "operadora": "Visa",
    "inicio_vigencia": "2020-01-01",
    "fim_vigencia": null
  }
]
```

### ✅ Descrição dos campos

* `codigo` → Código da bandeira da operadora de cartão conforme tabela oficial da NF-e (ex.: `01` = `Visa`)
* `operadora` → Nome oficial da operadora/bandeira de cartão
* `inicio_vigencia` → Data inicial de vigência do registro utilizado pela API
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto

---

## 📈 Endpoint - Consulta de Alíquotas FCP por UF

Endpoint responsável por consultar alíquotas FCP por sigla de estado, utilizando a view `vw_nfe_flow_alicota_fcp`.

> 📥 **GET** `/api/v1/nfe/classificacao/alicota/fcp/{uf}`

### 🔎 Parâmetros

* `uf` → Sigla da UF para consulta da tabela oficial de FCP (ex.: `AM`)

### 📦 Resposta

```json
[
  {
    "estado": "AMAZONAS",
    "estado_normalizado": "AMAZONAS",
    "codigo_ibge": "13",
    "uf": "AM",
    "aliquota_1": "2.00",
    "aliquota_2": "1.50",
    "aliquota_3": null,
    "obs": "UF com até 2 alíquotas possíveis"
  }
]
```

### ✅ Descrição dos campos

* `estado` → Nome oficial da unidade federativa na tabela de FCP
* `estado_normalizado` → Nome da UF padronizado pelo projeto em caixa alta e sem acentuação para busca
* `codigo_ibge` → Código da UF segundo tabela do IBGE
* `uf` → Sigla da unidade federativa consultada
* `aliquota_1` → Primeira alíquota possível de FCP para a UF
* `aliquota_2` → Segunda alíquota possível de FCP para a UF, quando existente
* `aliquota_3` → Terceira alíquota possível de FCP para a UF, quando existente
* `obs` → Observação oficial associada à UF na tabela de FCP

---

## 💰 Endpoint - Consulta de Meios de Pagamento

Endpoint responsável por consultar meios de pagamento a partir do código, utilizando a view `vw_nfe_flow_meios_pagamento`.

> 📥 **GET** `/api/v1/nfe/classificacao/meio_pagamento/{codigo_meio_pagamento}`

### 🔎 Parâmetros

* `codigo_meio_pagamento` → Código do meio de pagamento conforme tabela oficial da NF-e (ex.: `03`)

### 🔁 Endpoint alternativo

Consulta por descrição do meio de pagamento.

> 📥 **GET** `/api/v1/nfe/classificacao/meio_pagamento/descricao/{descricao}`

### 🔎 Parâmetros

* `descricao` → Descrição oficial do meio de pagamento para busca (ex.: `Cartão de Crédito`)

### 📦 Resposta

```json
[
  {
    "codigo": "03",
    "descricao": "Cartão de Crédito",
    "descricao_normalizada": "CARTAO DE CREDITO",
    "observacao": null,
    "observacao_normalizada": null,
    "inicio_vigencia": "2020-01-01",
    "fim_vigencia": null
  }
]
```

### ✅ Descrição dos campos

* `codigo` → Código do meio de pagamento conforme tabela oficial da NF-e (ex.: `03` = `Cartão de Crédito`)
* `descricao` → Descrição oficial do meio de pagamento
* `descricao_normalizada` → Descrição padronizada pelo projeto sem acentuação para busca
* `observacao` → Observação complementar da tabela, quando existir
* `observacao_normalizada` → Observação complementar padronizada pelo projeto sem acentuação para busca
* `inicio_vigencia` → Data inicial de vigência do registro utilizado pela API
* `fim_vigencia` → Data final de vigência do registro; `null` indica vigência em aberto

---

## ⛽ Endpoint - Consulta Código de Produto ANP

Endpoint responsável por consultar o código de produto ANP a partir do código do produto, utilizando a view `vw_nfe_flow_codigo_produto_anp`.

> 📥 **GET** `/api/v1/nfe/classificacao/anp/{codigo_produto_anp}`

### 🔎 Parâmetros

* `codigo_produto_anp` → Código do produto ANP/SIMP utilizado na NF-e de combustíveis (ex.: `320102001`)

### 🔁 Endpoint alternativo

Consulta por nome do produto.

> 📥 **GET** `/api/v1/nfe/classificacao/anp/nome/{nome_produto}`

### 🔎 Parâmetros

* `nome_produto` → Nome oficial do produto ANP para busca (ex.: `GASOLINA C COMUM`)

### 🔁 Endpoint alternativo

Consulta por descrição do produto.

> 📥 **GET** `/api/v1/nfe/classificacao/anp/descricao/{descricao_produto}`

### 🔎 Parâmetros

* `descricao_produto` → Descrição oficial do produto ANP para busca (ex.: `GASOLINA C COMUM`)

### 📦 Resposta

```json
[
  {
    "codigo": "320102001",
    "produto": "GASOLINA C COMUM",
    "produto_normalizado": "GASOLINA C COMUM",
    "descricao": "GASOLINA C COMUM",
    "descricao_normalizada": "GASOLINA C COMUM",
    "correlacao_anterior": "SEM CORRELACAO",
    "correlacao_anterior_normalizada": "SEM CORRELACAO"
  }
]
```

### ✅ Descrição dos campos

* `codigo` → Código do produto ANP/SIMP utilizado na NF-e para combustíveis e derivados
* `produto` → Nome oficial do produto conforme tabela ANP carregada no projeto
* `produto_normalizado` → Nome do produto padronizado pelo projeto sem acentuação para busca
* `descricao` → Descrição do produto conforme tabela ANP utilizada pela API
* `descricao_normalizada` → Descrição padronizada pelo projeto sem acentuação para busca
* `correlacao_anterior` → Código(s) anterior(es) correlacionado(s), quando houver; `SEM CORRELACAO` indica ausência de vínculo anterior
* `correlacao_anterior_normalizada` → Valor de correlação anterior padronizado pelo projeto para busca

---

## 🏛️ Endpoint - Consulta Classificação IBS e CBS

Endpoint responsável por consultar a classificação IBS e CBS a partir do código do CST IBS e CBS, utilizando a view `vw_nfe_flow_ibs_cbs`.

> 📥 **GET** `/api/v1/nfe/classificacao/ibs_cbs/cst/{cst_ibs_cbs}`

### 🔎 Parâmetros

* `cst_ibs_cbs` → Código do CST IBS/CBS conforme tabela oficial da Reforma Tributária/NF-e (ex.: `410`)

### 🔁 Endpoint alternativo

Consulta por descrição do CST IBS e CBS.

> 📥 **GET** `/api/v1/nfe/classificacao/ibs_cbs/cst/descricao/{descricao_cst_ibs_cbs}`

### 🔎 Parâmetros

* `descricao_cst_ibs_cbs` → Descrição oficial do CST IBS/CBS para busca (ex.: `Imunidade e não incidência`)

### 📦 Resposta

```json
[
  {
    "cst_ibs_cbs": "410",
    "descricao_cst": "Imunidade e não incidência",
    "descricao_cst_normalizada": "IMUNIDADE E NAO INCIDENCIA",
    "codigo_classificacao": "410001",
    "nome_classificacao": "Fornecimento de bonificações quando constem no documento fiscal e que não dependam de evento posterior",
    "descricao_classificacao": "Fornecimento de bonificações quando constem do respectivo documento fiscal e que não dependam de evento posterior, observado o art. 5º, § 1º, I, da Lei Complementar nº 214/2025.",
    "descricao_classificacao_normalizada": "FORNECIMENTO DE BONIFICACOES QUANDO CONSTEM DO RESPECTIVO DOCUMENTO FISCAL E QUE NAO DEPENDAM DE EVENTO POSTERIOR OBSERVADO O ART 5 1 I DA LEI COMPLEMENTAR 2142025",
    "texto_lc": "Art. 5º, § 1º, I - não se aplica às bonificações que constem do respectivo documento fiscal e que não dependam de evento posterior.",
    "redacao_lc": "Art. 5º, § 1º, I",
    "tipo_aliquota": "Sem alíquota",
    "perc_reducao_ibs": "0",
    "perc_reducao_cbs": "0",
    "exige_grupo_trib_regular": false,
    "permite_grupo_cred_pres_oper": false,
    "exige_grupo_mono_padrao": false,
    "exige_grupo_mono_retencao": false,
    "exige_grupo_mono_retido": false,
    "exige_grupo_mono_diferido": false,
    "exige_grupo_estorno_credito": false,
    "inicio_vigencia": "2026-01-01",
    "fim_vigencia": null,
    "data_atualizacao": "2025-05-19",
    "ind_nfe_abi": true,
    "ind_nfe": true,
    "ind_nfce": true,
    "ind_cte": true,
    "ind_cteos": true,
    "ind_bpe": true,
    "ind_bpe_ta": true,
    "ind_bpe_tm": true,
    "ind_nf3e": true,
    "ind_nfse": true,
    "ind_nfse_via": false,
    "ind_nfcom": true,
    "ind_nfag": true,
    "ind_nfgas": true,
    "ind_dere": false,
    "exige_grupo_padrao": false,
    "exige_grupo_monofasico": false,
    "exige_grupo_reducao_aliquota": false,
    "exige_grupo_diferimento": false,
    "exige_grupo_transf_credito": false,
    "exige_grupo_cred_pres_ibs_zfm": false,
    "exige_grupo_ajuste_competencia": false,
    "permite_redutor_base_calculo": false
  }
]
```

### ✅ Descrição dos campos

* `cst_ibs_cbs` → Código do CST IBS/CBS publicado na tabela oficial da Reforma Tributária para documentos fiscais eletrônicos
* `descricao_cst` → Descrição oficial do CST IBS/CBS
* `descricao_cst_normalizada` → Descrição do CST padronizada pelo projeto sem acentuação para busca
* `codigo_classificacao` → Código da classificação tributária (`cClassTrib`) vinculada ao CST
* `nome_classificacao` → Nome curto da classificação tributária
* `descricao_classificacao` → Descrição legal/operacional da classificação tributária
* `descricao_classificacao_normalizada` → Descrição da classificação tributária padronizada pelo projeto sem acentuação para busca
* `texto_lc` → Texto legal resumido associado à classificação
* `redacao_lc` → Referência do artigo/dispositivo legal utilizado na classificação
* `tipo_aliquota` → Tipo de alíquota previsto na tabela oficial (ex.: `Padrão`, `Sem alíquota`)
* `perc_reducao_ibs` → Percentual de redução do IBS previsto para a classificação
* `perc_reducao_cbs` → Percentual de redução da CBS previsto para a classificação
* `exige_grupo_trib_regular` → Indica se a classificação exige o grupo tributário regular no documento fiscal
* `permite_grupo_cred_pres_oper` → Indica se a classificação permite grupo de crédito presumido da operação
* `exige_grupo_mono_padrao` → Indica se exige grupo monofásico padrão
* `exige_grupo_mono_retencao` → Indica se exige grupo monofásico de retenção
* `exige_grupo_mono_retido` → Indica se exige grupo monofásico retido
* `exige_grupo_mono_diferido` → Indica se exige grupo monofásico diferido
* `exige_grupo_estorno_credito` → Indica se exige grupo de estorno de crédito
* `inicio_vigencia` → Data inicial de vigência da classificação tributária
* `fim_vigencia` → Data final de vigência da classificação; `null` indica vigência em aberto
* `data_atualizacao` → Data da atualização da tabela utilizada pela API
* `ind_nfe_abi` → Indica se a classificação pode ser utilizada na NF-e ABI
* `ind_nfe` → Indica se a classificação pode ser utilizada na NF-e
* `ind_nfce` → Indica se a classificação pode ser utilizada na NFC-e
* `ind_cte` → Indica se a classificação pode ser utilizada no CT-e
* `ind_cteos` → Indica se a classificação pode ser utilizada no CT-e OS
* `ind_bpe` → Indica se a classificação pode ser utilizada no BP-e
* `ind_bpe_ta` → Indica se a classificação pode ser utilizada no BP-e TA
* `ind_bpe_tm` → Indica se a classificação pode ser utilizada no BP-e TM
* `ind_nf3e` → Indica se a classificação pode ser utilizada na NF3e
* `ind_nfse` → Indica se a classificação pode ser utilizada na NFS-e
* `ind_nfse_via` → Indica se a classificação pode ser utilizada na NFS-e via integração específica
* `ind_nfcom` → Indica se a classificação pode ser utilizada na NFCom
* `ind_nfag` → Indica se a classificação pode ser utilizada na NFAg
* `ind_nfgas` → Indica se a classificação pode ser utilizada na NFGas
* `ind_dere` → Indica se a classificação pode ser utilizada no DARE/DERE do contexto tributário adotado pelo projeto
* `exige_grupo_padrao` → Indica se deve ser preenchido o grupo padrão do IBS/CBS
* `exige_grupo_monofasico` → Indica se deve ser preenchido o grupo monofásico do IBS/CBS
* `exige_grupo_reducao_aliquota` → Indica se deve ser preenchido o grupo de redução de alíquota
* `exige_grupo_diferimento` → Indica se deve ser preenchido o grupo de diferimento
* `exige_grupo_transf_credito` → Indica se deve ser preenchido o grupo de transferência de crédito
* `exige_grupo_cred_pres_ibs_zfm` → Indica se deve ser preenchido o grupo de crédito presumido IBS ZFM
* `exige_grupo_ajuste_competencia` → Indica se deve ser preenchido o grupo de ajuste de competência
* `permite_redutor_base_calculo` → Indica se a classificação admite redutor da base de cálculo
