Saltar a contenido

MintOffice

MintOffice es el portal de Brand Partner de mintbot.ai. Te permite revender mintbot bajo tu propia marca: tu dominio, tu bot, tu lista de clientes — mientras mintbot se encarga del despliegue, los rieles de facturación y la infraestructura por agente bajo el capó.

El portal de partners en vivo está en mint.mintbot.ai.

Esta guía te lleva desde "acabo de oír hablar de MintOffice" hasta "mi primer agente de marca blanca está en vivo en mi propio dominio". Las partes técnicas (registros DNS, repositorio de GitHub, token del bot) las maneja mejor un agente de mintbot en tu nombre — consulta Deja que un agente te configure antes de empezar.

¿Construyes la integración tú mismo?

Para el lado orientado al desarrollador — qué repositorios te pertenecen, cómo se ejecuta el flujo de despliegue de principio a fin, y cómo encajan el agent customization repo + la tienda — consulta MintOffice — Técnico.


Qué obtienes

  • Revende cada paquete de mintbot (Trial, Starter, Pro, Max) bajo tu propio dominio — tus clientes ven agent1.yourbrand.com, no *.mintbot.ai.
  • Usa tu propio bot de Telegram (@yourbrand_bot) para el tráfico de chat, o toma prestado el bot de mintbot mientras aún estás probando.
  • Elige los precios de cara al cliente y embólsate la diferencia entre lo que les cobras y lo que mintbot te cobra a ti (el piso mayorista de MintOffice).
  • Una Brand Partner API para la creación programática de pedidos, el estado del ciclo de vida y webhooks de vuelta a tus propios sistemas.
  • Un panel que muestra los pedidos activos de los clientes, la salud del enlace del bot, los precios, los pagos y la entrega de webhooks.

Precios — tarifa de configuración de Brand Partner

Registrarse para una cuenta de portal de prueba gratuita es, bueno, gratis — pero el registro de Brand Partner es el único pago que la convierte en una cuenta real de brand partner. Pagas la tarifa de configuración única en reception.mintbot.ai/mintoffice (o reception.mintbot.dev/mintoffice para el entorno de dev/pruebas) y el mismo pago desbloquea ambos portales:

Nivel Precio Qué incluye
Prueba gratuita (por defecto para cada nuevo partner) €0 10 deploys DEV desechables para probar tu portal + plantilla
Brand Partner — promo de lanzamiento €49 único + €10/mes 20 deploys DEV (€1 de crédito de agente cada uno), primer mes de gestión de cuenta incluido, estatus de Brand Partner en mint.mintbot.ai + mint.mintbot.dev, guía de configuración exhaustiva (un agente puede llevar todo el asistente por ti)
Brand Partner — estándar €99 único + €10/mes Igual que el de lanzamiento — sin la promo

El registro está en beta

El checkout de Brand Partner está actualmente abierto en el entorno de dev/pruebas (reception.mintbot.dev/mintoffice). El checkout en vivo de .ai abre en breve.

Qué cubre la tarifa de configuración:

  • 20 deploys DEV, cada uno un VPS de pruebas desechable de 24 horas con €1 de crédito de agente precargado — suficiente para ejercitar tu portal y tu plantilla de personalización de principio a fin.
  • Tu primer mes de gestión de cuenta (la tarifa de €10/mes de abajo) — así el primer mes ya está pagado.
  • Estatus de Brand Partner en mint.mintbot.ai y mint.mintbot.dev.

La tarifa de gestión de cuenta de €10/mes:

A partir del segundo mes, la cuenta de Brand Partner conlleva una tarifa de gestión de cuenta de €10/mes. La forma más cómoda de pagarla es una suscripción de Stripe o PayPal (recomendado — se renueva sola); la tarifa de configuración única también puede pagarse con tarjeta o cripto (BTC, XMR y muchas monedas vía CCPayment).

Si la tarifa mensual caduca, tu cuenta de MintOffice pasa a pausada: no puedes desplegar nuevos agentes, pero tus agentes de clientes existentes siguen funcionando. Te contactaremos antes de que se detenga nada para que puedas reanudar.

