| .. | ||
| docs | ||
| prisma | ||
| src | ||
| .env.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| nest-cli.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
billing-finance-core
Backend financeiro, billing, fiscal e CRM para uma plataforma SaaS multi-tenant.
Visão geral
- Multi-tenant desde o início com isolamento por
tenantId. - Sem autenticação própria: confia no
identity-gatewayvia JWT interno. - Core financeiro: planos, assinaturas, invoices, pagamentos, conciliação.
- Fiscal (base): estrutura para emissão de NFS-e.
- CRM: empresas, contatos e pipeline simples de negócios.
Stack
- Node.js + TypeScript
- NestJS
- PostgreSQL + Prisma
- Docker
Integração com identity-gateway
- Todas as rotas são protegidas por JWT interno.
- O token deve conter:
tenantIduserIdroles
- O guard valida
issuere assina comJWT_PUBLIC_KEYouJWT_SECRET.
Modelo de dados (resumo)
- Tenant: empresa cliente
- Plan: preço, ciclo e limites
- Subscription: tenant + plano
- Invoice: contas a receber
- Payment: pagamentos com gateway
- FiscalDocument: base para NFS-e
- CRM: companies, contacts, deals
Fluxo de cobrança
- Criar plano
- Criar assinatura
- Gerar invoice
- Criar pagamento via gateway
- Receber webhook e conciliar
Endpoints mínimos
POST /tenants
GET /tenants
POST /plans
GET /plans
POST /subscriptions
GET /subscriptions
POST /invoices
GET /invoices
POST /payments/:invoiceId
POST /webhooks/:gateway
GET /crm/companies
POST /crm/deals
GET /health
Configuração local
cp .env.example .env
npm install
npm run prisma:generate
npm run prisma:migrate
npm run start:dev
Docker
docker compose up --build
Estrutura
src/core: guard e contexto do tenantsrc/modules: domínios de negócioprisma/: schema e migrationsdocs/: documentação técnica