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- 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

