Bootstrap de credencial
Consulta, crea o elimina la configuracion partner del tenant desde la app autenticada.
Referencia oficial de la API M2M para configuracion de integracion, plantillas y documentos de firma electronica.
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.
Consulta, crea o elimina la configuracion partner del tenant desde la app autenticada.
Crea plantillas, consulta versiones, y gestiona URLs firmadas para cargar o descargar PDFs.
Publica documentos, consulta estado, extiende fechas limite, cancela procesos y reenvia invitaciones.
Recupera la traza cronologica de un `processId` y usa webhooks para enterarte en tiempo real de cada cambio.
El endpoint `/api` se usa desde la app administrativa para crear la credencial que luego consumira tu backend.
POST /api
{
"auth_method": "KEY"
} 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.
/api Consulta la configuracion partner actual del tenant. /api Crea una credencial partner (`KEY` o `HMAC`). /api Revoca la configuracion partner vigente. /v1/templates Lista templates vigentes del tenant. /v1/templates/{templateId} Consulta la ultima version de una plantilla. /v1/documents Lista documentos del tenant. /v1/documents Publica un documento de firma. /v1/documents/{documentId} Consulta el estado de un documento. /v1/documents/{documentId}/extend Extiende la fecha limite del flujo. /v1/documents/{documentId}/cancel Cancela un flujo activo. /v1/documents/{documentId}/participants/{participantId}/resend Reenvia una invitacion de firma. /v1/events/{processId} Recupera el historial de eventos de un proceso. /v1/templates/{templateId}/history Lista todas las versiones de una plantilla. /v1/templates/{templateId}/versions/{version} Consulta una version puntual de la plantilla. /v1/templates/{templateId}/fields Obtiene los campos firmables definidos para una plantilla. /v1/templates/{templateId}/fields Crea o actualiza campos firmables de una plantilla. /v1/templates Crea una plantilla nueva. /v1/templates/{templateId} Crea una nueva version de una plantilla existente. /v1/templates/{templateId}/versions/{version}/upload-url Genera una URL firmada para subir el PDF. /v1/templates/{templateId}/versions/{version}/download-url Genera una URL firmada para descargar el PDF. /v1/templates/{templateId}/versions/{version} Elimina una version especifica de la plantilla. /v1/templates/{templateId} Elimina toda la plantilla y su historial. /v1/documents/{documentId}/summary Obtiene un resumen operativo del documento. Cada endpoint incluye método, ruta, descripción funcional, headers, parámetros, campos del body, request de ejemplo y respuestas de éxito/error.
/api 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
2curl -X GET "https://api.signly.apologs.com/api" \ -H "X-Auth-Signly: Bearer eyJhbGciOi..."
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()) Configuracion vigente
{
"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
} Sin configuracion creada
{
"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
/api 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
2El secreto puede mostrarse solo en la respuesta de creacion.
curl -X POST "https://api.signly.apologs.com/api" \
-H "X-Auth-Signly: Bearer eyJhbGciOi..." \
-H "Content-Type: application/json" \
-d '{ "auth_method": "KEY" }' 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()) Credencial creada
{
"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
} Metodo invalido
{
"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"] }
}
} /api 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
1curl -X DELETE "https://api.signly.apologs.com/api" \ -H "X-Auth-Signly: Bearer eyJhbGciOi..."
Integracion eliminada
{
"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
} /v1/templates 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
2curl -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"
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()) Templates listados
{
"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
} /v1/templates/{templateId} 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
1curl -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"
Template consultado
{
"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
} Plantilla inexistente
{
"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" }
}
} /v1/templates 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
2curl -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" }' 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()) Template creado
{
"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
} /v1/templates/{templateId}/history 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
1curl -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"
Historial listado
{
"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
} /v1/templates/{templateId}/versions/{version} 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
1curl -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"
Version consultada
{
"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
} /v1/templates/{templateId}/fields 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
1curl -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"
Campos listados
{
"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
} /v1/templates/{templateId}/fields 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
1curl -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
}
]' Campos actualizados
{
"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
} /v1/templates/{templateId}/versions/{version}/upload-url 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
1curl -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"
URL generada
{
"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
} /v1/templates/{templateId} 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
1curl -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" }' Nueva version creada
{
"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
} /v1/templates/{templateId}/versions/{version}/download-url 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
1curl -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"
URL de descarga
{
"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
} /v1/templates/{templateId}/versions/{version} 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
1curl -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"
Version eliminada
{
"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
} /v1/templates/{templateId} 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
1curl -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"
Plantilla eliminada
{
"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
} /v1/documents 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
2curl -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"
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()) Documentos listados
{
"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
} Campo de orden invalido
{
"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" }
}
} /v1/documents 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
2curl -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"
}' 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()) Documento creado
{
"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
} Payload invalido
{
"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."] } } } }
}
} Creditos insuficientes
{
"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": {}
}
} /v1/documents/{documentId} 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
1curl -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"
Documento consultado
{
"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
} Documento inexistente
{
"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" }
}
} /v1/documents/{documentId}/extend 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
1curl -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" }' Deadline extendido
{
"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
} /v1/documents/{documentId}/cancel 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
1curl -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"
Documento cancelado
{
"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
} /v1/documents/{documentId}/participants/{participantId}/resend 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
1curl -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"
Invitacion reenviada
{
"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
} /v1/documents/{documentId}/summary 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
1curl -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"
Resumen del documento
{
"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
} /v1/events/{processId} 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
2curl -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"
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()) Eventos del proceso
{
"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