logo
enes

Productos

Last update: 4 days ago by Irais Aguirre

Resumen para integración

  • URL base: https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services
  • Token: de administración, en el encabezado Authorization: Bearer {{admin-token}} (cómo generarlo)
  • Endpoints en esta página:
    • POST /v1/catalog/{{waba_id}}/{{catalog_id}}/items_batch: Gestionar productos por lote
    • POST /v1/catalog/{{waba_id}}/{{catalog_id}}/localized_items_batch: Gestionar productos localizados por lote
    • GET /v1/catalog/{{waba_id}}/{{catalog_id}}/check_batch_request_status/{{handle}}: Consultar estatus de petición por lote
    • GET /v1/catalog/{{waba_id}}/{{catalog_id}}/products: Listar productos

Crea, actualiza y elimina productos por lote (incluidos productos localizados por idioma y país), consulta el estatus de las peticiones por lote y lista los productos de un catálogo. Si la petición es correcta, todos los servicios responden con el código HTTP 200.

Gestionar productos por lote

Crea, actualiza o elimina productos de un catálogo en una sola petición. El procesamiento es asíncrono: usa los handles de la respuesta para consultar el estatus de la petición.

Petición

Petición de Gestionar productos por lote:

URLhttps://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/items_batch
MétodoPOST
Tipoapplication/json

Encabezados

Encabezados de Gestionar productos por lote:

NombreDescripciónTipoRequerimientos
Content-Typeapplication/jsonStringObligatorio
AuthorizationToken de administración. Consulta Generar Token de Autenticación.StringObligatorio

Parámetros

Parámetros de Gestionar productos por lote:

NombreDescripciónTipoRequerimientos
waba_idID de la cuenta de WhatsApp Business.StringObligatorio
catalog_idID del catálogo.StringObligatorio

Cuerpo

Campos del cuerpo de Gestionar productos por lote:

NombreDescripciónTipoRequerimientos
requestsOperaciones a realizar en el catálogo.Lista de objetos product requestObligatorio

Objeto product request

NombreDescripciónTipoRequerimientos
methodOperación a realizar. Los valores pueden ser:
  • CREATE
  • UPDATE
  • DELETE
Debe enviarse en mayúsculas.
StringObligatorio
retailer_idIdentificador único del producto en tu sistema (por ejemplo, su SKU). Es el valor que envías en productRetailerId en los mensajes de C-Commerce.String
  • Obligatorio.
  • Con DELETE, el producto debe existir en el catálogo.
dataInformación del producto. Con UPDATE, envía solo los campos que quieres cambiar.Objeto product data
  • Condicional.
  • Obligatorio si method es CREATE.
  • No es necesario con DELETE.

Objeto product data

Los campos marcados como obligatorios solo se validan cuando method es CREATE.

NombreDescripciónTipoRequerimientos
nameTítulo del producto.String
  • Obligatorio.
  • No puede estar vacío.
descriptionDescripción del producto.String
  • Obligatorio.
  • No puede estar vacío.
  • Máximo 9,999 caracteres.
availabilityDisponibilidad del producto. Los valores pueden ser:
  • in stock
  • out of stock
  • preorder
  • available for order
  • discontinued
StringObligatorio
conditionCondición del producto. Los valores pueden ser:
  • new
  • refurbished
  • used
StringObligatorio
pricePrecio del producto, por ejemplo, 150.00. Se envía a Meta junto con currency (por ejemplo, 150.00 MXN).String
  • Obligatorio.
  • Con UPDATE, envía también currency para que se actualice el precio.
currencyCódigo de moneda ISO 4217, por ejemplo, MXN o USD.String
  • Obligatorio.
  • Debe ser un código ISO 4217 válido.
image_urlURL de la imagen del producto.String
  • Obligatorio.
  • Debe ser una URL válida.
urlURL del sitio donde se puede comprar el producto.String
  • Obligatorio.
  • Debe ser una URL válida.
brandMarca del producto.StringOpcional
categoryCategoría de producto de Google. Acepta la ruta de la categoría o su ID, por ejemplo, Apparel & Accessories > Clothing > Shirts & Tops o 212. Consulta la taxonomía de Google.StringOpcional

Ejemplo

Ejemplo completo de Gestionar productos por lote:

curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/items_batch' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{admin-token}}' \
--data '{
"requests": [
{
"method": "CREATE",
"retailer_id": "CURSO_INGLES_001",
"data": {
"name": "Curso intensivo de inglés",
"description": "Clases en vivo de 3 horas los sábados.",
"availability": "in stock",
"condition": "new",
"price": "1000.00",
"currency": "MXN",
"image_url": "https://www.example.com/images/curso-ingles-001.png",
"url": "https://www.example.com/cursos/ingles-intensivo",
"brand": "Academia Ejemplo"
}
},
{
"method": "UPDATE",
"retailer_id": "CURSO_INGLES_002",
"data": {
"availability": "out of stock"
}
},
{
"method": "DELETE",
"retailer_id": "CURSO_INGLES_003"
}
]
}'

Respuesta

Respuesta de Gestionar productos por lote:

NombreDescripciónTipo
handlesIdentificadores de la petición. Úsalos para consultar su estatus.Lista de String
validation_statusErrores de validación por producto. Solo se incluye si Meta encontró errores.Lista de objetos validation status

Objeto validation status

NombreDescripciónTipo
retailer_idretailer_id del producto.String
errorsErrores encontrados en el producto.Lista de objetos validation error

Objeto validation error

NombreDescripciónTipo
messageDescripción del error.String
{
"handles": [
"AcxExampleHandle0001aBcDeFgHiJkLmNoPqRsTuVwXyZ"
]
}


Gestionar productos localizados por lote

Crea, actualiza o elimina la información localizada (por idioma o país) de productos que ya existen en el catálogo. El procesamiento es asíncrono: usa los handles de la respuesta para consultar el estatus de la petición.

Petición

Petición de Gestionar productos localizados por lote:

URLhttps://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/localized_items_batch
MétodoPOST
Tipoapplication/json

Encabezados

Encabezados de Gestionar productos localizados por lote:

NombreDescripciónTipoRequerimientos
Content-Typeapplication/jsonStringObligatorio
AuthorizationToken de administración. Consulta Generar Token de Autenticación.StringObligatorio

Parámetros

Parámetros de Gestionar productos localizados por lote:

NombreDescripciónTipoRequerimientos
waba_idID de la cuenta de WhatsApp Business.StringObligatorio
catalog_idID del catálogo.StringObligatorio

Cuerpo

Campos del cuerpo de Gestionar productos localizados por lote:

NombreDescripciónTipoRequerimientos
item_typeTipo de artículo. El valor debe ser PRODUCT_ITEM.StringObligatorio
requestsOperaciones a realizar en el catálogo.Lista de objetos localized requestObligatorio

Objeto localized request

NombreDescripciónTipoRequerimientos
methodOperación a realizar. Los valores pueden ser:
  • CREATE
  • UPDATE
  • DELETE
Debe enviarse en mayúsculas.
StringObligatorio
localizationIdioma o país al que aplica la información.Objeto localizationObligatorio
dataInformación localizada del producto.Objeto localized dataObligatorio

Objeto localization

NombreDescripciónTipoRequerimientos
typeTipo de localización. Los valores pueden ser:
  • LANGUAGE
  • COUNTRY
StringObligatorio
valueIdioma o país. Por ejemplo, en_XX o fr_XX para idioma, y US o FR para país.StringObligatorio

Objeto localized data

Envía solo los campos que cambian para la localización indicada.

NombreDescripciónTipoRequerimientos
idretailer_id del producto.StringObligatorio
titleTítulo del producto.StringOpcional
descriptionDescripción del producto.StringOpcional
availabilityDisponibilidad del producto en el país, por ejemplo, in stock.StringOpcional
pricePrecio y moneda, por ejemplo, 9.99 USD.StringOpcional
sale_price_effective_datePeriodo de la oferta.StringOpcional
linkURL del sitio donde se puede comprar el producto.StringOpcional
brandMarca del producto.StringOpcional
colorColor del producto.StringOpcional
sizeTalla o tamaño del producto.StringOpcional
materialMaterial del producto.StringOpcional
patternPatrón o estampado del producto.StringOpcional

Ejemplo

Ejemplo completo de Gestionar productos localizados por lote:

curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/localized_items_batch' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{admin-token}}' \
--data '{
"item_type": "PRODUCT_ITEM",
"requests": [
{
"method": "CREATE",
"localization": {
"type": "LANGUAGE",
"value": "en_XX"
},
"data": {
"id": "CURSO_INGLES_001",
"title": "Intensive English course",
"description": "Live 3-hour classes on Saturdays."
}
},
{
"method": "CREATE",
"localization": {
"type": "COUNTRY",
"value": "US"
},
"data": {
"id": "CURSO_INGLES_001",
"availability": "in stock",
"price": "59.99 USD"
}
}
]
}'

