Docublock
Referencia de la API

Documentos

Crea documentos para firma electrónica, asígnales firmantes y gestiona su ciclo de vida. Base: /api/documents. Todas las rutas requieren Bearer.

El objeto Firmante

Cada documento lleva un arreglo endorsementInput con uno o más firmantes:

CampoTipoReq.Descripción
firstNamestring✔Nombres del firmante.
lastNamestring✔Apellidos.
identificationstring✔Número de documento de identidad.
identificationKindstring✔Tipo de documento (ej. CC, CE, PAS).
kindPersonenum✔"Persona Natural" o "Persona Juridica".
emailstring✔Correo del firmante (canal de notificación).
cellphonestring✔Celular con indicativo (ej. +57...).
countrystring✔ObjectId del país (ver Catálogos).
citystring—ObjectId de la ciudad.
principalSignerboolean✔true para el firmante principal.
iterationnumber✔Orden de firma. Firmantes con el mismo valor firman en paralelo; valores consecutivos (1, 2, 3…) definen firma secuencial. No se permiten saltos.
typeSignstring—Rol del firmante (texto libre). Por defecto "Firmante". Otros ejemplos: "Avalador", "Rep. Legal", "Testigo".
biometricValidboolean—Validación biométrica avanzada. Add-on de pago.
basicIdentityValidboolean—Validación de documento contra rostro. Add-on de pago.
identityValidboolean—Validación de identidad completa (documento + rostro + liveness). Add-on de pago.
consultRegistryboolean—Consulta en Registraduría. Add-on de pago.
snapshotCaptureboolean—Captura de foto del firmante durante la firma. Add-on de pago.
biometricSignatureboolean—Firma con verificación biométrica facial. Add-on de pago.
voiceVerificationboolean—Verificación de identidad por voz. Add-on de pago.
antiDeepfakeboolean—Detección anti-deepfake en la verificación facial. Add-on de pago.
reqDocumentboolean—Exige adjuntar documento de identidad.
businessNamestring—Razón social (persona jurídica).
identificationRepLegalstring—Cédula del representante legal (persona jurídica).
expeditionDatestring—Fecha de expedición del documento de identidad (formato ISO).
expeditionCitystring—Ciudad de expedición del documento de identidad.

Los firmantes no necesitan estar registrados en Docublock. Reciben la invitación por correo electrónico y firman desde el enlace. El campo typeSign controla el rol visible del firmante en el documento: puedes asignar cualquier texto según tu flujo de negocio.

Tamaño máximo del request: el cuerpo JSON no puede superar 100 MB. Como los archivos viajan en base64 (~33 % más que el peso original), el tamaño combinado de documento + anexos no debe superar ~75 MB.
Validaciones de identidad (add-ons de pago): biometricValid, basicIdentityValid, identityValid, consultRegistry, snapshotCapture, biometricSignature, voiceVerification y antiDeepfake son funcionalidades adicionales que se facturan por separado y deben habilitarse para tu organización. Para activarlas, escríbenos desde app.docublock.co/organizacion o al WhatsApp +57 311 806 8275. Si no están habilitadas, se ignoran.

Crear documento desde PDF

POST/api/documents/create-pdf-base64Bearer

Campos del cuerpo:

CampoTipoReq.Descripción
namestring✔Nombre del documento.
baseFilestring✔Contenido del PDF en base64.
filenamestring—Nombre del archivo (ej. contrato.pdf).
endorsementInputFirmante[]✔Lista de firmantes.
signatureModeenum—"single" o "independent".
templatestring—ObjectId de plantilla asociada.
directorystring—ObjectId del directorio destino.
relatedInfoobject—Metadatos libres para tu integración.
letterheadsstring—ObjectId del membrete a aplicar al documento.
attachmentsobject[]—Archivos PDF anexos que viajan junto al documento principal sin fusionarse en un solo archivo. Cada elemento: { name, file } donde name es el nombre del archivo y file el contenido en base64.
subsidiarystring—ObjectId de la sucursal asociada.
regionstring—ObjectId de la región.
orgAreastring—ObjectId del área organizacional.
subAreastring—ObjectId del sub-área.
json
{
  "name": "Contrato de arrendamiento #1024",
  "baseFile": "JVBERi0xLjcKJ...==",
  "filename": "contrato-1024.pdf",
  "signatureMode": "single",
  "endorsementInput": [
    {
      "firstName": "María",
      "lastName": "Ríos",
      "identification": "1019234567",
      "identificationKind": "CC",
      "kindPerson": "Persona Natural",
      "email": "maria@ejemplo.com",
      "cellphone": "+573001112233",
      "country": "661a1fb2a0e9e20423fe6cc8",
      "principalSigner": true,
      "iteration": 1,
      "biometricValid": true
    },
    {
      "firstName": "Carlos",
      "lastName": "Gómez",
      "identification": "80123456",
      "identificationKind": "CC",
      "kindPerson": "Persona Natural",
      "email": "carlos@ejemplo.com",
      "cellphone": "+573009998877",
      "country": "661a1fb2a0e9e20423fe6cc8",
      "principalSigner": false,
      "iteration": 2,
      "typeSign": "Avalador"
    }
  ],
  "attachments": [
    {
      "name": "cedula-maria.pdf",
      "file": "JVBERi0xLjQK...=="
    }
  ]
}

Respuesta 201: el documento creado (con _id, code, path, firmantes y estado inicial). Docublock dispara automáticamente la solicitud de firma a cada firmante.

Plan: si tu organización no tiene documentos disponibles o el plan está expirado, la respuesta es 400 con el mensaje correspondiente.

Crear documento desde Word

POST/api/documents/create-word-base64Bearer

Igual que el anterior, pero baseFile es un .docx/.doc en base64; Docublock lo convierte a PDF antes de firmar.

Crear un bloque

POST/api/documents/create-blocks-base64Bearer

Agrupa varios documentos bajo un mismo flujo de firma. Requiere el arreglo filesBlocks (cada elemento: { name, baseFile, fileType, filename }). Respuesta: { blockId, documents: [{ id, name, code, path }] }.

Creación masiva

POST/api/documents/create-massive-pdf-base64Bearer
POST/api/documents/create-massive-word-base64Bearer
POST/api/documents/create-massive-blocks-base64Bearer

Cuerpo: { "documents": [ ... ] } (o { "blocks": [ ... ] }). Respuesta: { total, created, failed, results, errors }.

Listar documentos

POST/api/documents/get-allBearer

Cuerpo: filtros opcionales + limit, page, order. La organización se aplica automáticamente. Respuesta: { total, totalPages, documents: [...] }.

Obtener un documento

GET/api/documents/:idBearer

Devuelve el documento completo: estado de firma, firmantes, plantilla, versiones, certificado y rastro de auditoría. 404 si no existe.

Actualizar y versionar

PUT/api/documents/:idBearer

Actualiza los metadatos de un documento existente.

PUT/api/documents/add-versions/:idBearer

Agrega una nueva versión del archivo al documento.

Para reemplazar un documento que ya fue enviado a firma, cancela el documento actual y crea uno nuevo con el archivo actualizado.

Cuando un firmante rechaza, se dispara el evento document.rejected. Configura un webhook para recibir esta y otras notificaciones del ciclo de vida del documento.

Reenviar solicitud de firma

POST/api/documents/resend-endorsement-documentBearer

Cuerpo: { "idDocument": "<ObjectId>", "idSigner": "<ObjectId>" }. Reenvía la notificación de firma al firmante indicado.

Ready to get started with Docublock?

Docublock

© 2026 Docublock. All rights reserved.

FacebookLinkedInX
Docublock