Feeds de productos
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}}/product_feeds: Programar carga de productos por archivoGET /v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/uploads: Listar cargas de un product feedGET /v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors: Consultar errores de una cargaPOST /v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/error_report: Solicitar reporte de erroresGET /v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors/download: Descargar reporte de errores
Programa la carga peri贸dica de productos desde un archivo (product feed), consulta sus cargas y revisa o descarga los errores de cada carga. Si la petici贸n es correcta, todos los servicios responden con el c贸digo HTTP 200.
Programar carga de productos por archivo
Crea un product feed: Meta descarga peri贸dicamente un archivo con productos desde una URL y lo procesa seg煤n la programaci贸n que indiques.
- Con
schedule, el archivo reemplaza el contenido del cat谩logo: se crean o actualizan los productos del archivo y se eliminan los que no aparecen en 茅l. - Con
update_schedule, solo se crean o actualizan los productos del archivo. - Con
override_type, el archivo contiene informaci贸n localizada (idioma, pa铆s o ambos) de productos que ya existen en el cat谩logo.
Petici贸n
Petici贸n de Programar carga de productos por archivo:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/product_feeds |
| M茅todo | POST |
| Tipo | application/json |
Encabezados
Encabezados de Programar carga de productos por archivo:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| Content-Type | application/json | String | Obligatorio |
| Authorization | Token de administraci贸n. Consulta Generar Token de Autenticaci贸n. | String | Obligatorio |
Par谩metros
Par谩metros de Programar carga de productos por archivo:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| catalog_id | ID del cat谩logo. | String | Obligatorio |
Cuerpo
Campos del cuerpo de Programar carga de productos por archivo:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| name | Nombre descriptivo del product feed. | String | Obligatorio |
| schedule | Programaci贸n para reemplazar el contenido del cat谩logo con el archivo. | Objeto schedule | Condicional. Obligatorio si no se env铆a update_schedule. |
| update_schedule | Programaci贸n para crear o actualizar productos con el archivo. | Objeto schedule | Condicional. Obligatorio si no se env铆a schedule. |
| override_type | Tipo de informaci贸n localizada que contiene el archivo. Los valores pueden ser:
| String | Opcional. Solo para archivos con informaci贸n localizada. |
Objeto schedule
Se usa tanto en schedule como en update_schedule.
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| interval | Frecuencia con la que se procesa el archivo. Los valores pueden ser:
| String | Obligatorio |
| url | URL del archivo con los productos. | String | Obligatorio |
| hour | Hora en que se procesa el archivo, de 0 a 23. | String | Opcional |
| minute | Minuto en que se procesa el archivo, de 0 a 59. | String | Opcional |
| day_of_week | D铆a en que se procesa el archivo. Los valores pueden ser:
| String | Opcional. Se usa con interval WEEKLY. |
| timezone | Zona horaria de la programaci贸n, por ejemplo, America/Mexico_City. | String | Opcional |
| username | Usuario para descargar el archivo, si la URL requiere credenciales. | String | Opcional |
| password | Contrase帽a para descargar el archivo, si la URL requiere credenciales. | String | Opcional |
Ejemplo
Ejemplo completo de Programar carga de productos por archivo:
Reemplazar el contenido del cat谩logo una vez al d铆a:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/product_feeds' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "Productos_reemplazo_diario","schedule": {"interval": "DAILY","url": "https://www.example.com/feeds/productos.csv","hour": "13","minute": "5","timezone": "America/Mexico_City"}}'
Crear o actualizar productos cada hora:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/product_feeds' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "Productos_actualizacion_cada_hora","update_schedule": {"interval": "HOURLY","url": "https://www.example.com/feeds/productos-actualizados.csv","minute": "10","timezone": "America/Mexico_City"}}'
Cargar informaci贸n localizada por idioma y pa铆s:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/product_feeds' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "Productos_localizados_diario","override_type": "language_and_country","schedule": {"interval": "DAILY","url": "https://www.example.com/feeds/productos-localizados.csv","hour": "14","timezone": "America/Mexico_City"}}'
Respuesta
Respuesta de Programar carga de productos por archivo:
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| id | ID del product feed creado. | String |
{"id": "987654321098765"}
Listar cargas de un product feed
Devuelve las cargas (upload sessions) de un product feed, ordenadas por fecha de inicio.
Petici贸n
Petici贸n de Listar cargas de un product feed:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/uploads |
| M茅todo | GET |
Encabezados
Encabezados de Listar cargas de un product feed:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| Authorization | Token de administraci贸n. Consulta Generar Token de Autenticaci贸n. | String | Obligatorio |
Par谩metros
Par谩metros de Listar cargas de un product feed:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| catalog_id | ID del cat谩logo. | String | Obligatorio |
| product_feed_id | ID devuelto por el servicio Programar carga de productos por archivo. | String | Obligatorio |
Ejemplo
Ejemplo completo de Listar cargas de un product feed:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/uploads' \--header 'Authorization: Bearer {{admin-token}}'
Respuesta
Respuesta de Listar cargas de un product feed:
El servicio responde con una lista de cargas.
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| id | ID de la carga (upload session). | String |
| startTime | Fecha y hora de inicio de la carga. | String |
| endTime | Fecha y hora de fin de la carga. | String |
[{"id": "112233445566778","startTime": "2026-11-02T18:53:25+0000","endTime": "2026-11-02T19:00:34+0000"},{"id": "112233445566779","startTime": "2026-11-03T18:50:48+0000","endTime": "2026-11-03T19:00:24+0000"}]
Consultar errores de una carga
Devuelve los errores que Meta encontr贸 al procesar una carga de un product feed.
Petici贸n
Petici贸n de Consultar errores de una carga:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors |
| M茅todo | GET |
Encabezados
Encabezados de Consultar errores de una carga:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| Authorization | Token de administraci贸n. Consulta Generar Token de Autenticaci贸n. | String | Obligatorio |
Par谩metros
Par谩metros de Consultar errores de una carga:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| catalog_id | ID del cat谩logo. | String | Obligatorio |
| product_feed_id | ID del product feed. | String | Obligatorio |
| upload_session_id | ID de la carga, devuelto por el servicio Listar cargas de un product feed. | String | Obligatorio |
Ejemplo
Ejemplo completo de Consultar errores de una carga:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors' \--header 'Authorization: Bearer {{admin-token}}'
Respuesta
Respuesta de Consultar errores de una carga:
Objeto upload error
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| id | ID del error. | String |
| summary | Resumen del error. | String |
| description | Descripci贸n detallada del error. | String |
| severity | Severidad del error, por ejemplo, fatal o warning. | String |
| affected_surfaces | Canales afectados por el error. | Lista de String |
| samples | Ejemplos de filas del archivo con el error. | Objeto |
Objeto samples
Objeto sample
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| id | ID de la fila. | String |
| row_number | N煤mero de fila en el archivo. | Number |
| retailer_id | retailer_id del producto. | String |
Objeto paging
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| cursors | Cursores before y after para paginar los resultados. | Objeto | Opcional |
| next | URL para obtener la siguiente p谩gina de resultados. | String | Opcional |
| previous | URL para obtener la p谩gina anterior de resultados. | String | Opcional |
{"data": [{"id": "556677889900112","summary": "Falta el precio","description": "Agrega un precio a tus productos.","severity": "fatal","affected_surfaces": ["Dynamic Ads","Shops"],"samples": {"data": [{"id": "556677889900113","row_number": 3,"retailer_id": "CURSO_INGLES_004"}]}}],"paging": {"cursors": {"before": "QVFIUjExampleBefore","after": "QVFIUjExampleAfter"}}}
Solicitar reporte de errores
Pide a Meta que genere un archivo con los errores de una carga. Cuando est茅 listo, desc谩rgalo con el servicio Descargar reporte de errores.
Petici贸n
Petici贸n de Solicitar reporte de errores:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/error_report |
| M茅todo | POST |
Encabezados
Encabezados de Solicitar reporte de errores:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| Authorization | Token de administraci贸n. Consulta Generar Token de Autenticaci贸n. | String | Obligatorio |
Par谩metros
Par谩metros de Solicitar reporte de errores:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| catalog_id | ID del cat谩logo. | String | Obligatorio |
| product_feed_id | ID del product feed. | String | Obligatorio |
| upload_session_id | ID de la carga. | String | Obligatorio |
Ejemplo
Ejemplo completo de Solicitar reporte de errores:
curl --location --request POST 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/error_report' \--header 'Authorization: Bearer {{admin-token}}'
Respuesta
Respuesta de Solicitar reporte de errores:
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| success | Indica si la solicitud fue aceptada. | Boolean |
{"success": true}
Descargar reporte de errores
Devuelve el estatus del reporte de errores de una carga y, cuando ya est谩 generado, la URL para descargarlo.
Petici贸n
Petici贸n de Descargar reporte de errores:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors/download |
| M茅todo | GET |
Encabezados
Encabezados de Descargar reporte de errores:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| Authorization | Token de administraci贸n. Consulta Generar Token de Autenticaci贸n. | String | Obligatorio |
Par谩metros
Par谩metros de Descargar reporte de errores:
| Nombre | Descripci贸n | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| catalog_id | ID del cat谩logo. | String | Obligatorio |
| product_feed_id | ID del product feed. | String | Obligatorio |
| upload_session_id | ID de la carga. | String | Obligatorio |
Ejemplo
Ejemplo completo de Descargar reporte de errores:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/catalog/{{waba_id}}/{{catalog_id}}/{{product_feed_id}}/{{upload_session_id}}/errors/download' \--header 'Authorization: Bearer {{admin-token}}'
Respuesta
Respuesta de Descargar reporte de errores:
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| id | ID de la carga. | String |
| errorReport | Estatus del reporte de errores. | Objeto |
Objeto error report
| Nombre | Descripci贸n | Tipo |
|---|---|---|
| reportStatus | Estatus del reporte. Los valores pueden ser:
| String |
| fileHandle | URL para descargar el archivo de errores. Solo se incluye cuando el reporte est谩 listo. | String |
Reporte listo:
{"id": "112233445566778","errorReport": {"reportStatus": "WRITE_FINISHED","fileHandle": "https://www.example.com/reports/errores-carga-112233445566778.csv"}}
Reporte no solicitado:
{"id": "112233445566779","errorReport": {"reportStatus": "NOT_REQUESTED"}}
