# Subir certificado digital (PFX/P12)

`POST /api/v1/billing/empresa/certificado/pfx`

Sube un certificado digital en formato `.pfx` o `.p12` vía
`multipart/form-data`. El servidor convierte el PFX internamente y
almacena el certificado encriptado; la clave privada nunca se expone
en la API. Requiere rol admin. Tamaño máximo del archivo: 50KB.

> **Beta privada**: las escrituras vía API key están en beta privada
> (solicitar acceso: hola@simplo.cl); las API keys hoy operan en modo
> lectura.

- Autenticación: header `X-Api-Key: sk_simplo_...` (o `Authorization: Bearer <jwt>` para sesiones de la plataforma).
- operationId: `subirCertificadoPFX` — contrato completo en https://docs.simplo.cl/openapi.yaml
- Versión HTML: https://docs.simplo.cl/api/operations/subircertificadopfx/

## Ejemplo (curl)

```sh
curl -X POST "https://api.simplo.cl/api/v1/billing/empresa/certificado/pfx" \
  -H "X-Api-Key: $SIMPLO_API_KEY"
```

## Respuestas

### 201 — Certificado subido y procesado

Schema: `CertificadoStatusResponse`

| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `has_certificado` | boolean | sí |  |
| `rut_firmante` | string | no |  |
| `fecha_vencimiento` | string (date) | no |  |
| `dias_para_vencimiento` | integer | no | Días restantes hasta vencimiento |
| `is_active` | boolean | no |  |
| `uploaded_at` | string (date-time) | no |  |

### 400 — PFX inválido, password incorrecto, o archivo demasiado grande

Schema: `ErrorResponse`

### 401 — Token o API key inválido o ausente

Schema: `ErrorResponse`

### 403 — Requiere rol admin

Schema: `ErrorResponse`