Qué pasa después de pagar:

  1. Reception procesa el pago de configuración en reception.mintbot.ai/mintoffice (o .dev si estás en el entorno de pruebas) — tarjeta / Apple Pay / Google Pay, o cripto.
  2. Reception envía de inmediato una concesión firmada a ambos mint.mintbot.ai y mint.mintbot.dev, cambiando tu cuenta a estatus de Brand Partner en ambos portales.
  3. Recibes un email de bienvenida de pigeon@mintbot.ai (o pigeon@mintbot.dev si compraste en el entorno de pruebas) que contiene ambos enlaces de inicio de sesión y un puntero a esta guía.
  4. Inicia sesión en el portal con el que quieras empezar. Si el envío entre entornos por alguna razón no llegó a alguno de los portales, el primer inicio de sesión en ese portal le pregunta a reception "¿pagó este email?" y aplica la concesión al instante.

La promo de lanzamiento está activada por defecto mientras desplegamos MintOffice; está controlada por el flag de servidor MINTOFFICE_SETUP_PROMO, así que el precio que ves en el checkout es el precio que pagarás.

Reembolsos

Ventana de reembolso de 14 días, sin preguntas — si el nivel no vale la pena para tu caso de uso, envía un email a support@mintbot.ai y te devolveremos la tarifa.

Los precios mayoristas por agente (la tarifa que mintbot te cobra por cada pedido de cliente que generas) son independientes de la tarifa de configuración y están en Paso 5 — Precios más abajo.


Deja que un agente te configure

La mayor parte del trabajo técnico — comprar un dominio, configurar DNS, crear un bot de Telegram, hacer fork del repositorio de plantilla — es mecánico. Puedes hacerlo a mano, pero el camino más suave es delegarlo a un agente de mintbot.

Camino recomendado

Pon en marcha un agente de mintbot y pídele: "Configúrame como brand partner de MintOffice bajo el dominio yourbrand.com — guíame por el asistente de onboarding y rellena todo lo que puedas en mi nombre."

El agente tiene acceso a una terminal, un navegador, una API de DNS, autenticación de GitHub y conocimiento de esta guía. Te dirá exactamente qué paso necesita tu intervención (p. ej. hacer clic en la confirmación de BotFather en Telegram) y se encargará del resto.

Tu propio Hermes, una instalación de OpenCode / OpenClaw, el modo agente de Cursor, o cualquier otro agente de programación funciona igual de bien — dale esta página como contexto y dile el objetivo.

Si prefieres llevar el asistente tú mismo, los pasos de abajo son exactamente lo que haría el agente.


Paso 0 — Crea tu cuenta

  1. Abre mint.mintbot.ai.
  2. Escribe la dirección de email que quieras usar como tu login de operador.
  3. Haz clic en Send me a sign-in link.
  4. Abre el email de pigeon@mintbot.ai y haz clic en el enlace mágico (válido por 24 h, de un solo uso).

No hay contraseña — cada inicio de sesión posterior es otro enlace mágico. Esto es intencional: las contraseñas se filtran, los enlaces mágicos no, y son fáciles de automatizar para un agente más adelante si configuras el acceso al email.


Paso 1 — Dominio

La primera pregunta del asistente es dónde vivirán tus agentes. Tienes dos opciones:

Los agentes viven en subdominios de un dominio tuyo — p. ej. agent1.yourbrand.com, agent2.yourbrand.com, … Esta es la experiencia de marca que ven tus clientes.

