Saltar al contenido principal

Carga de documento

POST/document/uploadllave privadaprk_

Este servicio permite iniciar un proceso para solicitar anexos para firma o simplemente anexos sin firma. Cada anexo puede configurarse como obligatorio u opcional.

info

Si deseas incluir un proceso de firma, puedes enviar directamente un documento PDF en formato base64, si deseas que la firma y solicitud de anexos hagan parte de una plantilla, ten en cuenta que este flujo no puede configurarse directamente mediante el endpoint; debes realizar una solicitud a nuestro equipo de soporte.

info

Antes de integrar este endopint puede necesitar ver cómo definir posiciones de firma y configuraciones de validación de identidad.


Autenticación

Incluye tu llave privada en el encabezado Authorization.

Authorization: prk_xxx...

Parámetros de creación

NombreTipoDescripción
emailString requeridoCorreo electrónico del creador del proceso.
codeString opcionalCódigo de un documento previamente puesto en edición. Al enviarlo, en vez de crear un proceso nuevo se sobreescribe ese, conservando su código. Reenvía el payload completo: lo que omitas se borra. Ver más
documentString condicionalSi quieres crear el proceso por medio de una plantilla, debes enviar el id de dicha plantilla en este campo. Para ver y obtener plantillas accede a esta documentación.
nameString requeridoNombre del proceso del documento a firmar, solo si el proceso de adjuntos incluye firma de documento.
messageString condicionalMensaje que llegará en el cuerpo del correo notificando a los firmantes u aprobadores del documento. Requerido cuando algún participante es notificado por correo electrónico.
subjectString condicionalAsunto con el que será enviado el correo de notificación a los firmantes u aprobadores. Requerido cuando algún participante es notificado por correo electrónico.
fileString condicionalEn caso de querer cargar el documento en la misma petición, en éste parámetro se envía el archivo PDF en Base64. (Sólo para archivos pequeños)
compressBoolean condicionalSi el archivo PDF que quieres cargar es demasiado grande, se recomienda no enviar el parámetro file, en su lugar, se debe usar compress: true, de esta forma el servicio retorna una url firmada para cargar el archivo PDF en formato binario mediante una petición de tipo PUT.
folderString condicionalSi quieres guardar este proceso en una carpeta específica, en este parámetro debes ingresar el path de dicha carpeta; ten en cuenta que la carpeta debe existir y pertenecer al creador del proceso.
rememberNumber condicionalParámetro que habilita recordatorios automáticos con el lapso de tiempo (horas) entre cada notificación.
expiredDateDate opcionalFecha de expiración del documento. Esta debe ser mayor a 3 días de la fecha de creación del proceso y se envia en formato Date JSON.
cameraBoolean opcionalEste parámetro indica si es obligatoria la validación con foto, por defecto va en false.
otpCodeBoolean opcionalEste parámetro indica si es obligatorio la validación por código OTP, por defecto va en false.
optionsObject opcionalEn este parámetro se indican las especificaciones de la validación de identidad. Ver más
notificationBoolean opcionalDefine si Auco notifica a los participantes una vez creado el proceso. Por defecto es true. Es el valor por defecto de todos los firmantes; cada uno puede sobreescribirlo con signProfile[x].notification.
targetWebhooksArray[String] opcionalSi tienes varios webhooks, puedes enviar el nombre del webhook al que quieres que se notifiquen las actualizaciones de este proceso.
tagsArray[String] opcionalSi deseas clasificar procesos con tags, puedes enviar los nombres de los tags a los que quieres relacionar el proceso (Deben existir).
customObject opcionalObjeto libre para enviar parámetros propios del integrador (por ejemplo, identificadores internos o metadatos). Auco lo almacena tal cual y lo reenvía en las notificaciones de webhook y en la respuesta del GET /document, sin interpretarlo ni validar su contenido.
readersArray opcionalEste parámetro es una lista de objetos que define los participantes que no hacen parte del proceso de firma, pero que se desea que puedan observar cada fase del proceso de firma.
readers[x].nameString requeridonombre del lector.
readers[x].emailString requeridocorreo del lector.
signProfileArray requeridoEste campo es una lista de objetos, donde se encuentra la información de cada firmante o aprobador para su notificación y firma.
signProfile[x].nameString requeridonombre del firmante.
signProfile[x].emailString requeridocorreo del firmante.
signProfile[x].phoneString requeridonúmero de teléfono del firmante.
signProfile[x].roleString condicionalEste parámetro define el role del participante, puede ser 'APPROVER' o 'SIGNER'.
signProfile[x].orderString condicionalEste parámetro define el orden en que se realizará el proceso de notificación para firma o aprobación.
signProfile[x].labelBoolean(true) | String condicionalParámetro que indica si se realizará el posicionamiento de firmas por medio de labels en el pdf.
signProfile[x].positionArray condicionalEn este parámetro se envían las posiciones de firma de este firmante en cada página. Las posiciones de firma pueden estar previamente cargadas en plantillas, obtenga mas informacion en .
signProfile[x].typeString condicionalNombre con el que se identifica el tipo de firmante en caso de estar pre guardadas en una plantilla, por ejemplo: 'codeudor'.
signProfile[x].optionsObject opcionalPermite definir validaciones personalizadas para un firmante específico. Si se desea aplicar validaciones de forma individual por firmante, Ver más.
signProfile[x].cameraBoolean opcionalSi se desea tener validaciones individuales por firmante y se requiere validación con foto, se debe enviar este parametro en true por defecto es false.
signProfile[x].otpCodeBoolean opcionalSi se desea tener validaciones individuales por firmante y se requiere validación con otp, se debe enviar este parametro en true por defecto es false.
signProfile[x].notificationBoolean opcionalSobreescribe el notification global para este firmante, en cualquier dirección: false lo silencia aunque el global esté en true, y true hace que Auco lo notifique aunque el global esté en false. Los firmantes silenciados reciben id en la respuesta.

