Produto: | Totvs Protheus® |
Versões: | a partir da 12.1.24.10 |
Ocorrência: | Monitor de Eventos |

Introdução
Com a Reforma Tributária, foram definidos cerca de 17 eventos que devem ser comunicados a Receita e que serão imprescindíveis para a correta apuração dos tributos e créditos dos contribuintes.
O objetivo destes eventos é garantir a integridade e a rastreabilidade das operações realizadas pelos contribuintes, servindo como base de dados para o controle e a transparência do novo modelo tributário.
Conforme o artigo 348, §1º, da Emenda Constitucional, os contribuintes estarão dispensados do recolhimento do IBS e da CBS relativamente aos fatos geradores ocorridos entre 1º de janeiro e 31 de dezembro de 2026, desde que cumpram integralmente as obrigações acessórias previstas na legislação.
Por isso, a apresentação correta e no prazo legal deste evento é essencial para que as empresas possam se beneficiar da dispensa do recolhimento dos tributos nesse período de transição.
O não cumprimento dessas obrigações poderá implicar na perda desse benefício, ocasionando o recolhimento normal dos tributos devidos.
Por isso, os Eventos da Reforma Tributária devem ser registrados, a partir de janeiro/2026, sempre que a situação concreta exigir, respeitando os critérios e prazos estabelecidos pela legislação, como forma de garantir o direito à dispensa e de contribuir para a efetividade do novo sistema tributário.
Essa funcionalidade exclusiva que permite gerenciar e registrar eventos relacionados à Reforma Tributária e associados à NF-e, sendo assim com as mudanças introduzidas pela nova legislação, determinados documentos fiscais de acordo com suas finalidades passam a exigir o envio de um Código de Evento e de suas Informações Complementares.
Esses eventos impactam não apenas o Controle Governamental, mas também a apuração futura dos tributos CBS e IBS, portanto e valido ressaltar que é essencial dispor de um recurso que possibilite uma gestão eficiente na geração, no envio e na recepção de eventos vinculados à Nota Fiscal Eletrônica.
Olá! 👋🤖 Sou seu assistente Monitor, aqui para ajudar você a entender sobre o Monitor de Eventos. <!-- Chat embutido (sem ocupar espaço) -->
<dta-chat label="DTA" class="chat-collapsed"></dta-chat>
<dta-chat-anchor size="22"></dta-chat-anchor>
<script defer src="https://assets.dta.totvs.ai/client/stable/dta_chat.js"></script>
<script>
// Fluxo /run
function getConfig() {
const baseUrl = 'https://totvs.dta.totvs.ai/api/flows/workflow/0693aa7f-80b5-7777-8000-9adfc8df058b';
return {
apiInit: {
url: baseUrl + '/run',
sendHeaders: ['x-dta-project', 'x-dta-api-key'],
},
apiMessage: {
url: baseUrl + '/run',
method: 'POST',
sendHeaders: ['x-dta-project', 'x-dta-api-key'],
},
header_session_prefix: null,
header_thread_prefix: null,
header_session: 'x-dta-session-id',
header_thread: 'x-dta-trace-id',
};
}
const wait = (ms) => new Promise(r => setTimeout(r, ms));
function uuid() {
if (crypto.randomUUID) return crypto.randomUUID();
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
const r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
}
let api = null;
// —————— Injetar botão no header do shadow DOM ——————
function injectResetButtonIntoHeader(root) {
if (!root) return;
// cabeçalho e área de ações: cobrimos possíveis variações de seletor
const header = root.querySelector('[part="header"], .header, header');
if (!header) return;
// evita duplicar
if (root.getElementById('dta-reset-inline')) return;
// estilo no shadow DOM (garante visual padronizado)
const style = document.createElement('style');
style.textContent = `
#dta-reset-inline {
display:inline-flex;
align-items:center;
gap:8px;
padding:6px 12px;
border:none;
border-radius:999px;
background:#00c9eb;
color:#fff;
font:600 12px/1 'Segoe UI', Arial, sans-serif;
cursor:pointer;
box-shadow:0 1px 4px rgba(0,0,0,.15);
margin-left:auto; /* empurra para a direita dentro do header */
}
#dta-reset-inline:hover { background:#0098b3; }
`;
root.appendChild(style);
// botão
const btn = document.createElement('button');
btn.id = 'dta-reset-inline';
btn.type = 'button';
btn.textContent = '🔄 Nova conversa';
// tenta posicionar antes dos ícones (fullscreen/close)
const actions = root.querySelector('[part="header-actions"], .actions, .header-actions');
if (actions && actions.parentElement === header) {
header.insertBefore(btn, actions); // fica à esquerda dos ícones
} else {
header.appendChild(btn); // fallback: vai ao final do header
}
btn.addEventListener('click', async () => {
// inicia nova thread
const newThreadId = uuid();
api.addHeaders({ 'x-dta-trace-id': newThreadId });
if (typeof api.reset === 'function') {
api.reset();
} else {
// fecha e reabre como fallback
const anchor = document.querySelector('dta-chat-anchor');
if (anchor) {
anchor.click();
await wait(400);
anchor.click();
}
}
// mensagem após reset
await wait(400);
try {
await api.sendMessage("🔄 Nova conversa iniciada. Em que posso te ajudar agora?");
} catch (e) { console.warn(e); }
});
}
// observa o shadow DOM do <dta-chat> para injetar quando o painel abrir/atualizar
function attachHeaderObserver(host) {
if (!host || !host.shadowRoot) return;
const root = host.shadowRoot;
// injeta imediatamente se o header já existe
injectResetButtonIntoHeader(root);
// observa mudanças (ex.: abrir/fechar painel, recriar header)
const mo = new MutationObserver(() => {
injectResetButtonIntoHeader(root);
});
mo.observe(root, { childList:true, subtree:true });
}
// —————— Boot ——————
window.addEventListener('dta-chat-ready', async (ev) => {
api = ev.detail;
api.config(getConfig());
api.addHeaders({
'x-dta-project': 'dta-fiscal-protheus',
'x-dta-api-key': 'sk-57VpgNblWvzIHZN-N01NWibhRM-rJWMBWP-swdp4zW4lMnP6',
});
// abre o chat automaticamente
await wait(250);
try {
if (typeof api.open === 'function') api.open();
else document.querySelector('dta-chat-anchor')?.click();
} catch (e) { console.warn(e); }
// mensagem de boas-vindas simples
try {
await api.sendMessage("👋 Olá! Sou o assistente **DTA**. Como posso te ajudar hoje?");
} catch (e) { console.warn(e); }
// conecta no shadow DOM do componente para inserir o botão no header
const host = document.querySelector('dta-chat');
if (host) attachHeaderObserver(host);
}, { once:true });
// bloqueio de hotkeys
(function () {
const CHAT_TAGS = new Set(['DTA-CHAT','DTA-CHAT-ANCHOR']);
const CHAT_SELECTOR = 'dta-chat, dta-chat-anchor, dta-chat *, dta-chat-anchor *';
function cameFromChat(ev) {
const path = typeof ev.composedPath === 'function' ? ev.composedPath() : [];
for (const el of path) if (el && el.tagName && CHAT_TAGS.has(el.tagName)) return true;
const t = ev.target; return !!(t && typeof t.closest==='function' && t.closest(CHAT_SELECTOR));
}
function isPlainLetterOrHotkey(k) {
if (!k) return false; const key = k.length===1?k.toLowerCase():k.toLowerCase();
return /^[a-z]$/.test(key) || key==='/' || key==='?' || key==='g';
}
function stop(ev){ ev.stopImmediatePropagation(); ev.stopPropagation(); }
function handler(ev){
if (ev.isComposing) return;
if (!cameFromChat(ev)) return;
if (ev.ctrlKey||ev.metaKey||ev.altKey) return;
const k = (ev.key||'').toLowerCase();
if (isPlainLetterOrHotkey(k)) stop(ev);
}
['keydown','keypress','keyup'].forEach(t => document.addEventListener(t, handler, { capture:true }));
})();
</script>
<style>
/* sem espaço em branco */
dta-chat.chat-collapsed{
display:block;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
overflow:visible !important;
}
</style> |
|
Procedimento Para Uso
Pré-Requisitos.
Configurações de Eventos.
Para realizar a confirmação de envio na inclusão de Eventos é necessário realizar a configuração do TSS, conforme o processo abaixo:
1- Acessar o Módulo 05 "Faturamento" -> Menu Faturamento -> Atualizações -> NFe e NFse -> NFe sefaz.
2 - Configurar Certificado, Após clicar em ok.
3 - Ao apresentar a Tela Monitoramento SEFAZ selecionar a opção Outras Ações -> Parâmetros -> Eventos e clicar em ok.
Obs.: Se possível ter os ambientes de Homologação e Produção separados para realizar a configuração.

