Empresa
Datos de la empresa del usuario (GET /company, PUT /company/{id}), parámetros de configuración general (GET/PUT /company/settings) y tipos de emisión que puede usar la empresa (issuance_provider: viafirma = solo biométrica, mail = solo documental, dual = las dos; lo gestiona MATICERTS).
Obtener configuración general de la empresa
Retorna los parámetros de configuración general de la empresa del usuario autenticado. Antes de consultar, crea los parámetros que falten con el valor y el estado por defecto de su definición. Solo incluye parámetros cuya definición está activa (`setting.active` = 1); el `active` de cada elemento puede ser 0. Se ordenan por `setting.tag`.
Actualizar configuración general de la empresa
Actualiza el valor de uno o varios parámetros de configuración general de la empresa. Solo se modifica `value` de cada parámetro indicado por su `id` (el `id` de cada elemento de `settings` en GET /company/settings). Solo se actualizan parámetros de la empresa del usuario: los `id` de otra empresa se ignoran.
Obtener datos de la empresa
Retorna los datos de la empresa del usuario autenticado. Si se envía `uid`, retorna la empresa con ese ID: un usuario solo puede pedir su propia empresa (otra, exista o no, responde 404) y el administrador, cualquiera. Para un administrador, un `uid` que no existe no responde 404 sino 200 con `dataRecords.data` = `[null]`. La respuesta siempre es un arreglo `data` de un elemento.
Actualizar datos de una empresa
Un usuario solo puede actualizar su propia empresa. `active` se ignora si se envía; `uuid` nunca se modifica, y `issuance_provider` y `has_agreement` se ignoran siempre (los gestiona MATICERTS). Actualiza los datos de la empresa indicada. Los campos se envían como un objeto JSON serializado en `records`; solo se guardan los campos que cambian y que pertenecen a la lista de campos editables. El cambio se detecta con una comparación no estricta: dos textos numéricos se comparan como números (p. ej. `055010` y `55010`, o `+3001234567` y `3001234567`, se consideran iguales) y `null` equivale a un texto vacío. Nota: en esos casos el campo no se guarda aunque la respuesta sea 200 con `Registro actualizado correctamente.`; compruebe el valor devuelto en `dataRecords`. El dígito de verificación (`dv`) solo se recalcula a partir de `dni` cuando `records` incluye `country_id` con el número 45 (Colombia; no el texto '45'): en ese caso `dni` es obligatorio (si falta, responde 500) y debe contener solo dígitos (con puntos o guiones el `dv` calculado es incorrecto). En otro caso se conserva el `dv` actual, así que si cambia el `dni` de una empresa colombiana envíe también `country_id`: 45. El logo se envía en base64 (`imgdata` + `imgname`) y se guarda en `image`. Correo: si `records.email` es un texto distinto del guardado (se comparan sin espacios al inicio ni al final), debe poder recibir mensajes (sin tildes, eñes ni espacios intermedios antes de la @ y con dominio válido); si no, responde 422 y no se guarda nada. Si `records.email` no es texto ni null (número, booleano, arreglo u objeto) también responde 422 con el mismo mensaje, aunque no se esté cambiando el correo. Un `email` igual al actual no se valida, así que una empresa con un correo antiguo inválido puede seguir editando el resto de campos. Un `email` vacío, solo con espacios o null responde 422 (`El correo electrónico es obligatorio: no se puede dejar vacío.`) si la empresa ya tiene un correo: el correo de contacto no se puede borrar; si la empresa no tiene correo, se acepta y sigue sin correo. Para no modificar el correo, omita `email` en `records`. El correo se guarda sin espacios al inicio ni al final. No se bloquea por empresa inactiva: los usuarios de una empresa deshabilitada pueden editar sus datos, pero no reactivarla. Solo se admite PUT (no PATCH).