📘 NFS-e São Paulo: Falha de Schema — tag cIndOp não gerada no XML


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_INDOP

apresentado como:

Indic. Opera

Depois do processamento do documento fiscal de serviço, o código é transportado para:

CJ3_INDOP

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

Se 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 cIndOp não ter sido gerada no XML.

A solução envolve duas frentes:

  1. Atualização técnica do Protheus;

  2. 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:

NFSEXMLENV

no 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.2410

a documentação atualizada indica o pacote:

1263712

O 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.2510

a documentação indica o pacote:

1263710

Também deve ser:


⚠️ 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:

  1. baixar a tabela oficial de Indicadores de Operação;

  2. abrir o arquivo XLSX;

  3. converter para CSV separado por vírgulas;

  4. acessar o Configurador de Tributos;

  5. acessar:

Cadastros
   ↓
Tabela código indicadores de operação
  1. selecionar:

Outras Ações
   ↓
Importar Tabelas
  1. selecionar o arquivo CSV;

  2. confirmar a importação. (TOTVS Central de Atendimento)


🗃️ Tabela CI1

Após a importação, os códigos ficam disponíveis na tabela:

CI1

correspondente aos:

Códigos Indicadores de Operação

A 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. Opera

deve ser preenchido.

O nome técnico do campo é:

CJ2_INDOP

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

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

preenchido, o Protheus deverá transportar o valor para:

CJ3_INDOP

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

nã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_INDOP

está preenchido, mas:

CJ3_INDOP

nã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_INDOP

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

na 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 cIndOp no XML;

  • modificar diretamente o XML antes da transmissão;

  • escolher um código IndOp aleatoriamente;

  • alterar CJ3_INDOP diretamente pelo banco;

  • copiar o NFSEXMLENV de 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 NFSEXMLENV compilado;

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

  • cClassTrib validado;

  •  NBS validada;

  • campo Indic. Opera preenchido;

  • CJ2_INDOP conferido.

🧾 Documento

  •  nova nota criada após a configuração;

  •  IBS calculado;

  •  CBS calculada;

  •  Regra de Escrituração correta aplicada;

  •  Livro Fiscal gerado;

  • CJ3_INDOP preenchido.

📄 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á:

  1. identificar a Regra de Escrituração aplicável;

  2. utilizar o código IndOp configurado no CJ2_INDOP;

  3. gravar a informação no CJ3_INDOP;

  4. encaminhar o indicador ao processo de geração da NFS-e;

  5. gerar a tag:

<cIndOp>...</cIndOp>
  1. posicionar a estrutura conforme o schema esperado;

  2. transmitir o XML ao TSS;

  3. 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 NFSEXMLENV atualizado;

  • 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_INDOP antes 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:

NFSEXMLENV

no RPO do Protheus. (TOTVS Central de Atendimento)


4. Qual pacote utilizar na release 12.1.2410?

A documentação atualizada informa:

1263712

somente 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. Opera

tecnicamente:

CJ2_INDOP

(TOTVS Central de Atendimento)


8. Onde posso confirmar se o indicador chegou ao Livro Fiscal?

No campo:

CJ3_INDOP

da 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.”


Atualizado em 26/08/2026
Este artigo foi útil?  
Agradecemos sua avaliação.