🧪 Ejemplos de uso

tip

Puedes copiar cualquiera de los ejemplos según el lenguaje de tu preferencia.

  • Recuerda que los correos electrónticos y números de teléfonos entre firmantes no se deben repetir.
  • Los lectores van a recibir notificaciones por cada actualización en el proceso de firma.

Proceso de firma con recordatorios automáticos (PDF Base64)

En este caso, los recordatorios se enviarán cada 3 horas.

curl --location 'https://api.auco.ai/v1.5/ext/document/upload' \
--header 'Authorization: prk_private_key_company' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Documento de prueba",
"subject": "prueba auco",
"message": "prueba auco",
"remember": 3,
"email": "example@auco.ai",
"signProfile": [
{
"name": "Jhon Firma",
"email": "example@auco.ai",
"label": true
}
],
"readers":[{"email":"example2@auco.ai", "name":"Frimante 1"}],
"file": Base64
}'

Firma de documento con validaciones individuales (compress - PDF binario)

curl --location 'https://api.auco.ai/v1.5/ext/document/upload' \
--header 'Authorization: prk_private_key_company' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Prueba de Anexos Compress y validaciones individuales",
"email": "owner@auco.ai",
"message": "Cargar adjuntos de prueba",
"subject": "Solicitud de adjuntos",
"signProfile": [
{
"type": "firmante1",
"name": "Nombre Firmante 1",
"email": "example @auco.ai",
"camera": true,
"otpCode": true,
"options": {
"camera": "identification",
"whatsapp": true,
"otpCode": "email"
},
"phone": "+573000000000",
},
{
"type": "firmante2",
"name": "Nombre Firmante 2",
"email": "example2@auco.ai",
"phone": "+573000000000",
"otpCode": true,
"options": {
"otpCode": "email"
},
}
],
"compress": true
}'

📥 Ejemplos de respuesta

🔹 Modo normal (sin compress o compress: false)

{
"document": "ABCDEF1234"
}
CampoTipoDescripción
documentStringCódigo único del documento creado.

🔸 Modo compress (compress: true)

info

La URL pre-firmada proporcionada en la respuesta es de un solo uso y estará disponible únicamente durante 300 segundos (5 minutos). Debe utilizarse para cargar el documento PDF en formato binario mediante una solicitud HTTP PUT.

{
"document": "ABCDEF1234",
"url": "https://s3.amazonaws.com/...signed-url..."
}
CampoTipoDescripción
documentStringCódigo único del documento creado.
urlStringURL pre-firmada de S3 para subir el PDF (expira en 300s).

🔹 Firmantes que Auco no notifica

La respuesta incluye signProfile cuando algún firmante queda silenciado, es decir, cuando su notification efectivo es false: el suyo si lo trae, y si no, el global. Cada firmante silenciado trae un id con el que el integrador lo lleva a firmar por su cuenta. Los que Auco sí notifica aparecen sin id: su acceso se genera al notificarlos.

{
"document": "ABCDEF1234",
"signProfile": [
{
"id": "abc123",
"name": "Juan",
"email": "juan@email.com",
"phone": "+57300..."
}
]
}
CampoTipoDescripción
documentStringCódigo único del documento creado.
signProfileArrayLista de firmantes del proceso.
signProfile[x].idStringIdentificador único del firmante.
signProfile[x].nameStringNombre del firmante.
signProfile[x].emailStringCorreo electrónico del firmante.
signProfile[x].phoneStringNúmero de teléfono del firmante.
tip

Este campo también se incluye en modo compress junto con la url.


⚠️ Respuestas de error

CódigoDescripción
400Faltan parámetros, o alguna de las validaciones no coinciden con las condiciones de aplicabilidad
401Autenticación inválida o ausente