Manual de instalación
Conectar una balanza Dibal al POS de Ágil Factura
La balanza imprime el ticket, el cajero lo escanea y la venta se carga sola en el punto de venta —con productos, pesos y precios—, lista para facturar y sin posibilidad de cobrar el mismo ticket dos veces.
Para quién es este manual
Cada parte está escrita para una persona distinta. Ubique la suya y vaya directo a sus secciones: no necesita leer las demás.
| Parte | Para quién | Qué encontrará | Secciones |
|---|---|---|---|
| Preparación | Todos | Cómo funciona la integración y qué se necesita antes de empezar | 01 – 02 |
| Facturador | AdministradorQuien administra la empresa en el Facturador | Activar la integración, generar el token y preparar los productos | 03 – 04 |
| Instalación | TécnicoSoporte de Ágil Factura o técnico de Dibal | Configurar la balanza, DibalCom, Python y el servicio; probar el envío y dejarlo siempre activo | 05 – 12 |
| Uso diario | CajeroY encargado de la tienda | Qué abrir cada mañana, cómo cobrar un ticket de la balanza y qué hacer si algo falla | 13 |
| Soporte | SoporteY usuarios avanzados | Diagnóstico por síntoma, preguntas frecuentes y checklist de entrega de la instalación | 14 – 16 |
No necesita leer la instalación. Vaya directamente a la sección 13 · Uso diario en caja.
Cómo funciona
La balanza no se conecta directamente al Facturador. Cada ticket recorre cuatro piezas: dos en un PC de la tienda y dos en la nube.
- La balanza cierra el ticket y lo envía por la red al PC de la tienda.
- DibalCom lo guarda como un archivo de texto en una carpeta del PC.
- El servicio de integración revisa esa carpeta cada 5 segundos y envía cada ticket al Facturador.
- En caja, al escanear el código del ticket, el POS carga todas sus líneas.
La balanza calcula los importes e imprime el ticket; el POS lo recibe completo. Si la venta se modifica en la balanza, hay que imprimir un ticket nuevo.
Antes de empezar
Reúna todo lo siguiente antes de ir a la tienda:
| Elemento | Requisito | Quién lo entrega |
|---|---|---|
| Balanza | Dibal Gama 500 (serie Mistral o Wind) con impresora de tickets y puerto Ethernet, por ejemplo la Mistral 525 | El cliente |
| PC de la tienda | Windows 10 u 11, en la misma red que la balanza, con internet, IP fija y permisos de administrador | El cliente |
| DibalCom | Instalado en ese PC y comunicando con la balanza | Dibal o su distribuidor |
| Servicio de integración | La carpeta del servicio | Ágil Factura |
| Usuario administrador | Para activar la integración y generar el token en el Facturador | El cliente |
| Lector de código de barras | El mismo que ya se usa en el POS; lee el EAN-13 del ticket | El cliente |
La balanza envía los tickets a una dirección IP concreta. Si el PC cambia de IP al reiniciarse el router, los tickets dejan de llegar sin ningún aviso en la balanza.
Activar la integración en el Facturador
- Ingrese con un usuario administrador y abra
Configuración avanzada→ pestaña Balanza DIBAL. - Ponga Habilitar integración en Sí. Mientras esté en No, el Facturador rechaza los tickets y el POS no muestra la opción de escanearlos.
- Pulse Generar token y cópielo en ese momento: se muestra una sola vez. Lo necesitará en la sección 09.
- Anote la dirección del servicio: el dominio con el que la empresa entra al Facturador seguido de
/api/dibal/tickets.
https://suempresa.dominio.com/api/dibal/tickets
Genere uno nuevo con Regenerar. El anterior deja de funcionar en ese instante, así que
también debe actualizarlo en el config.ini del PC de la tienda.
Preparar los productos
El POS reconoce cada línea del ticket por el código de artículo que tiene en la balanza. Ese número debe ser igual al código interno del producto en el Facturador.
| En la balanza | En el Facturador | Resultado en el POS |
|---|---|---|
Código de artículo 97 | Código interno 97 | carga el producto con su nombre |
Código de artículo 97 | No existe | aviso “PLU faltantes: 97” |
Código de artículo 97 | Código interno A-97 | no enlaza debe ser solo numérico |
- Use códigos solo numéricos, de hasta 6 dígitos.
- Asigne a los productos pesados la unidad kilogramo: la cantidad llega en kg, por ejemplo
1,250. - Cree los productos antes de empezar a vender. Si un producto se crea después de recibido el ticket, su código interno debe coincidir exactamente con el de la balanza, sin ceros de más.
Configurar la balanza
Para entrar a cada parámetro, mantenga pulsada MENU durante 2 segundos y escriba el código. Grabe con la tecla de validar y salga con MENU.
Red
| Código | Parámetro | Qué poner |
|---|---|---|
| 511 | IP de la balanza | Una IP libre de la red, p. ej. 192.168.1.20 |
| 517 | Máscara de subred | La de la red, normalmente 255.255.255.0 |
| 518 | Gateway | La IP del router |
| 512 | IP del PC | La IP fija del PC donde está DibalCom |
| 513 | Número de equipo | 00 a 99, distinto en cada balanza |
| 514 | Puerto Tx | 3001 siempre |
| 515 | Puerto Rx | 3000 siempre |
Envío de ventas y ticket
| Código | Parámetro | Qué poner |
|---|---|---|
| 311 | Movimiento de día | SI: envía cada venta al momento. Con FIN DE DIA los tickets llegan solo al cierre. |
| 332 | Número de ticket | 2: numeración consecutiva de tickets |
| 361 | Código de barras en ticket | Cualquier opción excepto NO |
| Modo de trabajo | Modo ticket: pulse PRINT hasta que desaparezca LABEL de la pantalla |
Verifique con cuántos decimales trabaja el precio en la balanza. Lo necesitará en la sección 09: si ese dato no coincide, los importes llegan multiplicados o divididos por 100.
Configurar DibalCom
DibalCom se configura con el archivo dibctrl.txt de su carpeta de instalación. Debe
guardar un archivo por cada venta en una carpeta que el servicio pueda leer. Complete los
datos y copie las líneas resultantes:
| Línea | Para qué sirve |
|---|---|
-i | Carpeta donde DibalCom deja un archivo .txt por venta |
-F | IP del PC que recibe las ventas |
-j | Puertos de comunicación con la balanza: 3001,3000 |
-d | Número de equipo e IP de la balanza. Agregue una línea -d por cada balanza |
-C | Formato del archivo por venta: 4 para el 2.4, 1 para el 2.1 |
En el formato 2.1 los importes tienen solo 5 cifras: un producto o un ticket de más de $ 99.999 se trunca, algo frecuente en pesos colombianos. El 2.4 admite importes de hasta 8 cifras.
Mantenga las demás líneas que ya tenga su dibctrl.txt: solo agregue o ajuste
estas. Si DibalCom lo instaló un técnico de Dibal, revise el archivo con él.
Compruébelo: haga una venta en la balanza en modo ticket. En la carpeta de ventas debe
aparecer un archivo cuyo nombre son solo números, como 2000150204400.txt.
Instalar Python
El servicio funciona con Python 3.8 o superior y no requiere paquetes adicionales. Abra
CMD (tecla Windows → cmd → Enter) y compruebe si ya está instalado:
python --version
Si responde Python 3.x.x, continúe en la sección 08. Si no:
- Descargue el instalador desde python.org/downloads. No lo instale desde Microsoft Store.
- En la primera pantalla marque Add python.exe to PATH. Sin esta casilla, los comandos de este manual no funcionan.
- Elija Customize installation → Next → marque Install Python for all users → Install.
- Si al terminar aparece Disable path length limit, púlselo. Luego Close.
- Cierre CMD, abra uno nuevo y vuelva a escribir
python --version.
Pruebe py --version. Si responde, use py en lugar de
python en todos los comandos del manual.
Copiar el servicio de integración
- Solicite la carpeta del servicio al soporte de Ágil Factura.
- Cópiela directamente en
C:\con el nombre DibalPOSintegration, de modo que quedeC:\DibalPOSintegration. - Verifique que dentro estén
run_service.py,iniciar_servicio.baty las carpetassrcyconfig.
Evite el Escritorio, Documentos y “Archivos de programa”. En C:\ la ruta no tiene
espacios y el servicio puede leerla aunque arranque antes de que alguien inicie sesión.
Crear el config.ini
El config.ini indica al servicio dónde están los archivos, en qué formato vienen y
a qué empresa enviarlos. Cree el archivo a partir del ejemplo:
cd C:\DibalPOSintegration
copy config\config.ini.example config\config.ini
notepad config\config.ini
Complete los datos, copie el resultado y reemplace todo el contenido del Bloc de notas:
-C en DibalCom.
-i del dibctrl.txt.
| Campo | Qué es |
|---|---|
formato | Formato del archivo de DibalCom. Si no coincide con -C, los tickets no se leen |
decimales_importe | Decimales del precio en la balanza. Si no coinciden, los importes salen ×100 o ÷100 |
barcode | Cómo está armado el código de barras impreso en el ticket |
entrada | Carpeta donde DibalCom deja los .txt. Debe existir |
archivo | Carpeta donde el servicio archiva lo enviado y lo que falló |
url · token | Dirección y llave de la empresa en el Facturador |
verificar_ssl | Comprueba que los tickets se entreguen al Facturador auténtico. Déjelo en true |
El token es la llave de la empresa: no lo envíe por chat ni lo deje en capturas de pantalla.
Mantenga verificar_ssl = true; desactivarlo permite que un tercero en la red
intercepte el token. Si sospecha que se expuso, regenérelo desde el Facturador.
Probar el envío
Primero, una simulación
Haga una venta de prueba en la balanza y ejecute la simulación. No envía nada ni mueve archivos: solo muestra lo que enviaría.
cd C:\DibalPOSintegration
python run_service.py --dry-run
Compare con el ticket impreso los importes, pesos y códigos. Si ve importes 100 veces
mayores o menores, corrija los decimales en el config.ini.
Después, el envío real
python run_service.py
2026-09-14 10:42:08 [INFO] Enviado 2013950155407.txt (...) -> HTTP 201
| Respuesta | Significado | Qué hace el servicio |
|---|---|---|
201 | El ticket llegó al Facturador | Lo mueve a data\procesados\ |
200duplicate | Ese ticket ya se había enviado; no se duplica | Lo mueve a data\procesados\ |
401 · 403 | Token incorrecto o integración desactivada | Lo deja en la carpeta y reintenta |
422 | Datos del ticket inválidos | Lo mueve a data\errores\ con el motivo |
5xx · red | Facturador o internet no disponibles | Lo deja en la carpeta y reintenta |
Verificar el código de barras
El servicio no lee el código de barras del ticket: lo reconstruye con la opción
barcode del config.ini. Si no coincide con el que imprime la balanza,
el POS no encontrará el ticket al escanearlo, aunque sí al escribir su número.
Copie del ticket de prueba los 13 dígitos bajo el código, el número de ticket y el total:
La prueba definitiva es escanear el ticket en el POS: si lo carga, quedó bien. Cada vez
que cambie barcode, reinicie el servicio.
Dejarlo siempre activo
Instale el servicio como servicio de Windows: arranca solo al encender el PC, sigue funcionando aunque nadie inicie sesión y se reinicia si se detiene.
- Descargue NSSM desde nssm.cc/download y copie
nssm.exe(versiónwin64) aC:\DibalPOSintegration. - Obtenga la ruta de Python con
where pythony anótela. - Abra CMD como administrador y ejecute los comandos de abajo.
- En la ventana de NSSM complete los tres campos de la tabla y pulse Install service.
- Inicie el servicio y compruebe en
services.mscque figura En ejecución.
# instalar
cd C:\DibalPOSintegration
nssm install DibalPOSIntegration
# iniciar
nssm start DibalPOSIntegration
| Campo de NSSM | Valor |
|---|---|
| Application Path | La ruta de python.exe obtenida en el paso 2 |
| Startup directory | C:\DibalPOSintegration |
| Arguments | run_service.py --intervalo 5 |
| Para | Comando |
|---|---|
| Reiniciar tras cambiar el config.ini | nssm restart DibalPOSIntegration |
| Detener | nssm stop DibalPOSIntegration |
| Desinstalar | nssm remove DibalPOSIntegration confirm |
Haga doble clic en iniciar_servicio.bat. Funciona igual, pero se detiene si
alguien cierra la ventana negra o cierra la sesión.
Si instaló el servicio de Windows, no cree el acceso directo Servicio Balanza en el escritorio: así nadie abre una segunda copia del servicio. El cajero sabrá que no debe abrirlo porque el icono no existe (sección 13).
Los registros quedan en logs\servicio.log, lo enviado en
data\procesados\ y lo que falló en data\errores\, organizado por fecha.
Uso diario en caja
La integración funciona sola cuando la balanza, DibalCom y el servicio están encendidos. Esto es lo único que hay que hacer en la tienda.
Al encender el PC cada mañana
- Encienda la balanza y verifique que trabaje en modo ticket: la palabra LABEL no debe aparecer en su pantalla.
- Abra DibalCom con doble clic en su icono y déjelo abierto; puede minimizarlo. Es el programa que recibe las ventas de la balanza, así que debe estar siempre abierto.
- Solo si en el escritorio existe el icono “Servicio Balanza”: haga doble clic. Se abre una ventana negra con el mensaje
Servicio iniciado en modo continuo. Déjela abierta; puede minimizarla. Si el icono no existe, el servicio ya arranca solo con el PC.
Mientras esté abierta, el servicio envía los tickets al Facturador. Si la cierra por error, vuelva a abrir Servicio Balanza: los tickets pendientes se envían solos y no se pierden.
Cobrar un ticket de la balanza
- En el POS active el interruptor Escanear ticket balanza. Aparece la barra Escanear ticket de balanza (DIBAL).
- Escanee el código del ticket. Si el lector no lo lee, escriba el número de ticket en la misma barra.
- Revise que se hayan cargado los productos y cobre como siempre. Puede escanear varios tickets en una misma venta.
- Al facturar, los tickets quedan marcados y no pueden volver a cobrarse.
| Mensaje en el POS | Estado | Qué significa |
|---|---|---|
| Ticket DIBAL #139 cargado (2 productos) | correcto | Revise y cobre. |
| El ticket aún no llegó al sistema. Reintenta en unos segundos. | espera | El ticket todavía no se ha enviado. Espere unos segundos y vuelva a escanear. |
| Ticket DIBAL #139: ningún producto pudo cargarse (PLU faltantes: 97) | revisar | Ese producto no está creado en el Facturador. Avise al administrador. |
| Este ticket ya fue facturado el 2026-09-13 17:48:24 | bloqueado | El ticket ya se cobró y no puede cargarse de nuevo. |
Si algo no funciona
| Qué ve | Qué hacer |
|---|---|
| El POS insiste en que el ticket aún no llegó | Revise que DibalCom esté abierto y, si usa la ventana negra, que siga abierta. Si todo está abierto, avise a soporte. |
La ventana negra muestra mensajes Reintentable | No hay conexión con el Facturador, normalmente por internet. El servicio reintenta solo y los tickets no se pierden. Si dura mucho, avise a soporte. |
| Mensajes en rojo o con la palabra “Error” | Tome una foto de la ventana y envíela a soporte. |
| Cerró la ventana negra sin querer | Abra de nuevo Servicio Balanza. |
| Reinició el PC | Repita los pasos de Al encender el PC cada mañana. |
| El lector no lee el código del ticket | Escriba el número de ticket en la barra de escaneo del POS. |
1. Encender la balanza · 2. Abrir DibalCom y dejarlo minimizado · 3. Si existe el icono Servicio Balanza, abrirlo y no cerrar la ventana negra · 4. En el POS, activar Escanear ticket balanza y escanear cada ticket.
Solución de problemas
| Síntoma | Dónde | Qué hacer |
|---|---|---|
| Al escanear no aparece el ticket, pero escribiendo el número sí | POS | barcode no coincide con el código impreso. Use el verificador de la sección 11, corrija y reinicie el servicio. |
| “El ticket aún no llegó al sistema” | POS | Confirme que el servicio esté en ejecución, que el PC tenga internet y que exista el .txt en la carpeta. Si no hay .txt, el problema está en la balanza o en DibalCom. |
| “PLU faltantes” o un número en lugar del nombre del producto | POS | El código de artículo no coincide con el código interno de ningún producto. Créelo o corríjalo y envíe un ticket nuevo. |
| “Este ticket ya fue facturado” | POS | Es el bloqueo contra la doble facturación. Aunque la venta se anule, el ticket sigue marcado: imprima uno nuevo. |
| No aparece el interruptor “Escanear ticket balanza” | POS | La integración está desactivada. Actívela en Configuración avanzada → Balanza DIBAL. |
| Reintentable (HTTP 401) | Servicio | El token del config.ini no es el vigente. Si alguien pulsó Regenerar, copie el nuevo y reinicie el servicio. |
| Reintentable (HTTP 403) | Servicio | Habilitar integración está en No. Actívela; el servicio reenvía solo los tickets pendientes. |
| Reintentable (HTTP 404, 5xx) o error de red | Servicio | Revise la url (dominio + /api/dibal/tickets) y la conexión. Los tickets no se pierden: se reintentan en cada ciclo. |
| Rechazado (HTTP 422) o archivos en data\errores | Servicio | Abra el .error.log junto al archivo para ver el motivo. Tras corregirlo, copie el .txt de vuelta a la carpeta de ventas para reenviarlo. |
| Importes 100 veces mayores o menores | Servicio | decimales_importe no coincide con la balanza. Corríjalo y reinicie el servicio. |
| Productos o tickets de más de $ 99.999 salen mal | Servicio | Se está usando el formato 2.1. Cambie al 2.4: -C 4 en DibalCom y formato = 2.4 en el config.ini. |
| “La carpeta de entrada no existe” | Servicio | La carpeta entrada no es la real de DibalCom. Cópiela desde el Explorador de Windows. |
| “No se encontró el archivo de configuración” | Servicio | Falta el config.ini o quedó como config.ini.txt. Active “Extensiones de nombre de archivo” en el Explorador y renómbrelo. |
| Error de certificado o SSL al enviar | Servicio | Revise que la url use el dominio exacto y que la fecha y hora del PC sean correctas. Si persiste, contacte a soporte antes de desactivar la verificación. |
| “python” no se reconoce como comando | PC | No se marcó Add python.exe to PATH. Use py o reinstale Python marcando la casilla. |
| No aparecen archivos .txt en la carpeta de ventas | Balanza · DibalCom | Compruebe el modo ticket, Movimiento de día = SI, la IP del PC en la balanza (5 1 2) y que DibalCom esté abierto con la línea -C. |
Sin coincidencias. Escriba a soporte@agilfactura.com
adjuntando una foto del ticket y el archivo logs\servicio.log.
Preguntas frecuentes
¿Qué pasa si se cae internet en la tienda?
La balanza sigue imprimiendo y DibalCom sigue guardando archivos. El servicio reintenta cada pocos segundos y envía todo en cuanto vuelve la conexión. Mientras tanto, esos tickets no se pueden escanear en el POS.
¿Funciona con varias balanzas?
Sí. Cada balanza necesita su propio número de equipo y su línea -d en el dibctrl.txt. Todas envían al mismo PC y un solo servicio procesa sus tickets.
¿Qué es el botón “Conectar balanza” del POS?
Es otra función: lee el peso en vivo de una balanza conectada por cable al computador de la caja. No se usa con esta integración, que trabaja con tickets impresos.
¿Se registran las devoluciones hechas en la balanza?
Sí. Llegan con peso o importe negativo y se cargan así en el POS.
Anulé una venta: ¿puedo volver a cobrar el mismo ticket?
No. El ticket queda marcado como facturado aunque la venta se anule. Para cobrar de nuevo, imprima un ticket nuevo en la balanza.
¿Qué debo hacer si cambio de PC?
Repita las secciones 06 a 12 en el PC nuevo y cambie en la balanza la IP del PC (menú 5 1 2). Puede reutilizar el mismo token.
¿Dónde veo qué tickets se enviaron?
En C:\DibalPOSintegration\data\procesados\, organizados por fecha, y en el registro logs\servicio.log.
Checklist de instalación
Marque cada punto a medida que lo complete. El avance se guarda en este navegador.