Inicio

BASE_URL=https://rest.qloud.ar

Esta API permite consultar ordenes de compra y sincronizar productos, marcas y categorías de una tienda Qloud. Todas las respuestas se devuelven en formato JSON y todos los endpoints requieren autenticación HTTP Basic.

Los endpoints disponibles actualmente son:

Método Endpoint Uso
GET /orders/{id}/ Obtiene el detalle de una orden.
GET /orders/?from=YYYYMMDD&to=YYYYMMDD Lista ordenes en un rango de fechas.
POST /productos/ Alta, modificación o baja lógica de productos.
POST /marcas/ Alta o modificación de marcas.
POST /categorias/ Alta o modificación de categorías.

Autenticación

Authorization: Basic base64(usuario:contrasena)

En cada request se debe enviar el header Authorization con credenciales HTTP Basic. El usuario corresponde al ID de cliente y la contraseña corresponde a la clave API suministrada por Qloud.

Si las credenciales no son enviadas o no son válidas, la API responde con HTTP 401.

curl -u "292:C5mTz8XpQ2vRn6LwY9kFa3" \
  "https://rest.qloud.ar/orders/28041/"

Notificaciones

{
  "topic": "ordenes",
  "resource": "28041"
}

La URL de notificaciones debe ser una URL pública del dominio donde se quieren recibir avisos sobre ordenes de compra. Por ejemplo: https://myshoes-app.com/callbacks.

Para comenzar a recibir notificaciones, enviar la URL a [email protected] indicando el ID de cliente. Ese ID se encuentra en el Administrador de Qloud.ar.

Envío de notificaciones

Qloud enviará un POST a la callback URL. La aplicación receptora debe responder HTTP 200 para confirmar la recepción correcta. Si no responde HTTP 200, el mensaje se considera no recibido y podrá reintentarse.

Variables enviadas

Campo Tipo Descripción
topic String Para ordenes, el valor enviado es ordenes.
resource Integer/String ID de la orden que luego debe consultarse en /orders/{id}/.

Eventos que disparan notificaciones

  • Nueva orden de compra.
  • Pago acreditado por Mobbex.
  • Pago acreditado por Nave.
  • Pago acreditado por Modo.
  • Pago acreditado por Mercado Pago.
  • Comprobante subido en ordenes con pago vía transferencia bancaria.

Detalle de orden

curl -u "USUARIO:CLAVE_API" \
  "https://rest.qloud.ar/orders/28041/"

Después de recibir una notificación, realizar una solicitud GET al recurso para acceder a los datos completos de la orden.

La respuesta es un array JSON. Para una consulta por ID normalmente contiene un solo objeto.

[
  {
    "ventaWeb": 28041,
    "usuarioWeb": 292,
    "ciente": {
      "id": 25032,
      "DNI": 23516593,
      "CUIT": "20235165938",
      "nombre": "Claudio",
      "apellido": "Zarate",
      "email": "[email protected]",
      "tel": "011-38794291"
    },
    "fecha": "2022-09-27 09:25:29",
    "productos": [
      {
        "id": 14817,
        "sku": "SKU-14817",
        "nombre": "Disco Externo 1 Tb Seagate Expansion Negro",
        "cantidad": 1,
        "precio": 9954,
        "precio_financiado": 9954,
        "categoria": "Almacenamiento",
        "subcategoria": "Discos externos"
      }
    ],
    "envio": {
      "tipo": "Retiro por Local",
      "costo": 0,
      "free": 0
    },
    "precio": 9954,
    "precio_financiado": 0,
    "descuento": 0,
    "descuentoCupon": "",
    "pago": {
      "tipo": "Transferencia"
    },
    "facturaA": 1,
    "mensaje": "",
    "estado": 0,
    "finalizada": "0"
  }
]

Campos de la respuesta

Campo Tipo Descripción
ventaWeb Integer ID de venta en Qloud.
usuarioWeb Integer ID de usuario o tienda propietaria de la orden.
ciente Object Datos del cliente. El nombre del campo se mantiene así por compatibilidad con la API actual.
productos Array Productos vendidos, con SKU, cantidad, precio, categoría y subcategoría.
envio Object Tipo, costo y condición de envío gratis. Si la orden tiene envío a domicilio incluye dirección.
precio Number Total de la orden. En algunos medios de pago puede excluir el costo de envío.
precio_financiado Number Monto financiado acreditado, cuando aplica.
descuento Number/String Descuento aplicado a la orden.
descuentoCupon Number/String Descuento aplicado por cupón.
pago Object Método de pago, pagos asociados y comprobantes subidos cuando existen.
facturaA Integer/String Indica si la orden solicita factura A.
estado Integer Estado interno de la orden.
finalizada Integer/String Indica si la orden se encuentra finalizada.

Ordenes por fecha

curl -u "USUARIO:CLAVE_API" \
  "https://rest.qloud.ar/orders/?from=20220901&to=20220930"

