Middleware multi-tenant para la WhatsApp Cloud API de Meta · .NET 10
Tenants con sus cuentas de WhatsApp (WABA), aislados por API key.
Texto, plantillas y media (imagen, audio, video, doc, sticker).
Mensajes y estados; el media entrante se descarga al almacenamiento.
Flujos con menús, bot de OpenAI y colas de atención con agentes.
Usuarios por tenant con contraseña hasheada y login JWT (agentes).
Totales, desglose por estado, por cuenta y serie temporal.
Objetos en Azure Blob, AWS S3 o local; proveedor primario configurable.
Imagen y Docker Compose con SQLite persistido en volumen.
| Método | Ruta | Descripción | Auth |
|---|---|---|---|
| POST | /api/admin/tenants | Crear tenant (siembra roles) | X-Admin-Key |
| POST | /api/admin/tenants/{id}/accounts | Registrar cuenta (WABA) | X-Admin-Key |
| POST | /api/admin/tenants/{id}/roles | Crear rol | X-Admin-Key |
| POST | /api/admin/tenants/{id}/users | Crear usuario | X-Admin-Key |
| POST | /api/admin/tenants/{id}/apikeys | Crear/revocar API keys | X-Admin-Key |
| POST | /api/webhook-subscriptions | Suscribir webhook saliente | X-Api-Key |
| POST | /api/auth/login | Login → JWT | pública |
| GET | /api/auth/me | Identidad del usuario | Bearer JWT |
| POST | /api/accounts/{id}/messages/text | Enviar texto | X-Api-Key |
| POST | /api/accounts/{id}/messages/template | Enviar plantilla | X-Api-Key |
| POST | /api/accounts/{id}/messages/media | Enviar media (link/upload/storage) | X-Api-Key |
| POST | /api/accounts/{id}/flows | Flujos: menús, IA, colas | X-Api-Key |
| POST | /api/queues | Colas de atención + agentes | X-Api-Key |
| GET | /api/agent/entries | Bandeja del agente (claim/reply/close) | Bearer JWT |
| GET | /api/statistics | Estadísticas del tenant | X-Api-Key |
| POST | /api/files | Subir/descargar/borrar objetos | X-Api-Key |
| GET | /api/webhooks/whatsapp/{id} | Verificación / recepción (Meta) | verify · firma |