Data de publicação: 26/08/2026
🎯 Objetivo
Orientar o diagnóstico e a correção da falha de schema apresentada durante a transmissão de RPS/NFS-e para a Prefeitura de São Paulo, quando o XML gerado pelo TOTVS Protheus/TSS não apresenta a nova tag:
<cIndOp>e o processamento retorna a mensagem:
Element '{http://www.prefeitura.sp.gov.br/nfe}indDest':
This element is not expected.
Expected is (
{http://www.prefeitura.sp.gov.br/nfe}cIndOp
).Segundo a TOTVS, a causa da ocorrência é a não geração da nova tag cIndOp no XML, sendo necessário atualizar o ambiente Protheus e configurar corretamente o Indicador da Operação — IndOp no Configurador de Tributos. (TOTVS Central de Atendimento)
🧩 Ambiente
A orientação se aplica ao seguinte cenário:
Produto: TOTVS Backoffice — Linha Protheus;
Integração: TOTVS Service SOA — TSS;
Processo: Transmissão de Documentos Eletrônicos;
Documento: NFS-e;
Município: São Paulo/SP;
Contexto: Reforma Tributária do Consumo;
Tributos relacionados: IBS e CBS;
Versões: todas as versões, observando os pacotes específicos disponibilizados para cada release.
O artigo oficial da TOTVS foi atualizado em 11/08/2026 e identifica expressamente a ausência da tag cIndOp como causa da falha de schema. (TOTVS Central de Atendimento)
🚨 Ocorrência
Durante a transmissão de um RPS para a Prefeitura de São Paulo, o TSS apresenta a seguinte falha:
Element '{http://www.prefeitura.sp.gov.br/nfe}indDest':
This element is not expected.
Expected is (
{http://www.prefeitura.sp.gov.br/nfe}cIndOp
).A mensagem pode gerar a impressão de que existe algum problema específico com a tag:
<indDest>Entretanto, o ponto principal da rejeição é o elemento que deveria aparecer antes dela na estrutura do XML.
O schema da Prefeitura de São Paulo esperava encontrar:
<cIndOp>mas encontrou diretamente:
<indDest>Por esse motivo, o XML é considerado incompatível com a sequência prevista pelo schema. A TOTVS confirma que a causa é a ausência da nova tag cIndOp. (TOTVS Central de Atendimento)
🔎 O que é a tag cIndOp
A tag:
<cIndOp>representa o Código do Indicador da Operação — IndOp.
No contexto da Reforma Tributária, o indicador é utilizado nas operações de serviços relacionadas ao IBS e à CBS.
A TOTVS disponibilizou no Configurador de Tributos estruturas específicas para:
importar a tabela oficial de Indicadores de Operação;
armazenar os códigos;
associar o código à Regra de Escrituração;
transportar o indicador para o Livro Fiscal;
disponibilizar a informação para a geração do documento eletrônico.
Na parametrização fiscal, o indicador é associado à Regra de Escrituração pelo campo:
CJ2_INDOPapresentado como:
Indic. OperaDepois do processamento do documento fiscal de serviço, o código é transportado para:
CJ3_INDOPno Livro Fiscal. (TOTVS Central de Atendimento)
🔄 Fluxo da informação
O fluxo pode ser compreendido da seguinte forma:
Tabela oficial IndOp
↓
Importação no Configurador de Tributos
↓
Tabela CI1
↓
Regra de Escrituração
↓
CJ2_INDOP
↓
Documento Fiscal de Serviço
↓
Livro Fiscal
↓
CJ3_INDOP
↓
Geração da NFS-e
↓
<cIndOp>
↓
TSS
↓
Prefeitura de São PauloSe o indicador não estiver corretamente configurado no processo fiscal, a informação necessária à geração da tag poderá não estar disponível.
🧠 Causa da falha
De acordo com a documentação oficial, a causa é:
a nova tag
cIndOpnão ter sido gerada no XML.
A solução envolve duas frentes:
Atualização técnica do Protheus;
Configuração fiscal do Indicador da Operação no Configurador de Tributos. (TOTVS Central de Atendimento)
Portanto, somente retransmitir o documento sem corrigir a origem não resolve a ocorrência.
⚙️ Atualizações necessárias no Protheus
1. 🧾 Compilar o último NFSEXMLENV
A TOTVS orienta realizar a compilação da versão mais recente do rdmake:
NFSEXMLENVno RPO do Protheus. (TOTVS Central de Atendimento)
Esse programa participa da preparação das informações que serão encaminhadas ao processo de geração da NFS-e.
Antes da compilação, recomenda-se:
identificar a release instalada;
confirmar a origem oficial do fonte;
verificar a data do rdmake;
realizar backup do RPO;
verificar se existe alguma customização local;
realizar a atualização inicialmente em homologação;
registrar evidências da versão anterior e posterior.
2. 📦 Release 12.1.2410
Para ambientes:
12.1.2410a documentação atualizada indica o pacote:
1263712O procedimento informado é:
aplicar o pacote PTM;
compilar no RPO do Protheus.
A TOTVS ressalta que esse pacote é destinado somente a clientes com garantia estendida. (TOTVS Central de Atendimento)
3. 📦 Release 12.1.2510
Para ambientes:
12.1.2510a documentação indica o pacote:
1263710Também deve ser:
aplicado o pacote PTM;
realizada a compilação correspondente no RPO do Protheus. (TOTVS Central de Atendimento)
⚠️ Utilizar sempre o pacote da release correta
Não se recomenda utilizar:
PTM da release 12.1.2410 em ambiente 12.1.2510;
fontes copiados de outro ambiente sem análise;
versões antigas do
NFSEXMLENV;artefatos obtidos fora dos canais oficiais da TOTVS.
A atualização precisa respeitar a release efetivamente utilizada pelo ambiente.
🛠️ Configuração do Indicador de Operação
Depois das atualizações técnicas, a TOTVS orienta realizar a configuração fiscal do IndOp através do Configurador de Tributos. (TOTVS Central de Atendimento)
Esse ponto é fundamental.
Atualizar o NFSEXMLENV e aplicar o patch prepara tecnicamente o ambiente para gerar a informação, mas o sistema também precisa saber qual Código Indicador da Operação utilizar para a operação fiscal.
📥 Importação da tabela de Indicadores de Operação
Caso a tabela ainda não esteja carregada no Configurador de Tributos, deverá ser realizada sua importação.
A TOTVS disponibiliza o procedimento pela rotina FISA170.
O processo consiste em:
baixar a tabela oficial de Indicadores de Operação;
abrir o arquivo XLSX;
converter para CSV separado por vírgulas;
acessar o Configurador de Tributos;
acessar:
Cadastros
↓
Tabela código indicadores de operaçãoselecionar:
Outras Ações
↓
Importar Tabelasselecionar o arquivo CSV;
confirmar a importação. (TOTVS Central de Atendimento)
🗃️ Tabela CI1
Após a importação, os códigos ficam disponíveis na tabela:
CI1correspondente aos:
Códigos Indicadores de OperaçãoA importação apenas disponibiliza os códigos.
Ela não determina automaticamente qual indicador deverá ser utilizado em cada operação. (TOTVS Central de Atendimento)
🔗 Vinculação do IndOp na Regra de Escrituração
Depois da importação, deve ser identificada a Regra de Escrituração de IBS/CBS aplicável à operação.
Nessa regra, o campo:
Indic. Operadeve ser preenchido.
O nome técnico do campo é:
CJ2_INDOPA TOTVS informa que esse campo permite vincular à Regra de Escrituração um código existente na tabela CI1. (TOTVS Central de Atendimento)
📌 Exemplo conceitual
Regra de Escrituração: Serviço sujeito a IBS/CBS
CST IBS/CBS: conforme operação
cClassTrib: conforme operação
IndOp: código aplicável
CJ2_INDOP = código selecionadoO código efetivo não deve ser escolhido apenas pela descrição.
A definição deve ser validada pela área fiscal conforme:
natureza da operação;
serviço prestado;
NBS;
CST de IBS/CBS;
cClassTrib;regras tributárias aplicáveis.
A própria TOTVS ressalta que dúvidas relacionadas à configuração ou à amarração dos Indicadores da Operação devem ser tratadas pela equipe fiscal. (TOTVS Central de Atendimento)
📚 Validação no Livro Fiscal
Depois de gerar um novo documento fiscal de serviço utilizando uma Regra de Escrituração com o campo:
CJ2_INDOPpreenchido, o Protheus deverá transportar o valor para:
CJ3_INDOPna tabela de Livros Fiscais CJ3. (TOTVS Central de Atendimento)
Esse é um importante ponto de diagnóstico.
🔍 Situação 1 — CJ2_INDOP vazio
Se a Regra de Escrituração estiver sem:
CJ2_INDOPnão existe Indicador de Operação configurado para a regra.
Nesse cenário, deve-se revisar a parametrização fiscal.
🔍 Situação 2 — CJ2_INDOP preenchido e CJ3_INDOP vazio
Se:
CJ2_INDOPestá preenchido, mas:
CJ3_INDOPnão foi gravado, valide:
se a regra correta foi utilizada;
se o documento foi incluído depois da configuração;
se o documento fiscal é de serviço;
se IBS e CBS estão sendo calculados;
se o ambiente possui as atualizações necessárias;
se o processamento fiscal ocorreu corretamente.
🔍 Situação 3 — CJ3_INDOP preenchido, mas cIndOp ausente no XML
Se o Livro Fiscal possui:
CJ3_INDOPmas o XML não possui:
<cIndOp>a investigação deve avançar para a camada de geração do documento eletrônico.
Nesse cenário, valide principalmente:
pacote PTM aplicado;
versão do
NFSEXMLENV;RPO efetivamente utilizado pelo AppServer;
reinicialização dos serviços após a compilação;
se o documento foi gerado novamente depois da atualização.
🧮 Validar o cálculo do IBS e da CBS
O Indicador de Operação integra o contexto das Regras de Escrituração utilizadas para IBS e CBS.
Por isso, além do CJ2_INDOP, deve-se confirmar que o documento apresenta corretamente o cálculo dos novos tributos.
Verifique:
regra tributária localizada;
CST de IBS/CBS;
cClassTrib;base de cálculo;
alíquotas;
valores de IBS;
valores de CBS;
Regra de Escrituração;
indicador da operação.
Em material relacionado a NFS-e, a TOTVS também orienta gerar uma nova nota do zero, verificando o cálculo do IBS/CBS e o Indicador de Operação gravado na CJ3. (TOTVS Central de Atendimento)
🔗 Relação entre IndOp, NBS e cClassTrib
Em documentações relacionadas ao mesmo tratamento do Indicador de Operação em NFS-e, a TOTVS destaca que o código informado deve ser válido e estar coerentemente relacionado ao:
item de serviço;
NBS;
cClassTrib;cIndOp.
Um código incorreto pode continuar provocando rejeição mesmo quando a tag estiver presente. (TOTVS Central de Atendimento)
Portanto, existem dois cenários diferentes:
❌ Tag não gerada
<cIndOp>não existe no XML.
❌ Tag gerada com código incorreto
<cIndOp>CODIGO</cIndOp>existe, porém o código informado não corresponde à combinação fiscal da operação.
Nos dois casos, o documento pode não ser aceito.
🧪 Gerar um novo documento após as correções
Depois de:
aplicar o PTM;
compilar o
NFSEXMLENV;importar a tabela IndOp, se necessário;
configurar a Regra de Escrituração;
preencher o
CJ2_INDOP;
gere uma nova NFS-e/RPS do zero.
Não utilize exclusivamente uma nota criada antes das correções, porque ela pode manter informações fiscais processadas anteriormente.
O novo teste deve contemplar:
Nova operação
↓
Novo cálculo
↓
Nova escrituração
↓
CJ3_INDOP
↓
Novo XML
↓
<cIndOp>🔍 Como validar o XML
Antes da transmissão, obtenha o XML gerado e procure pela tag:
<cIndOp>...</cIndOp>Depois, confira a sequência próxima ao elemento:
<indDest>O objetivo é que o XML apresente a estrutura esperada pelo schema da Prefeitura de São Paulo.
Na ocorrência original, o schema encontrou:
<indDest>quando esperava:
<cIndOp>Por isso, a geração da tag no local correto da estrutura é fundamental para eliminar a falha. (TOTVS Central de Atendimento)
🔄 Fluxo técnico recomendado
Identificar a release do Protheus
↓
Realizar backup do RPO
↓
Aplicar PTM correspondente à release
↓
Compilar o último NFSEXMLENV
↓
Reiniciar os serviços necessários
↓
Validar a tabela IndOp
↓
Importar IndOp pela FISA170, se necessário
↓
Configurar Regra de Escrituração IBS/CBS
↓
Preencher CJ2_INDOP
↓
Gerar nova nota
↓
Validar cálculo IBS/CBS
↓
Conferir CJ3_INDOP
↓
Gerar XML
↓
Conferir <cIndOp>
↓
Transmitir ao TSS
↓
Prefeitura de São Paulo🛠️ Roteiro de diagnóstico
1. A tag cIndOp existe no XML?
Não
Verifique:
pacote da release;
NFSEXMLENV;Regra de Escrituração;
CJ2_INDOP;CJ3_INDOP.
Sim
Valide o conteúdo informado e sua compatibilidade com a operação fiscal.
2. O CJ3_INDOP está preenchido?
Não
Verifique primeiro:
CJ2_INDOPna Regra de Escrituração.
Sim
Prossiga para a análise da geração do XML.
3. O CJ2_INDOP está preenchido?
Não
Configure o Indicador da Operação na Regra de Escrituração.
Sim
Verifique se essa é realmente a regra utilizada pelo documento.
4. A tabela de Indicadores possui registros?
Não
Realize a importação da tabela oficial pela FISA170.
Sim
Valide se o código utilizado é adequado à operação.
5. IBS e CBS estão sendo calculados?
Não
A análise deve ser direcionada à configuração fiscal no Configurador de Tributos.
Sim
Continue a análise da escrituração e da montagem do XML.
⚠️ O que não fazer
Durante o tratamento da ocorrência, não é recomendado:
inserir manualmente a tag
cIndOpno XML;modificar diretamente o XML antes da transmissão;
escolher um código IndOp aleatoriamente;
alterar
CJ3_INDOPdiretamente pelo banco;copiar o
NFSEXMLENVde outra release;aplicar PTM incompatível com o ambiente;
retransmitir repetidamente a mesma nota sem corrigir a origem;
considerar a atualização técnica suficiente sem validar a configuração fiscal.
A correção precisa ocorrer na origem da informação.
✅ Checklist de atualização e configuração
🧱 Protheus
Release identificada;
backup do RPO realizado;
PTM correto obtido;
pacote da release aplicado;
último
NFSEXMLENVcompilado;ausência de erros de compilação;
serviços reiniciados;
RPO atualizado efetivamente carregado.
📥 Indicador de Operação
tabela oficial IndOp obtida;
arquivo convertido para CSV, quando necessário;
importação realizada;
códigos disponíveis na
CI1;código validado pela área fiscal.
⚙️ Regra de Escrituração
regra de IBS/CBS identificada;
CST validado;
cClassTribvalidado;NBS validada;
campo Indic. Opera preenchido;
CJ2_INDOPconferido.
🧾 Documento
nova nota criada após a configuração;
IBS calculado;
CBS calculada;
Regra de Escrituração correta aplicada;
Livro Fiscal gerado;
CJ3_INDOPpreenchido.
📄 XML
novo XML gerado;
tag
<cIndOp>presente;código IndOp correto;
estrutura anterior à
<indDest>validada;XML transmitido pelo TSS;
falha de schema eliminada.
✅ Resultado esperado
Após a aplicação das atualizações e a configuração correta do Indicador da Operação, o Protheus deverá:
identificar a Regra de Escrituração aplicável;
utilizar o código IndOp configurado no
CJ2_INDOP;gravar a informação no
CJ3_INDOP;encaminhar o indicador ao processo de geração da NFS-e;
gerar a tag:
<cIndOp>...</cIndOp>posicionar a estrutura conforme o schema esperado;
transmitir o XML ao TSS;
eliminar a falha:
Element 'indDest': This element is not expected.
Expected is ( cIndOp ).A causa e a orientação de atualização são expressamente indicadas pela TOTVS para essa ocorrência. (TOTVS Central de Atendimento)
💡 Boas práticas
aplicar os pacotes inicialmente em homologação;
manter backup do RPO antes da atualização;
utilizar somente o PTM correspondente à release;
manter o
NFSEXMLENVatualizado;importar a tabela oficial de IndOp quando houver atualização;
definir o IndOp em conjunto com a área fiscal;
validar NBS, CST e
cClassTrib;gerar uma nova nota depois da correção;
conferir o
CJ3_INDOPantes de analisar o TSS;guardar o XML rejeitado e o XML corrigido para comparação;
documentar a configuração da Regra de Escrituração.
❓ FAQ
1. O que causa essa falha de schema?
Segundo a TOTVS, ela ocorre porque a nova tag:
<cIndOp>não foi gerada no XML. (TOTVS Central de Atendimento)
2. O erro está na tag indDest?
Não diretamente. O schema encontrou indDest quando ainda esperava receber cIndOp.
3. Qual fonte precisa ser atualizado?
A TOTVS orienta compilar o último rdmake:
NFSEXMLENVno RPO do Protheus. (TOTVS Central de Atendimento)
4. Qual pacote utilizar na release 12.1.2410?
A documentação atualizada informa:
1263712somente para clientes com garantia estendida. (TOTVS Central de Atendimento)
5. Qual pacote utilizar na release 12.1.2510?
A documentação informa:
1263710(TOTVS Central de Atendimento)
6. Apenas atualizar o Protheus resolve?
Não necessariamente. Depois da atualização, o Indicador da Operação precisa ser configurado no Configurador de Tributos. (TOTVS Central de Atendimento)
7. Onde o IndOp é configurado?
Na Regra de Escrituração, no campo:
Indic. Operatecnicamente:
CJ2_INDOP(TOTVS Central de Atendimento)
8. Onde posso confirmar se o indicador chegou ao Livro Fiscal?
No campo:
CJ3_INDOPda tabela CJ3. (TOTVS Central de Atendimento)
9. A tabela IndOp é carregada automaticamente?
O procedimento oficial prevê a importação da tabela pelo Configurador de Tributos, a partir do arquivo oficial convertido para CSV. (TOTVS Central de Atendimento)
10. Quem deve definir qual IndOp utilizar?
A área fiscal deve validar a configuração e a amarração do Indicador da Operação. A própria TOTVS direciona dúvidas dessa natureza para a equipe fiscal. (TOTVS Central de Atendimento)
11. Preciso gerar uma nova nota depois da correção?
É recomendado gerar uma nova nota do zero, garantindo que cálculo, escrituração e indicador sejam processados depois das atualizações. Esse procedimento também é indicado pela TOTVS em materiais relacionados ao uso do cIndOp em NFS-e. (TOTVS Central de Atendimento)
12. A tag pode existir e mesmo assim a nota ser rejeitada?
Sim. Em materiais relacionados, a TOTVS alerta que o código precisa ser válido e coerente com a NBS e o cClassTrib. Portanto, não basta apenas gerar a tag: seu conteúdo também precisa representar corretamente a operação. (TOTVS Central de Atendimento)
🔗 Referências oficiais
TOTVS — Cross Segmentos — TSS Transmissão de Documentos Eletrônicos — NFS-e — Falha de Schema: indDest não esperado / esperado cIndOp.
Artigo atualizado em 11/08/2026. (TOTVS Central de Atendimento)
TOTVS — FISA170 — Importação da Tabela de Indicador de Operação (IndOp) no Configurador de Tributos. (TOTVS Central de Atendimento)
👤 Autor
Fabrizio Augusto Ventavolo
Consultor Especialista TOTVS — Mastersiga Consultoria
“Conectamos tecnologia, processos e pessoas para acelerar resultados com excelência em sistemas TOTVS.”