OpenAPI 3.1 · v1Complete contract and runbookPython · httpxOffline verifierWebhook · Python

One button in your application

  1. Reserve the optional comparison URL before finalizing the PDF.
  2. Finalize the bytes and save your document with a durable pending registration.
  3. Send SHA-256 and opaque references from your server worker. Never upload the PDF.
  4. Save the signed receipt. A recipient compares their copy locally in the browser.

A CheckThisFile outage must not block document generation or delivery. Replay the same saved declaration after reconciling by reference.

Register, recover, reconcile

from integrity_client import IntegrityClient, final_bytes_declaration

client = IntegrityClient(settings.CTF_ORIGIN, settings.CTF_API_KEY)
reference = {"companyReference": "company_7f92", "source": "gestionar-deca",
             "documentReference": "doc_9b81", "version": 1}
reservation = await client.reserve(reference)
# Embed verificationUrl before closing PDF bytes. Save PDF + outbox in YOUR DB.
declaration = final_bytes_declaration(reference, final_pdf, generated_at,
                                     reservation_id=reservation["publicId"])
result = await client.register(declaration)  # durable worker, not Emitir
receipt = await client.evidence(result["publicId"])
# Timeout? client.lookup(reference), then replay the SAME declaration.

A new version consumes one registration. Identical repeats consume zero, permanently. A conflicting declaration returns 409. Higher version numbers win, even when requests arrive out of order.

Companies, scopes and events

Create opaque companies and explicitly grant keys and webhook destinations. A scope alone is not company authorization. Worker: integrity:write + integrity:read; administration is separate.

/api/v1/integrity/changes: durable cursor-based reconciliation; never rely on delivery order or exactly-once webhooks.

MCP: /api/v1/integrity/mcp. Dedicated scoped tools can reserve, register and query hashes, never invent a review or approval.

Configure workspace · ES

Separate, included allowance

Free: 1,000 · Pro: 25,000 · Scale: 250,000 new hash-only versions / UTC month.

No monthly HTTP consumption on the integrity API; technical rate limits still apply. File credit packs do not increase this allowance. Warnings at 80/95/100%; no automatic charges or upgrades. Cancellation does not revoke historical signatures or prevent authorized exports.

Exact scope of the evidence

We register a hash declared by an authenticated organization at our reception time. Size, format and generation time are declarations. No authorship, possession, truth, human review, legal compliance or independent timestamping is attested.

Offline evidence proves the conserved signature; current status requires an online check. A signed dated observation establishes status only at its observation time. Pin trusted keys independently. Records are retained while the service operates; export your own evidence and public key material.

Gestionar DECA and CheckThisFile share their developer/operator. This is an external verification service, not an independent third-party audit.