SIU-Sanaviron-Quilmes/version2.11.0/nucleo cobro sistema externo
SQ-Núcleo para cobrar con sistemas externos
Se define una URL (url_cobranza_callback) al momento de crear la venta desde el sistema externo en la cual recibirá notificaciones que se envían a través de HTTP POST cuando ocurre un evento de pago sobre la venta informada.
Modelo de Notificación:
Al momento de enviar una notificación el sistema realiza un POST a la url informada con un modelo de dato como el siguiente
"id": 2,
"unidad_venta": "a32dc022-b372-4539-a6b3-4e66c842f5d6",
"id_venta_origen": "4",
"leyenda": "Venta de comedor test",
"venta_estado": "COBRADA",
"cobranza": {
"id_medio_pago": 5,
"liberada_en": "2016-09-21 00:00:00",
"importe_total_neto": "500.0000",
"importe_total_comision": "5.0000",
"importe_total_retenciones": "2.0000",
"importe_total_cobrado": "500.0000",
"cobrado_en": "2025-09-23 17:18:02",
"id_transaccion": "897c1a2e-6376-4108-b8c8-67a2d13324c1"
}
}
Respuesta:
Para acusar recibo de una notificación el POST a su URL deberá devolver alguno de los siguientes código de estado HTTP 200 o 201
Re-intentos:
Las notificaciones fallidas se puede volver a re-encolar para enviar configurando en el Planificador de tareas un nuevo proceso llamado: "Reenviar colas con error"
Otras consideraciones técnicas:
La url_cobranza_callback debe ser un endpoint que sea accesible por SQ Núcleo para enviar la notificación sin autenticación en el sistema externo.
Se debe tener corriendo un nuevo worker que se encargará de enviar estas notificaciones.
Para iniciar ejecutar:
Se crearon las tablas queue y messages en el esquema queue de la base de datos del Núcleo.
En la tabla queue se almacena temporalmente lo encolado, y en la tabla messages las notificaciones enviadas tanto las enviadas correctamente como las fallidas.
Si el mensaje en estado FALLIDO se reencola y se envía correctamente, se actualizará la tabla messages con estado ENVIADO.
Las notificaciones fallidas almacenadas en la tabla messages contienen el detalle del error en la columna estado_detalle.