Respuesta

Respuesta de Gestionar productos localizados por lote:

NombreDescripciónTipo
handlesIdentificadores de la petición. Úsalos para consultar su estatus.Lista de String
{
"handles": [
"AcxExampleHandle0002aBcDeFgHiJkLmNoPqRsTuVwXyZ"
]
}


Consultar estatus de petición por lote

Consulta el resultado de una petición de productos por lote o de productos localizados por lote.

Petición

Petición de Consultar estatus de petición por lote:

URLhttps://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/check_batch_request_status/{{handle}}
MétodoGET

Encabezados

Encabezados de Consultar estatus de petición por lote:

NombreDescripciónTipoRequerimientos
AuthorizationToken de administración. Consulta Generar Token de Autenticación.StringObligatorio

Parámetros

Parámetros de Consultar estatus de petición por lote:

NombreDescripciónTipoRequerimientos
waba_idID de la cuenta de WhatsApp Business.StringObligatorio
catalog_idID del catálogo.StringObligatorio
handleUno de los handles devueltos por la petición por lote.StringObligatorio

Ejemplo

Ejemplo completo de Consultar estatus de petición por lote:

curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/check_batch_request_status/{{handle}}' \
--header 'Authorization: Bearer {{admin-token}}'

Respuesta

Respuesta de Consultar estatus de petición por lote:

NombreDescripciónTipo
dataEstatus de la petición.Lista de objetos batch status

Objeto batch status

NombreDescripciónTipo
handleIdentificador de la petición.String
statusEstatus de la petición, por ejemplo, finished.String
errors_total_countNúmero total de errores.Number
errorsErrores encontrados al procesar la petición.Lista de objetos batch error

Objeto batch error

NombreDescripciónTipo
linePosición del elemento en la lista requests.Number
idretailer_id del producto.String
messageDescripción del error.String

Petición sin errores:

{
"data": [
{
"handle": "AcxExampleHandle0001aBcDeFgHiJkLmNoPqRsTuVwXyZ",
"status": "finished",
"errors_total_count": 0,
"errors": []
}
]
}

Petición con errores:

{
"data": [
{
"handle": "AcxExampleHandle0002aBcDeFgHiJkLmNoPqRsTuVwXyZ",
"status": "finished",
"errors_total_count": 1,
"errors": [
{
"line": 0,
"id": "CURSO_INGLES_001",
"message": "Valor no válido: El valor pasado en la posición 0 (id=CURSO_INGLES_001) no es válido."
}
]
}
]
}


Listar productos

Petición

Petición de Listar productos:

URLhttps://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/products
MétodoGET

Encabezados

Encabezados de Listar productos:

NombreDescripciónTipoRequerimientos
AuthorizationToken de administración. Consulta Generar Token de Autenticación.StringObligatorio

Parámetros

Parámetros de Listar productos:

NombreDescripciónTipoRequerimientos
waba_idID de la cuenta de WhatsApp Business.StringObligatorio
catalog_idID del catálogo.StringObligatorio
return_only_approved_productsSi es true, solo se devuelven los productos aprobados por Meta. Se envía como parámetro de consulta.Boolean
  • Opcional.
  • El valor por defecto es false.

Ejemplo

Ejemplo completo de Listar productos:

curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/products?return_only_approved_products=true' \
--header 'Authorization: Bearer {{admin-token}}'

Respuesta

Respuesta de Listar productos:

El servicio responde con una lista de productos.

NombreDescripciónTipo
idID del producto en Meta.String
retailerIdIdentificador del producto en tu sistema.String
nameTítulo del producto.String
descriptionDescripción del producto.String
availabilityDisponibilidad del producto.String
conditionCondición del producto.String
pricePrecio con formato, por ejemplo, $1,000.00.String
currencyCódigo de moneda ISO 4217.String
inventoryCantidad de unidades en inventario.Integer
imageUrlURL de la imagen del producto.String
urlURL del sitio donde se puede comprar el producto.String
[
{
"id": "7001234567890123",
"name": "Curso intensivo de inglés",
"retailerId": "CURSO_INGLES_001",
"imageUrl": "https://www.example.com/images/curso-ingles-001.png",
"inventory": 100,
"availability": "in stock",
"price": "$1,000.00",
"currency": "MXN",
"condition": "new",
"description": "Clases en vivo de 3 horas los sábados.",
"url": "https://www.example.com/cursos/ingles-intensivo"
}
]

Anterior
Vincular catálogos
Siguiente
Feeds de productos