Signly logo Signly Docs
Menu

API Partner de Signly

Core

Referencia oficial de la API M2M para configuracion de integracion, plantillas y documentos de firma electronica.

La surface publica para terceros parte en `/api`, `/v1/templates`, `/v1/documents` y `/v1/events/{processId}`. La autenticacion del front de Signly App no hace parte de esta referencia y no debe modelarse como si fuera M2M.

Modelo de autenticacion

El bootstrap de la credencial se hace con una sesion administrativa de Signly App sobre `/api`. Una vez creada, la integracion M2M consume la API enviando `X-Tenant-Signly` y `X-Auth-Signly` en cada request.

Que cubre la API partner real

Bootstrap de credencial

Consulta, crea o elimina la configuracion partner del tenant desde la app autenticada.

Templates

Crea plantillas, consulta versiones, y gestiona URLs firmadas para cargar o descargar PDFs.

Documents

Publica documentos, consulta estado, extiende fechas limite, cancela procesos y reenvia invitaciones.

Eventos por proceso

Recupera la traza cronologica de un `processId` y usa webhooks para enterarte en tiempo real de cada cambio.

Alta de credencial partner

El endpoint `/api` se usa desde la app administrativa para crear la credencial que luego consumira tu backend.

Alta de credencial partner
POST /api
{
  "auth_method": "KEY"
}

Surface publica documentada

Primero veras la surface de la coleccion partner vigente y luego las capacidades avanzadas de la misma API publica M2M. Cada endpoint detallado mas abajo incluye request examples, body fields, respuestas correctas y errores frecuentes.

GET /api
POST /api
DELETE /api
GET /v1/templates
GET /v1/templates/{templateId}
GET /v1/documents
POST /v1/documents
GET /v1/documents/{documentId}
POST /v1/documents/{documentId}/extend
DELETE /v1/documents/{documentId}/cancel
POST /v1/documents/{documentId}/participants/{participantId}/resend
GET /v1/events/{processId}
GET /v1/templates/{templateId}/history
GET /v1/templates/{templateId}/versions/{version}
GET /v1/templates/{templateId}/fields
PUT /v1/templates/{templateId}/fields
POST /v1/templates
PUT /v1/templates/{templateId}
POST /v1/templates/{templateId}/versions/{version}/upload-url
GET /v1/templates/{templateId}/versions/{version}/download-url
DELETE /v1/templates/{templateId}/versions/{version}
DELETE /v1/templates/{templateId}
GET /v1/documents/{documentId}/summary

API Reference

23 endpoints

Cada endpoint incluye método, ruta, descripción funcional, headers, parámetros, campos del body, request de ejemplo y respuestas de éxito/error.

GET /api

Consulta la configuracion partner del tenant.

Endpoint consumido desde Signly App para saber si el tenant ya tiene una credencial partner creada y que metodo usa. No es el canal de autenticacion M2M; solo bootstrap de configuracion.

Headers

Campo Tipo Requerido Descripcion
X-Auth-Signly

ex. Bearer eyJhbGciOi...

Bearer token Si Sesion administrativa de Signly App. Se usa solo para crear o borrar la configuracion partner del tenant.

Ejemplos de request

2
cURL
curl -X GET "https://api.signly.apologs.com/api" \
  -H "X-Auth-Signly: Bearer eyJhbGciOi..."
Python
import requests

url = "https://api.signly.apologs.com/api"
headers = {
    "X-Auth-Signly": "Bearer eyJhbGciOi...",
}
response = requests.get(
    url,
    headers=headers,
)

print(response.status_code)
print(response.json())
200 OK

Configuracion vigente

