Sobre este projeto
it-programming / web-development
Aberto
Estamos buscando um desenvolvedor backend para criar um Mínimo Produto Viável (mvp) robusto e estável, focado na integração com a api oficial do whatsapp business (waba). O objetivo principal é permitir que cada loja conecte sua conta WABA, gerencie o envio e recebimento de mensagens, visualize conversas e crie campanhas. Tudo dentro da nossa plataforma, sem precisar sair dela.
O projeto inclui as seguintes funcionalidades essenciais:
1. Objetivo do MVP
Desenvolver um backend completo, funcional e estável em produção para que qualquer loja/empresa consiga:
1. Criar sua conta na plataforma
2. Conectar sua Conta Oficial do WhatsApp (WABA) usando Embedded Signup, pela próprioa plataforma
3. Enviar mensagens oficiais (templates aprovados)
4. Enviar mensagens comuns dentro da janela de 24 horas
5. Receber mensagens via Webhook
6. Visualizar conversas no painel (Inbox básico)
7. Criar e enviar campanhas simples
8. Exibir cálculo estimado do custo das campanhas em tempo real
9. Gerenciar templates aprovados
Este MVP é exclusivamente para o modo “Sou dono de uma loja – Conectar minha empresa ao WhatsApp Oficial”.
O módulo Agência/Multiempresa será contratado em etapa posterior, como extensão desse projeto ( NÃO faz parte deste escopo).
2. Escopo do MVP (Entrega Obrigatória)
2.1 Onboarding – Embedded Signup (Conectar WhatsApp Oficial)
O backend deve:
* Iniciar o fluxo OAuth com Meta (Embedded Signup)
* Receber o code de retorno
* Trocar o code por access_token
* Obter Business id, waba id, phone number id e display name
* salvar tokens e ids de forma criptografada
* registrar automaticamente o webhook via graph api
* validar o webhook por challenge
* retornar ao frontend os dados da conta conectada (status, wabaid, phoneid, número conectado etc.)
3. Envio de Mensagens
3.1 Mensagens comuns (janela de 24 horas)
Endpoint: POST /messages/send
Regras:
* Chamar o endpoint oficial da Meta /{phoneId}/messages
* Registrar no banco status, messageId e timestamps
**3.2 Mensagens oficiais (templates)**
Endpoint: POST /messages/template
Regras:
* Backend deve buscar dados do template
* Enviar via WhatsApp Cloud API
* Registrar evento no banco
4. Recebimento de Mensagens – Webhook
Endpoint: POST /webhooks/meta
O backend deve:
* Validar assinatura x-hub-signature-256
* Salvar o evento bruto
* Processar o evento em fila (BullMQ)
* Registrar mensagens recebidas
* Registrar status (sent, delivered, read)
* Criar ou atualizar conversas no banco
5. Inbox (Simples e funcional)
GET /inbox/conversations
Retorna lista de conversas com número do cliente, último evento e timestamp.
GET /inbox/conversations/{id}
Retorna toda a thread de mensagens.
6. Gestão de Templates
O backend deve permitir:
* Listar templates existentes
* Enviar templates para aprovação
* Atualizar status (draft, approved, rejected)
* Registrar histórico
Endpoint principal: POST /templates/submit
7. Campanhas (MVP simples)
7.1 Criar campanha
Endpoint: POST /campaigns
7.2 Envio da campanha
Responsabilidade do worker:
* Enviar uma mensagem por vez
* Velocidade padrão de 10 msg/s
* Registrar status da campanha
8. Cálculo de Custo da Campanha (Obrigatório)
Endpoint: GET /campaigns/cost?templateId=X&contactCount=Y
Regras:
* Consultar preços da Meta (cache por 24h)
* Converter usd → brl (cache por 6h)
9. Requisitos Técnicos Obrigatórios
* NestJS
* Node 18+
* MySQL (Prisma ou TypeORM)
* Redis
* BullMQ para filas
* Docker
* JWT para autenticação
* Tokens criptografados
* Rate limit básico (mínimo 10 msg/s por número)
10. Critérios de Aceitação do MVP
Conexão WABA
* Embedded Signup funcionando ponta a ponta
* Retorno com wabaId, phoneId, display number
* Webhook registrado e validado
* Loja consegue enviar mensagens reais
Mensagens
* Envia mensagem comum
* Envia mensagem via template
* Recebe mensagens com sucesso
* Recebe status (sent, delivered, read)
Inbox
* Lista conversas com ordenação correta
* Thread completa disponível e estável
Templates
* CRUD básico funcionando
* Envio para aprovação
* Atualização automática de status
Campanhas
* Criação de campanha
* Worker enviando mensagens corretamente
* Histórico e status funcionando
Cálculo de custo
* Funcionando com preços reais da Meta
* Atualização em tempo real no frontend
Segurança
* Validação de assinatura x-hub-signature
* Tokens criptografados
* Envio respeitando rate limit mínimo
Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado
Prazo de Entrega: Não estabelecido
Habilidades necessárias