App gerado por IA da Vercel

WhatsApp no v0: rota de servidor Next.js e chaves em variáveis de ambiente

O v0 gera interfaces e apps por conversa e, segundo a documentação (visão geral lida em 11/11/2026), publica com um clique na infraestrutura da Vercel e permite conectar um backend. A página que li não detalha variáveis de ambiente nem rotas de servidor: por isso esta página mostra o padrão de segurança que vale para qualquer app Next.js e deixa claro o que você deve confirmar no menu da ferramenta.

Atualizado em

Por que conectar

Você gerou um formulário de captação ou um painel e quer que o envio de WhatsApp aconteça no servidor. Em Next.js isso é um route handler: o navegador chama a sua rota, a rota chama a ZapZap com a chave guardada em variável de ambiente sem o prefixo NEXT_PUBLIC_ (variáveis com esse prefixo vão para o navegador). A ZapZap conecta números por um canal não oficial: o WhatsApp pode limitar ou bloquear qualquer número, então ritmo, consentimento e aquecimento contam. São R$15 por número ativo/mês, pré-pago, sem cobrança por mensagem, e você começa com crédito de boas-vindas ao verificar o telefone, sujeito à campanha vigente.

Passo a passo

  1. 1

    Descubra onde o v0 guarda variáveis de ambiente

    A documentação que li (visão geral, 11/11/2026) não cobre variáveis de ambiente, e a página de variáveis que tentei abrir não existe. Procure o menu de variáveis do projeto na própria ferramenta ou nas configurações do projeto na Vercel após o deploy, e confirme lá antes de colar qualquer chave.

  2. 2

    Cadastre os três valores sem prefixo público

    Crie ZAPZAP_API_KEY, ZAPZAP_API_SECRET e ZAPZAP_INSTANCE_ID, sem NEXT_PUBLIC_ no nome. As chaves vêm de Settings > API em app.zapzapapi.com e a instância é um número conectado por QR code.

  3. 3

    Peça a rota de servidor

    Prompt: "Crie um route handler POST em app/api/whatsapp/route.ts que valide number (10 a 15 dígitos) e text, e chame https://api.zapzapapi.com/api/v1/{instanceId}/send/text com x-api-key e x-api-secret de process.env. Não exponha as chaves ao cliente."

  4. 4

    Ligue o formulário à rota

    O componente chama fetch('/api/whatsapp', { method: 'POST', ... }) com number e text. Adicione limite de uso por IP ou por usuário na rota: sem isso, qualquer visitante pode usar o seu número para enviar.

  5. 5

    Publique e teste com o seu número

    Depois do deploy, envie para você, confira a resposta HTTP e use GET /{instanceId}/instance/status para saber se a instância está conectada.

Exemplo

// 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. Os campos e endpoints exatos estão na documentação.

O que eu li e o que não consegui confirmar sobre o v0

  • Confirmado (v0.app/docs, 11/11/2026): publicação com um clique na infraestrutura da Vercel e conexão com um backend.
  • Não informado na página que li: variáveis de ambiente, rotas de servidor e como manter chaves no servidor.
  • O padrão da rota de servidor é de Next.js, não um recurso exclusivo do v0: confirme no seu projeto que o código gerado é Next.js.

Perguntas frequentes

O v0 tem integração pronta com a ZapZap?

Não. A ligação é por código: uma rota de servidor que chama a API REST. Não há extensão do v0 mantida pela ZapZap.

Posso usar NEXT_PUBLIC_ na chave para facilitar?

Não. Variáveis com esse prefixo são enviadas ao navegador, e qualquer pessoa poderia ler a chave e usar o seu número.

Como recebo as respostas dos clientes?

Com um webhook: crie outra rota POST, cadastre a URL pública com PUT /instances/{id}/webhook e valide X-ZapZap-Signature sobre o corpo bruto.

A ZapZap é oficial do WhatsApp?

Não. É uma solução não oficial, e o WhatsApp pode limitar ou bloquear números.

Quanto custa?

São R$15 por número ativo/mês, pré-pago, sem cobrança por mensagem, e você começa com crédito de boas-vindas ao verificar o telefone, sujeito à campanha vigente.

Comece agora

Crie sua conta, conecte um número em minutos e teste a API com aquecimento e anti-bloqueio. R$15 por número ativo/mês, pré-pago, sem fidelidade.