Instalar, parear e atualizar o PDV#
Esta página cobre a instalação do PDV no Windows e no Android, a ativação do terminal com o código gerado na retaguarda, a troca de versão do aplicativo e o que a rede da loja precisa liberar. É para quem implanta o caixa e para o suporte que atende a loja.
Antes de começar
- O terminal cadastrado na retaguarda como Checkout, com a chave de ativação em mãos.
- Rede com saída HTTPS para o servidor do ERPia. Em homologação e produção o PDV exige HTTPS e valida o certificado do servidor contra hashes conhecidos.
- No Windows, você precisa do pacote do PDV (o ZIP distribuível), não apenas do executável.
Passo a passo#
AInstalar no Windows#
- Extraia o pacote do PDV em uma pasta do terminal (por exemplo
C:\PDV). - Dê duplo clique em
INICIAR_PDV_WINDOWS.bat. - Na primeira execução, na mesma tela de ativação, o terminal mostra a linha
Versão <versão do binário>— anote: é o que o suporte vai pedir. - Siga para o pareamento (passo C).
O launcher existe por um motivo técnico: ele provisiona, antes do aplicativo, uma chave aleatória de 256 bits exclusiva do diário local de recuperação. A chave fica estável no perfil do usuário Windows e é guardada apenas como blob protegido pelo próprio Windows, fora da pasta do pacote — por isso atualizar o binário no mesmo perfil preserva a chave, e por isso o pacote não pode ser movido para outro usuário do Windows sem refazer a ativação do diário.
Se a chave não puder ser autenticada pelo mesmo perfil, o launcher falha com orientação e não troca a chave em silêncio — trocá-la tornaria o diário anterior ilegível.
BInstalar no Android#
- Instale o APK release gerado para SmartPOS/maquininha (build com ofuscação, API HTTPS e pinning de certificado).
- No Android o PDV é sempre a pele Touch: não há escolha de pele nem teclado físico garantido.
- Abra o aplicativo e siga para o pareamento.
O APK não recebe a chave do diário por parâmetro de build — embutir o segredo no pacote seria expor a chave. O canal nativo por instalação é o caminho previsto, e enquanto ele não estiver homologado a proteção adicional de recuperação fica desativada no pacote Android. Isso não reduz as validações funcionais do banco local nem do PIN.
CParear (ativar) o terminal#
- Na tela Ativar este PDV, cole a chave de ativação gerada na retaguarda, no campo Código ou chave de ativação.
- Alternativas para preencher o campo:
- no Android, toque em Escanear QR e aponte a câmera para o QR da chave;
- no Windows, use o leitor de código: o campo já está com o foco, então basta bipar (o leitor "digita" a chave e manda Enter).
- Clique em Ativar PDV (ou deixe o Enter fazer isso).
- A mensagem
Validando e ativando este PDV…aparece e, em seguida,PDV ativado e confirmado pelo servidor. - O terminal passa a ter identidade própria (empresa, loja e PDV) e recebe a carga inicial.
DConfirmar que a carga chegou#
- Abra Status do PDV.
- Confira o painel Carga do servidor:
- Completa — o caixa recebeu todas as tabelas e opera offline;
- Parcial N/M — já dá para operar, e o restante chega no próximo ciclo;
- Aguardando — o caixa ainda não pode operar.
- Só depois disso o caixa aceita abrir a jornada.
Sem catálogo o PDV recusa a abertura com Aguardando a carga do servidor — o caixa recebe as
tabelas (catálogo, operadores, perfis, config) antes de operar.
EConfigurar o hardware do terminal#
Siga Hardware e periféricos: impressora, balança, leitor, gaveta e RFID. O terminal TEF é configurado na retaguarda, não no caixa.
FAtualizar a versão do aplicativo#
- A atualização não é pedida pelo operador: o servidor oferece a versão nova na resposta do ciclo de sincronização.
- O terminal baixa o pacote apenas quando não há venda em andamento — um download grande não disputa banda nem disco com o caixa.
- O pacote é conferido por SHA-256 e por assinatura digital antes de ser aceito.
- O conteúdo verificado é estagiado numa pasta
pending. - A troca dos binários acontece no próximo boot, pelo launcher — nunca pelo aplicativo em execução: o Windows não deixa sobrescrever um
.exerodando, e o caixa não pode parar no meio de uma venda. - No Android, a instalação é pedida ao sistema e pode exigir a confirmação do operador.
A versão só é oferecida se for mais nova. A comparação é pelo número de build (o carimbo
numérico depois do + na versão), nunca por comparação de texto de versão.
GLer a versão instalada#
A versão aparece em dois lugares:
- na tela de ativação, antes mesmo de parear:
Versão <versão>; - no rodapé da tela do caixa:
v<versão>.
Campos e o que significam#
Tela Ativar este PDV#
| Campo / botão | O que é | Observação |
|---|---|---|
| Código ou chave de ativação | chave gerada na retaguarda no cadastro do Checkout | campo com foco automático, justamente para o leitor de código "digitar" por ele |
| Escanear QR | leitura da chave pela câmera | só aparece em Android/iOS; no Windows o caminho é o leitor de código |
| Ativar PDV | envia a chave ao servidor e grava a identidade | mensagem Validando e ativando este PDV… |
Versão <versão> | versão do binário instalado | use ao abrir chamado de suporte |
Painel Carga do servidor#
| Selo | Significa | O caixa opera? |
|---|---|---|
| Completa | todos os obrigatórios recebidos | sim, e opera offline |
| Parcial N/M | parte dos obrigatórios recebidos | sim, com o essencial |
| Aguardando | catálogo ainda não chegou | não |
Resultado esperado#
PDV ativado e confirmado pelo servidor.ao final do pareamento.- O painel Carga do servidor sai de Aguardando para Parcial e depois Completa.
- A barra do caixa mostra o nome do checkout vindo da retaguarda e o título no formato
PDV-01. - O rodapé mostra a versão instalada e o resumo dos periféricos.
Se algo der errado#
| Sintoma | Causa provável | O que fazer |
|---|---|---|
Informe a URL do servidor. | o terminal não tem endereço de servidor gravado | refaça o pareamento; o endereço vem do pacote ou do pareamento |
Informe o código de ativação. | campo vazio | cole ou bipe a chave |
Resposta de pareamento incompleta do servidor. | o servidor respondeu sem pdv_id, empresa_id ou loja_id | confirme o cadastro do Checkout na retaguarda e tente de novo |
codigo_ativacao invalido (do servidor) | chave errada, de outro terminal, ou já usada | gere/confira a chave no cadastro do Checkout |
Certificate pinning incompleto: api_sem_https, certificate_pinning_sem_hash | build em produção/homologação sem HTTPS ou sem os hashes do certificado | refaça o build com os parâmetros corretos; não improvise ignorando o certificado |
| Carga parada em Aguardando | rede bloqueada ou servidor inacessível | confira a saída HTTPS da loja para o servidor do ERPia |
| Aplicativo abre e fecha, ou o diário local não abre | o executável foi iniciado direto em vez do .bat | feche e inicie por INICIAR_PDV_WINDOWS.bat |
| Depois de mover a pasta para outro computador, o diário local não abre | a chave do diário é protegida pelo perfil do Windows de origem | refaça a ativação no perfil correto; não apague o banco local por isso — veja Recuperar o PDV |
| A atualização não chega | já está na versão mais nova, ou o terminal nunca reportou estado | confirme a versão no rodapé com a retaguarda |
| A atualização baixa e não instala no Windows | a troca depende do próximo boot pelo launcher | feche o PDV pelo launcher e abra de novo |
| A atualização foi recusada por assinatura | o pacote não confere com a chave pública do build | não force: avise a retaguarda; o terminal marca a versão como não tentável |
Como funciona por dentro#
- Uma identidade por terminal. O pareamento chama
POST /pdvs/autenticarcom o código de ativação e o identificador do dispositivo, e grava o retorno —pdv_id,empresa_id,loja_ide o token de dispositivo — como a identidade do caixa. - A credencial do dispositivo acompanha toda requisição. Depois de pareado, o PDV manda o token do dispositivo; sem token, cai no código de ativação.
- Tempos curtos de propósito. A conexão espera 4 segundos; cada resposta, até 8. O caixa prefere seguir offline a travar esperando o servidor.
- Atualização sem verificação de origem não existe. Sem a chave pública embutida no build, o aplicativo ignora qualquer oferta de atualização.
- Download retomável. Um pacote interrompido continua de onde parou; o servidor pode responder do início, e nesse caso o download recomeça.
- O diário de recuperação e a identidade têm proteção própria. Se a persistência desses dados não for segura no ambiente, o caixa abre em modo seguro e bloqueia as vendas até o diagnóstico — é o comportamento esperado, não um defeito.
- Linux e macOS não são perfis suportados. O código registra essas plataformas, mas a recuperação local depende de um gate de portabilidade ainda não cumprido.
O que a rede da loja precisa liberar#
| Destino | Para quê |
|---|---|
| Servidor do ERPia por HTTPS (o mesmo endereço que a retaguarda usa) | carga, login de operador, fila de vendas, fiscal e heartbeat |
| Download do pacote de atualização (URL assinada, válida por tempo limitado) | atualizar a versão do aplicativo |
| Loopback do próprio terminal | agente do terminal TEF, quando o plugin é o SiTEF (o agente fica em 127.0.0.1 e o PDV confia apenas em loopback) |
Portas e endereços internos variam por instalação: confirme com quem administra o servidor antes de fechar o firewall.
O que é de fábrica e o que a sua loja pode ter mudado#
| Ponto | Padrão de fábrica | Como fica diferente |
|---|---|---|
| Endereço do servidor | o pacote traz o endereço de produção compilado | o pareamento grava o endereço efetivo no terminal. Não presuma: leia o que está configurado na máquina |
| Aplicativo e canal de distribuição | o APK (Android) e o pacote Windows saem dos scripts de release do projeto | nome do arquivo, canal e versão publicada variam por entrega |
| Instalação automática no Android | a confirmação de instalação passa pelo sistema operacional | pode exigir ação do operador no aparelho |
| Proteção adicional de recuperação (Windows) | em determinados pacotes sai desativada, por depender de componente ainda não homologado para o banco cifrado | isso muda o conjunto de códigos de recuperação que o terminal mostra — confira na máquina |
Os valores vigentes da sua loja ficam em Administração › Parâmetros; a tabela completa está em Parâmetros e valores padrão.