Registrar solo la huella, sin subir el documento

Modalidad específica sin revisión ni aprobación: reserva del enlace, registro por SHA-256, empresas autorizadas, versiones, evidencia portable y reconciliación. Una unidad por versión nueva, repeticiones sin consumo adicional.

API de integridad - Python httpx y MCP

Los ejemplos de certificados de revisión de esta página corresponden al flujo anterior, no son necesarios para el registro por huella.

Descargar SDK - 0.2.0Guía de certificados - EnglishSkill de integraciónÍndice para agentes

SDK de servidor - JavaScript y TypeScript

Descarga e instala el archivo con npm install ./checkthisfile-0.2.0.tgz. Node.js 22+, ESM y sin dependencias. Distribución local, todavía no publicado en npm.

import { readFile } from 'node:fs/promises';
import { CheckThisFile } from 'checkthisfile';

const ctf = new CheckThisFile({
  baseUrl: process.env.CHECKTHISFILE_BASE_URL, // origen, sin /api/v1
  apiKey: process.env.CHECKTHISFILE_API_KEY,
});
const result = await ctf.verifyBytes({
  publicId: process.env.CHECKTHISFILE_CERTIFICATE_ID,
  bytes: await readFile('./documento.pdf'),
});
// Aceptar solo result.verified === true.

El SDK no reintenta escrituras ni aprueba de forma implícita. Una excepción de red o permisos no es prueba de manipulación. También tienes un ejemplo Python sin dependencias.

Primera integración

  1. Crea un espacio: Gratis incluye 3.000 peticiones API + MCP y 100 registros por mes natural UTC, sin tarjeta. Amplía el plan o compra una recarga desde Facturación cuando lo necesites.
  2. Entra en API y MCP y crea una clave con verify:read.
  3. Calcula SHA-256 sobre los bytes exactos del archivo en tu sistema. No normalices texto ni conviertas el formato.
  4. Envía el ID del certificado y la huella. Usa data.verified === true como condición de coincidencia con un certificado válido y vigente.
curl 'https://checkthisfile.com/api/v1/verify' \
  -H "Authorization: Bearer $CHECKTHISFILE_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{"publicId":"ew_ID_REAL_DEL_CERTIFICADO","sha256":"HUELLA_HEXADECIMAL_DE_64_CARACTERES"}'

Sustituye los valores de ejemplo por un certificado emitido y una huella real. La clave vive en el servidor de tu aplicación, nunca en el frontend.

{
  "data": {
    "verified": true,
    "hashMatches": true,
    "signatureValid": true,
    "certificateCurrent": true,
    "certificateStatus": "valid",
    "reason": "MATCH",
    "documentUploaded": false
  },
  "error": null,
  "meta": {}
}

Un archivo modificado devuelve HASH_MISMATCH. Una huella que coincide con un certificado revocado o sustituido devuelve verified: false. El servicio compara lo que le envías; no prueba autoría ni veracidad.

GET /api/v1/usage muestra cuota, saldo y próximo reinicio sin gastar peticiones mensuales, incluso con cuota agotada (máximo 10/minuto). Los avisos al 80/95/100 % no autorizan compras ni cambios de plan automáticos.

Operaciones disponibles

