App generada por IA de Vercel
WhatsApp en v0: ruta de servidor de Next.js y claves en variables de entorno
v0 genera interfaces y apps a partir de una conversación y, según su documentación (visión general leída el 11/11/2026), publica con un clic en la infraestructura de Vercel y permite conectar un backend. La página que leí no detalla variables de entorno ni rutas de servidor: por eso esta página muestra el patrón de seguridad que vale para cualquier app Next.js y deja claro qué debes confirmar en el menú de la propia herramienta.
Actualizado el
Por qué conectar
Generaste un formulario de captación o un panel y quieres que el envío de WhatsApp ocurra en el servidor. En Next.js eso es un route handler: el navegador llama a tu ruta, y la ruta llama a ZapZap con la clave guardada en una variable de entorno sin el prefijo NEXT_PUBLIC_ (las variables con ese prefijo van al navegador). ZapZap conecta números por un canal no oficial: WhatsApp puede limitar o bloquear cualquier número, así que el ritmo, el consentimiento y el calentamiento importan. Cuesta R$15 por número activo al mes, prepago, sin cobro por mensaje, y empiezas con un crédito de bienvenida al verificar el teléfono, sujeto a la campaña vigente.
Paso a paso
- 1
Descubre dónde guarda v0 las variables de entorno
La documentación que leí (visión general, 11/11/2026) no cubre variables de entorno, y la página de variables que intenté abrir no existe. Busca el menú de variables del proyecto en la propia herramienta o en la configuración del proyecto en Vercel tras el despliegue, y confirma ahí antes de pegar cualquier clave.
- 2
Registra los tres valores sin prefijo público
Crea ZAPZAP_API_KEY, ZAPZAP_API_SECRET y ZAPZAP_INSTANCE_ID, sin NEXT_PUBLIC_ en el nombre. Las claves salen de Settings > API en app.zapzapapi.com y la instancia es un número conectado por código QR.
- 3
Pide la ruta de servidor
Prompt: "Crea un route handler POST en app/api/whatsapp/route.ts que valide number (10 a 15 dígitos) y text, y llame a https://api.zapzapapi.com/api/v1/{instanceId}/send/text con x-api-key y x-api-secret de process.env. No expongas las claves al cliente."
- 4
Conecta el formulario a la ruta
El componente llama a fetch('/api/whatsapp', { method: 'POST', ... }) con number y text. Agrega un límite de uso por IP o por usuario en la ruta: sin eso, cualquier visitante puede usar tu número para enviar.
- 5
Publica y prueba con tu número
Después del despliegue, envíate un mensaje, revisa la respuesta HTTP y usa GET /{instanceId}/instance/status para saber si la instancia está conectada.
Ejemplo
// app/api/whatsapp/route.ts (Next.js route handler: runs on the server, the key never reaches the browser)
// Environment variables (NO NEXT_PUBLIC_ prefix): ZAPZAP_API_KEY, ZAPZAP_API_SECRET, ZAPZAP_INSTANCE_ID
export async function POST(req: Request) {
const { number, text } = await req.json();
if (!/^\d{10,15}$/.test(String(number)) || typeof text !== "string" || !text) {
return Response.json({ error: "invalid number or text" }, { status: 400 });
}
const r = await fetch("https://api.zapzapapi.com/api/v1/" + process.env.ZAPZAP_INSTANCE_ID + "/send/text", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.ZAPZAP_API_KEY ?? "",
"x-api-secret": process.env.ZAPZAP_API_SECRET ?? "",
},
body: JSON.stringify({ number, text }),
});
return new Response(await r.text(), { status: r.status, headers: { "Content-Type": "application/json" } });
}Ilustrativo. Los campos y endpoints exactos están en la documentación.
Lo que leí y lo que no pude confirmar sobre v0
- Confirmado (v0.app/docs, 11/11/2026): publicación con un clic en la infraestructura de Vercel y conexión con un backend.
- No informado en la página que leí: variables de entorno, rutas de servidor y cómo mantener claves en el servidor.
- El patrón de la ruta de servidor es de Next.js, no un recurso exclusivo de v0: confirma en tu proyecto que el código generado es Next.js.
Preguntas frecuentes
¿v0 tiene una integración lista con ZapZap?
No. La conexión es por código: una ruta de servidor que llama a la API REST. No hay una extensión de v0 mantenida por ZapZap.
¿Puedo usar NEXT_PUBLIC_ en la clave para facilitar?
No. Las variables con ese prefijo se envían al navegador, y cualquiera podría leer la clave y usar tu número.
¿Cómo recibo las respuestas de los clientes?
Con un webhook: crea otra ruta POST, registra la URL pública con PUT /instances/{id}/webhook y valida X-ZapZap-Signature sobre el cuerpo bruto.
¿ZapZap es WhatsApp oficial?
No. Es una solución no oficial, y WhatsApp puede limitar o bloquear números.
¿Cuánto cuesta?
Cuesta R$15 por número activo al mes, prepago, sin cobro por mensaje, y empiezas con un crédito de bienvenida al verificar el teléfono, sujeto a la campaña vigente.
Empieza ahora
Crea tu cuenta, conecta un número en minutos y prueba la API con calentamiento y anti-bloqueo. R$15 por número activo/mes, prepago, sin permanencia.
