Emití constancias desde tu sistema.
Con una clave de tu espacio, tu sistema emite la misma constancia que se crea desde el panel: el PDF, su huella y la dirección pública para verificarla. Cada emisión se cobra al espacio dueño de la clave, como una constancia más.
Empezar
- 1
Creá una clave
En el panel, en API e integraciones (menú de ajustes del espacio). La clave completa se muestra una sola vez; guardala en un lugar seguro.
- 2
Calculá la huella y emití
Calculá el SHA-256 del archivo en tu sistema y llamá a POST /integrations/certificates/hash con su nombre, tamaño y huella.
- 3
Compartí o guardá
La respuesta trae la dirección pública de verificación y la del PDF. Quien la reciba la comprueba gratis, sin cuenta.
Autenticación
Enviá la clave en X-API-Key: ak_archivalo_… o en Authorization: ApiKey ak_archivalo_…. La clave pertenece a un espacio: sus emisiones usan las constancias de ese espacio y cuentan para su precio; no envíes el espacio en el pedido.
Quienes administran el espacio crean, ven y revocan sus claves. Si perdés una clave, revocala y creá otra; las constancias ya emitidas no cambian.
Para reintentar sin emitir dos veces, enviá Idempotency-Key con un valor único por emisión. Si repetís el pedido con el mismo valor y el mismo contenido, no se emite otra constancia; con otro contenido, la respuesta es 409 IDEMPOTENCY_CONFLICT.
Endpoints
Base: https://www.archivalo.com.py/api/archivalo. Pedidos y respuestas en JSON, salvo el PDF del resultado.
- POST
/integrations/certificates/hash
Emite una constancia a partir de la huella SHA-256 de un archivo. El archivo no se envía.
- POST
/integrations/certificates/upload-context
Prepara la subida de un archivo para conservar el original en Documentos.
- POST
/integrations/certificates/file-receipt
Emite la constancia del archivo subido, con el recibo de la subida.
- GET
/integrations/certificates/operations/{id}
Estado de una emisión: si terminó, devuelve la dirección del resultado.
- GET
/integrations/certificates/operations/{id}/result
La constancia en PDF de una emisión terminada.
Para conservar el archivo original en Documentos, el archivo se sube con un contexto de subida (upload-context: nombre, tipo, tamaño y SHA-256) y la constancia se emite con el recibo (file-receipt, con preserveOriginal y, si querés, expectedFileHash). Si lo guardás en una carpeta compartida en una sala, sus personas invitadas lo ven. La subida usa la misma API cifrada que el panel; escribinos y te pasamos el detalle.
Ejemplos
curl -X POST https://www.archivalo.com.py/api/archivalo/integrations/certificates/hash \
-H "X-API-Key: ak_archivalo_…" \
-H "Idempotency-Key: pedido-2026-10-08-001" \
-H "Content-Type: application/json" \
-d '{
"fileName": "contrato.pdf",
"fileSize": 238120,
"fileHash": "<sha256 en hexadecimal, 64 caracteres>"
}'{
"certificateId": "A01:…",
"certificateDatabaseId": 456,
"teamId": 123,
"vaultFileId": null,
"originalStored": false,
"vaultLinked": false,
"fileName": "contrato.pdf",
"fileSize": 238120,
"fileHash": "<sha256>",
"certificateHash": "<sha256>",
"auditTrailHash": "<sha256>",
"proofBundleHash": "<sha256>",
"publicVerificationToken": "…",
"publicVerificationUrl": "https://www.archivalo.com.py/verificar/…",
"certificatePdfUrl": "https://www.archivalo.com.py/api/archivalo/certificados/verificacion/…/pdf"
}curl https://www.archivalo.com.py/api/archivalo/integrations/certificates/operations/<id> \
-H "X-API-Key: ak_archivalo_…"
{ "operationId": "<id>", "state": "Completed",
"resultUrl": "/integrations/certificates/operations/<id>/result" }Límites y errores
Cada clave emite hasta 60 constancias por minuto. Las respuestas traen X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; al pasarte, Retry-After dice cuántos segundos esperar.
| Código | Qué significa |
|---|---|
| 400 | Datos inválidos: faltan fileName, fileSize o fileHash, la huella no tiene 64 caracteres hexadecimales o el Idempotency-Key no coincide. |
| 401 | La clave no existe, está revocada o falta. |
| 402 | El espacio no tiene constancias disponibles o superó su almacenamiento (VAULT_STORAGE_LIMIT, BILLING_HOLD). |
| 409 | IDEMPOTENCY_CONFLICT: la misma clave de idempotencia con otro contenido. SIGNING_RECONCILIATION_REQUIRED: consultá la operación antes de reintentar. |
| 426 | UNIFIED_UPLOAD_REQUIRED: el envío directo de archivos está desactivado; usá upload-context y file-receipt. |
| 428 | TERMS_ACCEPTANCE_REQUIRED: la persona dueña de la clave tiene que aceptar los términos vigentes en el panel. |
| 429 | Demasiadas emisiones con esa clave. Esperá lo que indica Retry-After. |
| 503 | La firma no está disponible. CERTIFICATE_ISSUANCE_NOT_STARTED indica que no se emitió nada y podés reintentar. |
Alcance
La API emite la misma constancia que el panel: registra la huella, la fecha y la hora, la sella y la deja verificable en una dirección pública. No acredita autoría, titularidad ni licitud del contenido, ni cómo la valorará una autoridad: eso depende de cada caso.
Antes de usarla en un proceso legal o regulado, leé confianza y alcance y los términos.
