Notta Docs

Subir certificado

El .p12 de tu PSC queda cifrado con envelope encryption — paso a paso por dashboard, API y CLI.

El certificado digital .p12 es lo que Notta usa para firmar cada DTE en nombre tuyo. Sin él, no se puede emitir.

Requisitos

  • Archivo .p12 o .pfx válido emitido por un PSC (Acepta, eCertChile, IDOK, eFactor, etc).
  • Password del .p12 — el mismo que te entregó el PSC.
  • La organización donde subes el cert debe matchear el RUT del titular del certificado.

Vía dashboard

  1. Abre app.notta.cl/app/certificates.
  2. Arrastra tu .p12 al recuadro de carga.
  3. Ingresa el password.
  4. Etiqueta el cert ("Producción", "Backup", etc).
  5. Click Subir.

Vas a ver un check con la fecha de expiración y el RUT del titular. El sistema te avisa 30 días antes de que expire.

Vía API

Este endpoint hoy autentica con tu sesión del dashboard, no con API key — el upload programático con Bearer está en camino (mientras tanto, un Bearer responde 412 org.required). El shape del request y la respuesta:

curl -X POST https://app.notta.cl/api/v1/certificates \
  -H "Authorization: Bearer ntt_cert_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "file=@./mi-cert.p12" \
  -F "password=********" \
  -F "label=Producción"

Salida esperada (201 Created):

{
  "data": {
    "id": "01957a91-0b50-7000-8000-cccc00000001",
    "label": "Producción",
    "not_after": "2027-03-12T00:00:00.000Z"
  }
}

El id de la respuesta es el que va en el header X-Cert-Id al emitir — anótalo (también lo ves en el dashboard).

Vía CLI

notta cert upload ./mi-cert.p12 \
  --password ******** \
  --label "Producción"

El binario notta está en proceso de publicación en npm; mientras tanto el dashboard y la API cubren el flujo completo. Los comandos están en CLI Reference.

Seguridad

  • Tu .p12 se cifra antes de tocar disco con AES-256-GCM.
  • El password nunca se persiste — sólo se usa en memoria.
  • Cada operación que descifra el cert escribe un entry en audit_log.
  • Rotar la KEK no requiere re-subir el cert — sólo re-wrapping del DEK.

Errores comunes

CódigoCuándoAcción
cert.invalid_requestFalta file, password o label en el form-dataManda los tres campos y reintenta
cert.duplicateEl mismo .p12 ya está subido en tu orgUsa el cert existente o sube uno distinto
org.requiredTu cuenta todavía no tiene organizaciónCompleta el onboarding de la org primero
cert_expiredEl cert venció (se detecta al emitir)Sube el cert renovado

Próximos pasos

  • Tu primer DTE — sigue el quickstart desde el paso 2: cargar folios (CAF) y emitir tu primera Factura 33.
  • Autenticación — API keys, prefijos por entorno, scopes y rotación.
  • Errores — catálogo completo con next_action por código.

Última actualización

En esta página