XubioCentro de ayuda

API

¿Cómo creo productos con la API de Xubio?

¿Todavía no tenés token? — Pedilo siguiendo ¿Cómo obtengo un access token?.

Todos los llamados van a https://xubio.com/API/1.1/ y necesitan el token que obtuviste con tus credenciales. El token dura una hora.

Qué podés hacer

Cada operación es un llamado independiente.

Crear un producto

POST /ProductoVentaBean

Necesita nombre, código, cuenta contable y tasa de IVA. Ver detalle

Buscar productos

GET /ProductoVentaBean

Por id, nombre, SKU, categoría, alícuota o estado. Sin filtros te trae todos. Ver detalle

Modificar un producto

PUT o PATCH /ProductoVentaBean/{id}

Con PATCH mandás solo los campos que cambian. Los dos exigen productoid en el cuerpo. Ver detalle

Eliminar un producto

DELETE /ProductoVentaBean/{id}

Borra el producto de tu catálogo. No es una baja lógica. Ver detalle

Creá un producto

POST /API/1.1/ProductoVentaBean

Ejemplo

{
  "nombre": "Servicio de mantenimiento mensual",
  "codigo": "SERV-001",
  "categoria": 1,
  "cuentaContable": { "codigo": "VENTA_DE_BIENES" },
  "tasaIva": { "codigo": "IVA21" }
}

Respuesta

{
  "productoid": 3529585,
  "nombre": "Servicio de mantenimiento mensual",
  "codigo": "SERV-001",
  "usrcode": "SERV-XB2636",
  "unidadMedida": { "ID": 1, "nombre": "Unidad (U)", "codigo": "07" },
  "categoria": 1,
  "stockNegativo": false,
  "tasaIva": { "ID": 1, "nombre": "Iva 21%", "codigo": "IVA21" },
  "cuentaContable": { "ID": -10, "nombre": "Venta de Bienes", "codigo": "VENTA_DE_BIENES" },
  "catFormIVA2002": -1,
  "activo": 1
}

Guardate el productoid que te devuelve: es el id con el que después modificás o eliminás el producto.

Obligatorio
Campo Formato Qué es
nombre Texto El nombre del producto o servicio
codigo Texto Tu código interno. Si no lo mandás, el llamado falla con un error 500
cuentaContable Referencia → GET /cuenta La cuenta donde se imputa la venta. Si no la mandás, el llamado falla con un error 500
tasaIva Referencia → GET /tasaImpositiva La alícuota de IVA. Sin esto no vas a poder facturarlo
Opcional
Campo Formato Qué es
categoria Número Qué tipo de producto es. Si no la mandás queda en 0, bienes de cambio (ver la tabla de abajo)
unidadMedida Referencia → GET /unidadMedida Si no la mandás, se usa Unidad (U)
usrcode Texto Tu SKU. Si no lo mandás, Xubio genera uno con las primeras 4 letras del código, -XB y 4 dígitos, como SERV-XB2636
codigoBarra Texto El código de barras del producto
stockNegativo true / false Si el producto puede quedar con stock en negativo
activo 1 / 0 Si el producto está habilitado. Se crea en 1

Qué pasa si el SKU, el nombre o el código ya existen

Xubio nunca rechaza el alta por duplicado: resuelve cada caso solo, así que conviene que sepas con qué te vas a encontrar.

Si mandás… Xubio…
Un usrcode que ya existe No crea nada nuevo: te devuelve el producto que ya tenías, con su productoid y sus datos actuales. Compara sin distinguir mayúsculas
Un nombre que ya existe Crea el producto, pero le pasa el nombre a mayúsculas y le agrega un número: SERVICIO DE MANTENIMIENTO MENSUAL (1)
Un codigo que ya existe Crea el producto, pero le pasa el código a mayúsculas y le agrega un número: SERV-001 (1)

Por eso, si estás sincronizando un catálogo, mandá siempre el usrcode: es el único campo que evita que se te duplique el producto.

Categorías de producto

Valor Categoría
0 Bienes de cambio
1 Servicios de venta
2 Servicios de compra
11 Bienes de uso
15 Venta de combo
16 Materia prima

Cualquier otro valor se rechaza con el mensaje “La categoría indicada para … es inválida”.

Buscá un producto

GET /API/1.1/ProductoVentaBean

Los filtros son opcionales y van en la URL. Sin parámetros te trae todos los productos de tu cuenta.

