Quando declarar o Código Tributação Municipal "cTribMun" e evitar Rejeição "E0312" ou erro "E999" - Orientações

Segue uma discussão sobre o uso do CTribMun, se deve declarar no XML dentro do DPS/infDPS/serv/cServ.

Depois de algumas tentativas e erros, a moderadora Elisabete também reforçou o ponto para evitar alguns transtornos.

Como o Município pode fazer o desdobro do Código de Tributação Municipal, onde consultamos o Código Serviço Nacional e se tem desdobro ou não, seria bom seguir alguns passos.

Exemplo: 01.01.01.001

Se declarar o cTribMunc no XML, dependendo do Município terá rejeição.

010101 001 Descrição Servico
  1. Consultar parametros Municípais no ADN

Exemplo consulta CodIbgeMunc 4106902 (Curitiba)

PRODUÇÃO Restrita

https://adn.producaorestrita.nfse.gov.br/parametrizacao/4106902/01.01.01.000/2025-10-01/aliquota 
{
    "aliquotas": {
        "01.01.01.000": [
            {
                "Incidencia": "SIM",
                "Aliq": 5.00,
                "DtIni": "2022-12-30T00:00:00",
                "DtFim": null
            }
        ]
    },
    "mensagem": "Alíquotas recuperadas com sucesso."
}

PRODUCAO

https://adn.nfse.gov.br/parametrizacao/4106902/01.01.01.000/2025-10-01/aliquota

resultado:

{
    "aliquotas": {
        "01.01.01.000": [
            {
                "Incidencia": "SIM",
                "Aliq": 5.00,
                "DtIni": "2023-08-30T00:00:00",
                "DtFim": null
            }
        ]
    },
    "mensagem": "Alíquotas recuperadas com sucesso."
}

Notem que em ambos casos, os dados são iguais (em tese deveria sempre refletir o mesmo, mas no CNC deu diferença e tem de comunicar o Município para ajustar…)

Qual interpretação neste caso.

O Município não fez o desdobro (“000”), logo, ao gerar o XML, não se informa o cTribMunc, que neste momento está gerando erro estourando E999 em produção, poderia ser outra mensagem com rejeição e motivo.

Para emitir, como não tem desdobro, não identifica no XML, pois existe somente o “000”.

<cServ>
        <cTribNac>010101</cTribNac>
        <xDescServ>Descrição Servico</xDescServ>
</cServ>
Em resumo:
Se (API MUNICIPIO com codigoServico XX.XX.XX.000 existe alíquota) então
{
    -> Significa que Município não implementou o desdobro, 
       portanto,não declarar cTribMun
    -> Armazene as alíquotas no ERP
    -> NÃO DECLARE cTribMun
}
senão
{
    -> Município gerou desdobro e como pode existir 
       mais de um desdobro, declarar cTribMun = “xxx”
    -> DEVE DECLARAR o cTribMun
}

Exemplo da pesquisa com desdobro (já sabemos seguindo o exemplo que não tem….)

https://adn.nfse.gov.br/parametrizacao/4106902/01.01.01.001/2025-10-01/aliquota
{
    "aliquotas": null,
    "mensagem": "Alíquotas não encontradas."
}