Necesitarás:

  • Dominio apex — un dominio registrado y desnudo (sin https://, sin subdominio): yourbrand.com.
  • Proveedor de DNS — actualmente solo Zone.ee tiene un backend funcional. Cloudflare y los modos manuales están en la hoja de ruta.
  • Clave de API + nombre de usuario de Zone.ee — emitidos desde my.zone.euAccount settings → API keys → Create new key. El agente usa esto para crear registros A automáticamente cuando provisionas un agente.

Estilo de numeración de subdominios

  • Prefijo de texto + número (por defecto) — agent1.yourbrand.com, agent2.yourbrand.com, … El más legible para humanos.
  • Solo numérico1.yourbrand.com, 2.yourbrand.com, … Corto.
  • Numérico, con ceros a la izquierda001.yourbrand.com, … Ancho estable.

La elección es puramente cosmética — el worker de despliegue acepta los tres.

Los agentes viven en *.mintbot.ai — sin configuración, sin DNS, pero la URL no lleva tu marca. Útil para hacer pruebas; cámbiate a tu propio dominio antes del lanzamiento de cara al cliente.


Paso 2 — Bot

Cada agente tiene una superficie de chat. Los valores por defecto asumen Telegram — Discord y Slack están esbozados pero aún no conectados.

Tus clientes chatean con @yourbrand_bot, lo que mantiene la marca intacta.

  1. Abre @BotFather en Telegram.
  2. Envía /newbot. Dale al bot un nombre visible y un nombre de usuario (debe terminar en bot).
  3. BotFather devuelve un token con forma 123456789:AA… (al menos 40 caracteres).
  4. Pega ese token en el asistente.

Consulta el tutorial de bots de Telegram si quieres la versión más larga.

Los clientes chatean con @mintbot_dev_bot. Rápido para una demo, pero sin marca. Cámbiate a tu propio bot antes del lanzamiento.

Omite Telegram por completo. Los clientes acceden a los agentes solo a través del panel web. Puedes añadir un bot más tarde desde Ajustes.


Paso 3 — Agent customization repo

Cada agente se despliega sobre una base estándar y sin marca por el propio mintbot. Para poner tu marca encima — persona, tema del panel, textos, cualquier herramienta extra — apuntas el asistente a un agent customization repo: un repositorio de GitHub que el propio VPS del agente clona y ejecuta después del despliegue estándar. Tú decides el aspecto; tú eres dueño del código.

Cómo funciona el agent customization repo

La raíz del repositorio contiene dos scripts:

  • install.sh — se ejecuta una vez en el VPS del agente, después de que el despliegue estándar haya terminado y el agente esté sano. Aquí es donde aplicas tu personalización: tema, ajustes de persona, herramientas extra, cualquier configuración específica del cliente.
  • update.sh — opcional; se ejecuta después de cada actualización del paquete base, para que puedas reaplicar tu capa encima de la base recién actualizada.

Mintbot nunca ejecuta tu repositorio — solo lo hace el propio VPS del agente, en la propia máquina del cliente. Pega la URL HTTPS de GitHub de tu repositorio en el asistente; déjala vacía y obtienes la base sencilla y sin marca.

Crea un repositorio con un install.sh (y un update.sh opcional) en su raíz que aplique tu CSS / textos / persona, luego pega la URL HTTPS de GitHub del repositorio. El VPS del agente lo clona después del despliegue y ejecuta tus scripts para superponer tu marca sobre la base.

Un script roto no puede romper el agente de tu cliente

Tus scripts están aislados ante fallos. Si install.sh o update.sh falta, da error o se ejecuta lentamente, el despliegue igual tiene éxito, la actualización del paquete base nunca se bloquea ni se revierte, y el agente permanece sano. El fallo se registra en el VPS y se te muestra a ti — nunca al cliente final. La única desventaja de un script roto es que el agente se queda en la base sencilla en lugar de tu capa de marca, así que prueba tu repositorio en un deploy DEV primero.

Estilo y persona de base sencilla y sin marca — sin agent customization repo. Puedes añadir una URL de repositorio más tarde desde Ajustes.


Paso 4 — API

La Brand Partner API te permite orquestar la creación de agentes desde tu propio backend en lugar de usar el panel. El asistente omite la configuración de la API por defecto — déjala para después a menos que estés listo para integrar ahora.

Cuando estés listo:

  1. Desde el panel, abre Settings → API access.
  2. Haz clic en Generate key. El texto plano se muestra una sola vez — guárdalo en tu gestor de secretos.
  3. (Opcional) Configura una URL de webhook para recibir eventos del ciclo de vida.
  4. (Opcional) Genera un secreto de firma de webhook una vez que tu receptor esté listo para verificar firmas.

Consulta la referencia de la Brand Partner API para la lista completa de endpoints y las formas de los payloads de webhook.

La URL de webhook y el secreto de firma son opcionales

Ninguno es necesario para empezar a vender — el panel y la API funcionan bien sin ellos. El campo de URL de webhook permanece vacío hasta que tengas un receptor apuntando a https://<your-host>/...; el secreto de firma solo es útil una vez que has fijado esa URL y quieres verificar el header X-Mintbot-Signature. Ambos pueden añadirse (o rotarse) en cualquier momento desde Settings → API access.

Deja que un agente de integración descubra la configuración

Una vez que tengas una clave de API, un agente puede llamar a GET /api/v1/settings para leer tu configuración completa no secreta de una sola vez — dominio, proveedor de DNS, bot, agent customization repo, patrón de subdominios, precios, preparación. Nunca se devuelve ningún secreto (los tokens y claves aparecen solo como booleanos *_set), así que la clave es segura para compartir con el agente que está instalando tu configuración de marca blanca en un servidor nuevo.

Sáltate el boilerplate — haz fork del portal de referencia

Una tienda de ejemplo completa y ejecutable está en mintbot-ai/partner-portal-example. Consulta Portal de referencia más abajo para el recorrido completo.


Paso 5 — Precios

El último paso del asistente es lo que tus clientes pagan por paquete. MintOffice divide los precios en dos modos — puedes cambiar más tarde en Settings → Pricing:

Los clientes ven el precio recomendado de mintbot por nivel (Trial, Starter, Pro, Max). Tú obtienes el margen de partner entre ese precio recomendado y el piso mayorista — sin configuración. Elige esto si solo quieres empezar a vender.

Tú fijas el precio que cada cliente paga por cada nivel. Te embolsas cada centavo por encima del piso mayorista. Elige esto cuando tengas una estrategia deliberada de margen.

El piso mayorista es lo que mintbot te cobra a ti por pedido — es el mínimo absoluto que puedes cobrar. Tu corte de partner es customer_price − wholesale_floor por pedido. El asistente muestra una vista previa de los márgenes calculados por nivel antes de que envíes.

Los precios personalizados pueden ser parciales

Incluso en modo personalizado no tienes que sobrescribir cada nivel — deja un nivel en el valor por defecto y hereda el precio recomendado de mintbot. Edita solo los que te importan.


Salir en vivo

Después del asistente, el panel muestra un banner que lista cualquier información requerida que aún falte. Los tres campos obligatorios son:

  1. Token del bot de Telegram (u otro proveedor de bot)
  2. Clave de API de DNS (p. ej. clave + nombre de usuario de Zone.ee)
  3. Dominio apex

La URL del agent customization repo es opcional — déjala vacía y tus agentes se despliegan en la base sencilla y sin marca.

Una vez que los campos obligatorios estén rellenos y la comprobación del proveedor de DNS pase, el botón Go Live se activa. Al hacer clic, tu estatus de partner cambia de onboardinglive, y la Brand Partner API empieza a aceptar solicitudes de creación de pedidos.

La activación es un apretón de manos de un solo sentido

Tu cuenta permanece en onboarding hasta que hagas clic en Go Live. Mientras estás en onboarding, la API rechaza las escrituras con un 403 (las lecturas siguen abiertas para que puedas inspeccionar el estado). No actives hasta que el DNS de tu dominio esté verificado en Zone.ee y (si estás usando uno) hayas probado tu repositorio de personalización en un deploy DEV.

Después de Go Live: los ajustes de dominio + bot de Telegram se bloquean

Una vez que tu estatus de partner sea live, las secciones de Dominio y bot de Telegram de Ajustes pasan a ser de solo lectura. Los agentes de clientes existentes ya apuntan a tu dominio apex y chatean a través de tu bot — un cambio silencioso los dejaría huérfanos a mitad de su vida. Las demás secciones permanecen editables:

Sección ¿Editable mientras está live?
Dominio / DNS / patrón de subdominios No — contacta a soporte si necesitas migrar
Bot de Telegram No — contacta a soporte si necesitas migrar
Agent customization repo Sí — los nuevos agentes clonan la nueva URL del repositorio; los agentes existentes lo reejecutan vía update.sh en su próxima actualización de base
Clave de API / webhook Sí — rota en cualquier momento
Precios Sí — se aplican a pedidos futuros

El bloqueo se aplica tanto en la UI (fieldset deshabilitado, banner que explica por qué) como en el servidor (los POST a /settings con section=domain o section=bot devuelven 403).


Webhooks + pagos

  • Entregas de webhook — cada evento del ciclo de vida (pedido creado, activado, expirado) hace POST a la URL de webhook que fijaste en Ajustes. El chip de Webhook health por partner del panel muestra la tasa de éxito de entrega en las últimas 24 h.
  • Ledger de ingresos — cada pedido pagado escribe una fila con tu bruto, tu corte y el corte de mintbot. El panel muestra los totales de por vida y el saldo no pagado.
  • Pagos — se acumulan. El equipo de mintbot los paga manualmente según el acuerdo de cada partner; el panel rastrea el estado pagado vs no pagado.

Portal de referencia

Si no quieres construir una tienda desde cero, haz fork del ejemplo oficial: mintbot-ai/partner-portal-example. Es FastAPI + SQLite + Docker con licencia MIT, viene con una marca ficticia "AcmeAI" que puedes reemplazar, y cubre el bucle completo de principio a fin:

  • página de aterrizaje con tarjetas de plan,
  • formulario /buyPOST /api/v1/orders → redirección a Stripe Checkout,
  • páginas de retorno de agradecimiento / cancelación,
  • POST /webhooks/mintoffice con el verificador de firma HMAC,
  • navegador de eventos /admin con autenticación HTTP-Basic,
  • sonda de vida /healthz.

Recorrido de configuración

  1. Haz fork del repositorio para poder mantener tus cambios de marca en git:

    git clone https://github.com/mintbot-ai/partner-portal-example.git
    cd partner-portal-example
    cp .env.example .env
    
  2. Rellena .env con los valores de tu panel de MintOffice:

    Variable Qué va aquí
    PARTNER_BRAND Nombre de marca visible para el cliente (también usado como la etiqueta de línea de Stripe).
    MINTOFFICE_API_URL https://mint.mintbot.ai para producción, https://mint.mintbot.dev para pruebas.
    MINTOFFICE_API_KEY Clave de API de Settings → API access (formato mo_live_…).
    MINTOFFICE_WEBHOOK_SECRET Secreto de firma de webhook mostrado una sola vez en su creación en el mismo panel.
    PUBLIC_BASE_URL La URL HTTPS donde vivirá tu portal (usada para construir success_url / cancel_url de Stripe).
    ADMIN_USERNAME / ADMIN_PASSWORD Puerta de autenticación básica en /admin. Usa una contraseña larga y aleatoria.
  3. Ejecútalo — Docker es el camino más fácil; bare-metal también funciona:

    docker compose up --build
    
    pip install -e .
    uvicorn app.main:app --reload
    
  4. Exponlo en HTTPS — MintOffice rechaza http:// tanto para las URLs de redirección de Stripe como para la URL de webhook (las IPs privadas y localhost están bloqueadas por la protección SSRF). Para desarrollo local, usa Cloudflare Tunnel, Tailscale Funnel, o ngrok. Para producción, despliega en tu propio host.

  5. Apunta tu fila de partner al portal — de vuelta en el panel:

    • Fija la Webhook URL a https://<your-host>/webhooks/mintoffice.
    • Eso es todo. Haz un pedido de prueba desde /buy, y observa cómo los eventos llegan a /admin.

Cambio de marca

Las plantillas por defecto fingen ser AcmeAI. Tres puntos de contacto:

  • PARTNER_BRAND en .env — fluye hacia Stripe, encabezados, pies de página.
  • app/templates/base.html — variables CSS para colores / acento.
  • app/templates/*.html — textos y diseño por página. Las traducciones (estonio, español, …) viven como forks de estos archivos.

Despliegue rápido en el mismo VPS que tus agentes

El portal de ejemplo es lo bastante pequeño como para ejecutarse junto a tu agente de despliegue de MintOffice. Si ya tienes un VPS de agente de mintbot, pídele: "Despliega partner-portal-example como receptor de webhooks bajo https://portal.<my-domain>/, rellena MINTOFFICE_API_KEY y MINTOFFICE_WEBHOOK_SECRET desde GET /api/v1/settings, y fija la URL de webhook en mi fila de partner." El agente tiene los docs y la ruta de la clave de API para hacer esto de principio a fin.


Brand Partner API

Para la creación programática de agentes, el sondeo de estado y los eventos de webhook, consulta la referencia de la Brand Partner API. Para la arquitectura más amplia (cómo encajan tu tienda, la API, el worker de despliegue, y el VPS del agente de cada cliente), consulta MintOffice — Técnico.