Actualizado el 25/10/2026
Para usar un catálogo en la API de WhatsApp, cargas los productos en un catálogo de Meta (desde Commerce Manager o con la API de Commerce), lo conectas a la cuenta de WhatsApp Business y envías mensajes interactivos que muestran los artículos: el catálogo completo, un solo producto o hasta 30 productos organizados en secciones. El cliente navega, arma el carrito dentro de WhatsApp y envía el pedido, que llega a tu webhook como mensaje de tipo order.
Esta guía muestra la configuración, los formatos de mensaje con ejemplos de payload, el manejo del pedido y los límites que indica la documentación oficial.
Cómo funciona el comercio con catálogo
La descripción general de catálogos de Meta divide el proceso en cuatro etapas:
- Inventario: los productos se cargan en un catálogo de Meta con nombre, descripción, precio, imágenes y disponibilidad. El catálogo acepta productos físicos o digitales y también servicios.
- Configuración de comercio: por número, defines si el carrito está activo y si se muestra el ícono de tienda.
- Envío: mensajes de catálogo, de producto único, multiproducto o carrusel.
- Respuesta: las preguntas y los pedidos llegan por el webhook de mensajes.
Paso 1: crear y conectar el catálogo
Si la empresa ya tiene un catálogo en Meta (usado en anuncios o en Instagram, por ejemplo), puede reutilizarlo. Si no, hay dos caminos, según Upload inventory:
- crearlo en Commerce Manager, a mano, con una planilla o con un feed;
- crearlo con la API de Commerce de Meta, útil cuando el stock viene de un ERP o de una plataforma de e-commerce.
Después, conecta el catálogo a la cuenta de WhatsApp en el Administrador de WhatsApp, siguiendo la ayuda de Meta para conectar catálogos.
Dos reglas importantes:
- Un catálogo por cuenta de WhatsApp. El mismo catálogo sirve para todos los números de esa cuenta.
- Revisión automática. WhatsApp revisa los artículos agregados al catálogo conectado. Los que infringen la política de comercio se marcan, y la apelación se hace en Commerce Manager.
El campo que une todo es el SKU del producto, que la API llama product_retailer_id y Commerce Manager muestra como ID de contenido. Usa el mismo SKU de tu sistema para no necesitar una tabla de equivalencias.
Paso 2: carrito y tienda por número
La configuración de comercio está en el endpoint whatsapp_commerce_settings de cada número. Según Set commerce settings, por defecto el carrito está activo y la tienda oculta.
# Activar el carrito y mostrar el ícono de tienda
curl -X POST "https://graph.facebook.com/vXX.X/PHONE_NUMBER_ID/whatsapp_commerce_settings?is_cart_enabled=true&is_catalog_visible=true" \
-H "Authorization: Bearer TOKEN"
| Configuración | Por defecto | Efecto |
|---|---|---|
is_cart_enabled | true | Muestra los botones para agregar al carrito en el chat, el catálogo y los detalles del producto |
is_catalog_visible | false | Muestra el ícono de tienda en el chat y la vista previa del catálogo en el perfil de la empresa |
Atención: si la tienda está oculta, los enlaces wa.me al catálogo y el botón Ver catálogo muestran un aviso de enlace no válido.
Paso 3: elegir el formato del mensaje
| Formato | Qué muestra | Tipo en la API | Fuera de la ventana de 24 h |
|---|---|---|---|
| Mensaje de catálogo | Imagen de un producto, texto y botón Ver catálogo | catalog_message | Plantilla de catálogo |
| Producto único | Un producto con imagen, título, precio y botón Ver | product | Plantilla de producto único |
| Multiproducto | Hasta 30 productos en secciones | product_list | Plantilla multiproducto (categoría marketing, hasta 10 secciones) |
| Carrusel de productos | De 2 a 10 tarjetas de producto con desplazamiento horizontal | carousel | Plantilla de carrusel |
Los mensajes interactivos de producto no necesitan aprobación previa, porque se arman en el momento con precio y stock actuales. Pero Meta aclara que los mensajes de producto único y multiproducto no se pueden enviar como notificación: solo dentro de una conversación en curso, es decir, en la ventana de atención de 24 horas. Para iniciar contacto, usa la plantilla correspondiente.
Producto único
{
"messaging_product": "whatsapp",
"to": "5215512345678",
"type": "interactive",
"interactive": {
"type": "product",
"body": { "text": "Este es el modelo que preguntaste." },
"footer": { "text": "Envío gratis en compras mayores" },
"action": {
"catalog_id": "CATALOG_ID",
"product_retailer_id": "TENIS-AZUL-27"
}
}
}
Multiproducto
En el multiproducto, el encabezado de texto es obligatorio, y cada sección tiene un título y una lista de SKU.
{
"messaging_product": "whatsapp",
"to": "5215512345678",
"type": "interactive",
"interactive": {
"type": "product_list",
"header": { "type": "text", "text": "Sugerencias para ti" },
"body": { "text": "Elegí algunos artículos de la nueva colección." },
"action": {
"catalog_id": "CATALOG_ID",
"sections": [
{
"title": "Tenis",
"product_items": [
{ "product_retailer_id": "TENIS-AZUL-27" },
{ "product_retailer_id": "TENIS-NEGRO-27" }
]
},
{
"title": "Calcetines",
"product_items": [
{ "product_retailer_id": "CALCETIN-KIT-3" }
]
}
]
}
}
}
Si ninguno de los SKU existe en el catálogo, la API devuelve un error y no envía el mensaje. Si al menos uno existe, el mensaje sale, los SKU sin coincidencia se descartan y recibes un error que pide actualizar el catálogo. Conviene validar la lista contra el stock antes de enviar.
Mensaje de catálogo
{
"messaging_product": "whatsapp",
"to": "5215512345678",
"type": "interactive",
"interactive": {
"type": "catalog_message",
"body": { "text": "Mira todos los productos y arma tu pedido aquí mismo." },
"action": {
"name": "catalog_message",
"parameters": { "thumbnail_product_retailer_id": "TENIS-AZUL-27" }
}
}
}
El thumbnail_product_retailer_id define la imagen del encabezado. Sin él, WhatsApp usa la imagen del primer artículo del catálogo.
Paso 4: recibir el carrito
Cuando el cliente envía el carrito, llega al webhook un mensaje de tipo order, descrito en la referencia del webhook de pedidos:
{
"from": "5215512345678",
"id": "wamid.HBgL...",
"timestamp": "1761400000",
"type": "order",
"order": {
"catalog_id": "CATALOG_ID",
"text": "¿Puede llegar mañana?",
"product_items": [
{ "product_retailer_id": "TENIS-AZUL-27", "quantity": 1, "item_price": 1499.0, "currency": "MXN" },
{ "product_retailer_id": "CALCETIN-KIT-3", "quantity": 2, "item_price": 199.0, "currency": "MXN" }
]
}
}
Qué hacer con él:
- Recalcular el total en tu sistema a partir del SKU y el precio actual. No tomes el
item_pricedel webhook como verdad para cobrar sin verificarlo. - Responder en la misma conversación con el resumen, el envío y las formas de pago. La ventana de atención está abierta, porque el pedido es un mensaje del cliente.
- Guardar el
iddel mensaje para no procesar el mismo pedido dos veces si el webhook se reenvía.
Si el cliente toca Enviar mensaje dentro de un producto, llega un mensaje de texto con el objeto context que indica qué producto estaba viendo. Úsalo para responder sin preguntar «¿cuál artículo?».
Para empresas en Brasil, Meta también documenta una API de pagos con mensajes order_details y order_status, que permiten cobrar dentro de la conversación con PIX (el sistema de pagos instantáneos de Brasil), boleto (un comprobante de pago bancario) o enlace de pago.
Reglas del carrito que afectan la atención
Según la documentación oficial:
- hay un carrito por conversación y por dispositivo; no se sincroniza entre los dispositivos del cliente;
- el carrito no vence hasta que se envía; una vez enviado, no se puede editar y el cliente tiene que mandar otro;
- cada artículo admite hasta 99 unidades, sin límite de artículos distintos;
- la empresa no puede enviar un carrito al cliente;
- si un producto deja de estar disponible, sale del carrito y el cliente ve un aviso de que hubo cambios;
- con la Cloud API, el ícono del carrito no aparece en el encabezado de la conversación, a diferencia de la app WhatsApp Business.
Para equipos con varios agentes, esto significa que el pedido solo existe en tu sistema cuando llega el webhook order. El artículo sobre delivery y restaurantes muestra cómo encadenar el pedido con mensajes de estado, y el de recuperación de carritos trata los recordatorios.
Costos
Los mensajes de producto siguen el cobro normal. Los mensajes interactivos enviados dentro de la ventana de atención son mensajes de servicio: cada número tiene 1.000 entregados gratis por mes y, a partir de ahí, cada mensaje se cobra. Las plantillas de catálogo, de producto y multiproducto se cobran según la categoría de la plantilla; la plantilla multiproducto, por ejemplo, siempre es de marketing. El pedido que envía el cliente no se cobra.
Cómo funciona con Vectalk
En Vectalk, los mensajes de producto usan el mismo payload de Meta en POST /api/messages: la página Enviar Producto / Catálogo trae ejemplos de producto único (product), multiproducto (product_list) y mensaje de catálogo (catalog_message). La configuración de carrito y tienda se puede leer y cambiar desde la propia API, con is_cart_enabled e is_catalog_visible, en los endpoints Obtener y Actualizar configuración de comercio, con token de instancia. El pedido llega a los webhooks registrados como mensaje order, con catalog_id y product_items, según la documentación de webhooks.
Para empezar, crea tu cuenta en apps.vectalk.com.br/register. Para enviar tu primer mensaje desde código, ver cómo enviar un mensaje por la API de WhatsApp.
Preguntas frecuentes
¿Puedo usar el mismo catálogo de Instagram y de los anuncios?
Sí. Si la empresa ya tiene un catálogo en Meta, la indicación oficial es usarlo y conectarlo a la cuenta de WhatsApp.
¿Cuántos productos caben en un mensaje multiproducto?
Hasta 30 productos. En la plantilla multiproducto se pueden organizar en hasta 10 secciones.
¿Puedo enviar un mensaje de producto a alguien que no me escribió hoy?
No como mensaje interactivo: solo se puede enviar dentro de una conversación en curso. Para iniciar contacto, usa una plantilla de catálogo, de producto único, multiproducto o de carrusel.
¿El cliente puede pagar dentro de WhatsApp?
El carrito envía el pedido, no el pago. Para empresas en Brasil, Meta documenta una API de pagos con PIX, boleto y enlace de pago mediante mensajes order_details. En otros casos, responde al pedido con el enlace de tu checkout o los datos de pago.
¿Los mensajes de producto necesitan aprobación?
Los mensajes interactivos de producto no. Las plantillas de catálogo y de productos pasan por la revisión normal de plantillas.
Fuentes oficiales consultadas el 25/10/2026: Catalogs overview, Upload inventory, Set commerce settings, Share products, Single-product messages, Multi-product messages, Multi-product template messages, Catalog messages, Product carousel messages, Receive responses, Order messages webhook, WhatsApp orders (Brasil), Precios de la plataforma de WhatsApp Business, Ayuda de Meta: conectar un catálogo, Documentación de Vectalk: Enviar Producto / Catálogo, Documentación de Vectalk: configuración de comercio.
