# Bolt.new y v0: ¿enviar emails, SMS y WhatsApp gratis?

> Un route handler de Next.js y un prompt: tu app de Bolt.new o v0 envía email, SMS y WhatsApp desde tus propias cuentas. Plan gratis, sin tarjeta.

Source: https://unlimitedmessaging.app/es/articles/bolt-v0-email-sms-whatsapp

Guía Bolt.new + v0

# Tu app de Bolt o v0  
_envía email, SMS y WhatsApp._

Un prompt, una ruta de servidor, una llamada a la API: el mismo mensaje sale por email, WhatsApp y SMS desde tu propio buzón, tu número y tu móvil Android, y la clave nunca llega al navegador.

[Consigue una clave de API gratis](https://app.unlimitedmessaging.app)[Guía del SDK TypeScript](https://unlimitedmessaging.app/es/articles/typescript-sdk)

La respuesta corta

## ¿Cómo añades email, SMS y WhatsApp a una app de Bolt.new o v0?

Haz que Bolt.new o v0 escriba una ruta de servidor, un [route handler](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) de Next.js o una server function de Bolt, que envíe POST https://api.unlimitedmessaging.app/message con una clave de API leída de una variable de entorno del servidor. Una sola petición llega a una bandeja de entrada, a un chat de WhatsApp y a un móvil, desde tus propias cuentas, con un plan gratis y sin tarjeta.

v0 genera apps Next.js que se despliegan en Vercel, y Bolt.new genera proyectos full-stack, a menudo en Next.js o Vite con Bolt Database o Supabase. Los dos pueden escribir código de servidor. Eso importa, porque una clave de mensajería nunca debe estar en el bundle del navegador: el envío va en código que se ejecuta en el servidor.

Unlimited Messaging es una API de mensajería que envía desde cuentas que ya tienes: email desde tu buzón de Gmail o de tu dominio por IMAP/SMTP, WhatsApp desde tu propio número vinculado como WhatsApp Web, SMS desde la SIM de tu móvil Android con una app gratuita. El plan gratis no cobra por mensaje; los mensajes llevan una línea corta "Sent with UnlimitedMessaging.app".

Para una app hecha con vibe coding, lo que cuenta es la velocidad. En lugar de tres proveedores, tres SDK y tres verificaciones, el constructor con IA escribe una sola llamada fetch, y pruebas con mensajes reales esa misma tarde.

Cliente tipado para Node.js y Next.js: [el SDK TypeScript](https://unlimitedmessaging.app/es/articles/typescript-sdk). Varios canales en una llamada: [email y WhatsApp en una sola petición a la API](https://unlimitedmessaging.app/es/articles/email-whatsapp-single-api-request). SMS desde tu móvil: [la app Android](https://unlimitedmessaging.app/es/channels/sms).

![Ilustración: una cuadrícula de iconos pequeños con uno resaltado, con el titular «Apps de Bolt y v0 que escriben a sus usuarios».](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fbolt-v0-email-sms-whatsapp-es.png&w=3840&q=75)

Definición
Route handler

Un archivo de Next.js (app/api/.../route.ts) que responde a peticiones HTTP en el servidor. Puede leer cualquier variable de entorno, mientras que el navegador solo ve las variables con el prefijo NEXT\_PUBLIC\_.

Bolt llama a su código de servidor server functions o edge functions.

[Fuente: documentación de v0, Security↗](https://v0.app/docs/security)

Por qué no programarlo a mano

## ¿Por qué se tarda tanto en programar a mano email, SMS y WhatsApp?

Los constructores con IA escriben el código en segundos. Lo lento es todo lo demás: proveedores, verificaciones, políticas y rarezas del despliegue.

1. 01  
### Email: SMTP se lleva mal con los hosts serverless  
Vercel bloquea el SMTP saliente por el puerto 25 y recomienda una API de email para la mayoría de los casos, y las Edge Functions de Supabase rechazan directamente los puertos 25 y 587\. Una API de email pide entonces un dominio verificado y registros DNS antes de entregar a alguien que no seas tú.
2. 02  
### SMS: números, registro, tarifa por segmento  
Un proveedor como Twilio te alquila un número y cobra cada segmento, 0,0083 $ en Estados Unidos más las tarifas del operador. El tráfico a Estados Unidos desde un número largo normal necesita el registro A2P 10DLC, empezando por una tarifa de marca de 4,50 $ y una verificación.
3. 03  
### WhatsApp: plantillas y límites  
La Cloud API oficial de Meta exige una plantilla aprobada para todo lo que se envía fuera de la ventana de atención al cliente de 24 horas, revisada en 24 horas, con precio por mensaje de plantilla, y las cuentas nuevas limitadas a 250 destinatarios únicos cada 24 horas.
4. 04  
### Más código que la IA puede hacer mal  
Tres SDK y tres formatos de webhook son más archivos, más claves y más sitios donde un fragmento generado filtra un secreto o se traga un error. Un solo endpoint deja un diff lo bastante pequeño como para revisarlo.

Cara a cara

## ¿Qué stack de mensajería encaja con una app de Bolt.new o v0?

Lo que necesita cada opción habitual antes de que tu app pueda escribir a un usuario real.

__¿Qué stack de mensajería encaja con una app de Bolt.new o v0?__
| [Nodemailer + SMTP](https://vercel.com/kb/guide/serverless-functions-and-smtp)Email hecho a mano | [Resend](https://resend.com/pricing)API de email | [Twilio](https://www.twilio.com/en-us/sms/pricing/us)API de SMS y WhatsApp | Unlimited MessagingAPI de email, SMS y WhatsApp              |                                                             |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- |
| Canales                                                                                          | Email                                            | Email                                                                      | SMS y WhatsApp                                               | Email, WhatsApp y SMS en una sola petición                  |
| Coste para probar                                                                                | Gratis con tu propio buzón                       | Gratis: 3.000 emails al mes, 100 al día                                    | Crédito de prueba, luego por mensaje                         | Plan gratis, sin coste por mensaje, línea de pie            |
| Funciona en funciones serverless                                                                 | Depende de las reglas de puertos del host        | Sí, HTTPS                                                                  | Sí, HTTPS                                                    | Sí, HTTPS                                                   |
| Configuración antes de usuarios reales                                                           | Credenciales SMTP                                | Dominio verificado y DNS                                                   | Número, 10DLC (EE. UU.), configuración de Meta para WhatsApp | Vincular buzón, escanear un QR, instalar la app Android     |
| Respuestas entrantes                                                                             | Montar tu propio sondeo IMAP                     | Webhooks de eventos de entrega                                             | Webhooks                                                     | Bandeja en todos los planes, webhooks en los planes de pago |
| Escala                                                                                           | Los límites de tu buzón                          | Pensado para volumen                                                       | Pensado para volumen                                         | Ritmo humano, sin envíos masivos; WhatsApp no oficial       |

Precios y límites tomados de la página de cada proveedor, revisados el 9 de noviembre de 2026.

Paso a paso

## De cero a un primer mensaje en cinco pasos

1. 01  
### Crea una cuenta gratis  
Regístrate en app.unlimitedmessaging.app con Google, GitHub o tu email. Sin tarjeta; el plan Gratis es permanente.
2. 02  
### Conecta tus canales  
Añade tu buzón por IMAP/SMTP, escanea un código QR para vincular WhatsApp e instala la app Android en un móvil con SIM para los SMS. Puedes empezar con uno solo.
3. 03  
### Crea una clave de API  
Abre la sección API del panel y crea una clave. Cópiala una vez.
4. 04  
### Añade UM\_API\_KEY en el lado del servidor  
v0: menú del proyecto, Settings, Environment Variables, con Development marcado para que la vista previa la vea. Bolt: el panel Secrets (icono de base de datos) para las server functions, o el menú del engranaje en un proyecto con Supabase.
5. 05  
### Pega el prompt  
El constructor escribe la ruta y la llamada. Prueba con tu propio número y tu bandeja antes de cualquier usuario real.

Copiar y pegar

## ¿Qué prompt pegas en Bolt.new o v0?

Pega esto en el chat. Pide una ruta de servidor, la clave desde el entorno y una confirmación de pedido. Pon tu propio disparador.

Prompt para Bolt.new o v0Prompt

```
Añade mensajería a esta app con Unlimited Messaging (API REST, documentación: https://docs.unlimitedmessaging.app).

1. Crea una ruta de servidor: en Next.js, app/api/notify/route.ts (o una server action); en una app Vite en Bolt, una server function. Nunca llames a la API desde componentes de cliente.
2. Lee la clave de la variable de entorno UM_API_KEY. No le pongas el prefijo NEXT_PUBLIC_ ni VITE_, no la escribas en el código y dime dónde añadirla (v0: Settings > Environment Variables; Bolt: Secrets).
3. Envía POST https://api.unlimitedmessaging.app/message con "Authorization: Bearer <UM_API_KEY>" y el cuerpo JSON { "to": { "phone": "<E.164>", "email": "<email>" }, "subject": "...", "text": "...", "channels": [{ "channel": "EMAIL" }, { "channel": "WHATSAPP" }, { "channel": "SMS" }] }.
4. Escribe solo al usuario conectado, con sus datos de contacto leídos en el servidor. Devuelve el estado y el cuerpo de la respuesta de la API para que los errores se vean.
5. Lánzalo después del pago con una confirmación de pedido, y pídeme mi número y mi email para una primera prueba.
```

El endpoint es HTTPS sin más: el mismo prompt sirve en Lovable, Cursor o Claude Code cambiando el primer paso.

POST /api/notifyNext.js

```
// app/api/notify/route.ts
export async function POST(req: Request) {
  const { phone, email, name } = await req.json();

  const res = await fetch('https://api.unlimitedmessaging.app/message', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.UM_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      to: { phone, email },
      subject: 'Your order is confirmed',
      text: `Thanks ${name}, your order is on its way.`,
      channels: [{ channel: 'EMAIL' }, { channel: 'WHATSAPP' }, { channel: 'SMS' }],
    }),
  });

  return Response.json(await res.json(), { status: res.status });
}
```

El route handler que debería generar el constructor. En producción, toma el teléfono y el email del usuario conectado desde tu base de datos, no del cuerpo de la petición. Quita los canales que no hayas conectado.

@unlimited-messaging/sdkTypeScript

```
import { UnlimitedMessagingApiClient } from '@unlimited-messaging/sdk';

const um = new UnlimitedMessagingApiClient({ token: process.env.UM_API_KEY! });

// Server-side only: a route handler, a server action or a server function
await um.messages.messageSend({
  recipient: '+33612345678',
  text: 'Your code is 291847, valid 5 minutes.',
});
```

El SDK tipado (npm i @unlimited-messaging/sdk) para envíos de un solo canal desde código de servidor. Para varios canales en una llamada, el cuerpo REST de la izquierda es la referencia.

Seguridad

## ¿Dónde debe estar la clave de API en Bolt.new y v0?

En variables de entorno del servidor, leídas solo por código de servidor. Las dos herramientas documentan la misma regla.

1. 01  
### v0: sin el prefijo NEXT\_PUBLIC\_  
La documentación de seguridad de v0 indica que solo las variables con el prefijo NEXT\_PUBLIC\_ llegan al navegador, y que las demás se quedan en el servidor. Llámala UM\_API\_KEY y léela en un route handler o una server action.
2. 02  
### v0: marca Development para la vista previa  
Las variables se cifran y se guardan en Vercel. La vista previa de v0 solo ve las variables disponibles en el entorno Development, así que añade también ahí la clave mientras construyes.
3. 03  
### Bolt: Secrets, usados por las server functions  
La documentación de Bolt dice que los secretos solo funcionan con las server functions, que se ejecutan en los servidores de Bolt y no en el navegador del visitante. En un proyecto con Supabase, abre Secrets desde el menú del engranaje.
4. 04  
### Nunca una variable VITE\_  
En una app Vite, todo lo que lleva el prefijo VITE\_ se compila en el JavaScript que descarga el navegador. Una clave de mensajería ahí permite a cualquiera enviar desde tu número y tu buzón.
5. 05  
### Nada de relé abierto  
Una ruta pública que envía cualquier texto a cualquier número es una pasarela de spam con tu nombre. Exige una sesión, busca el destinatario en el servidor y limita los envíos por usuario.

Respuestas

## ¿Cómo recibes las respuestas en una app de Bolt.new o v0?

Todos los planes muestran las respuestas en la bandeja de Unlimited Messaging: hilos de email, chats de WhatsApp y SMS recibidos por la app Android. Llevarlas a tu propia app requiere webhooks, incluidos en los planes de pago: Medium a 19 € al mes y Max a 29 € al mes.

Pide al constructor una segunda ruta, por ejemplo app/api/um-webhook/route.ts, registra su URL pública en la página Webhooks del panel y suscríbete a message.received y message.status. Lee el cuerpo en bruto con await req.text() antes de parsearlo, porque la firma cubre los bytes exactos.

Las entregas siguen la especificación Standard Webhooks, firmadas con HMAC-SHA256 en la cabecera webhook-signature. Responde 2xx en menos de 10 segundos y luego haz el trabajo. Las entregas fallidas se reintentan durante algo más de 3 días, así que deduplica por eventId.

message.receivedJSON

```
{
  "type": "message.received",
  "eventId": "whd_...",
  "occurredAt": "2026-11-09T10:00:01.000Z",
  "data": {
    "channel": "WHATSAPP",
    "message": {
      "text": "Yes, see you Monday!"
    }
  }
}
```

Un evento message.received, abreviado. data.message contiene el remitente, el texto y, en un email, el asunto y los adjuntos.

verify-webhook.tsTypeScript

```
import { createHmac } from 'node:crypto';
import { Buffer } from 'node:buffer';

// Standard Webhooks signature check, before trusting the body.
export function isValid(rawBody: string, h: Headers, secret: string) {
  const id = h.get('webhook-id');
  const ts = h.get('webhook-timestamp');
  const sig = h.get('webhook-signature') ?? '';
  if (!id || !ts || Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const key = Buffer.from(secret.replace(/^whsec_/, ''), 'base64');
  const expected = createHmac('sha256', key)
    .update(`${id}.${ts}.${rawBody}`)
    .digest('base64');
  return sig.split(' ').some((s) => s === `v1,${expected}`);
}
```

Comprobación de firma para un route handler de Next.js o una server function de Bolt. Guarda el secreto whsec\_ en una segunda variable de servidor, UM\_WEBHOOK\_SECRET.

Límites

## ¿Cuáles son los límites, sinceramente?

Unlimited Messaging envía desde cuentas personales, a ritmo humano. Tenlo en cuenta antes de lanzar.

1. 01  
### WhatsApp no es oficial  
Tu número se vincula como un dispositivo, igual que WhatsApp Web, fuera de la Business Platform de Meta. Los mensajes no solicitados hacen que bloqueen números. Si necesitas WhatsApp oficial a gran escala, usa la Cloud API de Meta.
2. 02  
### El email sigue a tu buzón  
Una cuenta personal de Gmail envía hasta 500 emails al día. Para newsletters o grandes volúmenes, la herramienta adecuada es un proveedor de email con un dominio de envío.
3. 03  
### SMS al ritmo de Android  
Android pide confirmación a partir de 30 SMS en 30 minutos, así que la app espacia los envíos. Los SMS cuentan en tu plan del operador, y el móvil que envía tiene que usar Android.
4. 04  
### Lo que implica el plan gratis  
Los mensajes del plan Gratis terminan con "Sent with UnlimitedMessaging.app". Los archivos multimedia, las notas de voz y los webhooks vienen con Medium y Max, que además quitan el pie.

Lo esencial

### Una ruta de servidor, una variable, tres canales.

Guarda UM\_API\_KEY en variables del servidor, llama a POST /message desde un route handler o una server function, y tu app de Bolt.new o v0 llega a email, WhatsApp y SMS en una sola petición. Gratis para empezar; de pago solo para webhooks, multimedia o quitar el pie.

FAQ

## Preguntas sobre la mensajería desde Bolt.new y v0

Sí, desde código de servidor. Pide a Bolt una server function o una ruta de API que llame a una API de email con una clave guardada en Secrets. Con Unlimited Messaging, esa llamada envía desde tu propio buzón con el plan gratis, y puede añadir WhatsApp y SMS.

Añade UM\_API\_KEY en las variables de entorno del proyecto, haz que v0 escriba un route handler que llame a POST /message con el canal SMS e instala la app Android gratuita en un móvil con SIM. El SMS sale desde el número de ese móvil.

Vincula tu número de WhatsApp con un código QR en el panel de Unlimited Messaging y envía con el canal WHATSAPP desde una server function. No hay plantillas de Meta que aprobar, pero es una vinculación no oficial: escribe solo a quien espera tus mensajes.

Sí. npm i @unlimited-messaging/sdk te da un cliente tipado, UnlimitedMessagingApiClient, con messages.messageSend. Úsalo solo en código de servidor. El cuerpo REST de esta guía es la referencia para los envíos multicanal.

No. No hay ninguna colaboración ni integración nativa. Es una API REST estándar a la que puede llamar cualquier código de servidor generado por Bolt.new o v0.

Sí, siempre que UM\_API\_KEY esté definida en las variables de entorno del servidor de ese host. La llamada es HTTPS sin más, así que no hace falta abrir ningún puerto SMTP.

Fuentes

## Fuentes y referencias

Para verificar por ti mismo la información de este artículo:

1. [01Security (solo las variables NEXT\_PUBLIC\_ llegan al navegador)↗Documentación de v0](https://v0.app/docs/security)
2. [02External APIs (variables de entorno cifradas y guardadas en Vercel)↗Documentación de v0](https://v0.app/docs/external-apis)
3. [03Environment variables↗Documentación de Vercel](https://vercel.com/docs/environment-variables)
4. [04Can I use SMTP with Vercel? (puerto 25 bloqueado)↗Vercel Knowledge Base](https://vercel.com/kb/guide/serverless-functions-and-smtp)
5. [05Secrets (solo funcionan con las server functions)↗Soporte de Bolt](https://support.bolt.new/cloud/database/secrets)
6. [06Server functions↗Soporte de Bolt](https://support.bolt.new/cloud/database/server-functions)
7. [07Integración con Supabase↗Soporte de Bolt](https://support.bolt.new/integrations/supabase)
8. [08Route handlers↗Documentación de Next.js](https://nextjs.org/docs/app/building-your-application/routing/route-handlers)
9. [09Límites de las Edge Functions (puertos 25 y 587 no permitidos)↗Documentación de Supabase](https://supabase.com/docs/guides/functions/limits)
10. [10Precios de Resend (Free: 3.000 emails al mes, 100 al día)↗Resend](https://resend.com/pricing)
11. [11Precios de SMS en Estados Unidos (0,0083 $ por segmento)↗Twilio](https://www.twilio.com/en-us/sms/pricing/us)
12. [12A2P 10DLC Brand Registration (tarifa de marca de 4,50 $)↗Twilio](https://www.twilio.com/docs/trust-hub/registrations/a2p-10dlc-brand)
13. [13Revisión de plantillas de mensajes (decisión en 24 horas)↗Meta for Developers](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/template-review)
14. [14Límites de mensajería de WhatsApp (250 destinatarios únicos cada 24 horas al empezar)↗Meta for Developers](https://developers.facebook.com/documentation/business-messaging/whatsapp/messaging-limits)
15. [15Límites de envío y recepción de correo (500 emails al día)↗Ayuda de Gmail](https://support.google.com/mail/answer/22839)
16. [16SmsUsageMonitor (umbral de 30 SMS en 30 minutos)↗Android Open Source Project](https://android.googlesource.com/platform/frameworks/opt/telephony/+/refs/heads/main/src/java/com/android/internal/telephony/SmsUsageMonitor.java)
17. [17Especificación Standard Webhooks↗Standard Webhooks](https://www.standardwebhooks.com)

![Ilian, ingeniero de software senior](https://ilianazz.com/images/iliazz.png)

Escrito por

[Ilian](https://unlimitedmessaging.app/es/authors/ilian) · Ingeniero de software senior

Ingeniero de software senior, funda y dirige varias empresas tecnológicas. Diseña productos en torno a las API de mensajería, la automatización y la integración de la IA, y comparte aquí lo que aprende construyendo.

[Ver el perfil de LinkedIn↗](https://www.linkedin.com/in/ilianAzz/)Actualizado el 9 de noviembre de 2026

![](https://unlimitedmessaging.app/assets/logos/whatsapp.svg)![](https://unlimitedmessaging.app/assets/logos/email.svg)![](https://unlimitedmessaging.app/assets/logos/sms.svg)

## Haz que tu app hable con tus usuarios hoy.

Crea una cuenta gratis, conecta un buzón, un número o un móvil, y pega el prompt en Bolt.new o v0.

[Consigue una clave de API gratis→](https://app.unlimitedmessaging.app)

Artículos similares
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Ftypescript-sdk-es.png&w=3840&q=75)Envía WhatsApp desde Node.js con un SDK tipadoPaquete npm completamente tipado para Node.js, Next.js y cualquier entorno JS.](https://unlimitedmessaging.app/es/articles/typescript-sdk)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Femail-whatsapp-single-api-request-es.png&w=3840&q=75)Una petición API, dos canales: email y WhatsApp a la vezEnvía el mismo mensaje por WhatsApp y por email en una llamada, desde tu número y tu buzón, gratis en todos los planes.](https://unlimitedmessaging.app/es/articles/email-whatsapp-single-api-request)
* [![](https://unlimitedmessaging.app/_next/image?url=%2Fassets%2Farticles%2Fcovers%2Fnotifications-es.png&w=3840&q=75)Confirmaciones de pedido por WhatsApp: la guía 2026Envía confirmaciones de pedidos, alertas y recibos via WhatsApp.](https://unlimitedmessaging.app/es/articles/notifications)