Obs.: a chave da NF precisa ser válida, segue abaixo os tipos de Status do SPED150 TSS:
1 = A Processar.
2 = Em processamento.
3 = Falha de schema.
5 = Rejeição.
6 = autorizado.
DSERTSS1-30020 DT Protheus - Controle de Liberação das Tags da NT 2025.002 - v 1.30
- O monitor de Eventos irá atender a NF-e do modelo 55 e não ocorrerá vinculo MTI e Monitor de Tributos.
- Fluxo do Monitor de Eventos: Inclusão do Documento Fiscal> Envio de dados da SEFAZ > Inclusão Manual de Evento.
- Tabelas utilizadas T7A / T7B / T7C / T7D / T7E / 5R/T7R, os campos C20_PRVENT, C30_ITEXML, C30_QTDXML, C30_UMXML.
- Expedição continua do TAF/Backoffice de dezembro de 2025
|
Essa rotina permite que o usuário acompanhe, em tempo real, os eventos dos Documentos Fiscais Eletrônicos transmitidos pelo sistema desta forma e possível realizar à gestão dos eventos instituídos pela Reforma Tributária do Consumo.

1- Acessar o Módulo 84 "TOTVS Automação Fiscal" -> Menu Atualizações -> Reforma Tributária -> Monitor de Eventos.

