Developers / Tributário
Tributário

ISSQN · Catálogos

Alíquota de referência de ISSQN (imposto municipal sobre serviços) por município e código de serviço -- fonte oficial datada de 2026-09-05, cobrindo todos os municípios do Brasil com dado disponível. Pensado pra quem quer consultar a alíquota vigente antes de montar a emissão, não pra sincronizar a tabela inteira (~1,9 milhão de linhas). Inclui também o desdobramento (cTribMun) descoberto por sondagem real contra a ADN (Ambiente de Dados Nacional), pra quem monta a Declaração de Prestação de Serviços (DPS) do Padrão Nacional por conta própria.

⚠️
Só consulta/referência. Isso não alimenta a emissão de NFS-e -- aliquota_iss continua obrigatório e informado por quem chama a API (ver NFS-e · Emitir). Este catálogo existe pra você confirmar o valor certo antes de montar a emissão, não pra automatizar sozinho.
💡
Cobertura: 5.341 dos 5.571 municípios do Brasil. O Distrito Federal e mais ~229 municípios não têm nenhuma linha na fonte oficial -- uma consulta pra algum desses devolve resultados: [] (lista vazia), nunca erro. Não é bug, é lacuna da própria fonte de dados.

Consultar GET

GET https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/aliquota-municipio
ParâmetroTipoObrigatórioObservação
codigo_ibgestringUm dos doisCódigo IBGE do município (7 dígitos).
codigo_servicostringUm dos doisCódigo de Tributação Nacional (CTN, LC 116) -- aceita 6 dígitos ("010701"), 5 dígitos sem o zero à esquerda do primeiro segmento ("10701") ou pontuado ("01.07.01.000").
⚠️
Informe pelo menos um dos dois filtros -- sem nenhum, a resposta seria a tabela inteira (~1,9 milhão de linhas), e a API devolve 400 nesse caso.
curl "https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/aliquota-municipio?codigo_ibge=3106200&codigo_servico=010701" \
  -H "Authorization: Bearer cf_live_51JqK..."

Resposta

{
  "resultados": [
    {
      "codigo_ibge": 3106200,
      "codigo_servico": "010701",
      "aliquota": 5.0,
      "dt_ini": "2026-01-01",
      "dt_fim": null
    }
  ]
}

dt_fim: null significa vigente -- a resposta só traz a alíquota ativa agora de cada combinação (município, serviço), nunca histórico. Sem codigo_servico, devolve todos os serviços daquele município; sem codigo_ibge, devolve todos os municípios daquele código de serviço.

Desdobramento por par (município + serviço) GET

O cTribMun é um código de 3 dígitos que alguns municípios registram na ADN além do código de serviço (CTN) de 6 dígitos -- é a forma deles detalharem a tributação de um serviço além do que o CTN nacional já descreve. Hoje ele é 100% informado por quem chama a API na emissão de NFS-e; este catálogo existe pra você descobrir qual valor usar antes de montar a emissão, sem precisar sondar a ADN por conta própria.

GET https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/desdobramento
ParâmetroTipoObrigatórioObservação
codigo_ibgestringSimCódigo IBGE do município (7 dígitos).
codigo_servicostringSimCódigo de Tributação Nacional (CTN, LC 116) -- mesmos formatos aceitos acima (6 dígitos, 5 dígitos ou pontuado).
⚠️
Diferente da consulta de alíquota, aqui os dois filtros são obrigatórios -- desdobramento só existe no nível do par (município + serviço), não faz sentido consultar só um dos dois. Pra ver todos os serviços de um município de uma vez, use o endpoint por município logo abaixo.
curl "https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/desdobramento?codigo_ibge=3506003&codigo_servico=070901" \
  -H "Authorization: Bearer cf_live_51JqK..."

Resposta

{
  "codigo_ibge": 3506003,
  "codigo_servico": "070901",
  "verificado_em": "2026-09-05T12:00:00Z",
  "resultados": [
    { "desdobramento": "210", "aliquota": 5.0, "dt_ini": "2026-01-01", "dt_fim": null, "fonte": "ADN" },
    { "desdobramento": "220", "aliquota": 5.0, "dt_ini": "2026-01-01", "dt_fim": null, "fonte": "ADN" }
  ]
}

Esse exemplo (Barueri/SP, serviço 07.09.01) é um caso real: o mesmo par tem dois desdobramentos válidos ao mesmo tempo -- a ADN aceita tanto "210" quanto "220" pra esse serviço, com a mesma alíquota e vigência, sem forma de saber qual é "o certo" só pela resposta. resultados: [] com verificado_em: null significa que esse par ainda não foi verificado; verificado_em preenchido com resultados: [] significa que já foi verificado e nenhum desdobramento válido foi encontrado.

Desdobramento por município GET

Lista, de uma vez, todos os códigos de serviço de um município com alíquota vigente e o(s) desdobramento(s) já descobertos -- útil pra carregar o catálogo inteiro de um município sem precisar consultar serviço por serviço.

GET https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/desdobramento-municipio
ParâmetroTipoObrigatórioObservação
codigo_ibgestringSimCódigo IBGE do município (7 dígitos).
curl "https://areacliente.centralfiscal.com.br/v1/catalogo/issqn/desdobramento-municipio?codigo_ibge=3506003" \
  -H "Authorization: Bearer cf_live_51JqK..."

Resposta

{
  "codigo_ibge": 3506003,
  "resultados": [
    { "codigo_servico": "070901", "aliquota": 5.0, "desdobramento": "210", "desdobramento_verificado_em": "2026-09-05T12:00:00Z" },
    { "codigo_servico": "070901", "aliquota": 5.0, "desdobramento": "220", "desdobramento_verificado_em": "2026-09-05T12:00:00Z" },
    { "codigo_servico": "010701", "aliquota": 3.0, "desdobramento": null, "desdobramento_verificado_em": null }
  ]
}

Um codigo_servico aparece em mais de uma linha quando tem mais de um desdobramento válido simultâneo (como no exemplo de Barueri acima). Linha com desdobramento: null e desdobramento_verificado_em: null significa par ainda não verificado -- não é erro, nem significa "sem desdobramento", só "ainda não checamos esse".

⚠️
Só consulta/referência, igual à alíquota. Isso não alimenta a emissão de NFS-e -- o campo de desdobramento continua obrigatório e informado por quem chama a API (ver NFS-e · Emitir).