Saltar al contenido
International Accreditation Center · emblema oficial IAC

Integración · REST · JSON

Trust Registry API.

Backend del faro /verificar y de cada ficha pública del registro. Implementado en Cloudflare Workers con D1 (SQLite serverless). HMAC-SHA256 para verificación firmada. CORS estricto. Rate limit por origen. Sin captura de identidad del visitante.

base: https://iac-registry-api.fernandoarrietasayour.workers.dev

Endpoints

Siete endpoints REST.

GET /healthz

Status del servicio + cantidad de registros + modo operativo.

{ "ok": true, "registros": 30, "mode": "controlado", "ts": "2026-05-27T20:00:00.000Z" }
GET /registry/:codigo

Ficha pública por código. Modalidad y modo rigen la visibilidad del nombre.

{ "ficha": { "codigo": "IAC-2026-REF-00001", "tipo": "Profesional", "estado": "Activo", "alcance": "...", ... } }
GET /registry?tipo=&estado=&pais=&norma=&q=&limit=&offset=

Lista paginada con filtros. limit max 200, offset desde 0.

{ "items": [...], "total": 30, "limit": 50, "offset": 0 }
GET /registry/verify?c=CODIGO[&t=TS&sig=HMAC]

Verifica un código. Si se pasa t+sig, valida HMAC-SHA256 contra REGISTRY_HMAC_SECRET. Sin firma, sólo confirma existencia.

{ "verified": true, "ficha": {...}, "verified_at": "...", "mode": "controlado" }
GET /registry/qr/:codigo

Genera URL firmada de verificación (HMAC-SHA256). Útil para construir QR del lado cliente.

{ "codigo": "IAC-...", "t": "1716826800000", "sig": "...", "verify_url": "...", "expires_in_ms": 2592000000 }
GET /registry/eventos.json?limit=50

Feed JSON con últimas N transiciones públicas de estado (max 200). Sin datos personales del titular.

{ "eventos": [...], "generated_at": "..." }
POST /registry/aplicar

Recepción de aplicación. Body JSON con tipo (profesional|organizacion|programa), email, pais y payload propio. Body limit 16 KB.

{ "ok": true, "id": 42 }

Ejemplo

Verificar un código.

# Verificación simple
curl https://iac-registry-api.fernandoarrietasayour.workers.dev/registry/IAC-2026-REF-00001

# Verificación con HMAC firmado (desde un QR)
curl "https://iac-registry-api.fernandoarrietasayour.workers.dev/registry/verify?c=IAC-2026-REF-00001&t=1716826800000&sig=ABC..."

# Lista filtrada
curl "https://iac-registry-api.fernandoarrietasayour.workers.dev/registry?tipo=Profesional&estado=Activo&limit=20"

# Feed de eventos
curl https://iac-registry-api.fernandoarrietasayour.workers.dev/registry/eventos.json