Tudo que você precisa para integrar a API Fiscum — guia rápido, referência de endpoints, SDKs e exemplos de código.
Faça a primeira chamada à API em menos de 5 minutos. Exemplos em cURL, Node.js, Python e PHP.
Começar →Referência completa de todos os endpoints, parâmetros, tipos de retorno e exemplos de requisição.
Ver endpoints →Configurando webhooks, processando batches grandes, compatibilidade com a Reforma Tributária.
Ver guias →Para fazer a primeira chamada você precisa de: 1) uma conta Fiscum (trial gratuito de 7 dias sem cartão) e 2) sua API Key no painel em Configurações → API Keys.
https://sandbox.api.fiscum.com.br/v1.Todas as requisições (exceto Health Check) exigem autenticação via API Key. Envie sua chave por um dos dois métodos abaixo.
Inclua sua API Key no header X-API-Key. Chaves de produção têm prefixo fsc_live_ e de sandbox fsc_test_.
Alternativamente, envie a API Key no header Authorization com o prefixo Bearer.
Gere uma nova API Key via POST /v1/auth/api-key/gerar. A chave completa é exibida apenas uma vez na resposta. Para revogar, use DELETE /v1/auth/api-key/{id}.
POST /v1/auth/api-key/gerar (invalida a anterior automaticamente).Todas as URLs da API seguem o padrão https://{host}/v1/{recurso}.
| Ambiente | Base URL | Prefixo da chave |
|---|---|---|
| Produção | https://api.fiscum.com.br | fsc_live_ |
| Sandbox | https://sandbox.api.fiscum.com.br | fsc_test_ |
O ambiente de sandbox é idêntico ao de produção, com as seguintes diferenças:
https://sandbox.api.fiscum.com.brfsc_test_cabecalho.amb, envie 2 (homologação)A API utiliza token bucket por parceiro. O limite depende do plano contratado. Quando excedido, a API retorna HTTP 429 com o código RATE_LIMIT_EXCEEDED.
Dicas para lidar com rate limiting:
POST /v1/alterados para sincronização incremental em vez de reconsultar tudoBase URL: https://api.fiscum.com.br/v1 · Sandbox: https://sandbox.api.fiscum.com.br/v1
Endpoint principal do Fiscum Classifica. Recebe uma lista de produtos (até 500) e UFs, e retorna as regras fiscais completas para emissão de NF-e/NFC-e: ICMS por UF, PIS/COFINS, IPI, CBS e IBS. Os produtos são agrupados por NCM na resposta.
O body JSON contém 3 campos obrigatórios: cabecalho, uf e produto.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| cnpj | string | required | CNPJ da empresa consulente (14 dígitos numéricos). |
| crt | integer | required | Código de Regime Tributário: 1 (Simples Nacional), 2 (excesso sublimite), 3 (Normal), 4 (MEI). |
| regimeTrib | string | required | Regime de tributação: "R" (Lucro Real), "P" (Lucro Presumido), "S" (Simples Nacional). |
| amb | integer | required | Ambiente: 1 (Produção), 2 (Homologação). |
| contribuinte | integer | required | Contribuinte ICMS do destinatário: 0 (Não), 1 (Sim). |
| cnae | string | optional | CNAE principal da empresa (7 dígitos). |
| ufOrigem | string | optional | UF de origem da mercadoria (2 letras). |
| dthr | string | optional | Data/hora da operação (ISO 8601). Default: data atual. |
| codFaixa | integer | optional | Código da faixa do Simples Nacional. |
| indicPresenca | integer | optional | Indicador de presença do comprador (campo indPres NF-e, 0 a 9). |
| finalidade | integer | optional | Finalidade da operação: 1 (Normal), 2 (Complementar), 3 (Ajuste), 4 (Devolução). |
| cnaeSecundario | string | optional | CNAE secundário da empresa (7 dígitos). |
| fabricacaoPropria | boolean | optional | Indica se o produto é de fabricação própria. Default: false. |
| regimeEspecial | string | optional | Código ou nome do regime especial aplicável (máx. 60 caracteres). |
| municipio | string | optional | Código IBGE do município (7 dígitos). |
| dia | integer | optional | Dia da operação (se informado separadamente de dthr). |
| mes | integer | optional | Mês da operação (se informado separadamente de dthr). |
| ano | integer | optional | Ano da operação (se informado separadamente de dthr). |
Lista de UFs para consulta (siglas de 2 letras). Ex: ["SP", "MG"]. Mínimo 1 UF.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| codigo | string | required | Código do produto: GTIN/EAN, código interno ou NCM conforme tipoCodigo. Máx. 20 caracteres. |
| descricao | string | required | Descrição do produto (máx. 60 caracteres). |
| ncm | string | optional | NCM do produto (8 dígitos). Obrigatório se tipoCodigo = 2. |
| tipoCodigo | integer | optional | 0 = GTIN/EAN (padrão), 1 = código interno (busca por descrição), 2 = NCM direto no campo ncm. |
| cest | string | optional | CEST do produto (7 dígitos), se conhecido. |
| curva | string | optional | Classificação ABC do produto: "A", "B" ou "C". |
| refeicao | string | optional | Indica se o produto é refeição: "S" ou "N" (padrão: "N"). |
| Status | Descrição |
|---|---|
200 | Regras fiscais retornadas com sucesso. |
400 | Requisição inválida — dados de entrada não passaram na validação. |
401 | Credenciais ausentes ou inválidas. |
422 | Erro de validação com campo detalhes listando cada campo e mensagem. |
429 | Limite de requisições excedido. |
500 | Erro interno do servidor. |
Retorna informações detalhadas do NCM, incluindo dados da TIPI (IPI) e CEST vinculados.
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| ncm | path | string | required | Código NCM (8 dígitos). Ex: 10063021 |
Verifica se o código NCM existe na base de dados atualizada.
Recebe uma descrição de produto e retorna sugestões de NCM ordenadas por relevância (busca por similaridade).
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| descricao | string | required | Descrição do produto para sugestão de NCM. |
Retorna o histórico de mudanças regulatórias que afetaram as regras fiscais deste NCM.
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| ncm | path | string | required | Código NCM (8 dígitos). |
| uf | query | string | required | UF para filtrar histórico de regras (2 letras). |
Retorna o cronograma de transição CBS/IBS (Reforma Tributária EC 132/2023) aplicável a este NCM, com alíquotas previstas por ano (2026–2033).
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| ncm | path | string | required | Código NCM (8 dígitos). |
| uf | query | string | required | UF para regras estaduais na timeline. |
Verifica se o código GTIN/EAN possui dígito verificador válido. Aceita EAN-8, UPC-A, EAN-13 e GTIN-14.
Busca o NCM vinculado a um GTIN/EAN na base de dados, retornando informações do produto e da classificação fiscal.
Recebe uma lista de GTINs (até 500) e retorna o enriquecimento com NCM para cada um, em uma única requisição.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| gtins | string[] | required | Lista de códigos GTIN/EAN (mín. 1, máx. 500). |
Calcula o Diferencial de Alíquota (DIFAL) para operações interestaduais destinadas a consumidor final não contribuinte.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| ncm | string | required | NCM do produto (8 dígitos). |
| uf_origem | string | required | UF de origem (2 letras). |
| uf_destino | string | required | UF de destino (2 letras). |
| valor | number | required | Valor da operação em R$. |
| crt | integer | required | Código de Regime Tributário (1, 2, 3 ou 4). |
| contribuinte | integer | required | Indicador de contribuinte ICMS (0=não, 1=sim). |
| importado | boolean | optional | Se o produto é importado (alíquota interestadual 4%). Default: false. |
Calcula o ICMS Substituição Tributária para um produto, incluindo MVA ajustado, base de cálculo e valores de ST e FCP-ST.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| ncm | string | required | NCM do produto (8 dígitos). |
| uf | string | required | UF (2 letras). |
| valor | number | required | Valor do produto em R$. |
| iva | number | required | IVA/MVA (%). |
Calcula o detalhamento da carga tributária conforme Lei 12.741/2012 (Lei de Olho no Imposto), retornando tributos federais, estaduais e municipais separadamente.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| ncm | string | required | NCM do produto (8 dígitos). |
| uf | string | required | UF (2 letras). |
| valor | number | required | Valor do produto em R$. |
Calcula tributos aplicáveis em um município específico, incluindo ICMS, FCP e opcionalmente ISS (quando tipo_servico é informado). Utiliza o código IBGE do município.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| ncm | string | required | NCM do produto (8 dígitos). |
| uf | string | required | UF (2 letras). |
| municipio_ibge | string | required | Código IBGE do município (7 dígitos). |
| valor | number | required | Valor da operação em R$. |
| tipo_servico | string | optional | Tipo do serviço (se informado, calcula ISS). |
Classifica um produto na Curva ABC com base no faturamento mensal (valor unitário x volume de vendas). Retorna a curva, sugestões de markup e frequência de reposição, além de dados de carga tributária do NCM informado.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| codigo | string | required | Código do produto (máx. 60 caracteres). |
| descricao | string | required | Descrição do produto (máx. 500 caracteres). |
| ncm | string | required | NCM do produto (8 dígitos). |
| valor_unitario | number | required | Valor unitário em R$ (maior que 0). |
| volume_vendas_mensal | integer | required | Volume de vendas mensal (unidades). |
Busca regimes especiais tributários disponíveis por UF, com filtros opcionais por CNAE e tipo de regime. Retorna benefícios fiscais, amparo legal e período de vigência.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| uf | string | required | UF para buscar regimes especiais (2 letras). |
| cnae | string | optional | CNAE para filtrar regimes (7 dígitos). |
| tipo | string | optional | Tipo de regime para filtrar (máx. 100 caracteres). |
Retorna a lista paginada de alterações regulatórias monitoradas pelo sistema (DOU, CONFAZ, SEFAZs, etc.), ordenadas da mais recente para a mais antiga.
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| page | query | integer | optional | Número da página. Default: 1. |
| limit | query | integer | optional | Itens por página (máx. 100). Default: 20. |
| uf | query | string | optional | Filtrar por UF (2 letras). |
| desde | query | string | optional | Data inicial (YYYY-MM-DD). |
| tipo | query | string | optional | Filtrar por tipo: icms, piscofins, ipi, cbs, ibs, cest. |
| fonte | query | string | optional | Filtrar por fonte: dou, confaz, nfe, ibpt. |
Retorna os produtos cujas regras fiscais foram alteradas desde a última consulta registrada para o CNPJ informado. Útil para sincronização incremental de regras no ERP do parceiro.
| Campo | Tipo | Req. | Descrição |
|---|---|---|---|
| nomeServico | string | required | Deve ser "ALTERADOS". |
| dados | string | required | String no formato "CNPJ|UF|LIMITE". Ex: "12345678000190|SP|100". |
Gera uma nova API Key para o parceiro autenticado, invalidando a anterior. A chave completa é exibida apenas uma vez na resposta.
Revoga a API Key do parceiro. O parceiro só pode revogar sua própria chave. Após revogar, nenhuma requisição será possível até gerar uma nova chave.
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| id | path | string (UUID) | required | ID do parceiro cuja API key será revogada. |
Retorna a carga tributária estimada conforme tabela IBPT (Instituto Brasileiro de Planejamento e Tributação), utilizada para cumprimento da Lei da Transparência Fiscal (Lei n.o 12.741/2012). Possui dois modos de operação:
?uf=SP — retorna os dados de carga tributária para a UF informada (objeto único).uf — retorna os dados de todas as UFs disponíveis para o NCM.| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| ncm | path | string | required | Código NCM (8 dígitos). |
| uf | query | string | optional | UF para filtrar (2 letras). Se omitido, retorna todas as UFs. |
Verifica se o cliente (parceiro) está ativo no sistema. Retorna sucesso: true se o CNPJ está cadastrado e ativo.
| Parâmetro | Local | Tipo | Req. | Descrição |
|---|---|---|---|---|
| cnpj | path | string | required | CNPJ do cliente (14 dígitos). |
Retorna as métricas de utilização da API no período corrente, incluindo total de requisições, limite do plano e percentual de uso.
Retorna o status dos componentes do sistema. Não requer autenticação. Retorna HTTP 200 se tudo estiver operacional, ou HTTP 503 se algum componente estiver degradado.
Retorna métricas operacionais do sistema: contadores de requisições, latência (avg/max/min/p95), taxa de cache hit e uptime. Requer autenticação.
A resposta do endpoint principal contém 4 campos de primeiro nível:
| Campo | Tipo | Descrição |
|---|---|---|
| cabecalho | object | Metadados da consulta (CNPJ, regime, data, quantidade de produtos, versão, mensagem). |
| grupo | array | Grupos de regras fiscais agrupados por NCM. Cada grupo contém: ncm, descricaoNcm, piscofins, ipi, cbs, ibs, is, ibptax, regra (ICMS por UF) e produto. |
| baixaSimilaridade | array | Produtos cujo NCM não foi identificado, com o motivo da falha. |
| _fiscum | object | Metadados do Fiscum: versão, totais, latência, cache hits/misses, requestId. |
| Campo | Tipo | Descrição |
|---|---|---|
| codigo | integer | Índice sequencial da regra no grupo. |
| uf | string | Sigla da UF. |
| cst | string | CST ICMS (Regime Normal). |
| cstDescr | string | Descrição do CST ICMS. |
| csosn | string | CSOSN (Simples Nacional). |
| csosnDescr | string | Descrição do CSOSN. |
| aliqicms | number | Alíquota ICMS (%). |
| baseCalculo | string | Base de cálculo. |
| reducaobcicms | number | Redução da base de cálculo ICMS (%). |
| aliqicmsst | number | Alíquota ICMS-ST (%). |
| reducaobcicmsst | number | Redução da base de cálculo ICMS-ST (%). |
| iva | number | MVA/IVA-ST (%). |
| fcp | number | Fundo de Combate à Pobreza (%). |
| cestId | string | Código CEST vinculado. |
| codBenef | string | Código do benefício fiscal. |
| pDifer | number | Percentual de diferimento (%). |
| antecipado | string | Indicador de antecipação tributária: "S" ou "N". |
| cfopCompra | string | CFOP sugerido para entrada. |
| cfopVenda | string | CFOP sugerido para saída. |
| desonerado | string | Indicador de desoneração ICMS: "S" ou "N". |
| icmsdeson | number | Valor do ICMS desonerado. |
| pICMSEfet | number | Percentual ICMS efetivo (%). |
| pRedBCEfet | number | Percentual de redução da BC efetiva (%). |
| percIsencao | number | Percentual de isenção (%). |
| estd_finalidade | string | Finalidade específica do estado. |
| excecao | number | Número da exceção aplicada. |
| adRemICMS | number | ICMS ad rem (monofásico) em R$. |
| motivoDesoneracao | string | null | Motivo da desoneração. |
| IndicDeduzDesonerado | string | Indicador de dedução do ICMS desonerado. |
| pICMSPDV | number | Percentual ICMS para PDV. |
| simbPDV | string | Simbologia PDV (T=tributado, I=isento, F=substituído, N=nenhum). |
| ampLegal | string | Amparo legal da regra ICMS. |
| creditoIndicador | string | Indicador de crédito ICMS. |
| creditoCstEnt | string | CST de entrada para crédito. |
| creditoPercentual | number | Percentual de crédito. |
| dtVigIni | string | null | Data de início da vigência. |
| dtVigFin | string | null | Data de fim da vigência. |
| dtAtualizacao | string | null | Data da última atualização (YYYY-MM-DD). |
| Campo | Tipo | Descrição |
|---|---|---|
| cstEnt | string | CST PIS/COFINS na entrada. |
| cstEntDescr | string | Descrição do CST de entrada. |
| cstSai | string | CST PIS/COFINS na saída. |
| cstSaiDescr | string | Descrição do CST de saída. |
| aliqPIS | number | Alíquota PIS (%). |
| aliqCOFINS | number | Alíquota COFINS (%). |
| baseCalculo | string | Base de cálculo. |
| nri | string | Natureza da receita (NRI). |
| ampLegal | string | Amparo legal. |
| creditoIndicadorPIS | string | Indicador de crédito PIS. |
| creditoCstEntPIS | string | CST de entrada para crédito PIS. |
| creditoPercentualPIS | number | Percentual de crédito PIS. |
| creditoIndicadorCOFINS | string | Indicador de crédito COFINS. |
| creditoCstEntCOFINS | string | CST de entrada para crédito COFINS. |
| creditoPercentualCOFINS | number | Percentual de crédito COFINS. |
| dtVigIni | string | null | Data de início da vigência. |
| dtVigFin | string | null | Data de fim da vigência. |
| dtAtualizacao | string | null | Data da última atualização (YYYY-MM-DD). |
| refeicao | boolean | Indica se o tratamento monofásico de refeição foi aplicado. |
| Campo | Tipo | Descrição |
|---|---|---|
| cstEnt | string | CST IPI na entrada. |
| cstEntDescr | string | Descrição do CST de entrada. |
| cstSai | string | CST IPI na saída. |
| cstSaiDescr | string | Descrição do CST de saída. |
| aliqIPI | number | Alíquota IPI (%). |
| baseCalculo | string | Base de cálculo. |
| codenq | string | Código de enquadramento IPI. |
| ex | string | Código EX da TIPI. |
| ampLegal | string | Amparo legal. |
| creditoIndicador | string | Indicador de crédito IPI. |
| creditoCstEnt | string | CST de entrada para crédito. |
| creditoPercentual | number | Percentual de crédito. |
| dtAtualizacao | string | null | Data da última atualização (YYYY-MM-DD). |
| Campo | Tipo | Descrição |
|---|---|---|
| cClassTrib | string | Código de classificação tributária CBS. |
| descrClassTrib | string | Descrição da classificação tributária. |
| cst | string | CST da CBS. |
| descrCST | string | Descrição do CST. |
| aliquota | number | Alíquota CBS (%). |
| pAliqEfetiva | number | Alíquota efetiva CBS (%). |
| reducao | number | Percentual de redução (%). |
| reducaoBcCBS | number | Redução da base de cálculo CBS (%). |
| ampLegal | string | Amparo legal. |
| dtVigIni | string | null | Data de início da vigência. |
| dtVigFin | string | null | Data de fim da vigência. |
| dtAtualizacao | string | null | Data da última atualização (YYYY-MM-DD). |
| Campo | Tipo | Descrição |
|---|---|---|
| cClassTrib | string | Código de classificação tributária IBS. |
| descrClassTrib | string | Descrição da classificação tributária. |
| cst | string | CST do IBS. |
| descrCST | string | Descrição do CST. |
| ibsUF | number | Alíquota IBS estadual (%). |
| ibsMun | number | Alíquota IBS municipal (%). |
| pAliqEfetivaUF | number | Alíquota efetiva IBS UF (%). |
| pAliqEfetivaMun | number | Alíquota efetiva IBS municipal (%). |
| reducaoAliqIBS | number | Redução da alíquota IBS (%). |
| reducaoBcIbs | number | Redução da base de cálculo IBS (%). |
| ampLegal | string | Amparo legal. |
| dtVigIni | string | null | Data de início da vigência. |
| dtVigFin | string | null | Data de fim da vigência. |
| dtAtualizacao | string | null | Data da última atualização (YYYY-MM-DD). |
O Imposto Seletivo (IS) incide sobre bens prejudiciais à saúde ou ao meio ambiente, conforme definido na Reforma Tributária (EC 132/2023).
| Campo | Tipo | Descrição |
|---|---|---|
| cClassTrib | string | Código de classificação tributária IS. |
| descrClassTrib | string | Descrição da classificação tributária. |
| cst | string | CST do IS. |
| descrCST | string | Descrição do CST. |
| aliquota | number | Alíquota IS (%). |
| ampLegal | string | Amparo legal. |
| dtVigIni | string | null | Data de início da vigência. |
| dtVigFin | string | null | Data de fim da vigência. |
Carga tributária estimada conforme tabela IBPT (Lei da Transparência Fiscal 12.741/2012), retornada automaticamente para cada grupo NCM.
| Campo | Tipo | Descrição |
|---|---|---|
| federal_nacional | number | Carga tributária federal para produtos nacionais (%). |
| federal_importados | number | Carga tributária federal para produtos importados (%). |
| estadual | number | Carga tributária estadual (%). |
| municipal | number | Carga tributária municipal (%). |
| carga_total | number | Carga tributária total (%). |
O Fiscum dispara webhooks em tempo real quando regras fiscais de NCMs monitorados são alteradas. Configure um endpoint HTTPS e receba o payload via POST.
Ao criar a inscrição via POST /v1/webhooks/subscribe, informe os tipos de evento desejados no campo eventos e, opcionalmente, filtre por UFs no campo ufs. O payload enviado é assinado com HMAC-SHA256.
Quando uma alteração regulatória ocorre, o Fiscum envia um POST para sua URL registrada com o payload abaixo. O header X-Fiscum-Signature contém o HMAC-SHA256 do body.
Cada webhook inclui o header X-Fiscum-Signature com HMAC-SHA256 do body usando seu webhook secret. Valide antes de processar.
A API usa códigos HTTP convencionais. Erros retornam um objeto JSON com os campos erro (mensagem), codigo (código da aplicação) e requestId (para rastreamento junto ao suporte).
detalhes listando cada campo e mensagem. Código: VALIDATION_ERROR.