Endpoints / Clientes
Actualizar cliente
Actualiza parcialmente los datos editables de un cliente de la empresa del usuario autenticado.
/clients/:idCaso de Uso
Se usa cuando la aplicación necesita modificar el tipo de identificación, nombre, correo, dirección, teléfono o estado de un cliente existente. Al usarlo, el usuario obtiene el cliente actualizado con sus datos vigentes.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`.
Parámetros de ruta
idstringobligatorioIdentificador del cliente.
Body
clntetipoidentificacionstring opcionalNuevo tipo de identificación; acepta cedula o ruc.
clnteidentificacionstring opcionalNuevo número de identificación válido según clntetipoidentificacion.
clntenombrestring opcionalNuevo nombre del cliente.
clntecorreostring | null opcionalNuevo correo electrónico; puede enviarse como null para limpiarlo.
clntedireccionstring | null opcionalNueva dirección; puede enviarse como null para limpiarla.
clntetelefonostring | null opcionalNuevo teléfono móvil de 10 dígitos; puede enviarse como null para limpiarlo.
clnteestadostring opcionalNuevo estado del cliente; acepta activo, inactivo o eliminado.
Reglas de negocio
Solo un usuario con rol jefe o empleado puede actualizar clientes.
Solo permite actualizar clientes de la empresa del usuario autenticado.
La empresa del usuario autenticado debe estar activa.
El usuario autenticado debe estar activo.
El cliente debe existir dentro de la empresa autenticada.
Un cliente con estado eliminado no puede actualizarse.
Debe enviarse al menos un campo editable con un valor diferente al actual.
Si se envía clntetipoidentificacion, solo acepta cedula o ruc.
Si se envía clnteidentificacion, debe ser válida según clntetipoidentificacion.
clnteidentificacion no puede repetirse en otro cliente de la misma empresa.
Si se envía clntenombre, no puede estar vacío.
Si se envía clntecorreo como texto, debe tener formato de correo válido; puede ser null.
clntecorreo no puede repetirse en otro cliente de la misma empresa.
Si se envía clntedireccion como texto, no puede estar vacía; puede ser null.
Si se envía clntetelefono como texto, debe ser de 10 dígitos; puede ser null.
Si se envía clnteestado, solo puede ser activo, inactivo o eliminado.
Errores esperados
No se envió un token JWT válido o el token no contiene información válida del usuario.
No se envió el parámetro id en la ruta.
La actualización no devolvió un cliente actualizado.
clntetipoidentificacion fue enviado vacío.
clntetipoidentificacion tiene un valor distinto de cedula o ruc.
clnteidentificacion fue enviado vacío.
clnteidentificacion no cumple el formato requerido para cedula o ruc.
clntenombre fue enviado vacío.
clntecorreo fue enviado como texto vacío.
clntecorreo fue enviado, pero no tiene formato de correo válido.
clntedireccion fue enviada como texto vacío.
clntetelefono fue enviado como texto vacío.
clntetelefono no cumple el formato de teléfono móvil requerido.
clnteestado fue enviado vacío.
clnteestado tiene un valor no permitido.
No se envió ningún campo editable o todos los valores enviados son iguales a los actuales.
El cliente no existe o no pertenece a la empresa autenticada.
El cliente existe, pero está en estado eliminado.
Otro cliente de la misma empresa ya usa la clnteidentificacion enviada.
Otro cliente de la misma empresa ya usa el clntecorreo enviado.
La empresa asociada al usuario autenticado no fue encontrada.
La empresa asociada al usuario autenticado está inactiva.
El usuario autenticado no fue encontrado dentro de su empresa.
El usuario autenticado no pertenece a la empresa indicada por su sesión.
El usuario autenticado intentó operar sobre una empresa distinta a la suya.
El rol del usuario no está permitido para acceder al módulo de clientes.
El usuario autenticado no tiene un rol permitido para actualizar clientes.
El usuario autenticado está inactivo y no puede usar el sistema.
Ocurrió un error interno al actualizar el cliente.
Notas de uso
Este endpoint no recibe query params.
Envía solo los campos que deseas actualizar.
El body debe incluir al menos un campo editable con un valor distinto al actual.
clntecorreo, clntedireccion y clntetelefono pueden enviarse como null para limpiar esos datos.
clnteidentificacion y clntetelefono deben enviarse como texto para conservar ceros iniciales.