← Volver a normalis.co

API para desarrolladores

Integra tu Historia Clínica Electrónica (HCE) u otro sistema con NormaLis · v1 · Última actualización: agosto de 2026

Qué es esto

La API pública de NormaLis permite que un sistema externo (Hosvital, Greenlane, SAP Salud, o un desarrollo propio de la IPS) reporte incidentes y eventos adversos directamente en NormaLis, sin que el personal clínico tenga que abrir una segunda plataforma. También expone, sin necesidad de autenticación, el checklist de requisitos de habilitación vigentes bajo la Res. 3100/2019 (incluyendo los que en su momento propuso la ahora revocada Resolución 1732 de 2026).

Está pensada para ser consumida servidor-a-servidor desde el backend de tu HCE, no desde el navegador del usuario final.

Base URL

https://normalis.fjfc1984.workers.dev

Autenticación

Los endpoints de escritura requieren una llave API, generada desde NormaLis → Integraciones API por el administrador de la IPS. Envíala en el header Authorization con el esquema Bearer:

Authorization: Bearer nlk_live_...

La llave se muestra una única vez al crearla — NormaLis solo guarda su hash y no puede recuperar el valor original. Si se pierde, hay que revocarla y generar una nueva.

GET /api/v1/checklist-1732

Devuelve el checklist de requisitos que en su momento propuso la Resolución 1732/2026 — revocada en su totalidad por la Res. 002080/2026 antes de entrar en vigencia (ver aviso en la respuesta). Los ítems con vigente: false no son exigibles hoy; solo la Res. 3100/2019 está vigente. No requiere autenticación — es contenido normativo, no datos de paciente.

Parámetros de consulta (opcionales)

  • categoria — filtra por texto contenido en la categoría (ej. telemedicina)
  • esNuevotrue para requisitos nuevos frente a la Res. 3100/2019, false para los que continúan vigentes

Ejemplo

curl "https://normalis.fjfc1984.workers.dev/api/v1/checklist-1732?esNuevo=true"

Respuesta

{
  "count": 12,
  "items": [
    {
      "id": "ihce_01",
      "categoria": "IHCE — Historia Clínica Electrónica Interoperable",
      "titulo": "Sistema de HC con capacidad de interoperabilidad",
      "descripcion": "...",
      "esNuevo": true,
      "urgencia": "alta",
      "plazo": "Diciembre 2026 (plan de adecuación progresiva)",
      "guia": "..."
    }
  ]
}

Límite: 30 solicitudes por minuto por IP.

POST /api/v1/incidentes

Registra un incidente o evento adverso en el módulo de Seguridad del Paciente de la IPS dueña de la llave. Requiere autenticación.

Cuerpo de la solicitud

{
  "tipo": "Evento adverso",
  "severidad": "moderado",
  "desc": "Caída de paciente en habitación 204",
  "accion": "Se informó al médico de turno",
  "responsable": "Enfermera Jefe"
}

Campos

CampoTipoDescripción
tipo *stringUno de: Evento adverso, Incidente sin daño, Casi-evento (near miss), Complicación, Accidente de trabajo, Otro
severidad *stringUno de: critico, moderado, leve
desc *stringMáx. 3000 caracteres
accionstringOpcional. Máx. 1000 caracteres
responsablestringOpcional. Máx. 200 caracteres

Respuesta exitosa — 201

{ "ok": true, "id": "aB3xY9..." }

El incidente queda registrado con estado Abierto y visible en el dashboard de la IPS con la etiqueta "vía API", exactamente igual que uno registrado manualmente.

Límite: 60 solicitudes por minuto por llave.

POST /api/v1/ihce-eventos

Registra un evento de la bitácora de transmisiones IHCE/RDA de la IPS dueña de la llave. Requiere autenticación.

NormaLis no genera ni transmite el Bundle FHIR del RDA — eso sigue siendo responsabilidad de tu sistema de historia clínica. Este endpoint solo guarda la evidencia de que una transmisión ocurrió (folio, tipo de encuentro, estado), para la bitácora de cumplimiento de interoperabilidad de la IPS (Ley 2015/2020 · Res. 866/2021 · Res. 1888/2025).

Cuerpo de la solicitud

{
  "bundleId": "RDA-2026-000123",
  "encuentroTipo": "ambulatorio",
  "pacienteRef": "<id interno del HCE>",
  "estadoTransmision": "confirmado",
  "detalle": "",
  "fechaTransmision": "2026-09-06T14:30:00-05:00"
}

Campos

CampoTipoDescripción
bundleId *stringFolio/ID que tu HCE asignó al Bundle FHIR transmitido. Máx. 200 caracteres
estadoTransmision *stringUno de: enviado, confirmado, rechazado
encuentroTipostringOpcional. Uno de: ambulatorio, hospitalizacion, urgencias
pacienteRefstringOpcional. Referencia opaca (ej. el Patient.id del Bundle) — nunca un nombre, número de documento u otro dato que identifique directamente al paciente. Máx. 200 caracteres
detallestringOpcional. Motivo de rechazo u observación. Máx. 1000 caracteres
fechaTransmisionstringOpcional, formato ISO 8601. Si se omite, se usa la fecha de recepción del evento

Respuesta exitosa — 201

{ "ok": true, "id": "aB3xY9..." }

El evento queda visible en la bitácora del módulo Historia Clínica de la IPS, con la etiqueta "HCE externo (API)".

Límite: 60 solicitudes por minuto por llave.

Códigos de error

CódigoSignificado
400Solicitud inválida — revisa el mensaje de error para el campo específico
401Llave faltante, inválida o revocada
429Límite de solicitudes excedido — reintenta más tarde
500 / 502 / 503Error del servidor — reintenta; si persiste, contáctanos

Estado de esta API

Esta es la versión 1 (v1) de la API pública de NormaLis, orientada a un primer caso de uso: reporte de incidentes desde sistemas externos. Estamos evaluando expandirla con más módulos (vencimientos, indicadores, consulta de auditorías) según la demanda de integración de cada IPS. Si tu equipo técnico necesita un endpoint adicional, escríbenos.

Contacto técnico

Para soporte de integración, escribe a info@normalis.co.