Endpoints / Cajas

POST

Crear caja

Crea una nueva caja dentro de una sucursal de la empresa indicada.

POST/checkouts

Caso de Uso

Se usa cuando la aplicación necesita registrar una caja o punto de cobro para una sucursal activa. Al usarlo, el usuario obtiene la caja creada con su identificador, sucursal, estado y fecha de registro.

Autenticación

Requiere token JWT en el header `Authorization: Bearer <token>`.

Parámetros de ruta

Este endpoint no recibe parámetros de ruta.

Body

cjemidstringobligatorio

Identificador de la empresa a la que pertenecerá la caja.

cjsuidstringobligatorio

Identificador de la sucursal donde se creará la caja.

cjidentificadorstringobligatorio

Código único de 3 dígitos para identificar la caja dentro de la sucursal.

Reglas de negocio

1

Solo un usuario con rol jefe puede crear cajas.

2

La empresa del usuario autenticado debe estar activa.

3

El usuario autenticado debe estar activo.

4

La caja solo puede crearse en la misma empresa del usuario autenticado.

5

La sucursal indicada debe existir dentro de la empresa.

6

La sucursal indicada debe estar activa.

7

cjemid, cjsuid y cjidentificador son obligatorios.

8

cjidentificador debe tener exactamente 3 dígitos.

9

cjidentificador no puede repetirse dentro de la misma sucursal.

10

La caja se crea con estado activo.

Errores esperados

401No autorizado

No se envió un token JWT válido o el token no contiene información válida del usuario.

500El id de empresa es requerido

No se envió cjemid o se envió vacío.

500El id de sucursal es requerido

No se envió cjsuid o se envió vacío.

500El identificador de caja es requerido

No se envió cjidentificador o se envió vacío.

500El identificador de sucursal debe ser exactamente 3 digitos

cjidentificador no cumple el formato de 3 dígitos.

500La empresa no existe

La empresa indicada en cjemid o la empresa del usuario autenticado no fue encontrada.

500La empresa no está activa

La empresa asociada a la solicitud está inactiva.

500El usuario no existe

El usuario autenticado no fue encontrado dentro de su empresa.

500El usuario no pertenece a la empresa

El usuario autenticado no pertenece a la empresa indicada por su sesión.

500El usuario no puede acceder a otra empresa

cjemid pertenece a una empresa distinta a la del usuario autenticado.

500El usuario no es jefe, empleado o administrador

El rol del usuario no está permitido para acceder al módulo de cajas.

500El usuario no es jefe

El usuario autenticado no tiene el rol requerido para crear cajas.

500El usuario no está activo

El usuario autenticado está inactivo y no puede usar el sistema.

500La sucursal no existe

La sucursal indicada en cjsuid no existe dentro de la empresa.

500La sucursal no está activa

La sucursal indicada existe, pero no está activa.

409Ya existe una caja con ese identificador en esta sucursal

Ya hay una caja registrada con el mismo cjidentificador dentro de la sucursal.

500Error saving checkout

Ocurrió un error interno al guardar la caja.

500Error finding checkout by row id

La caja fue creada, pero ocurrió un error al consultar sus datos para devolver la respuesta.

Notas de uso

1

Este endpoint no recibe parámetros de ruta.

2

Envía el body en formato JSON con el header Content-Type: application/json.

3

cjidentificador debe enviarse como texto para conservar ceros iniciales, por ejemplo "001".

4

El identificador de caja es único por sucursal, no necesariamente por toda la empresa.

5

La respuesta devuelve el registro base creado, sin el objeto sucursal anidado.