PDV — frente de caixa
Menu: PDV
A tela onde uma venda de balcão nasce e termina: buscar o produto, ajustar quantidade, escolher cliente e forma de pagamento, e confirmar. Atalhos principais: setas ↑/↓ navegam os resultados da busca de qualquer lugar da tela, Enter adiciona o item selecionado ao carrinho, Ctrl+B foca a busca não importa onde estava o cursor, e F3 abre os produtos correlacionados (mesmo código do fabricante) pra comparar antes de vender. É a tela mais usada do dia a dia — vendedor, caixa e administrador passam por ela dezenas de vezes por turno — e por isso é também a mais protegida contra erro silencioso: nenhuma venda fecha com valor que não bate.
Outros cuidados que não aparecem de cara: nenhum atalho de teclado funciona por baixo de um modal aberto (evita disparar uma ação da tela por trás sem querer), e nenhum campo aceita comportamento nativo do navegador que não faça sentido pro contexto — ex.: o campo de parcelas não usa <input type="number">, porque esse tipo de campo responde à roda do mouse (rolar a tela por cima dele mudava o número de parcelas sem querer).
Layout: busca no topo, cliente ao lado, carrinho no centro, totais e ações à direita. Os painéis de busca e de cliente são retráteis (seta ▾ no canto) — ao abrir a tela, nada vem expandido ou destacado sozinho: o card de detalhe do produto, por exemplo, só aparece quando um produto é destacado numa busca (por navegação com setas, clique ou foco), nunca ao simplesmente abrir a tela do zero.
Lista completa dos atalhos, com o que cada tecla faz e por que, mais adiante nesta página.
Fazer uma venda
1. Buscar o produto
Campo Busca / código de barras: digite código interno, código de barras ou nome e pressione Enter.
- Com leitor de código de barras, basta bipar — o item entra direto no carrinho.
- Se a busca por texto retornar vários resultados, escolha na lista ("Selecione um produto na lista") — um clique só destaca a linha (mesma coisa que passar o mouse por cima), duplo clique adiciona esse produto ao carrinho direto, sem precisar apertar Enter depois.
- Nada encontrado: "Nenhum produto encontrado."
2. Ajustar quantidade
Coluna Qtd do carrinho. Ao lado de cada item aparecem o preço unitário e o estoque disponível (Est:).
3. Vincular o cliente
Campo Cliente, busque pelo nome. O cliente selecionado aparece como "Cliente: Fulano".
- Opcional para venda à vista.
- Obrigatório para fiado.
- Cliente com tabela de preço ou desconto padrão cadastrado tem essas condições aplicadas automaticamente. Veja Clientes.
4. Descontos
- Desconto no item (por linha) — tecla F6.
- Desconto geral (sobre a venda toda).
Ambos exigem a permissão Dar desconto. Sem ela: "Sem permissão para desconto."
5. Finalizar
Botão Finalizar ou tecla F12 — abre a tela de pagamento.
Pagamento
Formas disponíveis: Dinheiro, Débito, Crédito, PIX e Fiado.
Pagamento dividido
Use + pagamento para combinar formas — por exemplo R$ 100 em dinheiro e R$ 50 no crédito. O painel mostra Soma: e Total venda: lado a lado, e o indicador da soma fica verde só quando os dois valores batem exatamente.
Regra sem exceção: a soma dos pagamentos precisa bater com o total, no centavo. Não existe tolerância — nem R$ 0,01, nem R$ 0,02. A comparação é feita em centavos inteiros (Math.round(soma × 100) === Math.round(total × 100)), não em valor decimal com margem de erro. Se sobrar ou faltar qualquer quantia, por menor que seja, o sistema recusa: "A soma dos pagamentos deve igualar o total." Essa regra existe porque uma versão anterior tolerava até R$ 0,02 de diferença e ainda assim mostrava o indicador em verde como se estivesse tudo certo — o indicador visual e a validação de verdade nunca podem discordar entre si.
Troco
Calculado automaticamente quando o valor em dinheiro supera o total da venda.
Fiado
"Fiado" é vender sem receber na hora — o cliente leva a peça e fica devendo, e a cobrança acontece depois, fora do PDV. Regras que o sistema aplica sozinho, sem intervenção do operador:
- Exige cliente selecionado. Sem cliente, o fiado é recusado — não existe "fiado anônimo", porque não haveria pra quem cobrar depois.
- Respeita o limite de crédito. Se
saldo devedor atual + novo fiadofor maior que o Limite de crédito cadastrado na ficha do cliente, a venda é recusada — a mensagem informa o limite e o saldo atual, pra decidir na hora se abate parte em dinheiro ou pede autorização de alguém com permissão pra aumentar o limite.
Parcelamento (opcional): ao escolher Fiado como forma de pagamento, aparecem os campos Parcelas (contador, ▲▼) e Vencimento (data da 1ª parcela; formato brasileiro dd/mm/aaaa, forçado no app inteiro independente da configuração regional do Windows). O campo de Parcelas é um campo de texto numérico, não um <input type="number"> nativo — de propósito: o tipo nativo do navegador responde à roda do mouse quando está em foco, e rolar a tela por cima dele fazia o número de parcelas mudar sozinho sem o operador perceber.
- Sem preencher parcelamento (deixa em 1 parcela): vira uma nota única, com vencimento na própria data da venda.
- Com parcelamento (2 ou mais): cada parcela nasce com seu próprio vencimento, um mês depois da anterior, no mesmo dia do mês — com uma ressalva: se o mês seguinte não tem esse dia (ex.: vencimento dia 31 e o mês seguinte é abril, que só tem 30), a data desliza para o último dia daquele mês, nunca para o mês depois. O valor da venda é dividido em partes iguais entre as parcelas.
O valor vira saldo em aberto do cliente (clients.outstandingBalance) e gera as notas correspondentes ao mesmo tempo, na mesma operação — as duas coisas nunca ficam dessincronizadas. As notas são recebidas depois na aba Clientes → Notas, nota por nota (o pagamento de uma nota parcelada exige o valor exato dela — não aceita quitação parcial de uma parcela isolada), com atraso destacado em vermelho, ou pela visão consolidada em Financeiro → Clientes em atraso.
Cashback de fidelidade
Se o cliente selecionado tem cashback disponível (saldo em R$, já resgatado de pontos) e a fidelidade está ativa para ele, o campo aparece sozinho na tela de pagamento, já sugerindo o maior valor possível: o menor entre o saldo de cashback do cliente e o total da venda (não dá pra abater mais do que a venda vale). O valor sugerido pode ser editado pra menos, se o operador ou o cliente preferirem guardar parte do saldo. O cashback aplicado vira desconto somado ao desconto geral da venda — reduz o total a pagar antes de somar as formas de pagamento, não é uma forma de pagamento à parte. Ver a fórmula completa de ganho/resgate de pontos em Fidelidade.
Moeda estrangeira
Vendas em outra moeda usam a cotação do dia cadastrada em Config. da empresa. A taxa usada fica gravada junto com a venda — o relatório de meses atrás não muda quando a cotação de hoje muda.
O que acontece ao confirmar
- O estoque é baixado.
- A comissão do vendedor é calculada, se houver regra ativa → Comissões.
- O valor entra no caixa aberto → Caixa.
- O cupom pode ser impresso (botão Cupom), e a gaveta abre se a impressora térmica estiver configurada para isso. Cada item sai com o número da peça logo abaixo do nome, sempre que o produto tiver um.
Trava pós-venda
Se Preferências → Segurança → Exigir código após venda estiver ligado (ver Preferências), toda vez que uma venda de verdade é finalizada por alguém com cargo Vendedor (não um orçamento — orçamento não baixa estoque, então não trava nada; e não vale pra Caixa, Administrador nem Desenvolvedor, mesmo com a venda completa), a tela do PDV trava depois que a pergunta "imprimir comprovante?" for respondida (imprimindo ou fechando sem imprimir) — não no instante em que a venda é concluída, pra não atravessar essa pergunta:
- Os cards de busca, detalhe do produto e carrinho ficam com blur, sem responder a clique.
- Aparece um modal pedindo um código de acesso de 6 dígitos (Usuários e permissões → Código de acesso).
- Enquanto travado, não dá pra abrir outra aba, trocar de tela nem fechar a aba do PDV — a barra de navegação recusa qualquer destino que não seja o próprio PDV, com um aviso.
Digitar um código válido destrava e troca o usuário logado para o dono desse código — não é só "confirmar de novo a mesma pessoa": serve como troca rápida de operador no balcão (quem começou a venda pode não ser quem vai continuar atendendo). Código de usuário inativo ou fora do turno cadastrado é recusado, com o mesmo aviso do login normal.
Esse parâmetro vem desligado por padrão — precisa ser ligado explicitamente em Preferências pra entrar em vigor.
Orçamento
Botão Salvar orçamento, ou a tecla F10 que alterna o modo (indicado como "Orçamento (sem baixa de estoque)").
O documento fica registrado e pode ser impresso, mas não baixa estoque e não gera comissão. Depois, o orçamento pode ser reaberto como venda e finalizado normalmente — ele aparece com status Orçamento no Histórico de vendas.
Produtos correlacionados (F3)
Com um produto em destaque na busca (ainda não adicionado ao carrinho), a tecla F3 abre uma janela com os produtos que têm o mesmo código do fabricante — mesmo número da peça ou mesma referência cruzada cadastrada em Produtos → Referências cruzadas. Útil pra comparar marcas alternativas da mesma peça antes de vender.
Como o código é comparado: espaço, ponto e hífen são ignorados, e não importa maiúscula ou minúscula — IM-11007, im 11.007 e IM11007 contam como o mesmo código. Um código diferente (IM-11008) nunca casa.
A janela mostra três áreas: a lista de correlacionados (navegue com as setas ↑/↓), o card do produto que estava selecionado na busca, e o card do produto correlacionado em destaque na lista — os dois lado a lado, pra comparar preço, estoque e demais dados. O ícone ao lado de cada item (Abrir produto) abre aquele produto em Produtos, com a ficha aberta — a venda em andamento continua no PDV, é só voltar pra aba. Enter adiciona ao carrinho o que está em destaque na lista e fecha a janela; Esc fecha sem adicionar nada.
Sem nenhum código cadastrado (nem número da peça, nem referência cruzada), a lista aparece vazia — não há nada com que comparar.
Consulta de preço (F4)
Abre uma janela em que se digita código ou código de barras e o sistema mostra preço e estoque, sem mexer no carrinho. É a consulta de balcão, para responder ao cliente sem bagunçar a venda em andamento.
Cancelar
| Ação | Efeito | Permissão |
|---|---|---|
| Nova venda | Limpa o carrinho e começa outra | — |
| Cancelar venda (F9) | Descarta a venda em andamento | Cancelar venda |
| Remover item (F8) | Tira uma linha do carrinho | Cancelar item |
Sem permissão, o sistema informa "Sem permissão para cancelar venda" / "Sem permissão para remover item".
Para desfazer uma venda já concluída, veja Vendas — estorno ou devolução.
Filtro por veículo
Informando um veículo, a busca de produtos pode ser restringida às peças que têm aplicação cadastrada para aquele veículo. O botão Remover filtro de veículo volta à busca completa.
O cadastro dessas aplicações fica em Produtos → Aplicações veiculares.
Atalhos de teclado
| Tecla | Ação |
|---|---|
| ↑ / ↓ | Navega os resultados da busca — funciona de qualquer lugar da tela, mesmo com o cursor em outro campo |
| Enter | Adiciona ao carrinho o item selecionado na busca |
| Ctrl+B | Foco no campo de busca |
| F3 | Produtos correlacionados (mesmo código do fabricante) |
| F4 | Consulta de preço |
| F6 | Desconto no item |
| F7 | Cotação de moedas |
| F8 | Remover item |
| F9 | Cancelar venda |
| F10 | Alternar modo orçamento |
| F12 | Ir para pagamento |
As teclas de função funcionam mesmo com o cursor dentro de um campo de texto — Ctrl+B também: é o jeito de voltar pra busca sem tirar a mão do teclado, não importa qual campo do carrinho estava em edição. F2 agora é o atalho global de trocar de usuário (troca de turno); use Ctrl+B para focar a busca. Lista completa de atalhos do sistema (não só o PDV) em Atalhos de teclado.
Essas 8 teclas de função são configuráveis em Preferências → Atalhos — a tabela acima mostra a tecla padrão de cada ação.
Cotação de moedas (F7)
Atalho F7 (pode ser trocado em Preferências → Atalhos). Mostra o total do carrinho atual convertido em cada moeda ativa cadastrada, usando a última cotação salva. Abaixo de cada valor aparece a cotação usada e a data dela (ex.: R$ 1 = ₲ 2.000,00 (cotação de 01/10/2026)). A cotação em si é cadastrada em Config. da empresa.
Moeda sem cotação continua na lista, mas sem valor e com o aviso "Sem cotação — cadastre em Configurações da empresa → Cotações". Ela não pode ser usada na venda até ter cotação (antes aparecia como se valesse 1:1).
Com a venda ainda aberta (não finalizada), cada moeda com cotação tem um botão Usar esta moeda, que troca a moeda da venda pra aquela. A partir daí o pagamento (F12) é feito nessa moeda e a venda fecha nela, com a cotação gravada — o valor em reais continua sendo o da venda — mesma troca de moeda que o seletor no cabeçalho do carrinho já faz, sem duplicar a lógica de câmbio. Numa venda já concluída (revisão/histórico), o modal só mostra os valores convertidos, sem opção de trocar.