Resumindo, façam as consultas e armazenem os dados no ERP, para PRODUCAO e P`RODUCAO-RESTRITA.

Não havendo desdobro, não declare cTribMun pois está rejeitando no momento com erro E999, logo mais, poderá ter tratamento e informar um código de rejeição mais amigável.

++++++++++++++++

Quem quiser aproveitar e consultar o Município para identificar se tem cadastro no CNC, faça acesso pela API: EXEMPLOS

PRODUÇÃO Restrita

https://adn.producaorestrita.nfse.gov.br/cnc/consulta/cad?codMunicipio=4106902&inscricaoFederal=XXXXXXXXXXXXX

Insira os dados do Código Ibge do Município e do CNPJ

PRODUÇÃO

https://adn.nfse.gov.br/cnc/consulta/cad?codMunicipio=4106902&inscricaoFederal=XXXXXXXXXXXXX

Caso não exista CNC, receberá:

{
    "StatusProcessamento": "NENHUM_DOCUMENTO_LOCALIZADO",
    "Alertas": [],
    "Erros": [],
    "TipoAmbiente": "PRODUCAO",
    "VersaoAplicativo": "1.0.0.0",
    "DataHoraProcessamento": "2025-11-06T09:41:50.7363456-03:00"
}

Não declare IM do prestador neste caso…

Se existir dados no CNC, deverá declarar IM para evitar rejeição (foge ao assunto do tópico, mas segue a dica…)

{
    "ListaCadastroMunicipal": [
        {
            "OrigemDados": "CNC",
            "CodigoMunicipio": 4106902,
            "TipoAmbiente": 0,
            "Id": 1951037,
            "CodigoUF": 41,
            "InfCad": {
                "Inscricao": "NNNNNNNNNNNNNN",
                "TpInscricao": "CNPJ",
                "InscricaoMunicipal": "YYYYYYYY",
                ** -----------------------------------
                ** ATENCAO AQUI, a IM pode ser 
                ** diferente de Prod e Prod Restrita
                ** -----------------------------------
                "DataInicioInscricaoMunicipal": "2025-08-13T00:00:00",
                "DataApenasInicioInscricaoMunicipal": "2025-08-13",
                "RazaoSocial": ".....",
                "NomeFantasia": ".....",
                "InfoEndereco": {
                    "CEP": .....
                },
                "SituacaoEmissaoNFSe": "HABILITADO",
                "SituacaoContribuinteCNC": "ATIVO",
                "SituacaoCadastral": "Ativo",
                "MotivoSituacaoCadastral": "Alvará em situação regular"
            },
            "DhCadastro": "2025-11-03T19:04:12.48",
            "DhAtualizacao": "2025-11-03T19:04:12.48",
            "OpcaoSimplesNacional": "NENHUM"
        }
    ],
    "StatusProcessamento": "DOCUMENTOS_LOCALIZADOS",
    "Alertas": [],
    "Erros": [],
    "TipoAmbiente": "PRODUCAO",
    "VersaoAplicativo": "1.0.0.0",
    "DataHoraProcessamento": "2025-11-06T09:43:19.8446129-03:00"
}

Caso tenham dúvidas, podemos editar o tópico, mas acredito que ajude neste momento.

Grato pelas dicas também para a Elisabete Bach, da JB Software.

Nosso colega e membro, ~Maxuel Santana, também sugeriu emular no portal nacional a emissão e no momento de informar o Codigo Complementar de Serviços (cTribMun) você poderá verificar se existe o desdobro ou não…

Portanto, existem várias opções para identificar o desdobro e evitar rejeições ou erro E999.

At.

Emir Toktar

2 curtidas

Emir, bom dia!

Você sabe se existe alguma documentação para API desta consulta ADN?

Obrigado!!

Bom dia Alexandre,

O exemplo da consulta da API está no post. Na documentação são referenciadas como ADN, para prefeituras e contribuintes.

Veja a página no link:

APIs - Prod. Restrita e Produção — Portal da Nota Fiscal de Serviço eletrônica

No fórum tem publicação da documentação também.

At.te,

Emir Toktar

Obrigado Emir, vou dar uma olhada!!

Bom dia!
Estou tentando preencher o cTribMun para Florianópolis.

segundo o print, tem desdobramento:

Porém, já tentei diversos códigos e sempre dá erro.

exemplo de erro:

{"tipoAmbiente":2,"versaoAplicativo":"SefinNac_Pre_1.4.0","dataHoraProcessamento":"2025-12-15T09:19:29.4204513-03:00","idDPS":"xxxxxxxxxxxxxxxxxxxxxxx","erros":[{"Codigo":"E0314","Descricao":"O código de tributação municipal informado não existe ou não está administrado pelo município de incidência do ISSQN na data de competência informada na DPS."}]}

Valores que eu já tentei:
“01.03.02.001”, “01.03.02.002”, “01.03.02.003”, “010302001”, “010302002”, “010302003”, “001”, “002”, “003”, etc;

Se eu deixo vazio, não há erro e a nota é gerada. Mas o contador afirma que o valor é obrigatório.

A rota do ADN, para alíquota seria essa:
https://adn.producaorestrita.nfse.gov.br/parametrizacao/4205407/01.03.02.000/2025-12-15/aliquota

Segundo o ChatGpt nesse caso não precisaria preencher, mas não estou confiando muito nesse informação.

Bom dia.

Cuidou para colocar a data de emissão recente? Se a data informada for anterior a data que o Município ativou na data de competência, vai gerar erro. Estes são os primeiros passos.

Se tomou o cuidado de informar o cTribMun como descrito na sua mensagem, teria que ver o que você gerou no Xml e comparar a consulta na url de parametrização…, adianto que não deve ter prestado atenção ao resultado… :face_with_hand_over_mouth:

Aqui vale a reflexão da leitura e entendimento para evitar querer ganhar tempo e se funcionou, não sabe exatamente o porque…

O ChatGpt as vezes erra, tem que tomar cuidado. Melhor é ler com atenção o artigo e entender o que está fazendo. Se consultou o ChatGPT, é porque não entendeu e também não executou corretamente a validação. Não se preocupe, a maioria comete o mesmo erro. Só não errar na próxima!!

Voltando ao assunto.

Note que você colocou a URL da consulta de parametros, mas postou o resultado na sua descrição e também não olhou o resultado da Consulta. Tem que interpretar e entender o que está fazendo, caso contrário, pode induzir ao erro quem está lendo, já que descreve a URL (sem resultado e como se tivesse correto), ainda mais no artigo que ensina o que fazer e o que interpretar. No modo como descrito, induz que o desdobro está correto, mas não foi isto que eu notei.

https://adn.producaorestrita.nfse.gov.br/parametrizacao/4205407/01.03.02.001/2025-12-01/aliquota
{
    "aliquotas": null,
    "mensagem": "Alíquotas não encontradas."
}
Aqui tem parametro com DESDOBRO e o resultado é que nao existe, logo, se declarar cTribMun=001 naturalmente vai ter erro.

Porque está usando 001, 002 se na consulta não tem desdobro? Recomento que leia o artigo novamente e entenda o conceito.

Quando colocar a URL, também publique o resultado no forum, ok? Isto evitaria induzir ao erro outros leitores.

https://adn.producaorestrita.nfse.gov.br/parametrizacao/4205407/01.03.02.000/2025-12-12/aliquota
{
    "aliquotas": {
        "01.03.02.000": [
            {
                "Incidencia": "SIM",
                "Aliq": 2.0,
                "DtIni": "2025-10-01T00:00:00",
                "DtFim": null
            }
        ]
    },
    "mensagem": "Alíquotas recuperadas com sucesso."
}

RESULTADO: “01.03.02.000”

cTribNac = 010203

cTribMunc = 000 –> Nao declarar no XML.

Depois retorna se o resultado, e de deu certo, o que fez era para outros leitores entenderem como foi o resultado.

At.te

Emir Toktar

Bom dia Emir, obrigado pela resposta e pelos esclarecimentos.

Sou programador, então realmente não domino 100% as regras fiscais, por isso acabei misturando conceitos do portal com o funcionamento do Sistema Nacional.

Tirei as dúvidas inicialmente com o contador, que não conseguiu explicar o porquê técnico, apenas afirmou que no portal da prefeitura ele seleciona “003” e que, por isso, o código deveria ser informado. Pelo print que ele me enviou, as opções visíveis eram 001, 002 e 003, o que me levou a acreditar que havia desdobramento ativo. Infelizmente ele não me forneceu o XML de uma nota emitida para que eu pudesse conferir (vou tentar obter).

Após reler o artigo e analisar com mais atenção as consultas de parametrização, agora ficou claro o conceito:

  • A existência de opções no portal municipal não significa que exista desdobro ativo no Ambiente Nacional.

  • O que realmente define se o cTribMun deve ser informado é o resultado da consulta de alíquota.

  • Quando apenas o código base (01.03.02.000) retorna alíquota, não existe desdobramento, e portanto o cTribMun não deve ser declarado no XML.

De fato, ao consultar:

https://adn.producaorestrita.nfse.gov.br/parametrizacao/4205407/01.03.02.000/2025-12-12/aliquota

há retorno de alíquota, e ao consultar:

adn.producaorestrita../parametrizacao/4205407/01.03.02.001/2025-12-01/aliquota

ou

adn.producaorestrita../parametrizacao/4205407/01.03.02.003/2025-12-15/aliquota

o retorno é “Alíquotas não encontradas”, confirmando que não há desdobro.

Minha interpretação inicial foi justamente o inverso (achei que o null indicaria obrigatoriedade de preenchimento), o que agora entendi que estava incorreto.

Se possível, acho que ajudaria muito outros leitores um exemplo explícito de caso com desdobro, onde:

  • 01.03.02.000 não retorna alíquota

  • e 01.03.02.001 (ou outro) retorna, caracterizando a obrigatoriedade do cTribMun

De qualquer forma, ficou claro que, para Florianópolis neste cenário:

  • cTribNac = 010302

  • cTribMun = 000não declarar no XML

Obrigado novamente pela explicação e pela correção — ajudou bastante a entender o fluxo correto.

Grato!
Fernando Mondo

1 curtida

Olá Fernando,

O que realmente está estranho é apresentar no Portal Web com desdobro… Valide se no portal o emitente era de Florianópolis mesmo, pois o CodIbge 4205407 é de Floripa.

  • Para não ter dúvidas, tente executar você mesmo o processo, a informação de existir no portal e você consultar no WS, mostra alguma informação conflitante.
  • As datas de consultas devem ser depois da data de ativação do Município.
  • Tente, por is proprio, conduzir os testes no portal e por WS, para ter garantias de resultado, como informar data emissão no WS e no Portal, mesmo município, etc. Assim você garante que está executando a mesma ação por WS e portal sem viés de informações.

Quanto a mostras as duas abordagesn no artigo citado, tem as consultas sem desdobro nos 2 ambientes, na sequência, após algumas observações, tem a consulta com desdobro e retorno null, para exemplificas as diferenças. Caso não tenha entendido, sugira onde alterar que pode ajudar outros leitores, mas tem as consultas com sucesso e com erro.

As alterações de desdobro podem ocorrer pelo Município, mas achei estranho no portal ter uma informação e nos WS de produção e produção restrita não apresentarem o desdobro.

O Município pode alterar a qualquer momento informações de configuraçõea, a dica é que você faça todo processo, não sei se o contador fez um teste em uma data bem anteriror e ocorreram mudanças ou não.

Para evitar problemas, a sugestão é que você entre no portal restrito (pode usar o certificado do cliente ou login/senha) e faça uma emissão até o final, se tiver problema de schema, vai dar erro ao concluir.

AMBIENTE DE PRODUÇÃO RESTRITA (Teste portal nacional)

Depois execute a emissão de testes por Web Services. Compare os resultados.

Como a coisa toda é dinâmica, melhor você garantir todos os passos para não se incomodar. É novidade para todos, programadores, analistas, contadores, clientes e municípios….

O fórum é composto por alguns moderadores que também tem seus afazeres, e quanto mais detalhado e validado pelos participantes, melhor, ajuda a todos e compartilha conhecimentos.

Depois emita e conclua o post informando se deu certo e tente validar no portal Web e concluir emitindo o XML.

Muito estranho por WS parametros ter uma informação e outra no portal Web. Acredito que tenha alguma informação que não tenham notado, de qualquer forma, depois avisa.

Boa sorte.

1 curtida

Tem algum endpoint que consiga listar os desdobramentos?

Você pode usar o https://adn.nfse.gov.br/parametrizacao/docs/index.html.

Não vi rota para isso aí.

No site da nota nacional quando usuário informa a tributação nacional em alguns casos abre uma lista de opções para tributação municipal. Quero pegar o conteúdo da lista pela Api pois nesse posto explica como saber se tem ou não que passar a tributação municipal mas o que passar veneno dessa lista

quando tem desdobramento municipal, vai aparecer no consumo desta api