diff --git a/backend/newwhats/index.js b/backend/newwhats/index.js
index f8961bd..9eb197c 100644
--- a/backend/newwhats/index.js
+++ b/backend/newwhats/index.js
@@ -6,11 +6,23 @@
// registerNewwhats(app, pool, { superadminGuard })
import { createRoutes } from './routes.js'
import { createWebhookReceiver } from './webhook-receiver.js'
-import { createRestProxy } from './proxy.js'
+import { createRestProxy, provisionNewwhatsAccount } from './proxy.js'
import { getConfig, isConfigured, loadConfigFromDb, saveConfigToDb } from './config.js'
+import { Readable } from 'node:stream'
export { syncKnowledge, buildKnowledgeText } from './sync-knowledge.js'
export { createWsTunnel } from './proxy.js'
+
+// Provisiona (eager) a conta do email no motor NewWhats, best-effort e idempotente.
+// Chamado no cadastro de usuário/clínica do scoreodonto: "assim que a conta nasce
+// aqui, já nasce lá — pronta esperando quando a pessoa for mexer com WhatsApp".
+export async function provisionNewwhatsAccountEager(pool, email) {
+ try {
+ const cfg = getConfig()
+ if (!cfg.motorUrl || !cfg.integrationKey || !email) return false
+ return await provisionNewwhatsAccount(pool, cfg, email)
+ } catch { return false }
+}
import { createAgendaBridge } from './agenda-bridge.js'
// Valida uma chave contra o motor. Envia um email-sonda (a chave mestra exige
@@ -36,6 +48,33 @@ export function registerNewwhats(app, pool, opts = {}) {
// Auth própria por segredo compartilhado (x-nw-agenda-secret). Server-to-server.
app.use('/api/nw/agenda', createAgendaBridge(pool));
+ // ── Proxy de MÍDIA: /api/nw/media/* → motor /media/* ───────────────────────
+ // A mídia do WhatsApp vive no motor (servida do Wasabi/local, pública). O
+ // satélite a repassa mantendo same-origin no /