← Blog

·

WhatsApp para infoproductores: acceso, soporte y recuperación de ventas

Actualizado el 25/10/2026

Para los infoproductores, la API oficial de WhatsApp conecta la plataforma de pago con el WhatsApp del comprador: cuando la venta se aprueba, el webhook de la plataforma (también llamado postback) llega a tu sistema, que envía en el momento una plantilla de utilidad con el enlace de acceso. El mismo flujo recuerda los pagos iniciados y no concluidos, y el soporte ocurre dentro de la ventana de 24 horas que se abre cuando el alumno responde. Todo desde el número oficial del productor, sin depender de un celular ni de herramientas no oficiales.

Esta guía muestra el flujo completo, las plantillas de cada etapa, un ejemplo de código para recibir el webhook y las reglas de Meta que separan utilidad de marketing en esta operación. Los ejemplos vienen de Brasil, donde los pagos suelen hacerse con PIX o boleto.

Los tres momentos en que WhatsApp marca la diferencia

MomentoDisparadorMensajeCategoría probable
Acceso liberadoWebhook de compra aprobadaEnlace al área de miembros y datos de accesoUtilidad
Pago pendienteWebhook de PIX o boleto generadoRecordatorio con el enlace de pagoUtilidad, si no hay persuasión
SoporteMensaje del alumnoRespuestas libres, humanas o automáticasServicio, dentro de la ventana

El carrito abandonado (la persona salió del checkout sin generar el pago) es otro caso. Meta dice explícitamente que los recordatorios de carrito son marketing, aunque el usuario los haya pedido. Consulta recuperación de PIX, boleto y carrito abandonado.

Requisitos previos

  • Un número registrado en la API oficial y plantillas aprobadas.
  • Una plataforma de pago que envíe notificaciones por webhook para los eventos de compra. Revisa en la documentación de tu plataforma qué eventos envía y cómo validar el origen de la solicitud.
  • El teléfono del comprador obtenido en el checkout, con un aviso claro de que recibirá mensajes sobre su compra por WhatsApp.
  • Un servicio que reciba el webhook y llame a la API de WhatsApp. Puede ser código propio o una herramienta como n8n.

¿Quieres probar mientras lees? Crea tu cuenta en Vectalk y envía el primer mensaje por la API oficial. Crear cuenta gratis →

Las plantillas

Acceso liberado

{
  "name": "acceso_liberado",
  "language": "es",
  "category": "UTILITY",
  "components": [
    {
      "type": "BODY",
      "text": "Hola, {{1}}. Tu pago de {{2}} fue aprobado y tu acceso ya está disponible. Ingresa con el correo {{3}} desde el botón de abajo.",
      "example": { "body_text": [["Paula", "Curso Ejemplo", "paula@email.com"]] }
    },
    {
      "type": "BUTTONS",
      "buttons": [
        {
          "type": "URL",
          "text": "Entrar al área de miembros",
          "url": "https://miembros.ejemplo.com/entrar/{{1}}",
          "example": ["https://miembros.ejemplo.com/entrar/a1b2c3"]
        }
      ]
    }
  ]
}

Es una confirmación de la compra que hizo el cliente, sin ofertas. No agregues «aprovecha también nuestro otro curso»: Meta indica que los mensajes de pedidos no pueden promocionar productos ni hacer upsell o cross-sell, y una plantilla que mezcla utilidad y marketing se clasifica como marketing. Consulta cómo clasifica Meta las plantillas.

Pago pendiente (PIX o boleto)

En Brasil, buena parte de las compras se paga con PIX (el sistema de pagos instantáneos del Banco Central, con código QR o código para copiar y pegar) o con boleto (un comprobante bancario con fecha de vencimiento, que se paga en el banco o en una app y cuya acreditación no es instantánea). Cuando la plataforma genera el pago y no se completa, un recordatorio suele ayudar.

{
  "name": "pago_pendiente",
  "language": "es",
  "category": "UTILITY",
  "components": [
    {
      "type": "BODY",
      "text": "Hola, {{1}}. Tu pedido de {{2}} está esperando el pago con {{3}}, con vencimiento el {{4}}. Si ya pagaste, puedes ignorar este aviso.",
      "example": { "body_text": [["Paula", "Curso Ejemplo", "boleto", "28/10/2026"]] }
    },
    {
      "type": "BUTTONS",
      "buttons": [
        {
          "type": "URL",
          "text": "Ver pago",
          "url": "https://pago.ejemplo.com/{{1}}",
          "example": ["https://pago.ejemplo.com/pedido123"]
        }
      ]
    }
  ]
}

Los propios ejemplos de utilidad de Meta incluyen recordatorios de pago. Lo que la convierte en marketing es la persuasión: «últimos cupos», «el precio va a subir», «asegúralo ya», un bono para quien pague hoy. Si quieres ese tono, crea una plantilla de marketing y envíala solo a quien tenga opt-in de marketing.

Código: del webhook a la plantilla

Un servicio en Node.js que recibe el webhook, valida el origen, traduce el evento de la plataforma a un evento propio y envía la plantilla correcta. Los nombres de eventos y campos cambian según la plataforma, por eso el código usa una capa de traducción.

import express from 'express';

const app = express();
app.use(express.json());

// Traduce los eventos de tu plataforma a eventos internos.
// Los nombres de la izquierda son ejemplos; usa los de la documentación de tu plataforma.
const EVENTOS = {
  'compra.aprobada': 'aprobada',
  'pix.generado': 'pendiente',
  'boleto.generado': 'pendiente',
  'compra.reembolsada': 'reembolsada',
};

