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.

Painel do caixa aberto em 07/10/2026 às 10h44, com valor inicial de R$ 200,00, R$ 3.092,25 em vendas, nenhum estorno e R$ 300,00 de sangria. Abaixo, o saldo esperado em dinheiro, PIX, cartão de débito, cartão de crédito e vale-refeição, e no topo os botões de suprimento, sangria e fechar caixa.
Caixa do turno aberto: quanto se espera em cada forma de pagamento, com sangria já descontada. Dados de demonstração.
Tela de venda de balcão: à esquerda, a grade de bebidas com ilustração e preço, abas de categoria e busca; à direita, o carrinho com executivo de bife, executivo de frango, dois sucos e dois cafés, total de R$ 111,80, e o botão Finalizar venda.
Venda de balcão: o operador toca nos produtos e o carrinho soma a conta. Cardápio e valores de demonstração.
Diálogo de pagamento da venda #2235, total de R$ 111,80: R$ 50,00 pagos em PIX e o restante, R$ 61,80, em dinheiro com R$ 70,00 recebidos. Em destaque, o troco a entregar de R$ 8,20 e o botão Confirmar entrega do troco.
Conta paga parte em PIX e parte em dinheiro; o sistema calcula o troco e pede confirmação. Valores de demonstração.
Grade com 12 mesas de salão, varanda e reservado, cada uma com número de lugares e estado: duas aguardando autorização, uma aguardando pagamento, três ocupadas e seis livres.
Mapa do salão: cada mesa mostra se está livre, ocupada ou esperando o caixa. Restaurante fictício.
Comanda da mesa Salão 6 vista pelo garçom, que só tem a opção Mesas no menu: à esquerda, a grade de massas; à direita, o consumo com bebidas, risoto, picanha para dois, espaguete e cafés, total de R$ 286,00, e o botão Solicitar autorização.
O garçom lança os pedidos na comanda e pede autorização para fechar a conta. Dados de demonstração.
Tela de mesas aguardando liberação com duas solicitações, Salão 1 e Varanda 8, cada uma com os botões Negar e Autorizar. O sino do topo, com o número 2, está aberto e lista as mesmas mesas.
O caixa é avisado quando o garçom pede para fechar a mesa e decide se autoriza. Dados de demonstração.
Fechamento de caixa com uma linha por forma de pagamento, mostrando o valor esperado e o campo do valor contado. No dinheiro, esperado de R$ 451,48 e informado de R$ 447,98, marcado como ajustado manualmente, com diferença de -3,50 em vermelho; as demais formas batem.
Fim do turno: o operador informa o que contou em cada forma e vê a diferença antes de fechar. Dados de demonstração.
Dashboard de setembro de 2026: faturamento de R$ 166.215,54, 1,8% abaixo de agosto, e indicadores de 951 vendas, ticket médio de R$ 174,78, diferenças de caixa de R$ 5,00, 11 cancelamentos, 2 estornos e 26 caixas fechados, cada um com variação e minigráfico. Abaixo, o início da distribuição por forma de pagamento.
Mês fechado comparado ao anterior: faturamento, ticket, diferenças de caixa e estornos. Dados de demonstração.

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.