Documentación de la API

Todo lo necesario para integrar el envío de notificaciones certificadas desde tu propio sistema.

En esta página

🔑 Prueba la API ahora mismo

Genera una API key de prueba al instante, sin registrarte. Sirve para 2 llamadas a POST /v1/notifications y expira sola a los 30 minutos — después de eso hay que generar una nueva.

Autenticación

Todos los endpoints bajo /v1/ requieren una API key válida.

# Header (recomendado)
Authorization: Bearer <tu_api_key>

# o como query param
POST https://notificert.online/v1/notifications?api_key=<tu_api_key>

Una key ausente responde 401; una key que no exista en el sistema también responde 401 (no hay fallback silencioso). ¿No tienes una key todavía? Genera una de prueba arriba, o usa demo-key-12345 si estás corriendo el proyecto en local en modo demo.

Crear una notificación certificada

POST /v1/notifications

Envía el correo (o lo simula, en modo demo) y arranca la cadena de eventos certificados. Devuelve de inmediato el estado y la URL del certificado.

curl -X POST https://notificert.online/v1/notifications \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <tu_api_key>" \
  -d '{
    "to": "destinatario@ejemplo.cl",
    "subject": "Aviso importante",
    "body_text": "Estimado cliente, le comunicamos que...",
    "body_html": null,
    "sender_name": "Mi Empresa S.A.",
    "sender_email": "notificaciones@miempresa.cl"
  }'
tostring (email), requerido — destinatario.
subjectstring, requerido.
body_textstring, requerido — cuerpo en texto plano.
body_htmlstring, opcional — cuerpo alternativo en HTML.
sender_namestring, opcional (default "NotifiCert").
sender_emailstring, opcional — usado como Reply-To.
channelstring, opcional (default "email").
customer_refstring, opcional — tu propio identificador del cliente (ej. RUT), para poder buscar el envío después sin depender del correo.
attachmentsarray, opcional — ver sección Adjuntos.

Respuesta (200):

{
  "id": "f3210ad1-59fa-4ead-8a9b-2838df5553d1",
  "status": "sent",
  "content_hash": "f8019b77...",
  "created_at": "2026-07-14T02:18:50.858634",
  "certificate_url": "https://notificert.online/v1/notifications/{id}/certificate",
  "attachments": [
    {
      "id": "9f980ac0-...",
      "filename": "informe.pdf",
      "content_type": "application/pdf",
      "size_bytes": 7136,
      "sha256": "bbf3c642..."
    }
  ]
}

Adjuntos

Se envían codificados en base64 dentro del mismo request. Se guardan con su hash SHA-256 (queda registrado en la cadena de eventos certificada) y se anexan al final del certificado PDF cuando es posible previsualizarlos.

curl -X POST https://notificert.online/v1/notifications \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <tu_api_key>" \
  -d "{
    \"to\": \"destinatario@ejemplo.cl\",
    \"subject\": \"Informe adjunto\",
    \"body_text\": \"Adjuntamos el informe solicitado.\",
    \"attachments\": [{
      \"filename\": \"informe.pdf\",
      \"content_type\": \"application/pdf\",
      \"content_base64\": \"$(base64 -i informe.pdf)\"
    }]
  }"
filenamestring, requerido.
content_typestring, opcional (default "application/octet-stream").
content_base64string, requerido — contenido del archivo en base64.

Consultar y listar

GET /v1/notifications/{id}

Estado actual, metadata, adjuntos y la cadena completa de eventos certificados.

curl https://notificert.online/v1/notifications/{id} \
  -H "Authorization: Bearer <tu_api_key>"
GET /v1/notifications

Lista paginada, con búsqueda por destinatario y filtro de estado opcionales (el mismo mecanismo que usa el buscador del portal).

curl "https://notificert.online/v1/notifications?limit=20&offset=0&q=destinatario%40ejemplo.cl&status=delivered" \
  -H "Authorization: Bearer <tu_api_key>"
limitint, opcional (default 20).
offsetint, opcional (default 0).
qstring, opcional — coincidencia parcial contra el destinatario.
statusstring, opcional — uno de los valores de la sección Estados.

Certificado y adjuntos originales

GET /v1/notifications/{id}/certificate

Descarga el certificado PDF (se regenera automáticamente si algún evento cambió desde la última descarga).

curl https://notificert.online/v1/notifications/{id}/certificate -o certificado.pdf
GET /v1/notifications/{id}/attachments/{attachment_id}

Descarga un adjunto original tal como se guardó, para verificar su hash SHA-256 de forma independiente del certificado.

curl https://notificert.online/v1/notifications/{id}/attachments/{attachment_id} -o adjunto.pdf
shasum -a 256 adjunto.pdf   # debe coincidir con el sha256 devuelto por la API
GET /verify/{id}

Página HTML pública (sin autenticación) que recomputa y verifica la cadena de hashes y muestra el registro en formato legible. Es el destino del código QR del certificado — pensada para que la abra cualquier persona, no un desarrollador.

Estados y eventos

El estado de una notificación avanza a medida que SendGrid confirma cada etapa. No existe un estado "leído/abierto": esa señal proviene de la precarga automática de imágenes de los proveedores de correo, no de una lectura real, así que no se certifica.

queuedCreada, aún no procesada.
sentAceptada por el servidor de envío (SendGrid).
deliveredConfirmada la entrega al servidor de correo del destinatario.
deferredEntrega retrasada temporalmente; se reintentará.
failedRebote o rechazo permanente.
complainedEl destinatario marcó el mensaje como spam.

Límites

Adjuntos por notificaciónmáx. 10 archivos
Tamaño total de adjuntosmáx. 15 MB (deja margen bajo el tope de 30 MB de SendGrid)
Usos por API key de prueba2 llamadas a POST /v1/notifications, expira a los 30 min
Generación de keys de pruebamáx. 5 por hora, por IP

Documentación interactiva (Swagger/OpenAPI) disponible en /docs.