OpenAPI 3.1 - descargar
Endpoints REST de CheckThisFile y permisos necesarios
OperaciónQué resuelvePermiso
POST /api/v1/integrity/recordsRegister SHA-256 only - permanently deduplicated version, no reviewintegrity:write
POST /api/v1/integrity/reservationsReserve a link before finalizing the PDF - no usage chargeintegrity:write
GET /api/v1/integrity/lookupLook up by company, source, document and versionintegrity:read
GET /api/v1/integrity/records/{publicId}Retrieve a record for an authorized companyintegrity:read
GET /api/v1/integrity/records/{publicId}/evidenceExport portable evidence and a signed status observationintegrity:read
POST /api/v1/integrity/records/{publicId}/revokeRevoke while retaining historical evidenceintegrity:revoke
GET /api/v1/integrity/changesReconcile company changes with a stable cursorintegrity:read
GET /api/v1/integrity/usageIntegrity allowance and company contributionintegrity:read
GET /api/v1/integrity/companiesCompanies authorized for this keyintegrity:read
POST /api/v1/integrity/companiesCreate an opaque company - owner/adminintegrity:admin
POST /api/v1/integrity/companies/{companyId}/accessGrant or revoke key access by companyintegrity:admin
POST /api/v1/integrity/companies/{companyId}/webhooksAuthorize destinations by companyintegrity:admin
GET /api/v1/usageUsage and balance, including when the allowance is exhaustedClave activa - cualquier scope
GET /api/v1/meIdentidad, permisos y cuotaCualquier clave activa
POST /api/v1/verifyCompare hash, signature and current status without uploading the fileverify:read
GET /api/v1/artifactsDocumentos propios - limit y offsetartifacts:read
GET /api/v1/artifacts/{id}Document versions, reviews, approval and certificateartifacts:read
POST /api/v1/artifacts - Idempotency-KeyRegister a file or text and run local analysisartifacts:write
POST /api/v1/artifacts/{id}/versions - Idempotency-KeyRegister and analyze a later versionartifacts:write
GET /api/v1/analyses/{id}Analysis results and limitationsanalyses:read
POST /api/v1/artifacts/{id}/reviews - Idempotency-KeyDeclare a review and provide the exact filereviews:write
POST /api/v1/versions/{id}/approve - Idempotency-KeyApprove with explicit responsibilityapprovals:write
POST /api/v1/versions/{id}/certificates - Idempotency-KeyIssue a certificate with publication authorizationcertificates:write
GET /api/v1/certificates/{id}/downloadDownload the organization's signed JSON envelopecertificates:read
POST /api/v1/certificates/{id}/revoke - Idempotency-KeyRevoke with a documented reasoncertificates:write
GET /api/v1/audit-eventsOrganization history - limit and offsetaudit:read
GET /api/v1/metrics/detectorsAggregate detector metricsmetrics:read
GET /api/v1/certificates/{id}/verifyPublic certificate verificationPublic - no key

Los permisos de la clave no elevan el rol del usuario. Registrar exige analyst/admin/owner; revisar, reviewer/admin/owner; aprobar, emitir y revocar, admin/owner. Análisis síncrono: local en desarrollo, parser separado por socket Unix obligatorio en producción.

MCP para agentes

Dirección: https://checkthisfile.com/api/v1/mcp. Transporte Streamable HTTP, sin sesión ni SSE; mensajes JSON-RPC y respuesta JSON. Versiones admitidas: 2025-11-25, 2025-06-18 y 2025-03-26.

{
  "mcpServers": {
    "checkthisfile": {
      "url": "https://checkthisfile.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${CHECKTHISFILE_API_KEY}"
      }
    }
  }
}

Ejemplo conceptual: el formato y la expansión de variables dependen de tu cliente. Puedes usar claves Bearer; OAuth opcional exige proveedor externo configurado, identidad vinculada y consentimiento. No se garantiza compatibilidad con todos los conectores web.

  • verificar_documento: huella, firma y vigencia.
  • verificar_certificado: datos autorizados para publicación.
  • listar_documentos: documentos de tu organización, si la clave lo permite.
  • consultar_consumo: plan y cuota.

No se ofrecen herramientas para declarar revisión, aprobar o emitir. Las herramientas disponibles se filtran por los permisos de la clave.

Contrato de integración

Sin archivo: /verify solo recibe el ID y la huella. El registro y la revisión sí envían los bytes al servidor; se aplica la política de retención de la organización.

Reintentos: conserva la misma Idempotency-Key y el mismo contenido en las escrituras. No hay garantía exactly-once ante un fallo entre el commit y la respuesta almacenada.

Cuotas: cada petición Bearer admitida consume una solicitud, incluso si después falla la validación, reproduce una respuesta o inicializa MCP. Las peticiones rechazadas por clave, scope, plan o cuota no consumen. Un 429 incluye Retry-After.

Errores: 401 clave inválida; 403 permisos o plan; 409 conflicto o solicitud en curso; 413 tamaño; 422 datos inválidos. En MCP, distingue errores HTTP de errores JSON-RPC.

Stripe, invitaciones Resend, webhooks con outbox cifrado y OAuth externo están implementados. Falta validar proveedores reales, el sandbox Docker y carga/TLS antes de la ingesta pública. Análisis sigue síncrono; la cola operacional no conserva documentos.