Parámetro Valores
id El productoid del producto
nombre El nombre exacto, con las mismas mayúsculas y minúsculas. No busca por fragmentos
usrcode Tu SKU exacto, con las mismas mayúsculas y minúsculas
categoriaProducto El número de la categoría
tasaIVAProducto El ID de la alícuota, no su código: 1 para IVA 21%. Lo sacás de GET /tasaImpositiva
activo 1 activos, 0 inactivos

Ejemplo

curl "https://xubio.com/API/1.1/ProductoVentaBean?usrcode=SERV-XB2636" \
  -H "Authorization: Bearer TU_TOKEN"

Respuesta

[
  {
    "productoid": 3529585,
    "nombre": "Servicio de mantenimiento mensual",
    "codigo": "SERVICIO_DE_MANTENIMIENTO_MENSUAL",
    "usrcode": "SERV-XB2636",
    "categoria": 1,
    "tasaIva": { "ID": 1, "nombre": "Iva 21%", "codigo": "IVA21" },
    "cuentaContable": { "ID": -10, "nombre": "Venta de Bienes", "codigo": "VENTA_DE_BIENES" },
    "activo": 1
  }
]

La respuesta es siempre una lista, aunque filtres por id y venga un solo producto. Si no hay coincidencias te devuelve una lista vacía.

Tenelo en cuenta — En cuanto usás cualquier filtro, la búsqueda devuelve solo las categorías 0, 1, 11 y 16. Los servicios de compra (2) y las ventas de combo (15) quedan afuera. Para verlos tenés que pedir el listado completo, sin ningún parámetro.

No existe GET /ProductoVentaBean/{id}: para traer un producto puntual usá el filtro id.

Modificá o eliminá un producto

PUT    /API/1.1/ProductoVentaBean/3529585
PATCH  /API/1.1/ProductoVentaBean/3529585
DELETE /API/1.1/ProductoVentaBean/3529585

PUT y PATCH exigen que mandes el productoid dentro del cuerpo y que coincida con el id de la URL. Si no, el llamado se rechaza con “No se puede actualizar el registro, ids diferentes”.

A diferencia de otros recursos, el producto admite modificación parcial: con PATCH mandás solo los campos que cambian y el resto queda como estaba. Con PUT tenés que mandar el producto completo, porque como mínimo necesita nombre, cuentaContable y tasaIva.

Ejemplo

{
  "productoid": 3529585,
  "codigoBarra": "7790001000019"
}

Respuesta

{
  "productoid": 3529585,
  "codigoBarra": "7790001000019"
}

Las dos operaciones te devuelven de vuelta el cuerpo que mandaste, no el producto guardado. Para ver cómo quedó el registro, pedilo con GET /ProductoVentaBean?id=3529585.

El código no se puede editar — En cada PUT y en cada PATCH, Xubio reescribe el codigo a partir del nombre, en mayúsculas y con guiones bajos en vez de espacios. Un producto llamado "Servicio de mantenimiento mensual" queda con el código SERVICIO_DE_MANTENIMIENTO_MENSUAL, aunque en el cuerpo mandes otro. El codigo que elegís vos solo se respeta en el alta.

DELETE no lleva cuerpo y responde 204 sin contenido. Borra el producto: no lo deja inactivo. Si volvés a pedir la baja del mismo id, te contesta “El producto de venta cuyo ID es: … no existe”. Si lo que querés es sacarlo de circulación pero conservar el historial, hacé un PATCH con "activo": 0 en vez de eliminarlo.

Preguntas frecuentes

¿Por qué me quedaron productos duplicados con un número al final?
Porque mandaste un nombre o un código que ya existía. Xubio no rechaza la llamada: crea el producto pasando el texto a mayúsculas y agregándole "(1)", "(2)" y así. Si sincronizás un catálogo, mandá siempre el usrcode: cuando el SKU ya existe, Xubio te devuelve el producto que ya tenías en vez de crear uno nuevo.
Busqué un producto por nombre y no me lo trajo, ¿por qué?
El filtro nombre compara el texto completo y distingue mayúsculas de minúsculas, así que tenés que escribirlo igual que como quedó guardado. Lo mismo pasa con usrcode. Y si el producto es un servicio de compra o una venta de combo, no aparece en ninguna búsqueda con filtros: pedí el listado completo.
¿Puedo cargar productos de compra con este mismo recurso?
No: los productos de compra tienen su propio recurso, productoCompraBean.
¿Ya tengo los productos cargados y quiero facturar?
Seguí con ¿Cómo facturo con la API de Xubio?, que explica cómo crear el comprobante y pedir el CAE.