Guía
Programar publicaciones (UTC)
Mismo flujo que el botón “Programar publicación” del dashboard, vía API: en lugar de publicar al toque, el job queda en estado scheduled y se dispara a la hora indicada.
El campo scheduled_for va en el body del POST /v1/products (o del atajo POST /v1/products/test/promote). El formato es estricto:
json
{
"items": [{ "sku": "B003H03SDQ", "auto_categorize": true }],
"scheduled_for": "2026-06-10T15:00"
}🕒 Toda la programación es UTC.
"2026-06-10T15:00" significa "10 de junio a las 15:00 UTC" — que en hora Colombia (UTC-5) son las 10:00 AM. Si su sistema trabaja en hora local, convertilo a UTC antes de mandar. No le pongas Z ni offset al string, la API ya sabe que es UTC.Todos devuelven 422 E_PRODUCT_INVALID_BODY:
Lo que mandanPor qué falla
"2026-06-10T15:00:00"Tiene segundos. El formato es sin segundos."2026-06-10T15:00Z"No le pongas la Z, ya es UTC implícito."2026-06-10T15:00-05:00"No le pongas offset, todo es UTC."2026-06-10 15:00"Tiene espacio en vez de T."2026-06-10"Falta la hora (date-only no se acepta).1717000000Tiene que ser string, no número.- →Mínimo 5 minutos en el futuro respecto al UTC actual del servidor.
- →Máximo 30 días en el futuro.
¿Cómo convierto mi hora local a UTC del lado cliente?
Snippets de los lenguajes más comunes (convertir "10 jun 10:00 AM Colombia" → string UTC para la API):
javascript
// JavaScript / Node
const local = new Date('2026-06-10T10:00:00-05:00');
const scheduled_for = local.toISOString().slice(0, 16);
// → "2026-06-10T15:00"python
# Python
from datetime import datetime, timezone, timedelta
local = datetime(2026, 6, 10, 10, 0, tzinfo=timezone(timedelta(hours=-5)))
scheduled_for = local.astimezone(timezone.utc).strftime('%Y-%m-%dT%H:%M')
# → "2026-06-10T15:00"