Plataforma web para gestão de múltiplos bots Telegram de pagamento com integração DEPIX na rede Liquid.
O MultBot permite criar e gerenciar bots de Telegram para logistas que utilizam DEPIX como forma de recebimento. Cada bot é independente e possui seu próprio endereço Liquid para recebimento de pagamentos.
sequenceDiagram
participant C as Cliente Final
participant B as Bot Telegram
participant D as Depix API
participant L as Logista
C->>B: Solicita pagamento
B->>C: Exibe QR Code PIX
C->>D: Paga via PIX
D->>D: Converte PIX → DEPIX
D->>L: Credita na carteira Liquid (Configurado pelo Frontend admin)
D->>D: Retém taxa plataforma (Configurado pelo Frontend admin)
| Tecnologia | Versão | Descrição |
|---|---|---|
| React | 18.3.1 | Framework UI |
| TypeScript | 5.5.3 | Linguagem |
| Vite | 5.4.21 | Build tool |
| Tailwind CSS | 3.4.17 | Styling |
| React Router | 6.30.3 | Roteamento |
| Framer Motion | 12.23.11 | Animações |
| Axios | 1.13.4 | HTTP Client |
| Tecnologia | Versão | Descrição |
|---|---|---|
| Node.js | 20 LTS | Runtime |
| Fastify | 5.x | Framework HTTP de alta performance |
| TypeScript | 5.x | Linguagem com tipagem estática |
| Prisma | 6.x | ORM type-safe com migrations |
| SQLite | 3 | Banco de dados (arquivo único) |
| JWT | jsonwebtoken | Autenticação stateless |
| Zod | 3.x | Validação de schemas |
| bcryptjs | 3.x | Hash de senhas |
| node-telegram-bot-api | 0.66.0 | SDK para Telegram Bot API |
| @fastify/cors | 10.x | CORS middleware |
| @fastify/swagger | 9.x | Documentação OpenAPI |
| @scalar/fastify-api-reference | 1.x | UI da documentação API |
| tsx | 4.x | Dev server TypeScript |
packages/backend/
├── prisma/
│ ├── schema.prisma # Models do banco
│ ├── migrations/ # Histórico de migrations
│ ├── seed.ts # Seed de dados iniciais
│ └── dev.db # SQLite file
├── src/
│ ├── index.ts # Entry point
│ ├── app.ts # Instância Fastify configurada
│ ├── config/
│ │ └── env.ts # Variáveis de ambiente tipadas
│ ├── modules/
│ │ ├── auth/ # Autenticação JWT
│ │ ├── bots/ # CRUD de bots
│ │ ├── transactions/ # Gerenciamento transações
│ │ └── dashboard/ # KPIs e estatísticas
│ ├── telegram/
│ │ ├── bot.ts # Factory de bots
│ │ ├── handlers/ # Command handlers
│ │ └── keyboards/ # Reply keyboards (preços)
│ └── lib/
│ ├── prisma.ts # Prisma client singleton
│ └── jwt.ts # Helpers JWT
├── package.json
├── tsconfig.json
└── .env
model Admin {
id String @id @default(cuid())
email String @unique
password String // bcrypt hash
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Bot {
id String @id @default(cuid())
name String
telegramToken String @unique
telegramUsername String?
ownerName String
depixAddress String // Endereço Liquid
splitRate Float @default(0.10)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
transactions Transaction[]
}
model Transaction {
id String @id @default(cuid())
botId String
amountBrl Int // Centavos
depixAmount Int // Satoshis
merchantSplit Int
adminSplit Int
pixKey String?
customerName String?
status String @default("processing")
createdAt DateTime @default(now())
completedAt DateTime?
bot Bot @relation(fields: [botId], references: [id])
}multbot/
├── Docs/ # Documentação e specs
├── packages/
│ ├── frontend/ # App React (Admin Panel)
│ ├── backend/ # API Node.js + Fastify + Prisma
├── package.json # Workspace Root
└── pnpm-workspace.yaml
# Instalar dependências e preparar banco
pnpm install
cd packages/backend
pnpm prisma db push
pnpm prisma db seed
cd ../..# Iniciar Frontend + Backend simultaneamente
pnpm dev- Frontend:
http://localhost:5173 - Backend API:
http://localhost:3000 - Documentação API:
http://localhost:3000/docs
| Rota | Descrição |
|---|---|
/configuracoes |
Configurações globais e integrações |
/bots/:id |
Detalhes específicos de um bot |
/transacoes/:id |
Detalhes financeiros de uma transação |
Consulte a documentação completa em /docs ou Docs/MultBot-OpenAPI-3.0.yaml.
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /api/settings |
Obter configurações |
| PUT | /api/settings |
Atualizar configurações |
| POST | /api/settings/test-depix |
Testar conexão |
Endpoints CRUD completos disponíveis.
interface Bot {
id: string;
name: string;
telegramToken: string;
telegramUsername: string;
ownerName: string; // Logista
depixAddress: string; // Endereço Liquid
splitRate: number; // Taxa (padrão: 10%)
status: 'active' | 'inactive';
}interface Transaction {
id: string;
botId: string;
amountBrl: number; // Centavos
depixAmount: number; // Satoshis
merchantSplit: number; // 90%
adminSplit: number; // 10%
status: 'processing' | 'completed' | 'failed';
}- Logista acessa seu bot no Telegram
- Usa ReplyKeyboardMarkup para definir valor (R$ 50, 150, 200, 300 ou customizado)
- Bot gera QR Code PIX + Chave Copia/Cola
- Cliente final paga o PIX
- Depix processa e credita na carteira Liquid do logista
VITE_API_URL=http://localhost:3000/apiPORT=3000
JWT_SECRET=sua-chave-secreta
DEPIX_API_URL=https://api.depix.com
DEPIX_API_KEY=sua-api-keypnpm dev # Inicia todos os packages em dev
pnpm build # Build de produção
pnpm test # Executa testes
pnpm lint # LintingMIT © 2026 MultBot