Para desarrolladores
API pública de verificación
Toda credencial de OpenChapitas es verificable por terceros sin necesitar cuenta ni depender de que este servidor exista — resolviendo el did:web del emisor y comprobando la firma híbrida (Ed25519 + ML-DSA-65) directamente. Estos son los endpoints públicos y los webhooks para integrar tus propios sistemas.
Verificación
/.well-known/did.jsonDocumento DID del emisor — claves públicas Ed25519 (con histórico de versiones) y ML-DSA-65.
curl https://openchapitas.org/.well-known/did.json
/api/verifyVerifica una credencial firmada (JSON completo en el body). Devuelve validez de cada prueba, si es post-cuántica, y si está vigente/revocada.
curl -X POST https://openchapitas.org/api/verify \
-H "Content-Type: application/json" \
-d '{"credential": <VC firmada>}'/api/credentials/{id}Credencial firmada en JSON-LD (con Accept: application/vc+ld+json) o página pública HTML.
curl https://openchapitas.org/api/credentials/{id} \
-H "Accept: application/vc+ld+json"/status/list-1BitstringStatusList firmada — estado de revocación de todas las credenciales, comprobable offline.
curl https://openchapitas.org/status/list-1
Datos públicos
/api/public/statsConteos agregados sin PII: credenciales vigentes y nº de emisores.
/api/public/orgsDirectorio de organizaciones emisoras con vitrina pública.
/api/public/org/{slug}Perfil de una organización + las insignias que otorga.
Webhooks
Configurables desde tu consola. Cada entrega llega firmada con HMAC-SHA256 (secreto propio de cada webhook) en la cabecera X-OpenChapitas-Signature, formato sha256=<hex> — verifica antes de confiar en el payload.
credential.issueSe dispara al emitir una credencial.
{"event":"credential.issue","credential_id":"...","achievement_id":"...","status":"valid","url":"https://openchapitas.org/credentials/..."}credential.revokeSe dispara al revocar una credencial.
{"event":"credential.revoke","credential_id":"...","reason":"...","url":"https://openchapitas.org/credentials/..."}Verificación de firma (Node/Python — cualquier librería HMAC-SHA256 estándar sirve):
# Python import hmac, hashlib expected = "sha256=" + hmac.new(secret.encode(), body_raw_bytes, hashlib.sha256).hexdigest() assert hmac.compare_digest(expected, request.headers["X-OpenChapitas-Signature"])
¿Necesitas algo que no está aquí? La API es de solo lectura para verificación pública — la emisión requiere una API key de tu organización (Bearer token), disponible desde la consola.