Sistema ERP/CRM completo, projetado para pequenas e
médias empresas. Multi-idioma (PT/ES/EN), multi-moeda (BRL/Peso/USD), com foco em
segurança,
escalabilidade e experiência mobile.
O MoneySystem é um sistema ERP/CRM completo desenvolvido em PHP, voltado
para empresas. Ele unifica gestão de pedidos, clientes,
produtos, financeiro, emissão de notas fiscais e relatórios em uma única plataforma segura e
escalável.
📦
Pedidos
Criação, edição, faturamento e impressão de pedidos com comissões por funcionário.
👥
Clientes
Cadastro completo com dados fiscais, histórico de compras e interações.
💰
Financeiro
Contas a pagar/receber, DRE, fluxo de caixa e controle de parcelas.
📄
Nota Fiscal
Emissão direta de NF-e, NFS-e e NFC-e sem intermediário.
📈
Relatórios
Tela única com filtros dinâmicos e exportação em PDF, Excel e CSV.
🔌
API REST
API completa para integração com sistemas de terceiros.
Público-Alvo
O MoneySystem atende diversos setores de mercado. Na criação da conta, o usuário seleciona o
setor da empresa:
🖨️ Gráfica
🚗 Automotivo
🔧 Mecânica
📋 Outro
⚠️
O setor selecionado na criação da conta não poderá ser alterado
posteriormente. Essa escolha determina personalizações no sistema.
Visão de produto para o perfil
Gráfica no cadastro da empresa: impressão rápida, digital,
grande formato, brindes e comunicação visual. Vale quando o setor é
Gráfica — o sistema deve priorizar especificação técnica do job,
provas, arquivos, produção e rastreio de prazo, sem tratar pedido como «caixa
genérica».
1. Como o perfil Gráfica se reflete no produto
Onde
Comportamento esperado
Cadastro da empresa
Setor Gráfica escolhido na criação da conta
(inalterável depois)
Orçamento e pedido
Campos e fluxos voltados a especificação do trabalho
(medidas, material, cores, acabamento, tiragem), não só nome e
preço
Produção
Status e responsáveis alinhados à realidade da gráfica (arte,
impressão, acabamento, conferência)
2. Escopo funcional de referência
2.1 Ficha técnica por item (orçamento / pedido)
Dimensão
Exemplos de uso
Formato fechado e aberto
Cartão, folder, livreto — largura × altura em mm ou cm
Substrato / material
Papel offset, couché, kraft, vinil, lona, PS, etc.
Quantidade contratada; política de sobra (tolerância)
2.2 Arquivos, provas e aprovação
Anexos por item ou por pedido, com tamanho
adequado ao fluxo real (PDF, pacote compactado quando necessário)
Estados legíveis: aguardando arte, em análise técnica, prova enviada,
aprovada (com data e responsável)
Checklist opcional para o cliente interno: sangria, conversão de fonte,
perfil de cor, marcas de corte
2.3 Impressão do orçamento (layout Gráfica)
PDF ou impresso com colunas técnicas (medidas, papel,
cores, acabamento, tiragem)
Resumo de prazo combinado ou data prevista de entrega quando já negociada
Referência a anexos ou código interno do job para a produção achar o pacote
certo
2.4 Fluxo de produção (visão leve)
Status que conversem com a operação — exemplos: pré-impressão,
impressão, acabamento, conferência,
pronto para retirada / envio. Deve ser possível filtrar a fila
por etapa e por prazo.
2.5 Estoque e consumo (visão gráfica)
Papéis, bobinas, chapas, tintas e insumos tratados com unidade
coerente (folha, m², kg, rolo)
Onde fizer sentido, baixa estimada ao reservar material para
o job ou ao fechar o pedido — alinhado à política da empresa na v2
3. Visão de mercado e oportunidade
3.1 Dores comuns
Pedido sem especificação → retrabalho e briga de «não estava no orçamento»
Prova informal (WhatsApp) sem registro → disputa de cor e formato
Prazo prometido sem encaixe na capacidade da máquina ou
do acabamento
Desperdício de chapa / metro por falta de visão de otimização
(fase avançada)
3.2 Proposta de diferenciação
Conceito
Em uma frase
Job padronizado + variáveis
Templates por tipo de produto (cartão, banner, adesivo) com
campos obrigatórios
Repetir pedido
Clonar job anterior com um clique, ajustando só tiragem ou data
Portal ou link de aprovação
Cliente aprova prova com carimbo de data (fase 2, se priorizado)
Calculadora de área
m² ou linear automático a partir das medidas do item
4. Lacunas típicas a endereçar no desenho da v2
Tema
Observação
Imposição / nesting
Integração profunda costuma ficar para ferramentas RIP ou ERPs
especializados; definir até onde o MoneySystem calcula vs só
registra
Plotter / mesa de corte
Exportação de lista de cortes ou integração futura com drivers
Contratos e provas legais
Termo de aprovação de arte vinculado ao pedido
Visão de produto para o perfil
Automotivo no cadastro da empresa: escopo funcional desejado, o que pode
ser transversal a outros setores e a oportunidade de mercado (insumos, receita de
serviço, «cliente = carro»). Vale quando o setor da empresa é Automotivo
— esse perfil deve acionar telas e fluxos específicos (veículo, película/PPF, impressão e
checklist, entre outros).
1. Escopo funcional de referência (perfil Automotivo)
Campo
Observação
Marca / modelo / ano
Texto livre (ex.: Hyundai Creta 2025)
Placa
Deve ser fácil de buscar e reutilizar no histórico
Chassi
Disponível na abertura do pedido e editável depois, sem lacunas
entre orçamento e OS
1.1 Película e PPF — área de aplicação por item
No orçamento com perfil Automotivo, ao incluir produto, deve existir
área de aplicação por linha:
A lista de itens deve destacar a área (por exemplo com indicadores
visuais distintos para PPF e película). A impressão / PDF do orçamento
no layout automotivo deve reutilizar essas áreas (lista ou diagrama, conforme
configuração).
1.2 Impressão do orçamento (layout automotivo)
Layout próprio para orçamentos automotivos
Destaque para placa, modelo e chassi quando preenchidos
Respeitar as áreas de aplicação definidas nos itens
Na tela de visualização do orçamento, atalho claro para essa impressão quando o
contexto for Automotivo
1.3 Checklist de fotos (aba Anexos)
Na edição do pedido, anexos exibem alerta com checklist: externas, internas,
detalhes (riscos, vidros), documentação (placa, chassi, KM, chaves). Objetivo: proteção
da loja e do cliente — alinhado a película/PPF.
1.4 Busca e histórico por placa
Listagem de pedidos: a busca deve considerar placa, chassi e
marca/modelo
Autocomplete por placa: ao digitar a placa, sugerir pedidos recentes
com rótulo claro (ex.: número do pedido, cliente e placa) e permitir preencher cliente
e dados do veículo quando fizer sentido no fluxo
A placa como chave de busca liga histórico de pedidos ao titular
cadastrado (ideia «cliente = carro» em parte).
2. Visão de mercado e oportunidade
2.1 Dor do nicho
Estoque fino para peças inteiras (lâmpada, som)
Insumos líquidos (shampoo, cera, galões): «estoque invisível» —
consumo por serviço não medido
2.2 Proposta de diferenciação
Conceito
Em uma frase
Composição de serviço (receita / ficha técnica)
Serviço vendido puxa consumo estimado de insumos (ml, g, aplicações)
Unidade fracionada
Cadastro e estoque em ml / L / g, não só unidade
Baixa no pedido
Ao lançar o serviço, baixa insumos em segundo plano
Relatórios
Quanto rende o galão; lavagens estimadas restantes
UX «cliente = carro»
Busca por placa; evolução possível para entidade Veículo
3. Lacunas
Desejado
Observação
«Receita» do serviço: serviço → insumos → quantidade consumida
Precisa de modelo de dados e telas; hoje, em referências de mercado,
costuma não existir como entidade de primeira classe
Baixa automática de estoque de produto ao vender serviço
Serviço no pedido não «explode» sozinho em consumo de insumos sem regra de
produto definida
Estoque em ml / L / g como caso de uso principal
Exige unidade e precisão no cadastro de produtos, regras de arredondamento
e UX claras
Veículo como entidade separada do cliente
Referência comum: dados só no pedido; histórico por placa sem «ficha do
carro» única
Frota no cadastro do cliente (vários carros)
Hoje, em muitos sistemas, o veículo é digitado de novo a cada pedido
4. Assinaturas de lavagem e frota por cliente
Ideias complementares à «receita de insumos»; tratá-las como evolução de produto
própria (cadastro, consumo de créditos, financeiro).
Assinatura mensal por carro ou cliente: mensalidade com direito a X
lavagens ou serviços no período; envolve plano de assinatura do cliente final,
vínculo com cliente e opcionalmente veículo, contagem de usos, regras na abertura do pedido
(crédito x avulso), renovação e relatórios. Nota: em impressos automotivos,
«assinatura» pode aparecer só como linha para assinatura física
(cliente/técnico) — não confundir com plano recorrente no sistema.
Vários veículos no cadastro: no cliente, lista de veículos (apelido,
modelo, placa, cor, observações); no pedido, escolher qual veículo preenche placa e modelo e
mantém rastreio.
Na modelagem, prever entidades do tipo cadastro de veículos do cliente, assinaturas e uso
por período, conforme prioridade de negócio.
Código 100% proprietário, todos os direitos reservados
🏗️ Arquitetura
Arquitetura do Sistema
Visão técnica da arquitetura do MoneySystem, projetada para
escalabilidade, segurança e manutenibilidade.
Visão Geral da Arquitetura
O MoneySystem segue uma arquitetura MVC (Model-View-Controller) modular com
separação clara de responsabilidades. O sistema é projetado para suportar 50.000+
usuários ativos simultaneamente.
🖥️
Camada de Apresentação
Interface responsiva com PWA, Service Workers para offline, e design adaptativo
mobile-first.
⚡
Camada de Aplicação
Controllers PHP com middleware de autenticação, rate limiting e validação de dados.
🗄️
Camada de Dados
MySQL com sharding por empresa, Redis para cache, backups automáticos geográficos.
Padrões de Projeto
Repository Pattern — Abstração do acesso ao banco de dados
Service Layer — Lógica de negócio encapsulada em serviços
O schema é desenhado para ser modular, escalável e preparado para 50.000+ usuários
ativos simultâneos. Todo o banco de dados é escrito em inglês
(tabelas, colunas, constraints, índices) para padronização internacional e facilitar a
colaboração com desenvolvedores de qualquer país.
Cada empresa possui dados isolados via company_id em todas as
tabelas, seguindo o padrão de multi-tenancy compartilhado — um único banco
de dados serve todas as empresas, mas com isolamento rigoroso por chave.
Convenções de Naming
Elemento
Convenção
Exemplo
Tabelas
snake_case, plural
companies, orders,
order_items
Colunas
snake_case, singular
company_name, created_at
Primary Key
id (BIGINT UNSIGNED AUTO_INCREMENT)
companies.id
Foreign Key
{tabela_singular}_id
company_id, customer_id
Timestamps
created_at, updated_at, deleted_at
Em todas as tabelas
Booleanos
Prefixo is_ ou has_
is_active, has_nfe
Índices
idx_{tabela}_{colunas}
idx_orders_company_status
Estratégia de Escalabilidade (50k+ Usuários)
Para suportar mais de 50.000 usuários ativos sem lentidão, o banco de dados utiliza uma
combinação de técnicas:
🔗
Connection Pooling
Pool de conexões gerenciado evita overhead de abrir/fechar conexões a cada request.
Máximo de conexões configurável por instância.
📖
Read Replicas
Réplicas de leitura distribuem a carga de SELECT queries. O master recebe apenas
escritas (INSERT/UPDATE/DELETE). Leituras vão para réplicas.
📊
Particionamento
Tabelas grandes (transactions, audit_logs, notifications) são particionadas por data
(mês/ano), mantendo cada partição com tamanho gerenciável.
⚡
Índices Compostos
Cada tabela tem índice composto (company_id, ...) como
primeiro campo, garantindo que queries filtradas por empresa sejam instantâneas.
🗄️
Redis Cache
Resultados de queries frequentes (dashboard, relatórios) ficam em cache Redis com TTL
configurável, reduzindo drasticamente a carga no MySQL.
🔍
Query Optimization
Slow Query Log ativo, EXPLAIN obrigatório em code review, queries com JOIN limitado e
paginação obrigatória em listagens.
Regras de Integridade
Índices Compostos — Todas as tabelas possuem índice em (company_id, campo_principal) para queries eficientes por
empresa
Soft Delete — Registros nunca são excluídos fisicamente. Usam deleted_at (NULL = ativo, TIMESTAMP = excluído)
Auditoria — Tabela audit_logs registra
TODAS as alterações com usuário, IP, ação, tabela, valores antes/depois e timestamp
Foreign Keys — Constraints de FK garantem integridade referencial, com
ON DELETE RESTRICT para evitar exclusões em cascata
acidentais
Enum via Lookup Tables — Em vez de ENUM no MySQL, usamos tabelas de
lookup para valores fixos (status, tipos), facilitando manutenção
Exemplo: Tabela companies
Esta é a tabela principal onde ficam cadastradas todas as empresas do sistema. Cada registro
representa uma empresa cliente do MoneySystem:
SQL
CREATE TABLE companies (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
uuid CHAR(36) NOT NULL UNIQUE,
-- Dados da empresa
company_name VARCHAR(255) NOT NULL, -- Razão social
trade_name VARCHAR(255) DEFAULT NULL, -- Nome fantasia
document_number VARCHAR(20) NOT NULL UNIQUE, -- CNPJ ou equivalente
state_registration VARCHAR(30) DEFAULT NULL, -- Inscrição estadual
municipal_registration VARCHAR(30) DEFAULT NULL, -- Inscrição municipal-- Contato
email VARCHAR(255) NOT NULL,
phone VARCHAR(20) DEFAULT NULL,
website VARCHAR(255) DEFAULT NULL,
-- Endereço
address_street VARCHAR(255) DEFAULT NULL,
address_number VARCHAR(20) DEFAULT NULL,
address_complement VARCHAR(100) DEFAULT NULL,
address_neighborhood VARCHAR(100) DEFAULT NULL,
address_city VARCHAR(100) DEFAULT NULL,
address_state CHAR(2) DEFAULT NULL,
address_zip_code VARCHAR(10) DEFAULT NULL,
address_country VARCHAR(3) DEFAULT 'BRA',
-- Configurações do sistema
sector VARCHAR(50) NOT NULL, -- grafica|automotivo|mecanica|outro
currency CHAR(3) NOT NULL DEFAULT 'BRL',-- BRL | ARS | USD
language VARCHAR(5) NOT NULL DEFAULT 'pt-BR',
timezone VARCHAR(50) NOT NULL DEFAULT 'America/Sao_Paulo',
-- Plano e faturamento
plan_id BIGINT UNSIGNED DEFAULT NULL,
storage_used_mb BIGINT UNSIGNED DEFAULT 0,
is_active TINYINT(1) NOT NULL DEFAULT 1,
is_suspended TINYINT(1) NOT NULL DEFAULT 0,
suspended_at TIMESTAMP NULL DEFAULT NULL,
days_overdue INT UNSIGNED DEFAULT 0,
-- NF-e (apenas BRL)
has_nfe TINYINT(1) NOT NULL DEFAULT 0,
nfe_environment TINYINT(1) DEFAULT 1, -- 1=Produção, 2=Homologação
nfe_series INT UNSIGNED DEFAULT 1,
nfe_last_number INT UNSIGNED DEFAULT 0,
digital_certificate_path VARCHAR(255) DEFAULT NULL,
digital_certificate_password VARCHAR(255) DEFAULT NULL,
-- White Label
is_white_label TINYINT(1) NOT NULL DEFAULT 0,
custom_logo_path VARCHAR(255) DEFAULT NULL,
custom_primary_color VARCHAR(7) DEFAULT NULL,
-- Controle
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted_at TIMESTAMP NULL DEFAULT NULL,
-- Índices
INDEX idx_companies_sector (sector),
INDEX idx_companies_plan (plan_id),
INDEX idx_companies_active (is_active, is_suspended),
INDEX idx_companies_deleted (deleted_at),
-- Foreign Keys
CONSTRAINT fk_companies_plan
FOREIGN KEY (plan_id) REFERENCES plans(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
💡
Repare que todos os nomes de colunas e tabelas estão em inglês, com
snake_case. Campos como deleted_at permitem soft delete, e o uuid é usado para exposição pública (API), nunca o id numérico.
Área administrativa da plataforma (/admin)
A equipe MoneySystem acessa https://moneysystem.com.br/admin. A primeira tela é login (usuário e senha), sem
misturar com o fluxo das empresas clientes.
CEOs — perfil com visão global (clientes,
suporte, operações, o que for definido no produto).
Funcionários — mesmo painel /admin, mas só enxerga e altera o que as permissões do perfil
permitirem.
Onde fica no banco (otimizado e seguro) — não usar as tabelas de
usuários das empresas (company_id). Manter conjunto
separado só para quem opera a plataforma:
Tabela dedicada — ex.: platform_admin_users
(poucos registros, consulta por login só no momento da autenticação).
Senha — apenas hash forte (Argon2id ou
bcrypt), nunca texto puro; custo de hash configurável.
Papel — coluna role ou FK para
platform_roles; permissões granulares de atendente em tabela
de junção (platform_admin_permissions) ou JSON validado na
aplicação, conforme complexidade.
Índices — UNIQUE em
username (ou e-mail de login) para lookup O(1) no sign-in.
Sessão — cookie HTTP-only / servidor (Redis), TTL curto; rate limit e
auditoria em ações sensíveis (qual admin acessou qual tenant).
SQL
CREATE TABLE platform_admin_users (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
uuid CHAR(36) NOT NULL UNIQUE,
username VARCHAR(64) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role VARCHAR(32) NOT NULL, -- ex.: owner | support
is_active TINYINT(1) NOT NULL DEFAULT 1,
last_login_at TIMESTAMP NULL DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_platform_admin_users_active (is_active, role)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Esse desenho mantém o painel interno isolado dos dados multi-tenant, com
superfície de ataque menor e modelo de permissões claro.
🗺️ Roadmap
Roadmap de Desenvolvimento
Fases planejadas para o desenvolvimento e lançamento do MoneySystem
v2.0.
1
Fase 1 — Fundação (Mês 1)
Arquitetura base, banco de dados, autenticação, multi-tenancy, sistema de
permissões, estrutura MVC.
2
Fase 2 — Módulos Core (Mês 2)
Pedidos, Clientes, Produtos, Serviços, Dashboard, Calendário de eventos.
3
Fase 3 — Financeiro e NF (Mês 3)
Módulo financeiro, DRE, contas a pagar/receber, emissão de NF-e/NFS-e/NFC-e
direto com SEFAZ. (Contratar um dev nessa fase especialista em SEFAZ)
4
Fase 4 — Integrações e API (Mês 4)
API REST pública, integrações com ERPs (Tiny, Bling), Asaas, RD Station, webhooks.
5
Fase 5 — White Label e Planos (Mês 5)
Sistema de planos pós-pago, cobrança automática, White Label, armazenamento por
plano.
6
Fase 6 — Migração e Testes (Mês 6)
Migração do banco antigo, testes de carga 50k+ usuários, testes de segurança,
pentest.
7
Fase 7 — Beta Fechado (Mês 7)
Deploy em beta.moneysystem.com.br para empresas
selecionadas testarem o sistema. Coleta de feedback, correção de bugs e
validação em ambiente real durante 1 mês.
8
Fase 8 — Lançamento v2.0 (Mês 8)
Deploy oficial para todos os usuários, aviso de instabilidades, banner "cara
nova" nos primeiros 7 dias, vídeo de apresentação e correção de bugs.
9
Fase 9 — v2.1 Pós-Lançamento (Mês 9+)
Integrações bancárias (BB, Itaú, Bradesco, Inter), Integração com SEFAZ, PWA com Service Workers, modo
offline, app via WebView para App Store e Google Play.
📝 Onboarding
Criação de Conta
Fluxo completo de registro de novas empresas no MoneySystem,
incluindo seleção de moeda, idioma e setor.
🎁
Toda nova conta recebe 7 dias grátis no plano Enterprise para testar o
sistema completo, sem necessidade de cartão de crédito. Após o período de teste, a
empresa deve escolher um plano para continuar usando.
Campos do Registro
Ao criar uma conta no MoneySystem, o usuário da empresa deverá preencher:
Nome da empresa — Razão social
CNPJ — Validação em tempo real
Nome do responsável — Administrador principal
E-mail — Será usado para cobranças e notificações
Telefone/WhatsApp — Para comunicação de inadimplência
Senha — Mínimo 8 caracteres, letra maiúscula, número e caractere
especial
Seleção de Moeda
Uma caixa de seleção exibe as opções de moeda. O Real Brasileiro (R$) vem
pré-selecionado:
Moeda
Símbolo
Nota Fiscal
Padrão
Real Brasileiro
R$
✅ NF-e, NFS-e, NFC-e
Padrão
Peso
$
❌ Indisponível
—
Dólar Americano
$
❌ Indisponível
—
🚨
A moeda selecionada não pode ser alterada após a criação da conta. Nota
Fiscal só está disponível para contas em Real Brasileiro (R$).
Seleção de Idioma
O idioma padrão é Português (PT-BR). A tradução para Espanhol e Inglês é
feita via arquivos de idioma (i18n) — JSONs estáticos carregados uma vez e
armazenados no cache do navegador. Nas configurações do sistema, o usuário pode alterar o
idioma a qualquer momento.
🇧🇷 Português — Padrão (nativo)
🇪🇸 Espanhol — Arquivo es.json
🇺🇸 Inglês — Arquivo en.json
Seleção de Setor
O campo de setor vem sem nada selecionado. O usuário deve obrigatoriamente
selecionar um setor para conseguir criar a conta. Após criação, não há como
alterar.
🖨️ Gráfica
🚗 Automotivo
🔧 Mecânica
📋 Outro
🔄 Onboarding
Página Dinâmica
Comportamento dinâmico da URL principal, inspirado no GitHub: site
institucional para visitantes, dashboard para usuários logados.
Comportamento
O mesmo endereço moneysystem.com.br exibe conteúdo diferente
dependendo do estado de autenticação:
🌐
Visitante (Deslogado)
Site institucional com landing page, informações sobre planos, funcionalidades,
depoimentos e CTA de registro.
🏠
Usuário (Logado)
Dashboard personalizado com KPIs, calendário, eventos, últimos pedidos, faturamento
mensal e atividade recente.
Categoria — Agrupamento por categoria para organização
Importação
Produtos podem ser importados via XML de NF-e ou via
CSV/Excel. Na importação XML, dados tributários (origem, NCM, CFOP) são
extraídos automaticamente.
⚙️ Módulo
Serviços
Gestão de serviços prestados pela empresa, com preços e vinculação a
pedidos.
Funcionalidades
Cadastro de serviços com nome, descrição e preço
Vinculação de serviços a pedidos junto com produtos
Código de serviço para NFS-e (quando aplicável)
Histórico de serviços prestados por cliente
Relatórios de serviços mais prestados
💰 Módulo
Financeiro
Controle financeiro: contas a pagar/receber, DRE,
transações, parcelas e fluxo de caixa.
Módulos Financeiros
📥
Contas a Receber
Parcelas de pedidos faturados, recebimentos, baixas manuais e automáticas.
📤
Contas a Pagar
Despesas fixas e variáveis, fornecedores, impostos, salários.
📊
DRE
Demonstrativo de Resultados do Exercício com lucro bruto e líquido.
💳
Transações
Registro de todas as movimentações, com filtros por período, tipo e status.
Cálculos do DRE
Lucro Bruto = Pedidos de Venda Faturados − Despesas Pagas
Módulo de venda rápida no balcão, acessível a todos os usuários com
permissão de criar pedidos.
Características
Interface simplificada para vendas rápidas
Leitor de código de barras integrado
Busca rápida de produtos por nome ou código
Múltiplas formas de pagamento (dinheiro, cartão, PIX)
Impressão de cupom em impressoras térmicas (58mm / 80mm)
Emissão de NFC-e diretamente pelo PDV (contas BRL)
✅
O PDV está disponível para todos os planos. Qualquer usuário com
permissão de criar pedidos pode acessar.
📄 Módulo
Nota Fiscal
Objetivo: emissão direta de NF-e, NFS-e e NFC-e com a SEFAZ, sem
intermediário.
Na fase inicial poderá ser utilizado um intermediário; após o
lançamento, a plataforma evoluirá para emissão direta.
⚠️
A emissão de Nota Fiscal está disponível apenas para contas em Real Brasileiro
(R$).
Tipos de Nota Fiscal
Tipo
Nome Completo
Uso
NF-e
Nota Fiscal Eletrônica
Venda de produtos (mercadorias)
NFS-e
Nota Fiscal de Serviços Eletrônica
Prestação de serviços
NFC-e
Nota Fiscal de Consumidor Eletrônica
Venda direta ao consumidor (PDV)
Características
Sem intermediário — Comunicação direta com SEFAZ
Importação de XML — Importar NF-e de fornecedores
DANFE — Geração automática do documento auxiliar
Cancelamento — Cancelar NF-e dentro do prazo legal
Carta de Correção — CC-e para ajustes na nota
Inutilização — Inutilizar faixas de numeração
📈 Módulo
Relatórios
Tela única de relatórios com seleção de tipo, filtros avançados e
múltiplos formatos de exportação.
ℹ️
O sistema possui apenas uma única tela de relatórios. Nela, o usuário
primeiro seleciona o tipo, depois aplica filtros e escolhe o formato de download.
Histórico mensal — Comparativo de desempenho mês a mês
Comissões
Ao criar um pedido, o funcionário responsável pode ser atribuído. A comissão pode ser:
Percentual fixo — Ex: 5% sobre o valor do pedido
Valor fixo — Ex: R$50 por pedido
Por produto — Percentual diferente por categoria/produto
💎 Planos
Planos e Preços
4 planos para atender desde micro empresas até organizações com
filiais e marca própria. 7 dias grátis para todas as novas contas.
Preços de referência em BRL (base de cobrança no Brasil),
USD e ARS (peso argentino), aproximados por taxa de
câmbio — o valor faturado segue a moeda da conta no sistema.
Essencial
R$ 240/mês
US$ 45/mês
ARS 48.000/mês
Pós-pago
3 usuários
2 GB armazenamento
Pedidos e Clientes
Financeiro
PDV
Relatórios
NF-e (apenas BRL)
API REST
Integrações
White Label
Popular
Profissional
R$ 350/mês
US$ 65/mês
ARS 70.000/mês
Pós-pago
8 usuários
10 GB armazenamento
Pedidos e Clientes
Financeiro + DRE
PDV
Relatórios avançados
NF-e, NFS-e, NFC-e
API REST
Integrações bancárias
White Label
Enterprise
R$ 800/mês
US$ 140/mês
ARS 160.000/mês
Pós-pago
25 usuários
30 GB armazenamento
Todos os módulos
Financeiro + DRE
PDV
Relatórios avançados
NF-e, NFS-e, NFC-e
API REST completa
Integrações bancárias
White Label
White Label
R$ 1.200/mês
US$ 210/mês
ARS 240.000/mês
Empresa principal · Pós-pago
Usuários ilimitados
50 GB + R$2,50/GB extra (~US$0,45 · ~ARS 500/GB)
Todos os módulos
Financeiro + DRE
PDV
Logo e marca própria
NF-e, NFS-e, NFC-e
API REST completa
Integrações bancárias
Filiais: +R$300/mês cada (~US$55 · ~ARS 60.000)
💱
Referência cambial usada na documentação: ~5,5 BRL por US$ e ~200 ARS por
R$ — valores arredondados para leitura. Na prática, o sistema pode exibir
MXN (peso mexicano) ou outras moedas conforme o módulo de idiomas e a
tabela comercial vigente; reajustes seguem contrato e política de preços.
Comparativo Completo
Funcionalidade
Essencial
Profissional
Enterprise
White Label
Usuários
3
8
25
Ilimitado
Armazenamento
2 GB
10 GB
30 GB
50 GB + extra
Pedidos
✓
✓
✓
✓
Clientes
✓
✓
✓
✓
Produtos
✓
✓
✓
✓
PDV
✓
✓
✓
✓
Financeiro
Básico
Completo
Completo + DRE
Completo + DRE
Nota Fiscal
✗
NF-e/NFS-e/NFC-e
NF-e/NFS-e/NFC-e
NF-e/NFS-e/NFC-e
Relatórios
Básico
Avançado
Avançado
Avançado
API REST
✗
✓
✓
✓
Integrações Bancárias
✗
✗
✓
✓
Integrações ERP
✗
✗
✓
✓
Comissões
✗
✓
✓
✓
White Label
✗
✗
✗
✓
Filiais
✗
✗
✗
✓
Suporte
E-mail
E-mail + Chat
Prioritário
Dedicado
ℹ️
Armazenamento além do limite do plano é cobrado a R$2,50 por GB
extra/mês.
👤 Planos
DRF — Finanças Pessoais
Demonstrativo de Resultados Familiar. Um plano separado para
controle financeiro pessoal dos funcionários.
O que é o DRF?
O DRF (Demonstrativo de Resultados Familiar) é inspirado no DRE empresarial,
mas voltado para o controle financeiro pessoal do funcionário. Ao assinar o
plano DRF, o usuário acessa exclusivamente a tela de finanças pessoais — sem acesso aos
módulos empresariais.
Como Funciona
Plano independente — O DRF é um plano separado dos planos empresariais
(Essencial, Profissional, etc.)
Acesso exclusivo — Ao entrar com o plano DRF, o usuário vê apenas a
tela de finanças pessoais
Sem módulos empresariais — Não tem acesso a Pedidos, Clientes,
Produtos, NF-e, etc.
Conta individual — Cada pessoa cria sua própria conta DRF
Funcionalidades
💰
Receitas
Cadastro de salário, freelances, rendimentos e outras fontes de renda pessoal.
🧾
Despesas
Controle de gastos mensais por categoria: moradia, alimentação, transporte, lazer,
etc.
📊
Demonstrativo
Visão clara de receitas vs despesas, com saldo mensal e evolução ao longo do tempo.
🎯
Metas
Definição de metas de economia, acompanhamento de progresso e alertas de gastos
excessivos.
💡
O DRF é uma ferramenta pessoal e privada — a empresa do funcionário
não tem acesso aos dados financeiros pessoais cadastrados no DRF.
💳 Planos
Modelo de Faturamento
Sistema pós-pago: o cliente usa durante o mês e recebe a cobrança
por e-mail ao final do período.
Como Funciona
1
Uso Mensal
A empresa utiliza o sistema normalmente durante todo o mês.
2
Geração da Fatura
No final do período, o sistema gera a fatura com o valor do plano + extras
(armazenamento adicional).
3
Envio por E-mail
A fatura é enviada automaticamente para o e-mail cadastrado da empresa.
4
Pagamento
A empresa realiza o pagamento via boleto, PIX ou cartão de crédito.
E-mails de Cobrança
O MoneySystem envia e-mails automáticos em momentos-chave:
Fatura gerada — E-mail com PDF da fatura e link de pagamento
3 dias antes do vencimento — Lembrete de pagamento
Dia do vencimento — Aviso de vencimento
1 dia após vencimento — Primeiro aviso de atraso
3 dias de atraso — Segundo aviso (urgente)
5 dias de atraso — Último aviso antes da suspensão
⚠️ Planos
Política de Inadimplência
Regras de suspensão e exclusão de contas inadimplentes, com
múltiplos avisos por e-mail e WhatsApp.
🚨
7 dias de atraso — A empresa perde o acesso ao sistema. Os dados são
mantidos.
💀
365 dias sem pagamento — O cadastro e todo o banco de dados da empresa
são excluídos permanentemente.
Cronograma de Avisos
Dia
Ação
Canal
D+1
Aviso de atraso
📧 E-mail
D+3
Aviso urgente
📧 E-mail + 📱 WhatsApp
D+5
Último aviso antes da suspensão
📧 E-mail + 📱 WhatsApp
D+7
Suspensão do acesso
📧 E-mail + 📱 WhatsApp
D+30
Lembrete mensal
📧 E-mail + 📱 WhatsApp
D+90
Aviso de exclusão em 275 dias
📧 E-mail + 📱 WhatsApp
D+180
Aviso de exclusão em 185 dias
📧 E-mail + 📱 WhatsApp
D+330
Aviso final: exclusão em 35 dias
📧 E-mail + 📱 WhatsApp
D+350
Aviso final: exclusão em 15 dias
📧 E-mail + 📱 WhatsApp
D+365
Exclusão permanente
📧 E-mail + 📱 WhatsApp
🔌 API
API REST
API completa para integração do MoneySystem com sistemas de
terceiros. Disponível a partir do plano Profissional.
Autenticação
A API utiliza Bearer Token (JWT) para autenticação. Tokens são gerados via
endpoint de login e possuem expiração configurável.
Suporte a 3 idiomas e 3 moedas, com sistema de tradução via
arquivos i18n (JSON) com cache no navegador.
Idiomas
O MoneySystem utiliza arquivos de idioma estáticos (JSON) para tradução.
Cada idioma possui um arquivo contendo todas as labels, botões e textos do sistema. O
arquivo é carregado uma única vez e fica salvo no cache do navegador
(localStorage + Service Worker), garantindo velocidade instantânea nas próximas visitas
— inclusive offline.
Query Cache — Resultados de relatórios em cache com TTL
Banco de Dados
Read Replicas — Réplicas de leitura para distribuir carga
Particionamento — Tabelas de logs e transações por data
Índices Compostos — (empresa_id, campo) em todas as tabelas
Connection Pooling — Gerenciamento eficiente de conexões
Slow Query Log — Identificação automática de queries lentas
Monitoramento
Métricas de aplicação (response time, error rate, throughput)
Métricas de infraestrutura (CPU, RAM, disco, rede)
Alertas automáticos via Slack/Email para anomalias
Dashboard de health check em tempo real
🔀 Infra
Migração de Dados
Plano detalhado para transferir dados do banco de dados antigo para
o novo schema v2.
Estratégia
1
Análise do Schema Antigo
Mapear todas as tabelas, relacionamentos e dados do banco atual.
2
Mapeamento de Campos
Criar correspondência entre campos antigos (PT) e novos (EN), com transformações
necessárias.
3
Scripts de Migração
Desenvolver scripts PHP/SQL para ETL (Extract, Transform, Load).
4
Teste em Staging
Executar migração em ambiente de homologação com dados reais criptografados.
5
Validação
Comparar contagens, totais e integridade referencial entre base antiga e nova.
6
Migração Produção
Executar em janela de manutenção com rollback preparado.
⚠️
A migração será realizada em janela de manutenção programada. Os
usuários serão avisados com antecedência via e-mail e banner no sistema.
📧 Comunicação
E-mails e Notificações
Sistema de comunicação multicanal: e-mail transacional, WhatsApp e
notificações in-app.
E-mails Transacionais
Boas-vindas — Ao criar a conta, com guia de início
Fatura mensal — PDF com detalhes e link de pagamento
Lembretes — Antes/depois do vencimento
Suspensão — Aviso de perda de acesso (D+7)
Reativação — Confirmação de pagamento e reativação
Exclusão — Avisos progressivos até D+365
Segurança — Login em novo dispositivo, troca de senha
WhatsApp (mensagens transacionais)
Canal automatizado para ciclo de cobrança e vida da assinatura — distinto do
WhatsApp de suporte humano descrito na seção Atendimento:
Aviso de atraso (D+3, D+5)
Suspensão (D+7)
Lembretes mensais
Avisos de exclusão (D+90, D+180, D+330, D+350)
Notificações In-App
Avisos de manutenção programada
Novidades do sistema e atualizações
Alertas de segurança (login suspeito)
Lembretes de eventos do calendário
💬 Suporte
Atendimento ao Cliente
Três canais oficiais — Chat de Suporte no sistema
(IA + humano), WhatsApp MoneySystem e
tickets dentro do sistema — para atender assinantes no Brasil e no
exterior, com fila única para a equipe e horário definido no fuso de São Paulo.
Chat de Suporte no Sistema (IA + humano)
Primeira linha de atendimento dentro do produto. Aberto por qualquer usuário logado pelo
ícone de suporte na barra superior (ao lado de Configurações) ou pelo item
Ajuda no menu Outros. Disponível 24/7, com
resposta imediata da IA e encaminhamento humano em horário comercial.
🤖
Assistente por IA
Responde com base na documentação oficial do MoneySystem (pedidos,
clientes, financeiro, NF-e, integrações). Estratégia recomendada: RAG
(embeddings sobre esta documentação) + modelo barato (Groq, OpenRouter ou Ollama
self-hosted). O painel está pronto no front — basta apontar para o endpoint.
📱
Atalho para WhatsApp
Dentro do próprio painel há um chip “Atendente (WhatsApp)” que abre
o número oficial com mensagem pré-preenchida. Usado quando a IA não resolveu, ou
quando o cliente prefere falar com pessoa.
📚
Artigos da Central
Chip “Artigos” leva à /ajuda em
moneysystem.com.br. As respostas da IA também podem citar artigos
como fonte, incentivando leitura auto-atendida.
Recursos do painel
Persistência da conversa — histórico salvo em
localStorage por sessão, limitado a 40 mensagens; sobrevive
a recarregar a página.
Indicador de digitando e bloqueio do botão enviar enquanto aguarda
resposta.
Aborto automático de requisições pendentes ao iniciar nova conversa
(AbortController).
Links auto-detectados nas respostas da IA, abertos em nova aba com
rel="noopener noreferrer".
Estado de erro visível (bolha vermelha) se a API cair, com sugestão de
abrir o WhatsApp.
Disclaimer fixo: “Respostas geradas por IA podem conter erros. Em
caso de dúvida, fale com um atendente.”
Acessibilidade — aria-live="polite" na
lista de mensagens, focus-visible nos botões, fechamento por
Esc.
Offline (PWA) — banner fino na parte superior sinaliza quando o
navegador perde conexão; nessas condições, o chip do WhatsApp continua funcional.
Contrato com o backend
Quando o backend de IA estiver disponível, basta preencher
SUPPORT_CONFIG.apiEndpoint no dashboard. Payload esperado:
POST /api/support/chat
{
"sessionId": "uuid-v4",
"messages": [
{ "role": "user", "content": "Como emito uma NF-e?" },
{ "role": "assistant", "content": "..." }
],
"question": "texto atual do usuário"
}
// resposta
{ "answer": "texto final da IA", "sources": ["url-do-artigo-1"] }
💡
A IA não substitui o humano: ao detectar intenção de falar com atendente,
cobrança, cancelamento ou bug crítico, a resposta deve recomendar ativamente o
WhatsApp ou a abertura de ticket. Escalação é sempre
opção visível do usuário.
Horário de atendimento humano
🕐
Segunda a sexta · Horário de Brasília
Atendimento presencial pela equipe (WhatsApp e tickets) das 8h30 às
18h, em horário de São Paulo
(America/Sao_Paulo), em dias úteis
(segunda a sexta-feira, exceto feriados nacionais divulgados no site ou no sistema).
Fora desse período, mensagens e novos tickets continuam registrados; a resposta ocorre
no próximo dia útil, na ordem de chegada e prioridade.
🌍
Clientes em outros fusos veem o horário convertido na interface quando aplicável; a
referência operacional da equipe é sempre BRT/SP.
Canais para o cliente
💬
Chat no sistema (IA + humano)
Primeiro ponto de contato dentro do painel, 24/7. IA responde dúvidas comuns com base
na documentação; em um clique, o cliente salta para WhatsApp humano ou para a
Central de Artigos.
📱
WhatsApp MoneySystem
Número oficial divulgado no site institucional, e-mail de boas-vindas e área logada.
Indicado para dúvidas rápidas, envio de prints e conversa em tempo quase real
dentro do expediente.
🎫
Tickets no sistema
Abertura pelo painel (usuário logado): assunto, descrição, prioridade sugerida e
anexos. Ideal para clientes internacionais, demandas que precisam
de rastreio, histórico por conta e resposta assíncrona sem depender de estar no
celular.
Planejamento do fluxo (funcionário)
A equipe opera a partir de uma visão unificada: tudo que entra pelo WhatsApp ou por ticket
vira um atendimento registrado, para métricas, qualidade e continuidade.
1
Triagem e registro
No início do turno (8h30), o atendente abre a fila de tickets
abertos, a caixa de conversas WhatsApp atribuídas
ou na fila geral e as escalações do chat com IA (quando o
cliente pediu humano ou a IA marcou a conversa como sensível). Cada contato
novo no WhatsApp deve ser vinculado à conta do cliente (e-mail
ou CNPJ/ID) assim que identificado.
2
Classificar e responder
Categorizar: comercial, faturamento, bug, dúvida de uso, integração/API. Resposta
objetiva no mesmo canal (WhatsApp ou ticket). Se a demanda for longa ou exigir
análise técnica, criar ou mover para ticket e enviar o link ou
número do protocolo no WhatsApp para o cliente acompanhar.
3
Internacional e idioma
Priorizar ticket quando o cliente estiver em fuso muito
diferente ou preferir ES/EN: o histórico fica no sistema e as notificações por
e-mail reduzem perda de contexto. Mensagens podem ser respondidas no idioma da
conta, quando a equipe tiver cobertura.
4
Encerramento e escalação
Marcar ticket como resolvido após confirmação ou período de inatividade definido
em política interna. Escalação para N2/N3 (produto ou engenharia) dentro do
ticket, mantendo o cliente informado no mesmo protocolo.
Tickets — comportamento esperado no sistema
Abertura — Menu Ajuda / Suporte ou ícone dedicado; campos mínimos:
categoria, título, descrição; anexos opcionais (prints, XML, logs autorizados).
Notificações — E-mail (e opcionalmente push) a cada resposta da equipe,
para quem não está no fuso de SP.
SLA interno — Primeira resposta em horário comercial conforme fila;
urgências (ex.: indisponibilidade do sistema) com fila prioritária.
Auditoria — Histórico por conta e por usuário que abriu o chamado,
visível para administradores da assinatura quando aplicável.
WhatsApp — boas práticas operacionais
Usar modelos aprovados para mensagens repetitivas (horário, link da
documentação, como abrir ticket).
Não tratar dados sensíveis sem necessidade; direcionar para área logada quando possível.
Antes das 18h, avisar se a conversa ficará pendente até o próximo dia
útil.
Separar tecnicamente, quando possível, o número de suporte das
automações de cobrança descritas em E-mails e Notificações.
🚀 Lançamento
Estratégia de Lançamento
Plano de lançamento com avisos de instabilidade, banner de novidades
e vídeo de apresentação.
Pré-Lançamento
🔧
Na semana do lançamento, será exibido um aviso no sistema: "Em [datas], poderá
haver instabilidades no sistema devido à atualização para a nova versão."
Banner informativo no topo do Dashboard
E-mail para todos os usuários com cronograma
Página de status do sistema atualizada em tempo real
Pós-Lançamento (Primeiros 7 dias)
🖥️
Banner "Cara Nova"
Nos primeiros 7 dias após o lançamento, o Dashboard exibirá uma seção
especial anunciando que o sistema está de cara nova, com um
vídeo profissional apresentando as novidades e melhorias da versão
2.0.
🎉
Comemoração
Todos que participaram do desenvolvimento e convidados, em um lugar especial.
Estratégia GTM
Onboarding guiado — Tutorial interativo para novos recursos
Base de conhecimento — Artigos de ajuda atualizados
Suporte reforçado — Equipe ampliada nos primeiros 30 dias
Feedback — Formulário de feedback na Home durante 15 dias
Rollback — Plano de contingência caso problemas críticos surjam