Food service
GastroFlow
PDV e controle de caixa para restaurante com balcão e salão: venda no balcão e comanda de mesa, pagamento dividido em várias formas e conferência do caixa por forma de pagamento no fim do turno.
1 de 8
Contexto
Restaurante é operação de alta rotação: dezenas de vendas por hora, entre balcão e mesas, com pagamentos misturando dinheiro, cartão, PIX e vale-refeição. No fim do turno, o caixa precisa fechar — e a diferença entre o que o sistema espera e o que está na gaveta é onde a operação perde dinheiro sem perceber.
O ciclo é sempre o mesmo: abre o caixa com um fundo de troco, vende no balcão e nas mesas, registra sangrias e suprimentos e fecha conferindo o valor de cada forma de pagamento. No meio do caminho, quem atende a mesa não deveria ser quem recebe o dinheiro.
O problema
No salão, o garçom lança o pedido, mas quem fecha a conta e recebe deveria ser o caixa. Se o sistema só tem um tipo de acesso, a escolha é ruim dos dois lados: ou o garçom não lança, ou recebe sozinho, inclusive em dinheiro. E quando o cliente pede a conta, o caixa só fica sabendo se alguém for avisar.
No fim do turno, a diferença na gaveta precisa ter origem. Se o saldo do caixa é um número que se edita, ninguém sabe se a falta veio do troco, de uma sangria ou de uma venda corrigida. E se corrigir uma venda significa apagá-la, ou se reajustar o cardápio muda o preço da venda de ontem, o relatório do mês deixa de bater com o que aconteceu.
O que construímos
O GastroFlow é um sistema que desenvolvemos para o turno inteiro do restaurante: abertura do caixa com fundo de troco, venda no balcão, comanda de mesa, pagamento dividido entre várias formas com troco calculado, sangria e suprimento, conferência por forma de pagamento no fechamento e dashboard do mês comparado ao anterior.
Cada perfil vê o que lhe cabe. O garçom só enxerga as mesas: lança os pedidos e pede autorização para fechar a conta. O caixa recebe o aviso na hora, autoriza e cobra. Estorno de venda paga fica com o gerente, sempre com motivo registrado.
Decisões técnicas
O contexto da loja vem do login, nunca da tela
A empresa e a loja de cada operação vêm do token de autenticação, nunca do que a tela envia, e toda consulta filtra por elas. Trocar um número na requisição não dá acesso a dado de outra empresa ou loja: o isolamento é garantia do servidor, não convenção do front.
Caixa como livro de lançamentos, não como saldo
O saldo esperado de cada forma de pagamento não é um número armazenado: é a soma dos lançamentos do turno (abertura, vendas, sangrias, suprimentos e estornos). No fechamento, esperado, informado e diferença ficam gravados por forma de pagamento e não mudam mais.
Corrigir não é apagar
Cada item vendido guarda nome e preço do momento da venda, então reajustar o cardápio não reescreve o passado. Estorno entra como lançamento novo, com motivo, usuário e horário, e o registro original continua lá. Cadastro é inativado, nunca excluído.
Garçom e caixa na mesma mesa, sem cobrança dupla
A venda é travada no banco antes de qualquer alteração e a mesa só muda de estado se ainda estiver no estado esperado. A regra existe para que garçom e caixa mexendo na mesma mesa ao mesmo tempo não gerem cobrança dupla nem mesa presa. O pedido de fechamento chega ao caixa em tempo real.
Resultado e estado atual
O GastroFlow é funcional de ponta a ponta: abertura do caixa, venda no balcão e na mesa, autorização do garçom, pagamento dividido, sangria, estorno, fechamento conferido e dashboard. As regras de dinheiro (saldo, troco, pagamento dividido e mesa) são cobertas por testes automatizados na API.
É um produto próprio em evolução. A emissão de NFC-e está em construção e a integração com a maquininha de cartão (TEF) está planejada; até lá, o cartão é cobrado na maquininha e registrado no sistema. As telas desta página usam dados de demonstração: restaurante, equipe e cardápio são fictícios.
Stack
- TypeScript
- NestJS
- Next.js
- PostgreSQL
- Prisma
- Docker
- Railway
Sua operação fecha o caixa no papel?
Se o fechamento do dia depende de conferência manual e a divergência de caixa virou rotina, vale uma conversa de 30 minutos.







