Cada ejemplo supone una sesión iniciada; cómo obtenerla está en Autenticación
GET /_x/query/verify-chain
Miembro de la firma Permiso: evidence:verify Herramienta MCP: verifyChain
Verify the hash-chained evidence log between two sequence numbers (at most 100000 events) and name the first broken event. Staff only.
Parámetros de verifyChain Nombre Dónde Tipo Obligatorio deepConsulta booleanNo fromSeqConsulta integer 1–9007199254740991Sí toSeqConsulta integer 1–9007199254740991No _firstConsulta integer 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000) No _afterConsulta stringthe endCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/verify-chain?fromSeq=1' \
-b cookies.txtTypeScript Copiar const response = await fetch('https://www.notificado.co/_x/query/verify-chain?fromSeq=1' , {
headers : { cookie : sessionCookie },
});
const result = await response.json();Ejemplo de respuesta 200 Copiar [
null
]Errores
400 X_INPUT_INVALID or X_CURSOR_INVALID 403 policy denied POST /api/chain-verifications/run
Miembro de la firma Permiso: evidence:verify Herramienta MCP: runChainVerification
Staff only. Verify the hash-chained evidence log between two sequence numbers. Up to 50000 events are verified in the call and answer { ok, checked, firstBroken? }; a longer range (up to 10000000) is queued and answers { enqueued: true, jobId }. deep also re-hashes the raw provider objects. Read-only; every call is audited.
Parámetros de runChainVerification Nombre Dónde Tipo Obligatorio confirmTokenCuerpo string 1–200No deepCuerpo booleanNo fromSeqCuerpo integer 1–9007199254740991Sí toSeqCuerpo integer 1–9007199254740991Sí
curl Copiar curl -X POST 'https://www.notificado.co/api/chain-verifications/run' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{"fromSeq":1,"toSeq":1}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/chain-verifications/run' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({
"fromSeq" : 1 ,
"toSeq" : 1
}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"checked": -9007199254740991,
"deep": true,
"firstBroken": {
"id": "<id>",
"reason": "<reason>",
"seq": -9007199254740991
},
"fromSeq": -9007199254740991,
"ok": true,
"toSeq": -9007199254740991
}Errores
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/constancias/reissue
Miembro de la firma Permiso: evidence:read
reissueConstancia
Parámetros de reissueConstancia Nombre Dónde Tipo Obligatorio notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar curl -X POST 'https://www.notificado.co/api/constancias/reissue' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{"notificationId":"<notificationId>","orgId":"<orgId>"}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/constancias/reissue' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({
"notificationId" : "<notificationId>" ,
"orgId" : "<orgId>"
}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"queued": true,
"version": 2
}Errores
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID POST /api/evidences/download
Miembro de la firma Permiso: evidence:read Herramienta MCP: downloadEvidence
Returns the bytes (base64, with filename, content type and SHA-256) of the signed constancia PDF (kind "constancia") or the offline-verifiable evidence zip (kind "zip") of one notification in your organization; newest version unless "version" is given. Every call is recorded in the audit log and as an evidence.viewed event. Fails X_CONSTANCIA_NOT_FOUND before the first constancia is issued and X_EVIDENCE_ZIP_NOT_READY while the zip is still being built.
Parámetros de downloadEvidence Nombre Dónde Tipo Obligatorio kindCuerpo "constancia" | "zip"Sí notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí versionCuerpo integer 1–9007199254740991No
curl Copiar curl -X POST 'https://www.notificado.co/api/evidences/download' \
-b cookies.txt \
-H 'origin: https://www.notificado.co' \
-H 'content-type: application/json' \
-d '{
"kind": "constancia",
"notificationId": "<notificationId>",
"orgId": "<orgId>"
}' TypeScript Copiar const response = await fetch('https://www.notificado.co/api/evidences/download' , {
method : 'POST' ,
headers : { 'content-type' : 'application/json' , origin : 'https://www.notificado.co' , cookie : sessionCookie },
body : JSON.stringify({
"kind" : "constancia" ,
"notificationId" : "<notificationId>" ,
"orgId" : "<orgId>"
}),
});
const result = await response.json();Ejemplo de respuesta 200 Copiar {
"bytes": 0,
"constanciaId": "<constanciaId>",
"contentBase64": "<contentBase64>",
"contentType": "<contentType>",
"filename": "<filename>",
"kind": "constancia",
"sha256": "<sha256>",
"version": 1
}Errores
400 X_INPUT_INVALID 403 policy denied 422 X_BODY_INVALID