2 - Tela Monitor de Eventos irá apresentar os seguintes filtros abaixo:
- Período: A seleção deverá apresentar a data Inicial e Final dos movimentos a serem apresentados em tela.
- Status: O filtro irá apresentar as opções: Solicitado, Enviado, Solicitação de Cancelamento, Cancelado e Falha de Envio ou Selecionar todos.
- Eventos: O campo irá apresentar a opção de selecionar todos e todos os eventos relacionados Reforma Tributária, conforme a legislação Vigente na Nota Técnica NFe 2025.002 IBS/CBS/IS.
- Configurações: Esta opção possibilita a seleção das colunas que serão apresentadas na grid
- Pesquisar: O campo permiti realizar a pesquisa por; Tipo de Movimento, Tipo de Autor, Número da Nota, Emitente e CNPJ do Emitente.
- Grid: A grid apresenta o status dos documentos emitidos no período com a seguinte estrutura abaixo:
- 1º Nível: Tipo de Movimento / Tipo de Autor / Número da Nota / Data de Emissão / Emitente / CNPJ do Emitente.
- 2º Nível: Status / Código do Eventos / Descrição do Evento / Data de Emissão.
Inclusão de Evento
1- Clicar na opção "+Inclusão de Evento"

2 - Tela Inclusão de Evento irá apresentar os seguintes filtros abaixo:
- Período: A seleção deverá apresentar a data Inicial e Final dos movimentos a serem apresentados em tela.
- Tipo de Documento: Entrada / Saída.
- Espécie: NF-e
Obs.: A inclusão de evento é o processo que envia os dados exigidos pela Reforma Tributária, sendo assim os filtros são para organizar e selecionar os documentos que precisam ser transmitidos.
Avançar:
- Eventos: O campo irá apresentar a opção de selecionar todos e todos os eventos relacionados Reforma Tributária, conforme a legislação Vigente Nota Técnica NFe 2025.002 IBS/CBS/IS.
- Documento: Ao clicar no campo abre uma tela de pesquisa para selecionar a Nota Fiscal a ser enviada
- Obs.: É permitido selecionar somente uma única Nota Fiscal por vez.
- Itens do Documento: Ao clicar no campo abre uma tela de pesquisa para selecionar o item a ser enviado.
- Campos de Preenchimento: Após a seleção o sistema apresenta os campos relacionados ao evento informado para preenchimento do Tipo de Autor.
- Tipo de Autor: Emitente / Destinatário / Sucessora.
Avançar:
- Revisar Envio: A tela permite que o usuário revise as informações antes do envio do evento.
- Obs.: Após revisar as informações em tela o Monitor de Eventos permitir voltar para o processo anterior ou enviar o evento.
Dúvidas Frequentes
O que é o Monitor de Eventos?
O Monitor de Eventos (rotina TAFA635, desenvolvida em PO-UI) é uma ferramenta que permite incluir, enviar, corrigir, consultar e cancelar eventos relacionados à Reforma Tributária, aplicáveis às Notas Fiscais Eletrônicas modelo 55.
Esses eventos ajustam valores de débito e crédito de IBS e CBS no Portal de Apuração.
Precisamos executar o Wizard do TAF para utilizar o monitor de Eventos?
Não, essa rotina não necessita de configurações dentro do TAF, apenas a criação do menu buscando a rotina TAFA635 e habilitar o SmartSchedule no configurador.
Para que servem os eventos da Reforma Tributária?
Os eventos são mecanismos criados pela Receita Federal para:
- Ajustar valores de débito/crédito já apurados
- Comunicar alterações posteriores à emissão da nota
- Complementar informações obrigatórias a partir de janeiro de 2026
Sem o envio correto desses eventos, o cliente pode ser obrigado a recolher tributos indevidos.
Quantos eventos existem atualmente?
São 16 eventos oficiais relacionados à reforma, com novos modelos ainda sendo disponibilizados pela Receita Federal.
| EVENTO | DESCRIÇÃO | AUTOR |
| 112110 | Informação de efetivo pagamento integral para liberar crédito presumido do adquirente | Emitente |
| 112120 | Importação em ALC/ZFM não convertida em isenção | Emitente |
| 112130 | Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor | Emitente |
| 112140 | Fornecimento não realizado com pagamento antecipado | Emitente |
| 112150 | Atualização da Data de Previsão de Entrega | Emitente |
| 211110 | Solicitação de Apropriação de crédito presumido | Destinatário |
| 211120 | Destinação de item para consumo pessoal | Emitente/Destinatário |
| 211124 | Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente | Destinatário |
| 211128 | Aceite de débito na apuração por emissão de nota de crédito | Destinatário |
| 211130 | Imobilização de Item | Destinatário |
| 211140 | Solicitação de Apropriação de Crédito de Combustível | Destinatário |
| 211150 | Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente | Destinatário |
| 212110 | Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão | Sucessora |
| 212120 | Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão | Sucessora |
| 110001 | Cancelamento de Evento | Idem ao Autor do Evento que está sendo cancelado |
Quem é responsável por enviar os eventos?
No cenário atual, o cliente é responsável por registrar o Evento vinculado a NFe.
O envio para SEFAZ ocorrerá automaticamente após sua inclusão, via SmartSchedule, após a conclusão do envio seu STATUS será atualizado para Enviado, em caso de sucesso ou Falha de envio.
Quais são os pré-requisitos para enviar um evento?
O Monitor de Eventos funciona com outros modelos de nota?
Não. Atualmente funciona somente para a NFe modelo 55.
Consigo enviar eventos com dados gerados a partir da integração TSI?
Sim, serão considerados NF-e, modelo 55, com os campos de XML preenchido (DT Débitos Técnicos - [TSI CBS/IBS] Gravação dos novos tributos)
TSI - TAF Service Integration
Onde os dados dos eventos são gravados?
A rotina utiliza as tabelas novas:
| Tabela | Nome | Descrição | Tabela Pai |
| T7A | Eventos | Evento por NF-e, conterá indicador de pagamento e aceitação, tipo de motivo e detalhamento do motivo, Indicador de cancelamento, STATUS: Incluso, Enviado, Sol. Cancelamento, Falha de envio | - |
| T7B | Cred Presumido | Detalhamento por Item NF-e | T7A |
| T7C | Eventos genéricos | Detalhamento por Item NF-e | T7A |
| T7D | Log de processamento | Por Evento | T7A |
| T7E | Tipos de Eventos | AutoContida com os Eventos |
|
Como funciona o envio de um evento?
O processo é:
- Usuário clica em "Incluir Evento"
- Seleciona período, tipo de documento e espécie
- Escolhe o tipo de evento
- Ajusta valores quando necessário
- Ao enviar, os dados são gravados nas tabelas e uma task é disparada para o Smart Schedule + TSS
- O status é atualizado para "Enviado" se o processamento ocorrer sem falhas
O que acontece quando ocorre erro no envio?
Se houver falha (ex.: erro de schema):
- O usuário pode clicar em "Editar", corrigir e salvar.
- Uma nova task é criada
- Todo o histórico é registrado na T7D - Log de processamento
Como funcionam os cancelamentos de eventos?
- Após enviar à SEFAZ, o evento não pode mais ser editado, apenas cancelado
- O cancelamento gera nova task no TSS
- Status pode ser “Cancelado com sucesso” ou “Falha de cancelamento”
- O log do cancelamento também é gravado na T7D - Log de processamento
Por que o envio utiliza o MV_SPEDURL e não o MV_TAFSURL?
- O SPED URL garante o mesmo mecanismo de transmissão da nota fiscal, pois os eventos são complementos da própria NFe
- O envio da nota fiscal e do evento é interdependente
- A Central de Diagnóstico da Reforma (em construção) também reforça o uso do MV_SPEDURL
Clientes que usam o TAF sem NFe podem transmitir eventos?
Sim, desde que:
Como funcionam os ambientes de transmissão (produção/homologação)?
Para o envio dos eventos para a SEFAZ, é possível configurar se a transmissão será em ambiente de homologação (testes) ou produção.
Para alterar essa configuração, é necessário acessar o módulo 05 - faturamento, menu atualizações > Nf-e e Nfs-e > Nf-e Sefaz.
Confirmar as telas iniciais e ao acessar a rotina, ir em outras ações > Parâmetros > Eventos. Nesta tela, é possível alterar o ambiente da Sefaz no qual os eventos serão recepcionados.
Atenção: recomendamos que não seja utilizado o mesmo ambiente Protheus de homologação para envio em produção.
Como identificar eventos nas tabelas TSS?
- Cada evento transmitido será gravado na tabela SPED150
- ID de transmissão da SPED150 é gravada na tabela T7D - Log de processamento
O Monitor de Eventos terá relatórios de conferência?
Sim, mas não na versão atual.
A primeira entrega foi focada na operação do envio.
Relatórios, dashboards e melhorias no log estão previstos para a segunda fase.
Ocorreu um alerta de divergência de tamanho de campos nos campos T7A_CHVELE e C20_CHVELE. Como solucionar?

Para solucionar o alerta, o campo T7A_CHVELE deve ser alterado para o mesmo tamanho do campo C20_CHVELE via Configurador.
Qual filtro para seleção de nota por eventos?
Na inclusão manual do evento, a rotina não faz filtro de tipo de documento por evento, ou seja, irá trazer todas as notas normais, debito e credito, do modelo 55, que foram enviadas para SEFAZ e importadas para TAF, a seleção da nota, será feita pelo usuário, conforme evento selecionado.