Endpoints / Empresas
Crear empresa
Registra una nueva empresa hija en el sistema, asociada a la empresa padre del usuario autenticado.
/companiesCaso de Uso
Se usa cuando un administrador de una empresa padre necesita crear una nueva empresa hija. Al usarlo, el usuario obtiene los datos completos de la empresa creada, incluyendo su identificador único y la URL pública del logo.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`. Solo permite acceso a usuarios con rol administrador. La empresa del usuario autenticado debe estar activa y ser empresa padre.
Parámetros de ruta
Este endpoint no recibe parámetros de ruta.
Body
emrucstringobligatorioRUC de la empresa; debe tener exactamente 13 dígitos.
emrznsocialstringobligatorioRazón social de la empresa.
emcorreostringobligatorioCorreo electrónico de la empresa; debe tener formato válido.
emcodigostringobligatorioCódigo alfanumérico de exactamente 4 caracteres; se normaliza a mayúsculas.
imagenfile opcionalLogo de la empresa; solo se aceptan .png o .jpg de hasta 5 MB. Si no se envía, se asigna un logo por defecto.
Reglas de negocio
Solo un usuario con rol administrador puede registrar empresas.
La empresa del usuario autenticado debe ser empresa padre.
La empresa del usuario autenticado debe estar activa.
El usuario autenticado debe estar activo.
Todos los campos del body, excepto imagen, son obligatorios.
emruc debe tener exactamente 13 dígitos.
emcorreo debe tener formato de correo válido.
emcodigo debe tener exactamente 4 caracteres alfanuméricos, se normaliza a mayúsculas en el backend.
emruc no puede repetirse en otra empresa.
emcorreo no puede repetirse en otra empresa.
emcodigo no puede repetirse en otra empresa.
Si se envía imagen, solo se aceptan archivos .png y .jpg.
Si se envía imagen, el tamaño máximo permitido es 5 MB.
Si no se envía imagen, se asigna un logo por defecto.
La empresa se crea con estado activo.
Cuando se envía imagen, el Content-Type debe ser multipart/form-data. Si no, puede usarse application/json.
Errores esperados
No se envió un token JWT válido o el token no contiene información válida del usuario.
emruc no tiene exactamente 13 dígitos.
emruc fue enviado vacío.
emrznsocial fue enviado vacío.
emcorreo fue enviado vacío.
emcorreo no tiene formato de correo válido.
emcodigo fue enviado vacío.
emcodigo no cumple el formato de 4 caracteres alfanuméricos.
La imagen enviada supera los 5 MB.
La imagen enviada no tiene extensión .png o .jpg.
Ocurrió un error interno al guardar la imagen en el servidor.
La empresa asociada al usuario autenticado no fue encontrada.
La empresa asociada al usuario autenticado está inactiva.
La empresa del usuario autenticado no es empresa padre y no puede crear empresas hijas.
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 no tiene el rol requerido para crear empresas.
El usuario autenticado está inactivo y no puede usar el sistema.
Ya hay una empresa registrada con el mismo emruc.
Ya hay una empresa registrada con el mismo emcorreo.
Ya hay una empresa registrada con el mismo emcodigo.
La empresa fue guardada, pero no pudo consultarse para devolver la respuesta.
Ocurrió un error interno al guardar la empresa.
Notas de uso
Este endpoint no recibe parámetros de ruta ni query params.
Si no se envía imagen, usa Content-Type: application/json.
Si se envía imagen, usa Content-Type: multipart/form-data con el archivo en el campo imagen.
Envía emruc como texto para conservar ceros iniciales.
emcodigo se convierte automáticamente a mayúsculas en el backend.
El backend devuelve emlogo como URL pública completa, no como ruta relativa.