Sistema de Pagamentos - Vanguru
Visão Geral
O sistema de pagamentos do Vanguru permite o controle financeiro completo, desde a geração de cobranças até o recebimento e conciliação, suportando tanto gestão manual (Free) quanto automação completa (Premium).
Diferença Fundamental: Free vs Premium
FREE = MANUAL
- ✋ Geração de cobranças: Manual (dono cria quando quiser)
- ✋ Registro de pagamento: Manual (dono marca como pago após receber)
- ✋ Compartilhamento: Manual (dono envia dados via WhatsApp/email)
- ✋ Notificações: Manual (dono avisa o responsável)
- ✋ Comprovantes: Upload de foto (opcional)
PREMIUM = AUTOMÁTICO
- 🤖 Geração de cobranças: Automático (Asaas gera 40 dias antes)
- 🤖 Registro de pagamento: Automático (webhook atualiza status)
- 🤖 Compartilhamento: Automático (boleto/PIX enviado por email/SMS)
- 🤖 Notificações: Automático (Asaas envia lembretes)
- 🤖 Comprovantes: Gerado pelo Asaas (boleto, recibo)
Entidade Payment
Estrutura de Dados
class Payment {
// Identificação
final String? id;
final String contractId;
final String passengerId;
// Valores
final double value;
final DateTime dueDate;
final DateTime? paidDate;
// Status
final PaymentStatus status;
// Tier-specific
final String? asaasPaymentId; // Premium apenas
final ManualPaymentMethod? manualMethod; // Free apenas
final String? proofImageUrl; // Free apenas
// Metadados
final DateTime createdAt;
final DateTime? updatedAt;
}
Enums
PaymentStatus
enum PaymentStatus {
pending, // Aguardando pagamento
confirmed, // Pagamento confirmado (aguardando compensação)
received, // Pagamento recebido e compensado
overdue, // Vencido
refunded, // Estornado
canceled, // Cancelado
}
ManualPaymentMethod (Free)
enum ManualPaymentMethod {
cash, // Dinheiro
bankTransfer, // Transferência bancária
pix, // PIX manual
check, // Cheque
other, // Outro
}
Funcionalidades por Tier
Free Tier
Geração Manual de Cobranças
1. Sistema gera cobranças baseado no contrato:
- Frequência (mensal, bimestral, etc.)
- Dia de vencimento
- Valor definido
2. Cobrança criada no Firestore (status: pending)
3. Notificação in-app para o dono do negócio
4. Dono pode:
- Copiar dados para envio manual
- Enviar lembrete ao responsável
- Aguardar pagamento
Registro Manual de Pagamento
1. Responsável paga (dinheiro, PIX manual, etc.)
2. Dono do negócio marca como pago:
- Seleciona método de pagamento
- Opcionalmente anexa comprovante (foto)
- Confirma pagamento
3. Sistema atualiza:
- Payment.status = received
- Payment.paidDate = now
- Payment.manualMethod = [método escolhido]
- Contract.paidInstallments++
Comprovantes
- Upload de foto do comprovante
- Armazenamento no Firebase Storage
- Visualização na tela de detalhes
- Opcional (não obrigatório)
Premium Tier
Geração Automática (Asaas)
1. Asaas Subscription gera cobrança automaticamente
- 40 dias antes do vencimento
- Baseado no ciclo definido (monthly, etc.)
2. Webhook PAYMENT_CREATED recebido
3. Sistema:
- Cria Payment no Firestore
- Vincula asaasPaymentId
- Status = pending
4. Asaas envia boleto/PIX por email ao responsável
Atualização Automática via Webhooks
PAYMENT_RECEIVED:
1. Webhook recebido do Asaas
2. Sistema busca Payment por asaasPaymentId
3. Atualiza:
- status = received
- paidDate = webhook.paymentDate
- Contract.paidInstallments++
4. Notificação in-app para dono do negócio
PAYMENT_OVERDUE:
1. Webhook recebido (pagamento vencido)
2. Sistema atualiza status = overdue
3. Asaas envia lembrete automático ao responsável
4. Notificação in-app para dono do negócio
Formas de Pagamento
| Forma | Taxa Asaas | Prazo Compensação |
|---|---|---|
| Boleto | R$ 3,49 | D+1 útil |
| PIX | 0,99% | Imediato |
| Cartão Crédito | 4,99% | D+30 |
| Cartão Débito | 2,99% | D+1 útil |
Observação: Taxas são repassadas ao responsável (passageiro).
Fluxos de Uso
Free: Criar e Registrar Pagamento
1. Sistema gera cobrança automaticamente (job local)
2. Dono visualiza cobrança pendente no dashboard
3. Dono envia dados ao responsável (WhatsApp manual):
- Valor: R$ 450,00
- Vencimento: 10/02/2026
- Dados bancários ou PIX
4. Responsável paga
5. Dono recebe comprovante (foto via WhatsApp)
6. Dono marca pagamento como recebido no app:
- Seleciona método: PIX
- Anexa foto do comprovante
- Confirma
7. Sistema atualiza contrato e dashboard
Premium: Fluxo Automático
1. Asaas gera cobrança (40 dias antes)
2. Webhook PAYMENT_CREATED → Sistema cria Payment
3. Asaas envia boleto/PIX por email ao responsável
4. Responsável paga via boleto/PIX/cartão
5. Webhook PAYMENT_RECEIVED → Sistema atualiza Payment
6. Dono visualiza pagamento recebido no dashboard
7. Asaas faz split de pagamento (se configurado)
8. Valor cai na conta do dono (D+1 ou D+30)
Dashboard Financeiro
Visão Geral
Métricas Principais: - Receita do mês (recebida) - Receita prevista (pendente) - Inadimplência (vencidos) - Taxa de recebimento
Gráficos: - Receita mensal (últimos 12 meses) - Status de pagamentos (pizza) - Inadimplência por passageiro
Listagem de Pagamentos
Filtros: - Status (Todos, Pendente, Recebido, Vencido) - Período (Mês atual, Últimos 3 meses, Personalizado) - Passageiro - Contrato
Ordenação: - Data de vencimento - Data de pagamento - Valor - Status
Detalhes do Pagamento
Informações Exibidas: - Passageiro e responsável - Contrato vinculado - Valor e vencimento - Status e data de pagamento - Método de pagamento - Comprovante (se houver) - Histórico de alterações
Relatórios
Relatórios Básicos (Free + Premium)
Inadimplentes: - Lista de passageiros com pagamentos vencidos - Valor total em atraso - Dias de atraso - Exportação CSV
Pagamentos do Mês: - Lista de todos os pagamentos do mês - Agrupado por status - Total recebido vs previsto
Relatórios Avançados (Premium)
Receita Mensal: - Comparativo mês a mês - Gráfico de evolução - Projeção para próximos meses
Performance por Passageiro: - Histórico de pagamentos - Taxa de pontualidade - Valor total pago
Exportação: - CSV, PDF, Excel - Período customizável - Filtros avançados
Integração com Asaas (Premium)
Configuração Inicial
Requisitos: - Conta Asaas (PF ou PJ) - Documentos enviados e aprovados - API Key gerada
Processo: 1. Usuário completa perfil de pagamento 2. Envia documentos (RG, selfie, comprovante) 3. Aguarda aprovação (1-3 dias úteis) 4. Sistema armazena API Key (criptografada) 5. Cria Customer no Asaas para cada responsável
Webhooks
Eventos Processados:
- PAYMENT_CREATED: Cobrança gerada
- PAYMENT_RECEIVED: Pagamento recebido
- PAYMENT_CONFIRMED: Pagamento confirmado
- PAYMENT_OVERDUE: Pagamento vencido
- PAYMENT_REFUNDED: Pagamento estornado
- SUBSCRIPTION_UPDATED: Assinatura atualizada
- SUBSCRIPTION_DELETED: Assinatura cancelada
Segurança: - Validação de assinatura do webhook - Processamento idempotente - Retry automático em caso de falha
Split de Pagamento (Futuro)
Conceito: - Divisão automática do valor recebido - Percentual ou valor fixo para Vanguru - Repasse automático para conta do dono
Exemplo: - Pagamento: R$ 450,00 - Split Vanguru: 2% = R$ 9,00 - Repasse Dono: R$ 441,00
Migração Free → Premium
Processo
1. Usuário decide migrar para premium
2. Completa perfil de pagamento
3. Envia documentos ao Asaas
4. Aguarda aprovação
5. Sistema oferece migração de contratos:
- Contratos ativos migrados
- Pagamentos futuros via Asaas
- Histórico manual preservado
6. Próximas cobranças são automáticas
Dados Preservados
- ✅ Histórico de pagamentos manuais
- ✅ Comprovantes anexados
- ✅ Observações e notas
- ✅ Datas e métodos de pagamento
Segurança
Dados Sensíveis
Armazenamento: - API Key Asaas: Criptografada (AES-256) - Dados bancários: Não armazenados (Asaas cuida) - Comprovantes: Firebase Storage (acesso restrito)
Acesso: - Security Rules granulares - Apenas dono do negócio acessa - Logs de auditoria
Compliance
- ✅ PCI DSS: Asaas é certificado
- ✅ LGPD: Dados mínimos necessários
- ✅ Auditoria: Histórico completo de operações
Melhorias Futuras
Roadmap
Q2 2026: - [ ] Reconciliação bancária automática - [ ] Integração com bancos (Open Banking) - [ ] Relatórios fiscais (IRPF, CNPJ)
Q3 2026: - [ ] Split de pagamento - [ ] Programa de cashback - [ ] Parcelamento de mensalidades
Q4 2026: - [ ] Múltiplas contas bancárias - [ ] Antecipação de recebíveis - [ ] API de integração contábil
Métricas de Sucesso
- Taxa de Recebimento: > 95%
- Inadimplência: < 5%
- Tempo de Reconciliação: < 1 dia (Premium)
- Satisfação: NPS > 8
- Conversão Free → Premium: 20%+
Documento: Sistema de Pagamentos
Versão: 1.0
Data: Janeiro 2026