app.post('/postback', async (req, res) => {
  if (req.get('x-token-plataforma') !== process.env.TOKEN_PLATAFORMA) {
    return res.sendStatus(401);
  }
  res.sendStatus(200);

  const p = req.body;
  const evento = EVENTOS[p.evento];
  if (!evento) return;

  const pedido = await guardarPedido(p); // idempotente: ignora repetidos
  if (pedido.yaProcesado(evento)) return;

  if (evento === 'aprobada') {
    const token = await liberarAcceso(pedido);
    await enviarPlantilla(pedido.telefono, 'acceso_liberado',
      [pedido.nombre, pedido.producto, pedido.email], token);
  }

  if (evento === 'pendiente') {
    await programar(pedido.id, '2h', async () => {
      if ((await buscarPedido(pedido.id)).estado !== 'pendiente') return;
      await enviarPlantilla(pedido.telefono, 'pago_pendiente',
        [pedido.nombre, pedido.producto, pedido.metodo, pedido.vencimiento], pedido.idPago);
    });
  }

  if (evento === 'reembolsada') await revocarAcceso(pedido);
});

async function enviarPlantilla(to, name, cuerpo, sufijoUrl) {
  return fetch('https://apis.vectalk.com.br/api/messages', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.VECTALK_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      messaging_product: 'whatsapp',
      to,
      type: 'template',
      template: {
        name,
        language: { code: 'es' },
        components: [
          { type: 'body', parameters: cuerpo.map((text) => ({ type: 'text', text })) },
          { type: 'button', sub_type: 'url', index: '0', parameters: [{ type: 'text', text: sufijoUrl }] },
        ],
      },
    }),
  });
}

Tres detalles que evitan dolores de cabeza:

  • Idempotencia. Las plataformas reenvían los webhooks cuando no reciben una respuesta rápida. Guarda el ID del pedido y el evento, y no envíes la misma plantilla dos veces.
  • Esperar antes del recordatorio. Un PIX generado puede pagarse minutos después. Esperar un intervalo y volver a revisar el estado evita cobrarle a quien ya pagó.
  • Validación del origen. Usa el token o la firma que ofrece tu plataforma. El encabezado del ejemplo es ilustrativo.

Soporte en la ventana de 24 horas

Cuando el alumno responde cualquier mensaje, se abre la ventana de atención de 24 horas, y puedes responder con texto libre, audio, video, PDF y botones sin una nueva plantilla. Las dudas típicas de un infoproducto (no me llegó el correo, olvidé la contraseña, dónde está la clase, quiero el certificado) encajan bien en un menú con botones o en un asistente automático con derivación a una persona. La política de WhatsApp Business exige caminos claros hacia la atención humana cuando hay automatización.

Para mensajes automáticos de bienvenida y fuera de horario, consulta bienvenida y ausencia en la API.

Lanzamientos, clases en vivo y avisos

El aviso de una clase en vivo para quien se inscribió, el recordatorio de un evento y el anuncio de apertura de ventas son casos distintos. Recordarle al inscrito la hora de la clase que reservó puede ser utilidad; anunciar que se abren las ventas es marketing. Consulta avisos de eventos: utilidad o marketing. Para campañas, usa opt-in de marketing y respeta el límite de mensajes del portafolio.

Opt-in y protección de datos

La política de WhatsApp Business exige que la persona te haya dado su número y su permiso para recibir mensajes de tu empresa, y que se respeten las solicitudes para dejar de recibirlos. En el checkout, un texto como «Recibiré mensajes sobre mi compra y mi acceso por WhatsApp» cubre los mensajes transaccionales. Para ofertas, pide un opt-in aparte. En Brasil, la LGPD (Ley General de Protección de Datos, Ley 13.709/2018) también se aplica al teléfono y al correo del comprador; revisa con tu abogado la base legal y el plazo de conservación. Este artículo no reemplaza asesoría legal. Consulta cómo armar una lista opt-in.

Cómo hacerlo con Vectalk

En Vectalk, creas las plantillas con POST /templates, las envías con POST /messages (type: "template", con botón de URL dinámica) y recibes las respuestas de los alumnos en el webhook registrado con POST /webhooks, en el mismo formato de Meta. Vectalk usa la Cloud API oficial y le paga a Meta por ti, así que no necesitas registrar una tarjeta en Meta. Consulta la documentación de plantillas y crea tu cuenta.

Preguntas frecuentes

¿Puedo enviar el acceso como texto libre en lugar de plantilla?

Solo si el comprador te escribió por WhatsApp en las últimas 24 horas. En la mayoría de las compras no lo hizo, así que el acceso tiene que ir por plantilla.

¿El recordatorio de boleto es utilidad o marketing?

Un recordatorio neutral del pago de un pedido que el cliente generó tiende a ser utilidad. Si tiene urgencia artificial, bonos o descuentos, pasa a ser marketing. Meta tiene la última palabra.

¿Y el carrito abandonado?

Meta clasifica los recordatorios de carrito como marketing. Usa una plantilla de marketing y envíala solo a quien dio su opt-in.

La plataforma envió el mismo webhook dos veces. ¿El alumno recibirá dos accesos?

Solo si tu sistema no trata los repetidos. Guarda el ID del pedido y el evento, e ignora lo que ya se procesó.

¿Necesito un número exclusivo para cada producto?

No es obligatorio. El número oficial de la marca puede encargarse del acceso y del soporte. Si tienes varias marcas, números separados ayudan con la organización y el nombre visible.


Fuentes oficiales consultadas el 25/10/2026: Pautas de categorías de plantillas, Plantillas de utilidad, Precios, Límites de mensajes, Política de mensajería de WhatsApp Business, Ley 13.709/2018 (LGPD), Documentación de la API de Vectalk.

Pon a funcionar el WhatsApp oficial de tu empresa

Crea tu cuenta, conecta tu número a la API oficial (puedes mantener la app con coexistencia) y empieza a atender y enviar mensajes.