Permite consultar ordenes de compra por rango de fechas. Los parámetros from y to son obligatorios y deben enviarse con formato YYYYMMDD.

La respuesta es un array JSON con hasta 999 ordenes, ordenadas de forma descendente por ID. Cada elemento usa la misma estructura del endpoint de detalle.

Parámetro Tipo Requerido Descripción
from String Fecha inicial del rango en formato YYYYMMDD.
to String Fecha final del rango en formato YYYYMMDD.

Productos

curl -u "USUARIO:CLAVE_API" \
  -X POST "https://rest.qloud.ar/productos/" \
  -d "accion=UP" \
  -d "sku=SKU-001" \
  -d "stock=12" \
  -d "priceW=15999.90" \
  -d "status=active"

Permite insertar, actualizar o eliminar lógicamente productos. Los datos deben enviarse como POST tradicional (application/x-www-form-urlencoded o multipart/form-data).

Campo Tipo Requerido Descripción
accion String IN inserta, UP actualiza y DEL marca como eliminado.
sku String Código de artículo usado para localizar el producto.
titulo String No Nombre público del producto. No se actualiza el slug.
descripcion String No Descripción del producto.
stock Number No Stock web.
priceL Number No Precio de lista o Mercado Libre. Si no se envía priceW, también se usa como precio web.
priceW Number No Precio web. Debe ser mayor a cero para aplicarse.
priceE Number No Precio para transferencia.
status String No Estado web del producto, por ejemplo active o paused.
thumb String No URL o path de imagen principal.
img String No Lista de imágenes entre corchetes, por ejemplo [url1,url2].
peso, alto, largo, ancho Number No Dimensiones y peso usados para envíos.
categoria String/Integer No ID externo de categoría. La API lo vincula contra el identificador sincronizado.
marca String/Integer No ID externo de marca. La API lo vincula contra el identificador sincronizado.
garantia String No Texto de garantía.
eliminado Integer No Marca manual de eliminado. Con accion=DEL se fuerza a 1.
{
  "error": 0,
  "msn": "Actualizado ok",
  "id": 14817,
  "link": "https://tienda.example.com/producto-ejemplo/"
}

Marcas

curl -u "USUARIO:CLAVE_API" \
  -X POST "https://rest.qloud.ar/marcas/" \
  -d "accion=IN" \
  -d "nombre=Logitech" \
  -d "habilitado=true" \
  -d "logo=https://cdn.example.com/logitech.png"

Permite insertar o actualizar marcas. Para actualizar una marca existente se debe enviar accion=UP junto con idqloud.

Campo Tipo Requerido Descripción
accion String IN inserta y UP actualiza.
idqloud Integer Solo UP ID de marca en Qloud.
nombre String Nombre de la marca. También actualiza el slug.
habilitado Boolean/String No Enviar true para dejarla activa; cualquier otro valor la deja pausada.
logo String No Imagen principal o logo de la marca.
foto String No Imagen grande de la marca.
carrousel String No Imagen para carrousel.
marcadestecada Boolean/String No Permite agregar o quitar la marca del menú destacado durante una actualización.
chequeado Boolean/String No Cuando marcadestecada está activo, define si se agrega al menú.
{
  "error": 0,
  "msn": "Insertado ok",
  "id": 91,
  "link": "https://tienda.example.com/logitech/"
}

Categorías

curl -u "USUARIO:CLAVE_API" \
  -X POST "https://rest.qloud.ar/categorias/" \
  -d "accion=UP" \
  -d "idqloud=12" \
  -d "nombre=Notebooks" \
  -d "habilitado=true" \
  -d "parent=3"

Permite insertar o actualizar categorías. Para actualizar una categoría existente se debe enviar accion=UP junto con idqloud.

Campo Tipo Requerido Descripción
accion String IN inserta y UP actualiza.
idqloud Integer Solo UP ID de categoría en Qloud.
nombre String Nombre de la categoría. También actualiza el slug.
habilitado Boolean/String No Enviar true para dejarla activa; cualquier otro valor la deja pausada.
icono String No Icono de la categoría.
foto String No Imagen de la categoría.
parent Integer/String No ID de categoría padre.
{
  "error": 0,
  "msn": "Actualizado ok",
  "id": 12,
  "link": "https://tienda.example.com/notebooks/"
}

Errores

{
  "error": 1,
  "msn": "variables incompletas"
}

Los endpoints POST devuelven un objeto JSON con error, msn, id y link cuando la operación es exitosa.

Respuesta Descripción
HTTP 401 Credenciales ausentes o inválidas.
variables incompletas Faltan campos requeridos para la acción solicitada.
No se ha actualizado nada No se pudo aplicar la actualización solicitada.
No se ha insertado nada No se pudo insertar el recurso solicitado.
La marca ya existe / La categoría ya existe Ya existe un recurso con el mismo slug.