curl -X POST "https://beta.api-iobot-desarrollo.com/catalogs/orders/create" \
-H "Content-Type: application/json" \
-H "x-api-key: TU_APP_KEY" \
-d '{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}'
Método: POST
URL: https://beta.api-iobot-desarrollo.com/catalogs/orders/create
Headers
Content-Type application/json
x-api-key TU_APP_KEY
Body (raw JSON)
{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}
{
"data": {
"id": 272993,
"chat_id": 252037,
"empresa_id": 92,
"status": 0,
"shipment_method": "delivery",
"payment_method": "cash",
"raw_adress": "Col. Las Flores, casa 12",
"zone_id": 12,
"lat": 14.0723,
"lng": -87.1921,
"type": "wa",
"soporte_id": null,
"sucursal_id": 4,
"schedule_at": null,
"createdAt": "2026-09-18T20:15:00.000Z",
"updatedAt": "2026-09-18T20:15:00.000Z"
}
}
{
"message": "El chat tiene que tener el bot liberado o tener un ticket."
}
{
"message": "Zona es requerida"
}
{
"message": "Invalid API key"
}
{
"message": "Internal server error"
}
Ordenes
Crear una Orden
Crea una orden desde cero a partir de un chat
POST
/
catalogs
/
orders
/
create
curl -X POST "https://beta.api-iobot-desarrollo.com/catalogs/orders/create" \
-H "Content-Type: application/json" \
-H "x-api-key: TU_APP_KEY" \
-d '{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}'
Método: POST
URL: https://beta.api-iobot-desarrollo.com/catalogs/orders/create
Headers
Content-Type application/json
x-api-key TU_APP_KEY
Body (raw JSON)
{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}
{
"data": {
"id": 272993,
"chat_id": 252037,
"empresa_id": 92,
"status": 0,
"shipment_method": "delivery",
"payment_method": "cash",
"raw_adress": "Col. Las Flores, casa 12",
"zone_id": 12,
"lat": 14.0723,
"lng": -87.1921,
"type": "wa",
"soporte_id": null,
"sucursal_id": 4,
"schedule_at": null,
"createdAt": "2026-09-18T20:15:00.000Z",
"updatedAt": "2026-09-18T20:15:00.000Z"
}
}
{
"message": "El chat tiene que tener el bot liberado o tener un ticket."
}
{
"message": "Zona es requerida"
}
{
"message": "Invalid API key"
}
{
"message": "Internal server error"
}
Crea una orden nueva asociada a un chat, la liga a una zona y sucursal (si aplica) y notifica el cambio en tiempo real.
Precondición para
type: "wa": el chat debe tener status en "proceso" o "pendiente" (bot liberado a un agente o con ticket activo). Este endpoint no cambia ese status — lo valida contra el valor actual del chat en base de datos. Si el chat sigue en flujo de bot automático (status: "bot"), primero hay que escalarlo a un agente, por ejemplo con Crear Ticket como Business. Para type: "app", "web" o "call" no aplica esta validación.Autenticación
Requiere el encabezadox-api-key con el App Key del negocio. Consulta Autenticación.
Body
number
required
ID del chat sobre el que se crea la orden.
number
required
ID del negocio dueño de la orden.
string
required
Canal/origen de la orden (
wa, app, web, call, etc.). Determina reglas especiales de validación y el canal usado para notificar el cambio en tiempo real.string
Método de entrega (
delivery, pickup).string
Método de pago.
string
Indicación adicional para la entrega.
string
Dirección de entrega, en texto libre. Se guarda como
raw_adress.number
ID de la zona de entrega. Requerido si
type es "wa". Determina también la sucursal final de la orden.number
Latitud de la ubicación de entrega.
number
Longitud de la ubicación de entrega.
number
ID del agente de soporte asignado a la orden (
soporte_id).number
ID de sucursal sugerido. Si se envía
zoneId y la zona tiene una sucursal asociada, este valor es sobrescrito (ver advertencia abajo).string
Fecha/hora programada para la orden. También se acepta como
schedule_at; si se envían ambos, scheduleAt tiene prioridad.Comportamiento
- Busca el chat (
chatId). - Si
type === "wa":- Valida que
chat.statussea"proceso"o"pendiente"; si no, responde400(“El chat tiene que tener el bot liberado o tener un ticket.”). - Exige
zoneId; si falta, responde400(“Zona es requerida”).
- Valida que
- Si se envía
zoneId, busca la zona (con susucursal) y registra el eventoselected_zoneenStatsWaEcommerce. - Crea la orden con
status: 0, usandolocation_picked= nombre de la sucursal de la zona (si hay zona). - Espera ~1 segundo, vuelve a cargar la orden con su zona y sobrescribe
sucursal_idcon la sucursal de la zona (zona.sucursal_id). - Guarda la última ubicación del usuario (
raw_address,lat,lng,zoneId) enchat.extraData.userLocation. - Registra el evento
order_createdenStatsWaEcommerce. - Si
type !== "call", asocia la orden al chat (chat.orderId = orderCreated.id). - Emite un evento en tiempo real: canal Soketi/Pusher si
typeesapp/web, canal estándar para el resto. - Si
type === "call", además crea un registro de auditoría enLogsInvoices(call_center_order_created).
El
sucursalId que envíes en el body puede ser sobrescrito silenciosamente: si la orden queda asociada a una zoneId con sucursal configurada, la sucursal final de la orden es la de esa zona, no la que enviaste en sucursalId.Respuesta
object
La orden recién creada (sin relaciones cargadas).
Show Propiedades principales
Show Propiedades principales
number
ID de la orden creada.
number
ID del chat asociado.
number
ID del negocio.
number
Estado inicial de la orden. Siempre
0.string
Método de entrega, o
null.string
Método de pago, o
null.string
Dirección enviada, o
null.number
ID de la zona asociada, o
null.number
Latitud, o
null.number
Longitud, o
null.string
Canal de la orden.
number
Agente de soporte asignado, o
null.number
Sucursal inicial (antes de ser recalculada por la zona).
string
Fecha programada, o
null.curl -X POST "https://beta.api-iobot-desarrollo.com/catalogs/orders/create" \
-H "Content-Type: application/json" \
-H "x-api-key: TU_APP_KEY" \
-d '{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}'
Método: POST
URL: https://beta.api-iobot-desarrollo.com/catalogs/orders/create
Headers
Content-Type application/json
x-api-key TU_APP_KEY
Body (raw JSON)
{
"chatId": 252037,
"businessId": 92,
"type": "wa",
"shipmentMethod": "delivery",
"paymentMethod": "cash",
"address": "Col. Las Flores, casa 12",
"zoneId": 12,
"lat": 14.0723,
"lng": -87.1921
}
{
"data": {
"id": 272993,
"chat_id": 252037,
"empresa_id": 92,
"status": 0,
"shipment_method": "delivery",
"payment_method": "cash",
"raw_adress": "Col. Las Flores, casa 12",
"zone_id": 12,
"lat": 14.0723,
"lng": -87.1921,
"type": "wa",
"soporte_id": null,
"sucursal_id": 4,
"schedule_at": null,
"createdAt": "2026-09-18T20:15:00.000Z",
"updatedAt": "2026-09-18T20:15:00.000Z"
}
}
{
"message": "El chat tiene que tener el bot liberado o tener un ticket."
}
{
"message": "Zona es requerida"
}
{
"message": "Invalid API key"
}
{
"message": "Internal server error"
}