Configuracion vigente · 200 OK
{
  "success": true,
  "status": 200,
  "code": "api_integration_fetched",
  "message": "API integration configuration fetched.",
  "data": {
    "tenantId": "58bff266-cdad-46db-b373-1b06476146cd",
    "authMethod": "KEY",
    "status": "ACTIVE",
    "keyId": "pk_01J8XQ8B0P8XSH6M3B2P0N5W9K",
    "createdAt": "2026-04-23T14:55:00Z",
    "updatedAt": "2026-04-23T14:55:00Z",
    "partnerBaseUrl": "https://api.signly.apologs.com"
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
404 Not Found

Sin configuracion creada

Sin configuracion creada · 404 Not Found
{
  "success": false,
  "status": 404,
  "code": "api_integration_not_found",
  "message": "API integration configuration not found.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "not_found",
    "details": { "resource": "api_integration" }
  }
}

Notas

  • Este endpoint requiere una sesion de administrador del tenant dentro de Signly App.
POST /api

Crea una credencial partner.

Genera la credencial que despues usara tu backend en `X-Auth-Signly`. Hoy la UI expone `KEY` y `HMAC`; `JWT` existe en el authorizer pero no esta abierto en el flujo operativo descrito aqui.

Headers

Campo Tipo Requerido Descripcion
X-Auth-Signly

ex. Bearer eyJhbGciOi...

Bearer token Si Sesion administrativa de Signly App. Se usa solo para crear o borrar la configuracion partner del tenant.
Content-Type

ex. application/json

application/json Si Payload JSON.

Campos del body

Campo Tipo Requerido Descripcion
auth_method

ex. KEY

string Si Metodo de autenticacion a generar para el tenant.

Ejemplos de request

2

El secreto puede mostrarse solo en la respuesta de creacion.

cURL
curl -X POST "https://api.signly.apologs.com/api" \
  -H "X-Auth-Signly: Bearer eyJhbGciOi..." \
  -H "Content-Type: application/json" \
  -d '{ "auth_method": "KEY" }'
Python
import requests

url = "https://api.signly.apologs.com/api"
headers = {
    "X-Auth-Signly": "Bearer eyJhbGciOi...",
    "Content-Type": "application/json",
}
payload = { "auth_method": "KEY" }
response = requests.post(
    url,
    headers=headers,
    json=payload,
)

print(response.status_code)
print(response.json())
201 Created

Credencial creada

Credencial creada · 201 Created
{
  "success": true,
  "status": 201,
  "code": "api_integration_created",
  "message": "API integration created.",
  "data": {
    "tenantId": "58bff266-cdad-46db-b373-1b06476146cd",
    "authMethod": "KEY",
    "status": "ACTIVE",
    "keyId": "pk_01J8XQ8B0P8XSH6M3B2P0N5W9K",
    "apiKey": "sk_live_partner_abc123",
    "createdAt": "2026-04-23T14:55:00Z"
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
400 Bad Request

Metodo invalido

Metodo invalido · 400 Bad Request
{
  "success": false,
  "status": 400,
  "code": "invalid_auth_method",
  "message": "Auth method is invalid.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "validation",
    "details": { "field": "auth_method", "allowed": ["KEY", "HMAC"] }
  }
}
DELETE /api

Revoca la credencial partner vigente.

Elimina la configuracion partner del tenant. Tu backend deja de poder autenticarse con la credencial revocada.

Headers

Campo Tipo Requerido Descripcion
X-Auth-Signly

ex. Bearer eyJhbGciOi...

Bearer token Si Sesion administrativa de Signly App. Se usa solo para crear o borrar la configuracion partner del tenant.

Ejemplos de request

1
cURL
curl -X DELETE "https://api.signly.apologs.com/api" \
  -H "X-Auth-Signly: Bearer eyJhbGciOi..."
200 OK

Integracion eliminada

Integracion eliminada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "api_integration_deleted",
  "message": "API integration deleted.",
  "data": { "deleted": true },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates

Lista templates vigentes.

Devuelve la version mas reciente de cada plantilla del tenant autenticado con headers partner.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Ejemplos de request

2
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates?limit=10&sort=-createdAt" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
Python
import requests

url = "https://api.signly.apologs.com/v1/templates?limit=10&sort=-createdAt"
headers = {
    "X-Tenant-Signly": "58bff266-cdad-46db-b373-1b06476146cd",
    "X-Auth-Signly": "sk_live_partner_abc123",
}
response = requests.get(
    url,
    headers=headers,
)

print(response.status_code)
print(response.json())
200 OK

Templates listados

Templates listados · 200 OK
{
  "success": true,
  "status": 200,
  "code": "templates_listed",
  "message": "Templates listed.",
  "data": [
    {
      "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
      "templateName": "Acuerdo de servicio",
      "description": "Version comercial vigente",
      "version": 2,
      "createdAt": "2026-04-18T20:00:00Z",
      "updatedAt": "2026-04-23T10:30:00Z"
    }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates/{templateId}

Consulta la ultima version de una plantilla.

Devuelve la version vigente de una plantilla concreta. Este endpoint aparece en la coleccion partner actual.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Identificador de la plantilla.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Template consultado

Template consultado · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_fetched",
  "message": "Template fetched.",
  "data": {
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
    "templateName": "Acuerdo de servicio",
    "description": "Version comercial vigente",
    "templateVersion": "3f34581a-5b4a-4068-ab72-5f2b36611fa1#0002",
    "version": 2,
    "fields": []
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
404 Not Found

Plantilla inexistente

Plantilla inexistente · 404 Not Found
{
  "success": false,
  "status": 404,
  "code": "not_found",
  "message": "Template not found.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "not_found",
    "details": { "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1" }
  }
}
POST /v1/templates

Crea una plantilla.

Crea una plantilla v1. Despues puedes solicitar una URL firmada para subir el archivo PDF de esa version.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.
Content-Type

ex. application/json

application/json Si Tipo de payload JSON.

Campos del body

Campo Tipo Requerido Descripcion
templateName

ex. Acuerdo de servicio

string Si Nombre visible de la plantilla.
description

ex. Version comercial vigente

string No Contexto funcional o de negocio.

Ejemplos de request

2
cURL
curl -X POST "https://api.signly.apologs.com/v1/templates" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123" \
  -H "Content-Type: application/json" \
  -d '{ "templateName": "Acuerdo de servicio", "description": "Version comercial vigente" }'
Python
import requests

url = "https://api.signly.apologs.com/v1/templates"
headers = {
    "X-Tenant-Signly": "58bff266-cdad-46db-b373-1b06476146cd",
    "X-Auth-Signly": "sk_live_partner_abc123",
    "Content-Type": "application/json",
}
payload = { "templateName": "Acuerdo de servicio", "description": "Version comercial vigente" }
response = requests.post(
    url,
    headers=headers,
    json=payload,
)

print(response.status_code)
print(response.json())
201 Created

Template creado

Template creado · 201 Created
{
  "success": true,
  "status": 201,
  "code": "template_created",
  "message": "Template created.",
  "data": {
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
    "templateName": "Acuerdo de servicio",
    "description": "Version comercial vigente",
    "version": 1
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates/{templateId}/history

Lista el historial de versiones.

Entrega todas las versiones publicadas de una plantilla, util para auditoria o rollback operativo.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla cuya historia deseas consultar.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/history" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Historial listado

Historial listado · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_history_listed",
  "message": "Template history listed.",
  "data": [
    { "templateVersion": "3f34581a-5b4a-4068-ab72-5f2b36611fa1#0001", "version": 1 },
    { "templateVersion": "3f34581a-5b4a-4068-ab72-5f2b36611fa1#0002", "version": 2 }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates/{templateId}/versions/{version}

Consulta una version puntual.

Permite recuperar una version exacta de la plantilla, sin depender de la ultima version vigente.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Identificador de la plantilla.
version

ex. 2

integer Si Version numerica requerida.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/versions/2" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Version consultada

Version consultada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_version_fetched",
  "message": "Template version fetched.",
  "data": {
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
    "templateVersion": "3f34581a-5b4a-4068-ab72-5f2b36611fa1#0002",
    "version": 2
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates/{templateId}/fields

Obtiene los campos firmables.

Recupera la definicion de campos firmables o rellenables asociados a la plantilla.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla a inspeccionar.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/fields" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Campos listados

Campos listados · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_fields_fetched",
  "message": "Template fields fetched.",
  "data": [
    {
      "fieldName": "FIRMA_CLIENTE",
      "fieldType": "SIGNATURE",
      "page": 1,
      "x": 124,
      "y": 566
    }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
PUT /v1/templates/{templateId}/fields

Crea o actualiza campos firmables.

Sobrescribe la definicion de campos de una plantilla para la version vigente.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.
Content-Type

ex. application/json

application/json Si Tipo de payload JSON.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla cuyos campos se van a actualizar.

Campos del body

Campo Tipo Requerido Descripcion
[].fieldName

ex. FIRMA_CLIENTE

string Si Identificador funcional del campo.
[].fieldType

ex. SIGNATURE

string Si Tipo del campo, por ejemplo `SIGNATURE` o `TEXT`.

Ejemplos de request

1
cURL
curl -X PUT "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/fields" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123" \
  -H "Content-Type: application/json" \
  -d '[
  {
    "fieldName": "FIRMA_CLIENTE",
    "fieldType": "SIGNATURE",
    "page": 1,
    "x": 124,
    "y": 566
  }
]'
200 OK

Campos actualizados

Campos actualizados · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_fields_updated",
  "message": "Template fields updated.",
  "data": [
    {
      "fieldName": "FIRMA_CLIENTE",
      "fieldType": "SIGNATURE",
      "page": 1
    }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
POST /v1/templates/{templateId}/versions/{version}/upload-url

Genera la URL firmada para subir el PDF.

Permite cargar el archivo asociado a una version concreta de la plantilla. La subida binaria ocurre despues directamente contra S3.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Identificador de la plantilla.
version

ex. 1

integer Si Version de plantilla a la que pertenecera el archivo.

Ejemplos de request

1
cURL
curl -X POST "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/versions/1/upload-url" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

URL generada

URL generada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_upload_url_generated",
  "message": "Upload URL generated.",
  "data": {
    "method": "PUT",
    "uploadUrl": "https://s3.amazonaws.com/...",
    "expiresInSeconds": 900
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
PUT /v1/templates/{templateId}

Crea una nueva version.

Actualiza metadatos de la plantilla y genera una nueva version sobre la que luego puedes cargar un PDF actualizado.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.
Content-Type

ex. application/json

application/json Si Tipo de payload JSON.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla a versionar.

Campos del body

Campo Tipo Requerido Descripcion
templateName

ex. Acuerdo de servicio

string Si Nombre visible de la nueva version.

Ejemplos de request

1
cURL
curl -X PUT "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123" \
  -H "Content-Type: application/json" \
  -d '{ "templateName": "Acuerdo de servicio", "description": "Version 3 con nuevos campos" }'
200 OK

Nueva version creada

Nueva version creada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_updated",
  "message": "Template updated.",
  "data": {
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
    "templateVersion": "3f34581a-5b4a-4068-ab72-5f2b36611fa1#0003",
    "version": 3
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/templates/{templateId}/versions/{version}/download-url

Genera una URL firmada de descarga.

Entrega una URL temporal para descargar el PDF almacenado para una version especifica.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Identificador de plantilla.
version

ex. 2

integer Si Version del archivo a descargar.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/versions/2/download-url" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

URL de descarga

URL de descarga · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_download_url_generated",
  "message": "Download URL generated.",
  "data": {
    "downloadUrl": "https://s3.amazonaws.com/...",
    "expiresInSeconds": 900
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
DELETE /v1/templates/{templateId}/versions/{version}

Elimina una version puntual.

Borra una version concreta de la plantilla sin tocar el resto del historial.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla base.
version

ex. 1

integer Si Version a eliminar.

Ejemplos de request

1
cURL
curl -X DELETE "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1/versions/1" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Version eliminada

Version eliminada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_version_deleted",
  "message": "Template version deleted.",
  "data": { "deleted": true },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
DELETE /v1/templates/{templateId}

Elimina la plantilla completa.

Elimina todas las versiones de una plantilla. Usalo con criterio porque impacta historico y futuros documentos basados en esa definicion.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
templateId string Si Plantilla a eliminar.

Ejemplos de request

1
cURL
curl -X DELETE "https://api.signly.apologs.com/v1/templates/3f34581a-5b4a-4068-ab72-5f2b36611fa1" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Plantilla eliminada

Plantilla eliminada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "template_deleted",
  "message": "Template deleted.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/documents

Lista documentos del tenant.

Lista procesos de firma del tenant. Soporta filtros, paginacion y ordenamiento por `createdAt`.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de query

Campo Tipo Requerido Descripcion
limit

ex. 10

integer No Numero maximo de resultados por pagina. El backend acepta de 1 a 100.
cursor string No Cursor opaco para paginacion.
sort

ex. -createdAt

string No Ordena por `createdAt`; usa `-createdAt` para mas recientes primero.
status

ex. IN_PROGRESS

string No Filtra por estado del documento.

Ejemplos de request

2
cURL
curl -X GET "https://api.signly.apologs.com/v1/documents?limit=10&sort=-createdAt" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
Python
import requests

url = "https://api.signly.apologs.com/v1/documents?limit=10&sort=-createdAt"
headers = {
    "X-Tenant-Signly": "58bff266-cdad-46db-b373-1b06476146cd",
    "X-Auth-Signly": "sk_live_partner_abc123",
}
response = requests.get(
    url,
    headers=headers,
)

print(response.status_code)
print(response.json())
200 OK

Documentos listados

Documentos listados · 200 OK
{
  "success": true,
  "status": 200,
  "code": "documents_listed",
  "message": "Documents listed.",
  "data": [
    {
      "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
      "createdAt": "2026-04-18T20:22:08.258102+00:00",
      "status": "CREATED",
      "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1"
    }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
400 Bad Request

Campo de orden invalido

Campo de orden invalido · 400 Bad Request
{
  "success": false,
  "status": 400,
  "code": "bad_request",
  "message": "Invalid sort field.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "validation",
    "details": { "code": "INVALID_SORT_FIELD", "field": "creationDate" }
  }
}
POST /v1/documents

Publica un documento de firma.

Crea el flujo de firma a partir de una plantilla y la lista de participantes. Es el endpoint central de la integracion partner.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.
Content-Type

ex. application/json

application/json Si Tipo de payload JSON.

Campos del body

Campo Tipo Requerido Descripcion
templateId string Si Identificador de la plantilla base.
templateVersion

ex. 0002

string Si Version que debe usarse para el documento.
participants Participant[] Si Lista de firmantes o participantes del flujo.
participants[].displayName

ex. Juan David Otero

string Si Nombre visible del participante.
participants[].signatureMode

ex. ["SIGNATURE_EMAIL"]

string[] Si Canales o mecanismos de firma. Ejemplo: `SIGNATURE_EMAIL`, `SIGNATURE_SMS`, `SIGNATURE_BIOMETRIC`.
participants[].identity.email

ex. juanoterot@outlook.com

string No Correo del participante cuando el flujo usa email.
participants[].identity.phone

ex. +573217597071

string No Telefono del participante para SMS, WhatsApp o contacto operativo.
participants[].identity.documentNumber

ex. 1109661121

string No Documento del participante. Se vuelve obligatorio para ciertos flujos biometricos.
participants[].policy.attemptsMax

ex. 3

integer No Numero maximo de intentos permitidos.
participants[].policy.cooldownSeconds

ex. 60

integer No Tiempo minimo entre intentos del participante.
flowPolicy.onParticipantFail

ex. CANCEL_FLOW

string No Politica a aplicar cuando un participante falla. Ejemplo: `CANCEL_FLOW`.
orderMode

ex. PARALLEL

string Si Define si la firma es `PARALLEL` o `SEQUENTIAL`.
deadlineAt

ex. 2026-05-21T23:59:00Z

string (ISO-8601) No Fecha limite del proceso.
metadata

ex. { "source": "crm", "contractId": "CNT-4482" }

object No Objeto libre para correlacionar el documento con tu sistema.

Ejemplos de request

2
cURL
curl -X POST "https://api.signly.apologs.com/v1/documents" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123" \
  -H "Content-Type: application/json" \
  -d '{
  "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
  "templateVersion": "0002",
  "participants": [
    {
      "displayName": "Juan David Otero",
      "signatureMode": ["SIGNATURE_EMAIL"],
      "identity": { "email": "juanoterot@outlook.com" },
      "policy": { "attemptsMax": 3, "cooldownSeconds": 60 }
    }
  ],
  "orderMode": "PARALLEL",
  "deadlineAt": "2026-05-21T23:59:00Z"
}'
Python
import requests

url = "https://api.signly.apologs.com/v1/documents"
headers = {
    "X-Tenant-Signly": "58bff266-cdad-46db-b373-1b06476146cd",
    "X-Auth-Signly": "sk_live_partner_abc123",
    "Content-Type": "application/json",
}
payload = {
  "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
  "templateVersion": "0002",
  "participants": [
    {
      "displayName": "Juan David Otero",
      "signatureMode": ["SIGNATURE_EMAIL"],
      "identity": { "email": "juanoterot@outlook.com" },
      "policy": { "attemptsMax": 3, "cooldownSeconds": 60 }
    }
  ],
  "orderMode": "PARALLEL",
  "deadlineAt": "2026-05-21T23:59:00Z"
}
response = requests.post(
    url,
    headers=headers,
    json=payload,
)

print(response.status_code)
print(response.json())
201 Created

Documento creado

Documento creado · 201 Created
{
  "success": true,
  "status": 201,
  "code": "document_created",
  "message": "Document created.",
  "data": {
    "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
    "status": "CREATED",
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1",
    "participants": [
      {
        "participantId": "a244be1a-98c5-4faa-bcb7-55218983a731",
        "displayName": "Juan David Otero"
      }
    ]
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
400 Bad Request

Payload invalido

Payload invalido · 400 Bad Request
{
  "success": false,
  "status": 400,
  "code": "validation_error",
  "message": "Validation error.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "validation",
    "details": { "fields": { "participants": { "0": { "_schema": ["Document number is required for biometric signature."] } } } }
  }
}
402 Payment Required

Creditos insuficientes

Creditos insuficientes · 402 Payment Required
{
  "success": false,
  "status": 402,
  "code": "insufficient_credits",
  "message": "Not enough credits to process the document.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "credits",
    "details": {}
  }
}
GET /v1/documents/{documentId}

Consulta un documento.

Devuelve el estado actual y metadatos del flujo de firma.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
documentId string Si Identificador del documento.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/documents/0e51e6ee-4643-4381-97e0-5164c00a0142" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Documento consultado

Documento consultado · 200 OK
{
  "success": true,
  "status": 200,
  "code": "document_fetched",
  "message": "Document fetched.",
  "data": {
    "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
    "status": "IN_PROGRESS",
    "createdAt": "2026-04-18T20:22:08.258102+00:00",
    "updatedAt": "2026-04-23T15:01:02Z",
    "templateId": "3f34581a-5b4a-4068-ab72-5f2b36611fa1"
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
404 Not Found

Documento inexistente

Documento inexistente · 404 Not Found
{
  "success": false,
  "status": 404,
  "code": "not_found",
  "message": "Document not found.",
  "data": null,
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": {
    "type": "not_found",
    "details": { "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142" }
  }
}
POST /v1/documents/{documentId}/extend

Extiende la fecha limite.

Actualiza la fecha maxima del proceso sin crear un documento nuevo.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.
Content-Type

ex. application/json

application/json Si Tipo de payload JSON.

Parametros de path

Campo Tipo Requerido Descripcion
documentId string Si Documento a extender.

Campos del body

Campo Tipo Requerido Descripcion
newDeadlineAt

ex. 2026-06-15T23:59:00Z

string (ISO-8601) Si Nueva fecha limite del documento.

Ejemplos de request

1
cURL
curl -X POST "https://api.signly.apologs.com/v1/documents/0e51e6ee-4643-4381-97e0-5164c00a0142/extend" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123" \
  -H "Content-Type: application/json" \
  -d '{ "newDeadlineAt": "2026-06-15T23:59:00Z" }'
200 OK

Deadline extendido

Deadline extendido · 200 OK
{
  "success": true,
  "status": 200,
  "code": "document_deadline_extended",
  "message": "Deadline extended.",
  "data": {
    "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
    "deadlineAt": "2026-06-15T23:59:00Z"
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
DELETE /v1/documents/{documentId}/cancel

Cancela un documento activo.

Detiene el flujo de firma y evita nuevos avances de participantes.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
documentId string Si Documento que debe cancelarse.

Ejemplos de request

1
cURL
curl -X DELETE "https://api.signly.apologs.com/v1/documents/0e51e6ee-4643-4381-97e0-5164c00a0142/cancel" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Documento cancelado

Documento cancelado · 200 OK
{
  "success": true,
  "status": 200,
  "code": "document_cancelled",
  "message": "Document cancelled.",
  "data": { "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142" },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
POST /v1/documents/{documentId}/participants/{participantId}/resend

Reenvia una invitacion.

Vuelve a disparar la invitacion para un participante puntual del documento.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
documentId string Si Documento del flujo.
participantId string Si Participante que recibira el reenvio.

Ejemplos de request

1
cURL
curl -X POST "https://api.signly.apologs.com/v1/documents/0e51e6ee-4643-4381-97e0-5164c00a0142/participants/a244be1a-98c5-4faa-bcb7-55218983a731/resend" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Invitacion reenviada

Invitacion reenviada · 200 OK
{
  "success": true,
  "status": 200,
  "code": "invitation_resent",
  "message": "Invitation resent.",
  "data": {
    "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
    "participantId": "a244be1a-98c5-4faa-bcb7-55218983a731"
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/documents/{documentId}/summary

Obtiene un resumen operativo.

Entrega una vista compacta del progreso del documento para paneles internos o conciliacion.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
documentId string Si Documento a resumir.

Ejemplos de request

1
cURL
curl -X GET "https://api.signly.apologs.com/v1/documents/0e51e6ee-4643-4381-97e0-5164c00a0142/summary" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
200 OK

Resumen del documento

Resumen del documento · 200 OK
{
  "success": true,
  "status": 200,
  "code": "document_summary_fetched",
  "message": "Document summary fetched.",
  "data": {
    "documentId": "0e51e6ee-4643-4381-97e0-5164c00a0142",
    "status": "IN_PROGRESS",
    "completedParticipants": 0,
    "pendingParticipants": 1
  },
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}
GET /v1/events/{processId}

Lista los eventos de un proceso.

Devuelve la linea de tiempo del `processId` asociado a un participante. Es la consulta puntual para reconstruir evidencia cronologica cuando ademas de webhooks necesitas detalle historico.

Headers

Campo Tipo Requerido Descripcion
X-Tenant-Signly

ex. 58bff266-cdad-46db-b373-1b06476146cd

string Si Identificador del tenant que contextualiza toda la operacion.
X-Auth-Signly

ex. sk_live_partner_abc123

string Si Credencial partner del tenant. Para `KEY` se envia el valor crudo; para `HMAC` el authorizer acepta `HMAC <secret>` o el secreto crudo.

Parametros de path

Campo Tipo Requerido Descripcion
processId

ex. 91b5d467-ee84-4c78-8f37-048387797ab3-d0a31523-3d9c-4613-936a-9bf510ad05d4

string Si Identificador de proceso devuelto en la creacion del documento o en los participantes.

Ejemplos de request

2
cURL
curl -X GET "https://api.signly.apologs.com/v1/events/91b5d467-ee84-4c78-8f37-048387797ab3-d0a31523-3d9c-4613-936a-9bf510ad05d4" \
  -H "X-Tenant-Signly: 58bff266-cdad-46db-b373-1b06476146cd" \
  -H "X-Auth-Signly: sk_live_partner_abc123"
Python
import requests

url = "https://api.signly.apologs.com/v1/events/91b5d467-ee84-4c78-8f37-048387797ab3-d0a31523-3d9c-4613-936a-9bf510ad05d4"
headers = {
    "X-Tenant-Signly": "58bff266-cdad-46db-b373-1b06476146cd",
    "X-Auth-Signly": "sk_live_partner_abc123",
}
response = requests.get(
    url,
    headers=headers,
)

print(response.status_code)
print(response.json())
200 OK

Eventos del proceso

Eventos del proceso · 200 OK
{
  "success": true,
  "status": 200,
  "code": "events_listed",
  "message": "Events listed.",
  "data": [
    {
      "eventId": "01JC8DYNXKHPK6H4F0VYB3J9R3",
      "eventType": "PROCESS_CREATED",
      "processId": "proc-20251027-0001",
      "status": "SUCCESS",
      "actor": "backend",
      "timestamp": "2025-10-27T15:00:01.120Z"
    },
    {
      "eventId": "01JC8E0XYAHTYV26J7W72RBQWQ",
      "eventType": "OTP_SENT",
      "processId": "proc-20251027-0001",
      "status": "SUCCESS",
      "actor": "frontend",
      "timestamp": "2025-10-27T15:03:18.904Z"
    }
  ],
  "pagination": null,
  "meta": {
    "request_id": "req_01J8XQ7M8VW2A6G2B0N7J5AZ7Q",
    "timestamp": "2026-04-23T15:00:00Z",
    "api_version": "v1",
    "tenant_id": "58bff266-cdad-46db-b373-1b06476146cd"
  },
  "error": null
}

Notas

  • Este endpoint aparece en la coleccion `SIGNLY_PARTNER` y es la consulta mas util para auditoria funcional por participante.