Guia de Desenvolvimento de Pagamentos (Vanguru)

1. Visão Geral

Este documento define o guideline para o desenvolvimento da funcionalidade de pagamento no aplicativo Vanguru, integrando: - Backend API: Nossa API de pagamentos (conforme api/payments.md) - Asaas Platform: Plataforma de pagamento e split de valores - Regras de Negócio: Requisitos específicos do projeto


2. Arquitetura da Solução

2.1. Fluxo Geral

┌─────────────────┐
│   Flutter App   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Backend API    │ ◄──────► Asaas API
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│    Firestore    │
└─────────────────┘

2.2. Entidades Principais

2.2.1. Payment (Firestore Collection: payments)

Entidade separada do Passageiro para garantir independência e escalabilidade.

enum PaymentStatus {
  pending,
  confirmed,
  received,
  overdue,
  refunded,
  canceled,
}

enum PaymentBillingType {
  creditCard,
  boleto,
  pix,
  debitCard,
}

2.2.2. PaymentProfile (Subcoleção de Passenger: passengers/{id}/paymentProfile)

Dados de perfil de pagamento do usuário, separados para segurança.


3. Integração com Backend API

3.1. Endpoints Principais

  • POST /v1/customer: Criar cliente no Asaas.
  • POST /v1/payment: Criar novo pagamento.
  • POST /v1/subaccount: Criar subconta Asaas para split de pagamentos.
  • GET /v1/document/pending: Verificar documentos da subconta.

4. Integração com Asaas

4.1. Fluxo de Split

  • Cada usuário (Motorista/Condutor) precisa de uma subconta Asaas.
  • A subconta permite o split automático dos valores recebidos.
  • É necessário o envio de documentos para verificação da subconta para liberação de saques.

5. Implementação Flutter

5.1. Estrutura de Pastas

O projeto segue a Clean Architecture com a funcionalidade de pagamentos isolada em lib/features/payments/.

5.2. Mock vs Real

Sempre use o PaymentApiServiceMock durante o desenvolvimento para evitar consumo de créditos/APIs reais desnecessariamente.


6. Roadmap de Implementação

  • Fase 1: Estrutura Base (Mock) - Modelos e Repositories.
  • Fase 2: Perfil de Pagamento - Cadastro e Opt-in.
  • Fase 3: Documentos - Upload e Verificação.
  • Fase 4: Gestão de Pagamentos - Listagem e Detalhes.
  • Fase 5: Integração Real Sandsbox/Prod.