Fluxo completo de uso do Esfinge
Caminho: Executando > Encerramento mensal > Encerramento. Executa em segundo plano.
⚠️ Atenção ao mês de dezembro: se o mês de dezembro já estiver encerrado, é necessário reabri-lo e encerrá-lo novamente antes de iniciar o envio do e-Sfinge 2026.
Isso é necessário porque a partir de 2026 o encerramento passou a gravar o saldo de cada débito e dívida no banco de dados — como encerramentos anteriores não realizavam essa gravação, é preciso repetir o processo para que os saldos fiquem registrados corretamente.
✅ Fique tranquilo: reabrir e fechar o mês de dezembro não implica no reenvio dos dados desse mês ao TCE.
Assuntos disponíveis: Saldo Inicial, Contribuinte, Imobiliário, Propriedade Imobiliária, Lançamentos, Cobrança DA, Início Prescricional, CDA, Situação Cobrança DA, Revisões, Baixas, DGA, Estorno/Restituição.
⚠️ Gerar o assunto [00] Saldo Inicial em todos os meses para capturar reintegrações de crédito.
Impeditivas novas em 2026: CON779, CON780, CON781 | Alerta nova: CON782
Se houver erro: usar o Cancelar pacote para descartar (parcial ou total), corrigir e reenviar.
Descarte total: Deletar pacote = Sim (reinicia do zero).
Código de registro TCE: opcional — se não informado, o sistema busca automaticamente pelo mês/ano.
Referência de filtros · Fonte e-Sfinge
Filtros disponíveis na fonte e-Sfinge
Define qual dos 13 assuntos do e-Sfinge será buscado. É o ponto de partida de qualquer consulta — sem ele, a busca percorre todos os assuntos ao mesmo tempo.
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios'"idGrupo, codigoTce ou dadosEnvio.Filtra pela competência de envio no formato AAAAMM. Ideal para limitar a busca a um período específico.
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and idGrupo = '202601'"Busca um registro exato dentro de um assunto. Cada assunto tem seu próprio campo que funciona como codigoTce — veja a seção de assuntos abaixo para saber qual campo usar em cada um.
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and codigoTce in ('12345')"Busca por qualquer valor dentro do JSON enviado ao TCE. Use quando não sabe exatamente em qual campo está o valor, ou para buscar por campos que não são filtros diretos. Sempre use com LIKE e %valor%.
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and dadosEnvio like '%123456789%'"nomeArquivo ou idGrupo.Filtra pelo código UG da entidade. Indispensável em prefeituras com múltiplas entidades (Fundo de Saúde, Fundo de Educação etc.) para isolar os dados de uma específica. O código UG está disponível na aba Acessos TCE.
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and idGrupo = '202601' and idDado = '11444'"Usado exclusivamente com o filtro dadosEnvio. Permite buscar por um trecho de texto dentro do conteúdo do registro — útil quando não sabe o valor exato ou o campo é composto.
- %valor%
Contém esse texto em qualquer posição — o mais usado
- valor%
Começa com esse texto
- %valor
Termina com esse texto
codigoTce por assunto · referência rápida
| # | nomeArquivo | codigoTce equivale ao campo |
|---|---|---|
| 00 | saldosIniciaisCreditoTributario | codigoLancamentoCreditoTributario |
| 01 | cadastrosContribuintes | numeroMatriculaContribuinte |
| 02 | cadastrosImobiliarios | numeroInscricaoImobiliaria |
| 03 | cadastrosPropriedadesImobiliarias | Não existe — usar dadosEnvio like |
| 04 | lancamentosCreditosTributarios | codigoLancamentoCreditoTributario |
| 05 | cobrancaDividaAtiva | numeroAnoTipoCobranca |
| 06 | inicioPrazoPrescricional |
codigoLancamentoCreditoTributarioOuNumeroInscricaoDividaAtivaou codigoLancamento
|
| 07 | certidaoDividaAtiva | numeroAnoCertidaoDividaAtiva |
| 08 | situacaoTipoCobrancaDividaAtiva | numeroAnoTipoCobrancaDividaAtiva |
| 09 | revisaoValorLancamentosCreditosTributarios | Pendente |
| 10 | baixasCreditosTributarios |
codigoSequencialOperacaoBaixa
adicionar 0 na frente
|
| 11 | diarioGeralArrecadacao | codigoSequencialOperacaoArrecadacao |
| 12 | estornoReceitasDiarioGeralArrecadacao |
codigoSequencialOperacaoArrecadacaoou codigoSequencialEstorno
|
Como montar um filtro na prática
AAAAMM (ex: 202601). Isso reduz drasticamente o volume de dados retornados.% antes e depois do valor.Assuntos e seus campos · referência completa
filtroEsfinge = "nomeArquivo = 'saldosIniciaisCreditoTributario' and idGrupo = '202601' and codigoTce in ('CODIGO')"filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and idGrupo = '202601' and codigoTce in ('MATRICULA')"filtroEsfinge = "nomeArquivo = 'cadastrosImobiliarios' and idGrupo = '202601' and codigoTce in ('INSCRICAO')"filtroEsfinge = "nomeArquivo = 'cadastrosPropriedadesImobiliarias' and dadosEnvio like '%INSCRICAO%'"filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and idGrupo = '202601' and codigoTce in ('CODIGO')"filtroEsfinge = "nomeArquivo = 'cobrancaDividaAtiva' and idGrupo = '202601' and codigoTce in ('NUMERO/ANO')"filtroEsfinge = "nomeArquivo = 'inicioPrazoPrescricional' and idGrupo = '202601' and codigoTce in ('CODIGO')"filtroEsfinge = "nomeArquivo = 'certidaoDividaAtiva' and idGrupo = '202601' and codigoTce in ('NUMERO/ANO')"filtroEsfinge = "nomeArquivo = 'situacaoTipoCobrancaDividaAtiva' and idGrupo = '202601' and codigoTce in ('NUMERO')"filtroEsfinge = "nomeArquivo = 'revisaoValorLancamentosCreditosTributarios' and idGrupo = '202601' and dadosEnvio like '%CODIGO%'"filtroEsfinge = "nomeArquivo = 'baixasCreditosTributarios' and idGrupo = '202601' and codigoTce in ('0CODIGO')"filtroEsfinge = "nomeArquivo = 'diarioGeralArrecadacao' and idGrupo = '202601' and codigoTce in ('CODIGO')"filtroEsfinge = "nomeArquivo = 'estornoReceitasDiarioGeralArrecadacao' and idGrupo = '202601' and codigoTce in ('CODIGO')"Rubricas de arrecadação · tabela TCE
1.1.1. (impostos), 1.1.2. (taxas) ou 1.1.3. (contribuição de melhoria). Rubricas em outras classificações são registradas no sistema mas não compõem o total cobrado pelo TCE. Verifique sempre a classificação antes de vincular uma receita.
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.1.2.50.0.1 | Principal e Correções | Conta ✓ |
| 1.1.1.2.50.0.2 | Multa e Juros | Conta ✓ |
| 1.1.1.2.50.0.3 | Dívida Ativa | Conta ✓ |
| 1.1.1.2.50.0.4 | Multa e Juros de Dívida Ativa | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.1.2.53.0.1 | Principal e Correções | Conta ✓ |
| 1.1.1.2.53.0.2 | Multa e Juros | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.1.4.51.1.1 | Principal e Correções | Conta ✓ |
| 1.1.1.4.51.1.2 | Multa e Juros | Conta ✓ |
| 1.1.1.4.51.1.3 | Dívida Ativa | Conta ✓ |
| 1.1.1.4.51.1.4 | Multa e Juros de Dívida Ativa | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.2.1.01.0.1 | Principal e Correções | Conta ✓ |
| 1.1.2.1.01.0.2 | Multa e Juros | Conta ✓ |
| 1.1.2.1.01.0.3 | Dívida Ativa | Conta ✓ |
| 1.1.2.1.01.0.4 | Multa e Juros de Dívida Ativa | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.2.1.50.0.1 | Principal e Correções | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.2.2.01.0.1 | Principal e Correções | Conta ✓ |
| 1.1.2.2.01.0.2 | Multa e Juros | Conta ✓ |
| 1.1.2.2.01.0.3 | Dívida Ativa | Conta ✓ |
| 1.1.2.2.01.0.4 | Multa e Juros de Dívida Ativa | Conta ✓ |
| Rubrica | Descrição da receita | Conta arrecadação |
|---|---|---|
| 1.1.3.0.00.0.0 | Contribuição de Melhoria | Conta ✓ |
| 1.1.3.1.00.0.0 | Contribuição de Melhoria | Conta ✓ |
| 1.1.3.1.50.0.0 | Contribuição de Melhoria para Expansão da Rede de Água Potável e Esgoto Sanitário | Conta ✓ |
| 1.1.3.1.51.0.0 | Contribuição de Melhoria para Expansão da Rede de Iluminação Pública na Cidade | Conta ✓ |
| 1.1.3.1.52.0.0 | Contribuição de Melhoria para Expansão de Rede de Iluminação Pública Rural | Conta ✓ |
| 1.1.3.1.53.0.0 | Contribuição de Melhoria para Pavimentação e Obras Complementares | Conta ✓ |
| 1.1.3.1.99.0.0 | Outras Contribuições de Melhoria | Conta ✓ |
Tabela de códigos de receita · TCE/SC
| Cód. | Descrição da receita | Rubrica vinculada |
|---|---|---|
| 01 | IPTU | IPTU |
| 02 | ITBI (Urbano) | ITBI |
| 03 | ISS | ISS |
| 04 | Contribuição de Melhoria NOVO 2026 | Contribuição de Melhoria |
| 05 | Taxas | Taxas |
| 06 | COSIP | Não utilizado |
| 07 | Multas Aplicadas pelo TCE/SC | Não utilizado |
| 08 | Outros (Empréstimos Compulsórios, Foros, Laudêmios, Aluguéis, Honorários Advocatícios, etc.) | Não utilizado |
| 09 | Tarifas | Não utilizado |
| 10 | Outras Multas (exceto as aplicadas pelo TCE/SC) | Não utilizado |
| 11 | ITBI Rural | ITBI |
| 12 | ITBI Sobrepartilha ou ITBI Direitos Reais | ITBI |
| 13 | IPTU Decorrentes de Leilão | IPTU |
| 14 | ISS (Retido) | ISS |
| 15 | Simples Nacional | ISS |
Assuntos de envio ao TCE · Módulo Tributário
nomeArquivo = 'nomeDoAssunto' and idGrupo = 'AAAAMM' and ...Cada pacote enviado ao TCE é composto por 13 assuntos (00 a 12). Clique em qualquer assunto para ver o que ele envia e um exemplo de filtro pronto para uso.
⚠️ Para unidades do tipo Prefeitura, é obrigatório enviar ao menos um registro em janeiro. Deve ser gerado em todos os meses para capturar reintegrações.
filtroEsfinge = "nomeArquivo = 'saldosIniciaisCreditoTributario' and idGrupo = '202601'"
Na primeira remessa devem ser enviados todos os registros atualizados. Em remessas seguintes, apenas os que sofreram alteração.
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and idGrupo = '202601'"
Deve ser atualizado a cada mudança de características do imóvel (ex: atualização do valor venal). Na primeira remessa, enviar todos os registros atualizados.
filtroEsfinge = "nomeArquivo = 'cadastrosImobiliarios' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'cadastrosPropriedadesImobiliarias' and idGrupo = '202601'"
Todo lançamento com tipo de crédito vinculado a imóvel (ex: IPTU) precisa ter o imóvel registrado no assunto 02.
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'cobrancaDividaAtiva' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'inicioPrazoPrescricional' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'certidaoDividaAtiva' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'situacaoTipoCobrancaDividaAtiva' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'revisaoValorLancamentosCreditosTributarios' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'baixasCreditosTributarios' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'diarioGeralArrecadacao' and idGrupo = '202601'"
filtroEsfinge = "nomeArquivo = 'estornoReceitasDiarioGeralArrecadacao' and idGrupo = '202601'"
Relatório de erros por assunto · clique em "Solução" para expandir
O sistema encontrou um lançamento tributário vinculado ao tipo de crédito 01 (IPTU), mas não conseguiu localizar o imóvel correspondente no assunto [02] — Imobiliário. Isso impede o envio porque o TCE exige que todo lançamento tenha o imóvel registrado.
- 01Imóvel não foi gerado no assunto [02] na etapa de Geração de Dados.
- 02Inscrição do imóvel está cadastrada de forma diferente no sistema de origem.
- 03Lançamento possui código de imóvel incorreto ou ausente.
-- Localizar o lançamento e verificar o imóvel vinculado
SELECT campo1, campo2
FROM tabela
WHERE num_lancamento = '[NÚMERO]'
AND cod_contribuinte = '[CÓDIGO]'-- Verificar existência do imóvel no assunto 02
SELECT *
FROM tabela_imoveis
WHERE inscricao = '[INSCRIÇÃO DO IMÓVEL]'O campo indicativoCadastroAtivo não está preenchido. Obrigatório no primeiro envio do contribuinte ao TCE.
fonteEsfinge = Dados.tributos.v2.esfinge
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and idGrupo = '202601' and codigoTce in ('1523')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
dados.indicativoCadastroAtivo = 'S' // INFORMAR S OU N
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:itemEsfinge.idDado ?: nulo,
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
imprimir dados
}Contribuinte sem CPF ou CNPJ. Ocorre na etapa 5 — Validação de Contribuintes. Comum em estrangeiros.
fonteEsfinge = Dados.tributos.v2.esfinge
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and idGrupo = '202601' and codigoTce in ('1523')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
dados.tipoContribuinte = '04' // Estrangeiro PF = 04
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:itemEsfinge.idDado ?: nulo,
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
imprimir dados
}Embora não obrigatórios pelo layout 2026, o TCE pode gerar este erro esporadicamente. Se persistir, abrir chamado com o TCE/SC.
O TCE rejeitou porque o contribuinte já existe em sua base — enviado em duplicidade na fonte.
idGrupo no log. Mesma competência: usar .take(1). Competências diferentes: excluir o da competência atual.fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'cadastrosContribuintes' and codigoTce in ('1251')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroCampo Valor Venal não preenchido, ou tabela e-Sfinge WS não mapeada. Cada entidade tem campo adicional próprio.
Tabela TCE 91 (máx. 07-Outros). Códigos são padrão — não é possível criar novos.
Tabela TCE 90 (máx. 06-Imóvel Rural). Não é possível criar códigos além dos aceitos.
Imóveis sem campos obrigatórios preenchidos não serão inseridos na fonte.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'cadastrosImobiliarios' and codigoTce in ('02.01.044.0277.1')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroMesmo procedimento do Assunto 02 — Imóvel já cadastrado (duplicidade na fonte): O assunto 03 não tem codigoTce — usar filtro por dadosEnvio like com a inscrição imobiliária.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'cadastrosPropriedadesImobiliarias' and dadosEnvio like '%INFORMAR_INSCRICAO%'"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroBenefício fiscal com codigoTce = 02 (não aceito). Códigos válidos (tabela 92): 01-Tributado, 03-Isento, 04-Outros, 05-Imunidade Recíproca, 06-Religiosa, 07-Entidades.
Provavelmente débito de ITBI Rural (cód. 11) lançado com receita de ITBI Urbano (cód. 02), que exige inscrição imobiliária. Também ocorre para IPTU (01) e Contribuição de Melhoria (04) sem imóvel. Correção via Service Layer (Postman/Insomnia).
lancamento (codigoLancamentoCreditosTributarios). O log trará os IDs para as APIs de guiasReceitas, lancamentosReceitas e pagamentosDetalhados. Se houver pagamento estornado, também ajustar. Gerar os dados novamente após qualquer ajuste.fonteReceitas = Dados.tributos.v2.receitas;
filtroReceitas = "codigoTCE is null"
dadosReceitas = fonteReceitas.busca(criterio: filtroReceitas)
percorrer (dadosReceitas) { itemReceitas -> imprimir item }fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and codigoTce in ('1081016127013')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroImóveis sem campos obrigatórios não serão inseridos. Verificar erros 02-001 a 02-004 antes de executar.
Este erro pode ter múltiplas causas. Verifique qual cenário se aplica ao seu caso.
Comum quando a entidade virou multientidade. Registros antigos ficam com idDado = null. Verificar a UG correta antes de executar — setar a UG errada perpetua o problema.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "(idDado is null or idDado = 0) and idGrupo = '${parametros.competencia.valor.toString().replace('-','')}'"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
listaTotal = dadosEsfinge.collate(500)
percorrer (listaTotal) { itens ->
itens.each { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:"X", // INFORMAR CÓDIGO DA UG
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
}
esperar 10000
}Os lançamentos listados no erro são referenciados por assuntos posteriores (05 a 12) mas não possuem registro no assunto 00 (saldosIniciaisCreditoTributario). Isso ocorre quando um débito foi inscrito e estornado na mesma data — a rotina de encerramento mensal de dezembro não grava o saldo desse débito, pois interpreta o estorno como a "primeira movimentação" e ignora que o crédito existiu.
anoLancamento = 0saldosIniciaisCreditoTributario) para esses lançamentoslancamentosCreditosTributarios[N].codigoEspecificacaoNaturezaReceita: Obrigatório - Código da Especificação da Receita/Natureza da Receita
O TCE rejeitou o arquivo de envio do assunto 04 com código HTTP 422 (Erro de Validação). Um ou mais lançamentos estão sendo enviados sem o campo codigoEspecificacaoNaturezaReceita preenchido — que é obrigatório a partir de 2026.
⚠️ Este erro ocorre durante a transmissão (Etapa 9 — Enviar dados), não na geração. O lote sequer é aceito para processamento pelo TCE — ele é rejeitado imediatamente no momento da tentativa de envio.
- 01A receita vinculada ao lançamento no sistema Tributos não possui a rubrica contábil preenchida no sistema Contábil.
- 02O processo de geração (Script 1) não identifica nem avisa qual receita está com o campo ausente — a falha só aparece no momento do envio ao TCE.
- 03Pode afetar dezenas ou centenas de lançamentos simultaneamente no mesmo retorno 422.
1. Consulta e lista quais receitas estão sem o campo obrigatório
codigoEspecificacaoNaturezaReceita no Contábil2. Após o ajuste da receita no Contábil, preenche automaticamente esse campo nos lançamentos da fonte — sem precisar gerar os dados novamente
Executar no sistema Prestação de Contas. Script centralizado na base PREFEITURA MUNICIPAL DE SAO MIGUEL DA BOA VISTA.
// [eSfinge] Consulta rubricas faltantes no assunto
// "04 - Lançamentos/Dívidas" - e-Sfinge Tributário
// Sistema: Prestação de Contas
// Base: PREFEITURA MUNICIPAL DE SAO MIGUEL DA BOA VISTA
Chave de importação:
1b0ed27c-6556-4ef2-9a80-86c0c14775e7b) Acessar Contábil → Arrecadações → Configurar e preencher a rubrica nas receitas apontadas
c) Re-executar o script na opção de correção — ele preencherá automaticamente o campo nos lançamentos da fonte do e-Sfinge
d) Reenviar o assunto 04 — sem necessidade de gerar os dados novamente
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'cobrancaDividaAtiva' and dadosEnvio like '%CODIGO_COBRANCA%'"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge -> imprimir itemEsfinge }Sem script disponível. Encaminhar incidente para equipe de Produto com evidências básicas do chamado.
O assunto 05 foi descartado pelo TCE. O campo dataCobranca contém uma data de ano diferente do ano da competência de envio — geralmente uma cobrança retroativa (ex: parcelamento com data de 2025 enviado numa remessa de 202601).
⚠ Importante: O pacote foi descartado pelo TCE. Após corrigir, é necessário reenviar o assunto ou cancelar o pacote via script de cancelamento.
cobrancaDividaAtiva do idGrupo e corrige aqueles cuja dataCobranca é retroativa (ano diferente de 2026), atualizando para 01/01/2026.// Atualiza dataCobranca do assunto 05 se a data é retroativa
dataInicioCompetencia = '2026-01-01'
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "idGrupo = '202601' and nomeArquivo = 'cobrancaDividaAtiva'"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dadosEnvio = JSON.ler(itemEsfinge.dadosEnvio)
if(dadosEnvio.dataCobranca.startsWith("2026")){
continuar()
}
imprimir itemEsfinge
dadosEnvio.dataCobranca = dataInicioCompetencia
conteudo = [nomeTce: itemEsfinge.nomeTce,
idGrupo: itemEsfinge.idGrupo,
idDado: itemEsfinge?.idDado ?: nulo,
codigoTce: itemEsfinge.codigoTce,
tipoDado: itemEsfinge.tipoDado,
nomeArquivo: itemEsfinge.nomeArquivo,
operacao: itemEsfinge.operacao.valor,
sistema: itemEsfinge.sistema.valor,
dadosEnvio: JSON.escrever(dadosEnvio),
chavePacote: itemEsfinge.chavePacote,
// novos campos
estorno: itemEsfinge.estorno,
codigoArrecadacao: itemEsfinge.codigoArrecadacao ?: nulo,
valor: itemEsfinge.valor ?: nulo,
anoLancamento: itemEsfinge.anoLancamento ?: nulo,
codigoLancamento: itemEsfinge.codigoLancamento ?: nulo,
anoLancamentoNovo: itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo: itemEsfinge.codigoLancamentoNovo ?: nulo]
fonteEsfinge.altera(conteudo: conteudo, parametros:["id": itemEsfinge.id])
}A data é gerada pelo script de gerar dados, não informada em tela. Sem acompanhamento técnico: abrir chamado com o Produto.
fonteEsfinge = Dados.tributos.v2.esfinge
filtroEsfinge = "nomeArquivo = 'inicioPrazoPrescricional' and idGrupo = '202601' and codigoTce in ('1523')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
dados.dataInicioPrazoPrescricional = '2026-01-01' // Data dentro da competência
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:itemEsfinge.idDado ?: nulo,
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
imprimir dados
}Sem script disponível. Encaminhar incidente para equipe de Produto com evidências básicas do chamado.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'inicioPrazoPrescricional' and codigoTce in ('1234')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtrofonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'certidaoDividaAtiva' and codigoTce in ('138626618/2026')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroA cobrança de dívida ativa existe no sistema Tributos mas não foi gerada para o assunto 05 do e-Sfinge, ficando de fora do pacote de envio. O script de tratamento de dados abaixo localiza e gera esses registros faltantes.
- SISExecutar no sistema Prestação de Contas.
- BASEScript centralizado na entidade MUNICIPIO DE FORQUILHINHA.
// [Tributos] e-Sfinge Online 2026 - Tratamento de dados
// Cobrança de dívida ativa não gerada
// Sistema: Prestação de Contas
// Centralizado na entidade: MUNICIPIO DE FORQUILHINHA
Chave de importação:
cbadd5ca-c6a4-484f-b614-8a161d5089a7// 1. Consultar valor no assunto 04
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'lancamentosCreditosTributarios' and codigoTce in ('1081016127013')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.busca(parametros:["id": itemEsfinge.id])
}
// Para busca só da competência atual: adicionar "and idGrupo = '202601'" ao filtro
// 2. Alterar o valor da baixa
fonteEsfinge = Dados.tributos.v2.esfinge
filtroEsfinge = "nomeArquivo = 'baixasCreditosTributarios' and idGrupo = '202601' and codigoTce in ('01523')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
dados.valorOperacaoBaixa = '20.20' // INFORMAR O VALOR CORRETO
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:itemEsfinge.idDado ?: nulo,
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
imprimir dados
}Campo valorOperacaoBaixa enviado zerado. Aplicar o mesmo procedimento do Assunto 10 — Valor da baixa deve ser o mesmo do Lançamento de Crédito Tributário da Dívida Ativa: consultar o valor correto na fonte e corrigir o campo valorOperacaoBaixa via script de alteração.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'baixasCreditosTributarios' and codigoTce in ('1081016127013')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroOpção 1: Script padrão Alteração da data de lançamento de débito (disponível no F4). Gerar somente o assunto 04 e refazer. Opção 2: alterar na fonte via script.
fonteEsfinge = Dados.tributos.v2.esfinge
filtroEsfinge = "nomeArquivo = 'diarioGeralArrecadacao' and idGrupo = '202601' and codigoTce in ('0311953677469')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio)
dados.dataOperacao = '2026-01-31' // Data dentro da competência, posterior ao lançamento
conteudo = [nomeTce:itemEsfinge.nomeTce,
idDado:itemEsfinge.idDado ?: nulo,
idGrupo:itemEsfinge.idGrupo, tipoDado:itemEsfinge.tipoDado,
nomeArquivo:itemEsfinge.nomeArquivo, codigoTce:itemEsfinge.codigoTce,
operacao:itemEsfinge.operacao.valor, sistema:itemEsfinge.sistema.valor,
dadosEnvio:JSON.escrever(dados), chavePacote:itemEsfinge.chavePacote,
// novos campos
estorno:itemEsfinge.estorno,
codigoArrecadacao:itemEsfinge.codigoArrecadacao ?: nulo,
valor:itemEsfinge.valor ?: nulo,
anoLancamento:itemEsfinge.anoLancamento ?: nulo,
codigoLancamento:dados.codigoLancamentoCreditoTributario?.toLong() ?: nulo,
anoLancamentoNovo:itemEsfinge.anoLancamentoNovo ?: nulo,
codigoLancamentoNovo:itemEsfinge.codigoLancamentoNovo ?: nulo]
dadosEsfinge = fonteEsfinge.altera(parametros:["id":itemEsfinge.id], conteudo:conteudo)
imprimir dados
}Receita do Tributos não classificada na contabilidade. Somente ocorre para receitas com lançamentos no Tributos.
Rubrica não cadastrada ou fora do padrão do ementário. Verificar no Contábil se o campo de receita está preenchido. Se preenchido mas o erro persistir, verificar com contabilidade qual rubrica correta (deve estar de acordo com o ementário vigente).
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'diarioGeralArrecadacao' and codigoTce in ('0311953677469')"
// Descomentar .take(1) para duplicidade na mesma competência
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)//.take(1)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros:["id": itemEsfinge.id])
}
// Para excluir só da competência atual: adicionar "and idGrupo = '202601'" ao filtroSem script disponível. Encaminhar incidente para equipe de Produto com evidências básicas do chamado.
Sem script disponível. Encaminhar incidente para equipe de Produto com evidências básicas do chamado.
Campo valorCreditoTributario enviado zerado. Verificar o valor do pagamento e localizar o lançamento para confirmar o valor da arrecadação. Corrigir usando o mesmo procedimento do Assunto 10 — Valor da baixa deve ser o mesmo do Lançamento, adaptado para o assunto 11: consultar o valor correto e corrigir o campo valorCreditoTributario via script de alteração com nomeArquivo = 'diarioGeralArrecadacao'.
O estorno de receita (assunto 12) está referenciando uma arrecadação que o TCE não encontrou em sua base. Isso ocorre quando a data de crédito da arrecadação é diferente da competência de envio, fazendo com que o TCE não consiga localizar o vínculo.
dataEstorno ou a arrecadação vinculada estão fora da competência enviada.fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'estornoReceitasDiarioGeralArrecadacao' and idGrupo = '202601' and codigoTce in ('CODIGO')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
// Verificar dataEstorno e codigoSequencialOperacaoArrecadacao
// Confirmar se a arrecadação original está na mesma competência
}fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "nomeArquivo = 'estornoReceitasDiarioGeralArrecadacao' and idGrupo = '202601' and codigoTce in ('CODIGO')"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
imprimir item
fonteEsfinge.excluir(parametros: ["id": itemEsfinge.id])
}Acessos e Unidades Gestoras · TCE/SC
| Município / Entidade | Usuário (CPF) | Senha | Código UG |
|---|
Ocorre por erro de migração ou cadastro — a fonte
lancamentos.receitas não possui o registro das receitas daqueles lançamentos. O script cria esses registros via Service Layer.
Um mesmo lançamento pode ter vários débitos — alguns com o campo
dtCredito com ano diferente do dhLancamento, quando deveriam ser iguais. O script ajusta esses registros via Service Layer.
📄 Base centralizada: BETHA SISTEMAS — ESTRATÉGIA DE PRODUTOS
📄 Base centralizada: MUNICIPIO DE FORQUILHINHA
Consulta e compara se as receitas tributárias cadastradas na contabilidade estão vinculadas à rubrica correta, cruzando o código TCE informado no Tributos com a rubrica esperada pelo TCE/SC. Facilita identificar rapidamente quais receitas precisam de ajuste antes do envio.
Geralmente ocorre em lançamentos incluídos por scripts após a geração dos dados. O script faz duas coisas:
1. Consulta e lista quais receitas estão sem a rubrica contábil obrigatória
2. Após o ajuste da receita no Contábil, preenche automaticamente o campo nos lançamentos da fonte — sem precisar gerar os dados novamente
📄 Base centralizada: PREFEITURA MUNICIPAL DE SAO MIGUEL DA BOA VISTA
📄 Base centralizada: PREFEITURA MUNICIPAL DE ATALANTA
📄 Base centralizada: PREFEITURA MUNICIPAL DE ATALANTA
1. Consulta a fonte do e-Sfinge do Tributos e totaliza a arrecadação por rubrica (impostos e taxas)
2. Exibe um log detalhado com os valores de cada rubrica separados por IPTU, ITBI, ISS, Inspeção, Vigilância Sanitária e Prestação de Serviços
3. Permite filtrar por competência via parâmetro (Mês/Ano)
Para comparação, utilizar como base os valores da coluna "Contábil - Arrecadação Bruta [d]" do relatório disponível no site do TCE: Relatórios Gerais Remessa Online → Módulo Tributário → "Tributário - Arrecadações Tributário x Registros Contábeis por Ano/Mês". A partir desses valores, é possível confrontar com o total apurado pelo script e garantir que o Tributos possua uma arrecadação com compatibilidade mínima de 95% em relação à contabilidade, evitando inconsistências nas CON 807 e 809.
📄 Base centralizada: PREFEITURA MUNICIPAL DE ATALANTA
1. Consulta a fonte do e-Sfinge do Tributos e totaliza a arrecadação por rubrica (impostos e taxas)
2. Exibe um log detalhado com os valores de cada rubrica separados por IPTU, ITBI, ISS, Inspeção, Vigilância Sanitária e Prestação de Serviços
3. Permite filtrar por competência via parâmetro (Mês/Ano)
Para comparação, utilizar como base os valores da coluna "Contábil - Arrecadação Bruta [d]" do relatório disponível no site do TCE: Relatórios Gerais Remessa Online → Módulo Tributário → "Tributário - Arrecadações Tributário x Registros Contábeis por Ano/Mês". A partir desses valores, é possível confrontar com o total apurado pelo script e garantir que o Tributos possua uma arrecadação com compatibilidade mínima de 95% em relação à contabilidade.
📄 Base centralizada: PREFEITURA MUNICIPAL DE ATALANTA
1. Consulta a fonte do e-Sfinge do Tributos e totaliza a arrecadação por rubrica (impostos e taxas)
2. Exibe um log detalhado com os valores de cada rubrica separados por IPTU, ITBI, ISS, Inspeção, Vigilância Sanitária e Prestação de Serviços
3. Permite filtrar por competência via parâmetro (Mês/Ano)
Para comparação, utilizar como base os valores da coluna "Contábil - Arrecadação Bruta [d]" do relatório disponível no site do TCE: Relatórios Gerais Remessa Online → Módulo Tributário → "Tributário - Arrecadações Tributário x Registros Contábeis por Ano/Mês". A partir desses valores, é possível confrontar com o total apurado pelo script e garantir que o Tributos possua uma arrecadação com compatibilidade mínima de 95% em relação à contabilidade.
📄 Base centralizada: PREFEITURA MUNICIPAL DE ATALANTA
Verifica se o Tipo da Natureza da Receita está compatível com o Tipo de Arrecadação informados no Diário Geral de Arrecadação (assunto 11). O tipo de arrecadação esperado pelo TCE é determinado pela rubrica contábil vinculada à arrecadação — especificamente pelo 8º dígito da rubrica.
- Módulo: Tributário
- Relatório: Tributário - Compatibilidade da Natureza de receita com o Tipo de Arrecadação (CON732)
- Unidade Gestora: a que está sendo verificada
- Ano e Mês: os que estão sendo verificados
Para confirmar qual receita está vinculada à arrecadação, consultar na fonte do e-Sfinge pelo código da arrecadação (assunto diarioGeralArrecadacao) para obter o código do lançamento e depois consultar no assunto lancamentosCreditosTributarios.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "codigoTce = '0311918680557' and idGrupo = '202601' and nomeArquivo = 'diarioGeralArrecadacao'"
// codigoTce = codigoSequencialOperacaoArrecadacao | idGrupo = competência ano/mês
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
dados = ''
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio).codigoLancamentoCreditoTributario
filtroEsfinge2 = "codigoTce = '${dados}' and nomeArquivo = 'lancamentosCreditosTributarios'"
dadosEsfinge2 = fonteEsfinge.busca(criterio: filtroEsfinge2)
percorrer(dadosEsfinge2){ it -> imprimir it }
}
// Obs: o codigoTCE muda entre assuntos — o do assunto 11 não é o mesmo do assunto 04Verifica se a Natureza de Receita informada no Diário Geral de Arrecadação (assunto 11) é compatível com o Tipo de Crédito informado no Lançamento de Crédito Tributário (assunto 04). A compatibilidade é determinada pelos 4 primeiros dígitos da rubrica.
Obs.: O TCE valida apenas os 4 primeiros dígitos da rubrica, independentemente do restante.
- Módulo: Tributário
- Relatório: Tributário - Compatibilidade da Natureza de receita com o Tipo de Crédito (CON733)
- Unidade Gestora: a que está sendo verificada
- Ano e Mês: os que estão sendo verificados
O codigoTCE não é enviado no assunto 11 — ele está no assunto 04. Para identificar o contribuinte/lançamento, buscar na fonte com like (necessário pois lançamentos anteriores a 2026 têm formatação diferente).
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "codigoTce = '011914245854' and idGrupo = '202601' and nomeArquivo = 'diarioGeralArrecadacao'"
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
dados = ''
percorrer (dadosEsfinge) { itemEsfinge ->
dados = JSON.ler(itemEsfinge.dadosEnvio).codigoLancamentoCreditoTributario
filtroEsfinge2 = "dadosEnvio like '%${dados}%' and nomeArquivo = 'lancamentosCreditosTributarios'"
// Uso do like: lançamentos anteriores a 2026 têm formatação diferente
dadosEsfinge2 = fonteEsfinge.busca(criterio: filtroEsfinge2)
percorrer(dadosEsfinge2){ it -> imprimir it }
}Com o código do contribuinte em mãos, localizar o lançamento/dívida e verificar a receita vinculada. Depois acessar Módulo Imobiliário → Cadastros auxiliares → Receitas e editar a receita para verificar o Código do TCE cadastrado.
A CON737 é apresentada porque o sistema Tributos Cloud ainda não possui a rotina de Encerramento Mensal que armazena as movimentações das dívidas/lançamentos. Por isso, o assunto 09 não envia nenhuma informação — e atualmente o TCE aceita o envio vazio.
Verifica se para a dívida ativa enviada no assunto 04 foi enviado o lançamento que originou a inscrição em dívida no assunto 10 — Baixa dos Créditos Tributários. Sempre que um lançamento é inscrito em dívida, essa informação deve ser enviada no assunto 10 com o código 10 (inscrição em dívida), junto com o código do lançamento e o código do lançamento em dívida (ID).
Buscar na fonte do e-Sfinge pelo código da dívida usando like para percorrer todos os assuntos. Se nenhum resultado for do assunto 10, a CON será apresentada.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "dadosEnvio like '%301103552559%'"
// Substituir pelo código da dívida indicado na mensagem da CON
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge -> imprimir item }Verificar nos resultados se existe algum registro com nomeArquivo = 'baixasCreditosTributarios'. Se não existir, a inscrição não foi enviada.
O único jeito de corrigir esta CON é enviando a informação da inscrição em dívida no assunto 10. Consultar os tipos de baixa aceitos na Tabela 88 — Tipos de Baixa dos Créditos Tributários.
Verifica se para a Cobrança de Dívida Ativa (assunto 05) com tipo de cobrança Protesto ou Execução Fiscal foi enviada a Certidão de Dívida Ativa — CDA (assunto 07). Se a cobrança foi registrada como protesto ou execução e não há CDA correspondente, a CON é apresentada.
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "dadosEnvio like '%2186302860%'"
// Substituir pelo código da dívida indicado na mensagem da CON
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge -> imprimir item }Verificar se algum registro retornado tem nomeArquivo = 'certidaoDividaAtiva'. Se não existir, a CDA não foi enviada.
O único jeito de corrigir esta CON é enviando a informação da certidão de dívida ativa no assunto 07.
Verifica se para o Número/Ano da Cobrança de Dívida Ativa (assunto 05) foi enviada a Situação do Tipo de Cobrança de Dívida Ativa (assunto 08).
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "dadosEnvio like '%2164125186%'"
// Substituir pelo código da dívida indicado na mensagem da CON
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge -> imprimir item }Verificar se algum registro retornado tem nomeArquivo = 'situacaoTipoCobrancaDividaAtiva'. Se não existir, a situação não foi enviada.
O único jeito de corrigir esta CON é enviando a informação da situação da cobrança no assunto 08.
Verifica se para a movimentação de baixa por inscrição de dívida o valor da baixa é maior que o valor do lançamento, gerando saldo negativo. Ocorre frequentemente com dívidas de INSCOBRA (lançamentos gerados a partir de importação de arquivo da Receita Federal).
Mesmo que o lançamento seja criado diretamente em dívida ativa, o sistema gera um idDebito e um idLancamento. O valor do lançamento está correto nas fontes debitos.receitas e lancamentos.receitas, porém o valor da baixa enviado no assunto 10 está maior. No histórico da dívida não consta cancelamento — somente a inscrição.
Chamado de melhoria: BTHSC-213664
Identifica divergência nos valores de arrecadação de taxas (rubricas que começam com 1.1.2) entre os sistemas Tributos e Contábil. As causas mais comuns são: lançamentos manuais no Contábil que não vieram do Tributos, ou estornos no Tributos que não foram integrados com a contabilidade.
Causa 1 — Lançamentos manuais no Contábil: a entidade deve realizar o lançamento e a baixa desses valores no sistema Tributos e refazer o envio (cancelar no TCE para fazer o novo envio).
Obs.: O crédito informado deve ter vínculo com receitas diversas. Se a receita tiver vínculo com imóvel urbano, preencher o campo Imóvel.
Causa 2 — Estornos no Tributos não integrados com o Contábil: realizar a integração com a contabilidade e refazer o e-Sfinge. Caso a entidade não queira esse procedimento, remover os estornos da fonte do e-Sfinge:
fonteEsfinge = Dados.tributos.v2.esfinge;
filtroEsfinge = "(nomeArquivo = 'estornoReceitasDiarioGeralArrecadacao' and idGrupo = '202601')"
// Ajustar o idGrupo para a competência correta
dadosEsfinge = fonteEsfinge.busca(criterio: filtroEsfinge)
percorrer (dadosEsfinge) { itemEsfinge ->
fonteEsfinge.excluir(parametros: ["id": itemEsfinge.id])
imprimir item
}Identifica divergência nos valores de arrecadação de impostos (rubricas que começam com 1.1.1) entre os sistemas Tributos e Contábil. As causas são as mesmas da CON807: lançamentos manuais no Contábil ou estornos no Tributos não integrados.
Resumo de todas as mudanças de layout do e-Sfinge 2026 em relação à versão anterior (2025), com foco nos assuntos tributários.
A partir de 2026, as rubricas de Contribuição de Melhoria (natureza 1.1.3.X.XX.X.X) passam a ser consideradas na arrecadação tributária e devem ser enviadas com o Código TCE 04 no Lançamento de Crédito Tributário.
Rubricas vigentes (ENR 2026):
| Rubrica | Descrição |
|---|---|
1.1.3.0.00.0.0 | Contribuição de Melhoria |
1.1.3.1.00.0.0 | Contribuição de Melhoria |
1.1.3.1.50.0.0 | Contribuição de Melhoria para Expansão da Rede de Água Potável e Esgoto Sanitário |
1.1.3.1.51.0.0 | Contribuição de Melhoria para Expansão da Rede de Iluminação Pública na Cidade |
1.1.3.1.52.0.0 | Contribuição de Melhoria para Expansão de Rede de Iluminação Pública Rural |
1.1.3.1.53.0.0 | Contribuição de Melhoria para Pavimentação e Obras Complementares |
1.1.3.1.99.0.0 | Outras Contribuições de Melhoria |
A partir do exercício de 2026, é permitido o envio de até 64 pacotes do tipo Tributário por Ano/Mês e por Unidade Gestora.
Foi incluído o campo tipoSaldoInicial no assunto saldosIniciaisCreditoTributario (Assunto 00). O campo usa a nova Tabela 149 com dois tipos:
| Código | Descrição | Quando usar |
|---|---|---|
01 |
Saldo Inicial (Abertura de Exercício) | Exclusivo para o mês de janeiro (mês 1). Para unidades do tipo Prefeitura, é obrigatório o envio de ao menos um registro com este tipo. |
02 |
Saldo Inicial (Reintegração de Crédito) | Usado nos demais meses (fevereiro em diante). O tipo 01 não é aceito fora de janeiro. |
As orientações do Saldo Inicial também foram modificadas pelo TCE para incluir as novas regras de cálculo de saldo:
A Tabela 88 – Tipos de Baixa dos Créditos Tributários recebeu um novo tipo: 15 – Reintegração do Crédito Original.
O tipo 10 (Inscrição em Dívida Ativa) continua válido, mas agora é exclusivo para lançamentos com Tipo de Operação diferente de 03.
Tabela completa atualizada para 2026:
| Código | Descrição | Obs. |
|---|---|---|
01 | Isenção | |
02 | Remissão | |
03 | Cancelamento | |
04 | Anistia | |
05 | Prescrição | |
06 | Descontos Concedidos | |
07 | Compensação | |
08 | Decisão Administrativa | |
09 | Decisão Judicial | |
10 | Inscrição em Dívida Ativa | Exclusivo para Tipo Operação ≠ 03 |
11 | Outros | |
12 | Zerar saldo em virtude de migração de Sistema de TI | |
13 | Transferência de Crédito Tributário entre Contribuintes | |
14 | Transação | |
15 | Reintegração do Crédito Original NOVO 2026 | Exclusivo para Tipo Operação = 03 (Dívida Ativa) |