Recuperar o PDV quando algo trava#
Esta página é o runbook de quem está na loja com o caixa parado: PDV sem responder, queda de energia no meio de uma operação, falha do banco de dados local e a tela Modo seguro do caixa. Ela diz o que fazer e o que nunca fazer. É para o operador, para o supervisor e para o suporte remoto.
Antes de começar
- Anote o que estava acontecendo quando travou (venda, apuração, sangria, fechamento), a hora e a mensagem exibida. Isso é o que o suporte vai pedir.
- Tenha em mãos a versão do aplicativo (aparece no rodapé como
v<versão>e na tela de ativação). - Combine com a loja o horário da intervenção. Reiniciar o PDV não perde venda gravada — mas reiniciar no meio de um pagamento com cartão pode deixar uma transação pendente de conciliação.
Passo a passo#
APDV travado (não responde ao teclado nem ao toque)#
- Espere 30 segundos. Um ciclo de sincronização ou uma cobrança TEF em andamento podem segurar a interface.
- Olhe a barra de mensagens do caixa: se houver um aviso fixo (por exemplo, dívida de conciliação de TEF ou carga pendente), ele é a pista.
- Feche o aplicativo pela janela e abra de novo por
INICIAR_PDV_WINDOWS.bat(Windows) ou pelo ícone (Android). No Windows, não abra opdv_flutter.exedireto. - Ao reabrir, confira o estado:
- a venda em edição não volta (só o que foi segurado ou finalizado sobrevive);
- o caixa e o turno voltam como estavam;
- a fila de sincronização continua no banco local.
- Abra Status do PDV e confira Carga do servidor, o indicador fiscal e o estado do operador.
BQueda de energia durante a venda#
- Religue o terminal e abra o PDV pelo caminho normal.
- Faça duas verificações separadas — elas respondem a perguntas diferentes, e nenhuma substitui a outra:
a) A venda existe? Procure a venda em Comprovantes e no Histórico local. b) O pagamento daquela operação foi confirmado? No Status do PDV, veja se há pendência de TEF e o desfecho dela.
- Decida pelo cruzamento das duas:
| A venda existe? | O pagamento saiu? | O que fazer |
|---|---|---|
| Sim | Sim | nada a refazer: a venda está completa |
| Sim | Não, e a pendência não resolve | não refaça — escale com o horário e a mensagem |
| Sim | Indeterminado | não refaça — escale: existe venda, e não se sabe o pagamento |
| Não | Não, e não há pendência e não há cobrança efetiva remanescente | as três condições fecharam: registre como venda nova |
| Não | Há pendência de TEF | não refaça — reconecte a maquineta e espere a conciliação decidir |
| Não | Sim — pagamento confirmado | não refaça — escale: houve cobrança sem venda localizada |
| Não | Indeterminado | não refaça — escale |
| Não consegui determinar | Qualquer | pare e escale — não refaça |
- Se houver pendência de TEF, reconecte a maquineta e deixe o PDV conciliar. Ao conseguir, ele avisa
N pendência(s) TEF recuperada(s) com segurança.Enquanto houver pendência, nova cobrança fica bloqueada comO desfazimento do TEF ficou pendente. Reconecte a maquineta; uma nova cobrança ficará bloqueada até a conciliação. - Se a venda existir, não refaça nada — nem a venda, nem a cobrança. Se existir e o pagamento não estiver confirmado, siga a seção I.
CQueda de energia durante a apuração do turno (F9)#
- Religue e autentique com o mesmo operador do turno.
- O PDV reabre a apuração com o que já estava digitado — declaração, fundo e lacre foram salvos como rascunho no banco local.
- Confira cada campo antes de concluir: Dinheiro, Fundo deixado para o próximo operador e Número do lacre do malote.
- Conclua a saída normalmente.
DTela Modo seguro do caixa#
Se, ao abrir, o PDV mostrar a tela Modo seguro do caixa, isso não é travamento: é a proteção dos dados locais agindo. O caixa fica bloqueado para venda de propósito.
- Leia a mensagem central. Ela diz qual é a situação:
| Mensagem | O que aconteceu |
|---|---|
Verificando os dados do caixa. | a verificação está rodando; aguarde |
Preparando os dados locais. As vendas continuam bloqueadas. | o terminal está provisionando a base local |
Não foi possível concluir a verificação agora. As vendas continuam bloqueadas. | falha passageira na verificação |
O catálogo precisa de recuperação. O movimento permanece protegido. Nenhuma venda foi liberada. | o banco de catálogo falhou na verificação |
O movimento precisa de conferência. Nenhuma venda foi liberada. | o banco de movimento precisa de conferência |
Diagnóstico registrado para o suporte. Protocolo: <protocolo>. | o caso foi escalado |
- Se aparecer o botão Tentar novamente, use-o. Ele refaz a verificação sem perder nada.
- Se aparecer Ver diagnóstico, clique e anote os três valores: Estado, Código e Protocolo.
- Se aparecer Chamar suporte, clique e aguarde. O protocolo é o que o suporte usa para localizar o caso.
- Se aparecer
Não foi possível registrar o diagnóstico agora. O caixa continua bloqueado., tente de novo — o caixa não libera venda enquanto isso.
EFalha do banco local#
O PDV trabalha com dois bancos locais separados: um de catálogo e um de movimento. Eles falham de forma independente, e o PDV diz qual dos dois está protegido.
| Classe de falha | O que significa | Desfecho |
|---|---|---|
| corrupção | a verificação de integridade do arquivo falhou | o banco é protegido e o caso vai para suporte |
| chave ou banco incorreto | o arquivo não abre com a chave deste terminal | protegido; exige suporte |
| banco bloqueado | o arquivo está em uso por outro processo | trate fechando o outro processo e tentando de novo |
| disco cheio | não há espaço para gravar | libere espaço no disco do terminal e tente de novo |
| falha transitória | erro de entrada/saída passageiro | Tentar novamente costuma resolver |
FLer o Código do diagnóstico#
O campo Código usa um vocabulário fixo e seguro — ele identifica a situação sem expor dado sensível. Alguns exemplos do que você pode ver:
| Código | Situação |
|---|---|
catalogo_integridade_falhou | o banco de catálogo não passou na verificação de integridade |
movimento_integridade_falhou | o banco de movimento não passou na verificação de integridade |
catalogo_chave_ou_banco_incorreto | o catálogo não abre com a chave deste terminal |
movimento_banco_bloqueado | o movimento está em uso por outro processo |
catalogo_disco_cheio | acabou o espaço em disco |
catalogo_falha_io / movimento_falha_io | falha de leitura/escrita; costuma ser passageira |
diario_autenticacao_invalida | o diário de recuperação não pôde ser autenticado |
diario_lock_timeout | outro processo segurava o diário |
diario_sequencia_divergente | a sequência do diário não fecha |
identidade_persistencia_insegura | a identidade do terminal não pôde ser gravada com segurança |
provisionamento_persistencia_insegura | a preparação da base local não pôde ser persistida |
diagnostico_integro | verificação passou |
Se o campo mostrar não disponível, o código não pôde ser reportado — o Protocolo continua
valendo.
GPDV lento ou "travando" em toda venda#
- Abra Status do PDV e olhe Carga do servidor: Aguardando ou Parcial significa que faltam tabelas e cada venda tenta resolver o que não está local.
- Confira a quantidade de pendências no rodapé (
N eventos pendentes). - Verifique o disco: disco cheio é uma das classes de falha do banco local e degrada tudo.
- Verifique o Histórico local e o Status operacional — eles mostram a origem do que o terminal está usando.
- Não resolva lentidão desligando recursos de proteção. Chame a retaguarda com os dados acima.
HUm periférico parou de responder#
Siga Hardware e periféricos. O caminho é o diálogo Periféricos do PDV, com Testar por card e Testar todos.
Se o periférico que travou for a impressora e houver comprovante de turno pendente, use a 2ª via do último malote depois de resolver a impressora.
IPagamento com cartão sem desfecho#
- Não repita a cobrança. O PDV bloqueia a próxima enquanto houver pendência.
- Reconecte/religue a maquineta e aguarde a conciliação automática.
- Se não resolver, chame a retaguarda com a mensagem exata exibida e o horário. Uma autorização sem venda gravada é desfeita; uma autorização com venda gravada é confirmada — quem decide é o diário, não a memória de quem atendeu.
JReinstalar ou reparear NÃO é o primeiro passo#
Reparear o terminal troca a credencial dele. Isso não conserta banco corrompido, não limpa fila e não libera modo seguro. Reinstalar pode apagar dados que ainda poderiam ser recuperados.
Existe um caso em que reparear é a resposta certa: quando o próprio PDV diz
Credencial deste caixa foi revogada. Refaça o pareamento na retaguarda. Fora desse caso, escale.
Campos e o que significam#
Tela Modo seguro do caixa#
| Elemento | O que é |
|---|---|
| Estado | em que ponto a verificação parou (por exemplo, Modo seguro, Catálogo protegido, Movimento protegido, Escalado para suporte) |
| Código | o código seguro da situação; vocabulário fechado, sem dado sensível |
| Protocolo | identificador do caso, usado pelo suporte; quando não há, aparece não disponível |
| Tentar novamente | refaz a verificação do zero, sem perder dados |
| Ver diagnóstico | revela Estado, Código e Protocolo na tela |
| Chamar suporte | registra o diagnóstico e escala o caso |
Estados possíveis da verificação#
| Estado mostrado | Significa |
|---|---|
| Verificação em andamento | rodando agora; aguarde |
| Preparação em andamento | provisionando a base local; vendas bloqueadas |
| Verificação temporariamente indisponível | falha passageira; use Tentar novamente |
| Catálogo protegido | o banco de catálogo precisa de recuperação; o movimento está protegido |
| Movimento protegido | o banco de movimento precisa de conferência |
| Modo seguro | as vendas continuam bloqueadas até a verificação passar |
| Escalado para suporte | o caso foi registrado com protocolo |
Resultado esperado#
- Tentar novamente com falha passageira devolve o caixa à operação normal.
- Chamar suporte resulta em
Diagnóstico registrado para o suporte. Protocolo: <protocolo>. - Depois de resolvido, o PDV abre normalmente, a fila de sincronização continua íntegra e as vendas anteriores seguem no banco local.
- A apuração interrompida por queda de energia volta preenchida.
Se algo der errado#
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| PDV não responde | ciclo de sincronização ou cobrança TEF em andamento | espere 30 segundos; se persistir, feche e reabra pelo caminho suportado |
| Tela Modo seguro do caixa | proteção dos dados locais agiu | leia o Código, use Tentar novamente e, se não resolver, Chamar suporte |
Não foi possível registrar o diagnóstico agora. O caixa continua bloqueado. | falha ao gravar o diagnóstico | tente de novo; o caixa continua bloqueado de propósito |
movimento_banco_bloqueado ou catalogo_banco_bloqueado | outro processo está usando o arquivo | feche o outro processo (outra instância do PDV, ferramenta de banco) e tente de novo |
catalogo_disco_cheio | disco do terminal sem espaço | libere espaço, mantendo a pasta de dados do PDV intacta |
| Apuração do F9 voltou vazia | o rascunho não foi salvo (queda antes de qualquer digitação) | reconte a gaveta e declare de novo |
| Venda do momento da queda não aparece em Comprovantes | a venda não chegou a ser gravada — ou foi gravada e o comprovante não saiu | duas verificações separadas: procure a venda em Comprovantes e no Histórico local (a venda existe?) e veja o desfecho da pendência de TEF no Status do PDV (o pagamento saiu?). Só registre venda nova com as três condições fechadas: venda não existe, sem pendência e sem cobrança efetiva remanescente. Qualquer outro cruzamento — inclusive "não localizei a venda" e "pagamento indeterminado" — é escalar |
| Pendência de TEF zerada | a conciliação resolveu a pendência — e ela pode ter confirmado o pagamento de uma venda gravada | não trate zero como "a venda não existe": confirme a existência da venda antes de qualquer coisa |
Mensagem N pendência(s) TEF recuperada(s) com segurança. | o PDV conciliou o diário: venda gravada foi confirmada, autorização órfã foi estornada | confirme pela busca da venda qual dos dois casos foi o seu antes de refazer qualquer operação |
Esta tentativa de pagamento já foi iniciada. Concilie a operação antes de cobrar novamente. | já existe diário de TEF para esta operação | não insista na cobrança; concilie a operação pendente |
O desfazimento do TEF ficou pendente. Reconecte a maquineta; uma nova cobrança ficará bloqueada até a conciliação. | o estorno não completou | reconecte a maquineta e aguarde; nova cobrança fica bloqueada de propósito |
| Cobrança de cartão não repete | há pendência de TEF bloqueando nova cobrança | reconecte a maquineta e aguarde; se não resolver, escale |
Credencial deste caixa foi revogada. Refaça o pareamento na retaguarda. | o terminal perdeu a credencial | este é o caso em que reparear é o caminho — veja Instalar e atualizar |
| Não há botão que libere a venda na tela de modo seguro | não existe liberação manual | escale; não procure contorno |
| Depois de mover a pasta para outro computador, o PDV não abre o banco | a chave de proteção pertence ao perfil do Windows de origem | volte para o perfil original ou escale; não apague o banco |
O que NUNCA fazer#
- Não apague nem mova o banco local, a pasta de dados ou os arquivos de diário do terminal. É onde estão a venda do dia, a fila e a prova de auditoria.
- Não reinstale o PDV por conta própria para "limpar" o problema. Reinstalar não corrige banco e pode apagar dados que ainda poderiam ser recuperados.
- Não troque nem regenere a chave de proteção do terminal. Trocar a chave torna o diário anterior ilegível — por isso o próprio launcher se recusa a substituí-la em silêncio e falha com orientação.
- Não abra o
pdv_flutter.exedireto no Windows. Sem o launcher, a chave de runtime não é provisionada. - Não crie uma segunda instância do PDV apontando para a mesma pasta de dados.
- Não contorne o modo seguro desligando proteção, alterando configuração de segurança ou trocando o ambiente do aplicativo. A proteção existe para não liberar venda sobre dado inconsistente.
- Não use o modo treinamento para "destravar" o caixa. Treinamento não transmite venda nem emite NFC-e: o dinheiro entra e a venda não existe para o sistema.
- Não repita cobrança de cartão enquanto houver pendência de TEF, e não repita a venda que já aparece em Comprovantes.
- Não refaça uma operação de cartão sem antes fazer as duas verificações. São separadas e nenhuma substitui a outra: a venda existe? (busque em Comprovantes e no Histórico local) e o pagamento daquela operação saiu? (desfecho da pendência no Status do PDV). Comprovante ausente não prova que o cartão não foi cobrado; e pendência zerada não prova que a venda não existe — a conciliação que zera a pendência pode ter confirmado o pagamento de uma venda gravada.
- Não desfaça nem confirme uma cobrança por conta própria quando a venda foi gravada. O diário marca
venda_gravadae a partir daí o estorno é proibido de propósito: estornar deixaria a NFC-e no livro fiscal e o cartão desfeito — documento fiscal e pagamento ficam inconsistentes entre si. - Não apague o diário de recuperação para "começar limpo". Sem ele não há como provar o que houve antes.
- Não faça nada disso fora do horário combinado com a loja quando o caixa estiver com cliente na frente.
Como funciona por dentro#
- A verificação roda antes do bootstrap — e o portão pode estar desaplicado. Ao abrir, o PDV chama a verificação antes de carregar a tela de venda e só prossegue se o resultado permitir.
O que este manual demonstra, e só isto — quando o banco local está protegido (cifra ativa,
cifra validada em execução, chave com 32+ caracteres) e a recuperação protegida está
desligada, a verificação faz retorno antecipado com um resultado de bypass, e esse
resultado permite prosseguir neste portão — porque é construído com o portão desaplicado
(,
e :58). A
combinação das duas condições está em
.
- A máquina de estados não tem atalho. O estado modo seguro só pode transitar para escalado. Não existe transição direta de modo seguro para íntegro: quem libera é uma nova verificação bem-sucedida.
- A primeira instalação provisiona em área separada. A base nova é criada e validada num diretório de preparação e só depois publicada com nome definitivo. A publicação é atômica e existe um manifesto para o caso de queda de energia no meio do processo — em nenhum momento o PDV sobrescreve o banco em uso pela metade.
- Um processo por vez. O diário tem um travamento entre processos, justamente para duas instâncias do PDV não escreverem a mesma recuperação.
- O diagnóstico é seguro por construção. O código reportado é um identificador de vocabulário fechado; o protocolo é um identificador opaco. Nada de conteúdo de banco, caminho de arquivo ou segredo vai para a tela.
- Escalar não libera. O escalonamento registra o diagnóstico e mantém o bloqueio: a tela recusa um resultado de escalonamento que venha liberado. A liberação só vem da verificação.
O que é de fábrica e o que a sua loja pode ter mudado#
| Ponto | Padrão de fábrica | Como fica diferente |
|---|---|---|
| Pasta de dados do terminal | varia por plataforma e por usuário do sistema operacional | não mexa em arquivo do banco local; confirme o caminho com quem dá suporte |
| Proteção adicional de recuperação | em determinados pacotes sai desativada, por depender de componente ainda não homologado | muda o conjunto de códigos de recuperação visíveis no terminal |
| Escalonamento | o PDV registra o protocolo da ocorrência | quem atende e em que prazo é processo da operação, não do aplicativo |
Os valores vigentes da sua loja ficam em Administração › Parâmetros; a tabela completa está em Parâmetros e valores padrão.