Saltar al contenido principal

Proceso de Cierre de Lote (Settlement)

Esta guía explica el flujo para notificar un cierre de lote desde un terminal POS físico y cómo un sistema externo (ERP, sistema contable, etc.) puede consultar el último cierre validado al finalizar la jornada.

Aspectos Generales​

El proceso de cierre asegura la sincronización de las operaciones procesadas por un terminal POS con los sistemas centrales de Spidi y su posterior conciliación por parte del comercio.

  1. Notificación de Cierre (POS): El terminal POS envía el resumen del lote a Spidi tras ejecutar su cierre interno.
  2. Consulta del Cierre (Sistema Externo): El sistema backend del comercio consulta a Spidi el último cierre registrado para un terminal específico con el fin de verificar su contabilidad o caja diaria.

Pasos para realizar la integración:​

1. Notificar el Cierre de Lote (POS)​

Al ejecutar el cierre, el terminal POS debe notificar el resumen a la plataforma.

  • Petición: POST /api/v1/pos-terminals/{serialNumber}/settlements

  • Seguridad: Requiere Firma HMAC (x-pos-signature, x-pos-timestamp). La firma se construye a partir del body JSON, el timestamp y la URL. Ver Guía de Comunicación con POS.

  • Cuerpo:

{
"batchNumber": "B-10293",
"transactionCount": 12,
"closedAt": "2023-04-04T15:26:51.187Z",
"currencyReference": "USD",
"terminal": "98202003219630",
"debitBatch": "DB-9901"
}
  • Respuesta (200 OK):
{
"title": "Cierre de Lote ejecutado",
"detail": "El cierre ha sido registrado correctamente por el sistema.",
"data": {
"batchNumber": "B-10293",
"transactionCount": 12,
"closedAt": "2023-04-04T15:26:51.187Z",
"currencyReference": "USD",
"terminal": "98202003219630",
"debitBatch": "DB-9901"
}
}

Seguridad de las Operaciones: Para notificar validamente el cierre, el terminal deberá verificar su identidad. Consulta nuestra Guía de Comunicación con POS para revisar cómo funciona y qué medida de seguridad protege esta petición.

2. Consultar el Último Cierre (Sistema Externo / Merchant)​

Al final del día, el sistema backend o ERP del comercio puede obtener el último cierre registrado para su respectivo cuadre. Para obtener únicamente el último, se debe ordenar por fecha de forma descendente y limitar el resultado a 1.

  • Petición: GET /api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements?sort=-closedAt&size=1

  • Seguridad: Requiere Token Bearer (Authorization: Bearer <tú-token>).

  • Uso: Operación administrativa del lado del comercio.

  • Respuesta (200 OK):

{
"title": "Último Cierre de Lote",
"data": [
{
"batchNumber": "B-10293",
"transactionCount": 12,
"closedAt": "2023-04-04T15:26:51.187Z",
"currencyReference": "USD",
"terminal": "98202003219630",
"debitBatch": "DB-9901"
}
]
}

Nota de Integración: Siguiendo el estándar de filtros dinámicos del comercio, no existe un endpoint especializado latest. El uso de sort y size garantiza la flexibilidad necesaria para auditorías y consultas históricas.

Documentación de los endpoints​