Todo lo necesario para integrar el envío de notificaciones certificadas desde tu propio sistema.
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.
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.
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"
}'
| to | string (email), requerido — destinatario. |
| subject | string, requerido. |
| body_text | string, requerido — cuerpo en texto plano. |
| body_html | string, opcional — cuerpo alternativo en HTML. |
| sender_name | string, opcional (default "NotifiCert"). |
| sender_email | string, opcional — usado como Reply-To. |
| channel | string, opcional (default "email"). |
| customer_ref | string, opcional — tu propio identificador del cliente (ej. RUT), para poder buscar el envío después sin depender del correo. |
| attachments | array, 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..."
}
]
}
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)\"
}]
}"
| filename | string, requerido. |
| content_type | string, opcional (default "application/octet-stream"). |
| content_base64 | string, requerido — contenido del archivo en base64. |
Estado actual, metadata, adjuntos y la cadena completa de eventos certificados.
curl https://notificert.online/v1/notifications/{id} \
-H "Authorization: Bearer <tu_api_key>"
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>"
| limit | int, opcional (default 20). |
| offset | int, opcional (default 0). |
| q | string, opcional — coincidencia parcial contra el destinatario. |
| status | string, opcional — uno de los valores de la sección Estados. |
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
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
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.
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.
| queued | Creada, aún no procesada. |
| sent | Aceptada por el servidor de envío (SendGrid). |
| delivered | Confirmada la entrega al servidor de correo del destinatario. |
| deferred | Entrega retrasada temporalmente; se reintentará. |
| failed | Rebote o rechazo permanente. |
| complained | El destinatario marcó el mensaje como spam. |
| Adjuntos por notificación | máx. 10 archivos |
| Tamaño total de adjuntos | máx. 15 MB (deja margen bajo el tope de 30 MB de SendGrid) |
| Usos por API key de prueba | 2 llamadas a POST /v1/notifications, expira a los 30 min |
| Generación de keys de prueba | máx. 5 por hora, por IP |
Documentación interactiva (Swagger/OpenAPI) disponible en /docs.