Este documento resume el flujo de certificados digitales en la API de empresas. =
POST /api/v1/empresa/importarCertificadoPOST /api/v1/empresa/crearPOST /api/v1/empresa/actualizar-
GET /api/v1/empresa/{id}/certificados(historial) POST /api/v1/empresa/asignarCertificado
-
Importar certificado (sin asignar)
- Llamar a
POST /api/v1/empresa/importarCertificadoconmultipart/form-data:-
rut(RUT numérico de la empresa, sin dígito verificador “RUC”) -
clave(password del .p12/.pfx) -
certificado(archivo PKCS#12, MIMEapplication/x-pkcs12)
-
- Validaciones: formato p12/pfx, clave presente, el certificado debe estar emitido para
RUC{rut}y no estar vencido. - Si pasa validaciones, se guarda y responde
{ "Res": "OK", "IdCert": <id> }. - Si ya existe el mismo
SerialNumberHexsin empresa asignada, devuelve suIdCertsin reimportar. Si el serial ya está ligado a otra empresa, rechaza.
- Llamar a
-
Crear empresa con certificado importado
- Primero importar (paso 1) y guardar el
IdCert. - Llamar a
POST /api/v1/empresa/crearcon los datos de la empresa yidCertificado=<IdCert>. - El backend valida nuevamente RUT/vigencia y asigna el certificado a la empresa. Los campos de atajo de la empresa (
UriCertificado,ClaveCertificado,VencimientoCertificado) quedan apuntando a ese certificado.
- Primero importar (paso 1) y guardar el
-
Crear empresa cargando certificado nuevo en el mismo request
- En
POST /api/v1/empresa/crear, enviarmultipart/form-datacon:- Campos de empresa
-
certificado(p12/pfx) yclaveCertificado
- El backend valida RUT/vigencia, mueve el archivo a almacenamiento y crea el registro de certificado asignándolo a la empresa.
- En
-
Actualizar empresa y rotar certificado
- Opción A: importar antes (
importarCertificado) y luegoPOST /api/v1/empresa/actualizarconidEmpresaeidCertificado. - Opción B: enviar un nuevo
certificado+claveCertificadoen el mismoactualizar. - En ambos casos se valida RUT/vigencia y se actualizan los campos de atajo de la empresa al certificado elegido.
- Opción A: importar antes (
-
Listar historial de certificados
-
GET /api/v1/empresa/{id}/certificadosdevuelve todos los certificados asociados a la empresa, ordenados por vencimiento descendente, con datos básicos (emisor, sujeto, serial, vencimiento).
-
-
Asignar un certificado importado existente
-
POST /api/v1/empresa/asignarCertificadoconidEmpresaeidCertificado. - Valida RUT/vigencia y marca el certificado como perteneciente a la empresa, actualizando los campos de atajo de la empresa.
-
-
Formato: solo
.p12/.pfx(application/x-pkcs12). - Clave requerida: el password del PKCS#12 es obligatorio en importación/carga.
-
Validación de identidad: el Subject del certificado debe contener
serialNumber = RUC{rut}de la empresa. - Vigencia: se rechaza si la fecha actual es mayor o igual a la fecha de vencimiento del certificado.
-
Duplicados: si se intenta importar un certificado con
SerialNumberHexya asignado a otra empresa, se rechaza. Si existe sin asignar, se reutiliza. -
Certificado “activo”: la empresa mantiene un puntero de uso (
UriCertificado/ClaveCertificado/VencimientoCertificado) que apunta al último certificado asignado mediante crear/actualizar/asignar. Los certificados previos permanecen en el historial pero no se usan mientras no se reasignen.
Importar certificado
POST /api/v1/empresa/importarCertificado
Content-Type: multipart/form-data
rut=123456789012
clave=MiPassword
[email protected];type=application/x-pkcs12
Crear empresa usando certificado importado
POST /api/v1/empresa/crear
Content-Type: application/x-www-form-urlencoded
rut=123456789012
razonSocial=ACME SA
nombreFantasia=ACME
...otros campos...
idCertificado=42
Asignar certificado ya importado
POST /api/v1/empresa/asignarCertificado
Content-Type: application/x-www-form-urlencoded
idEmpresa=10
idCertificado=42