Crear documento
Este endpoint permite crear un documento para firmar a partir de un PDF. Debe enviar los datos en formato JSON.
Cargar un documento y enviarlo a firmar
POST https://api.enviafirma.com/documentos
Headers
X-Auth-Token*
string
API Key
Request Body
Request Bodynombre*
string
Titulo del documento. Cadena de máximo 200 caracteres
archivoUrl
string
Establece el PDF que se va a firmar desde una URL pública con el archivo. Solo se acepta un archivo en formato PDF, de hasta 10 Mb.
archivoBase64
string
Alternativa al parámetro archivoUrl. Establece el PDF que se va a firmar. Debe convertir el archivo a una cadena base64 y enviarlo en este formato.
metodoNotificacion
string
Método para el envío de notificaciones y OTP, los valores disponibles son: whatsapp: Todos los mensajes son enviados al WhatsApp de los firmantes. sms: Todos los mensajes son enviados al WhatsApp de los firmantes. email: Todos los mensajes son enviados al WhatsApp de los firmantes. email_whatsapp: Las notificaciones se envían al correo electrónico, pero el código OTP de validación es enviado al WhatsApp. whatsapp_email: Las notificaciones se envían al WhatsApp, pero el código OTP de validación es enviado al correo electrónico. sms_email: Las notificaciones se envían por mensaje de texto al celular, pero el código OTP de validación es enviado al correo electrónico.
idiomaNotificaciones
string
Idioma para el envío de las notificaciones, por defecto se envían en español, los valores disponibles son: es: Español en: Ingles
webhook
string
URL para notificar cuando el documento ha finalizado sus tramites. Esta notificación se realiza a traves de una petición POST en la que se envia los datos del proceso de firma y su estado. La estructura de datos enviados en esta peticion POST son iguales a los obtenidos en: https://apidoc.enviafirma.com/documentos/obtener-documento
Configuración de un objeto Firmante:
Para enviar los firmantes en el request de crear documento, se debe establecer un Array de tipo Firmante, donde cada firmante tiene los siguientes campos:
nombre
string
Nombre del firmante
string
Correo electrónico del firmante, es obligatorio si el método de notificación es: email
indicativoCelular
string
Indicativo del pais del celular, ejemplo: +57
numeroCelular
string
Numero celular del firmante, es obligatorio si el metodo de notificación es: whatsapp, sms. ejemplo: 3012334455
Ejemplo de petición
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("X-Auth-Token", "10301c9c-2d09-43c3-950a-XXXXXXXXX");
const raw = JSON.stringify({
"nombre": "Documento de prueba",
"archivoBase64": "JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0KPj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAgL1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iaiAgJSBwYWdlIGNvbnRlbnQKPDwKICAvTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVAovRjEgMTYgVGYKNTAgNTAgVGQKKGhvbGEpIFRqCkVUCmVuZHN0cmVhbQplbmRvYmoKCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxMCAwMDAwMCBuIAowMDAwMDAwMDc5IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDMwMSAwMDAwMCBuIAowMDAwMDAwMzc5IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvU2l6ZSA2CiAgL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjQ3MgolJUVPRgo=",
"metodoNotificacion": "whatsapp",
"idiomaNotificaciones": "es",
"firmantes": [
{
"nombre": "Jose Orozco",
"indicativoCelular": "+57",
"numeroCelular": "3013224455",
"email": null
},
{
"nombre": "Bernardo Morales",
"indicativoCelular": "+34",
"numeroCelular": "+373013224455",
"email": null
}
]
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://api.enviafirma.com/documentos", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.enviafirma.com/documentos");
request.Headers.Add("X-Auth-Token", "10301c9c-2d09-43c3-950a-XXXXXXXXX");
var content = new StringContent("{\n \"nombre\": \"Documento de prueba\",\n \"archivoBase64\": \"JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0KPj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAgL1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iaiAgJSBwYWdlIGNvbnRlbnQKPDwKICAvTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVAovRjEgMTYgVGYKNTAgNTAgVGQKKGhvbGEpIFRqCkVUCmVuZHN0cmVhbQplbmRvYmoKCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxMCAwMDAwMCBuIAowMDAwMDAwMDc5IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDMwMSAwMDAwMCBuIAowMDAwMDAwMzc5IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvU2l6ZSA2CiAgL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjQ3MgolJUVPRgo=\",\n \"metodoNotificacion\": \"whatsapp\",\n \"idiomaNotificaciones\": \"es\",\n \"firmantes\": [\n {\n \"nombre\": \"Jose Orozco\",\n \"indicativoCelular\": \"+57\",\n \"numeroCelular\": \"3013224455\",\n \"email\": null\n },\n {\n \"nombre\": \"Bernardo Morales\",\n \"indicativoCelular\": \"+34\",\n \"numeroCelular\": \"+373013224455\",\n \"email\": null\n }\n ]\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());const axios = require('axios');
let data = JSON.stringify({
"nombre": "Documento de prueba",
"archivoBase64": "JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0KPj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAgL1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iaiAgJSBwYWdlIGNvbnRlbnQKPDwKICAvTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVAovRjEgMTYgVGYKNTAgNTAgVGQKKGhvbGEpIFRqCkVUCmVuZHN0cmVhbQplbmRvYmoKCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxMCAwMDAwMCBuIAowMDAwMDAwMDc5IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDMwMSAwMDAwMCBuIAowMDAwMDAwMzc5IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvU2l6ZSA2CiAgL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjQ3MgolJUVPRgo=",
"metodoNotificacion": "whatsapp",
"idiomaNotificaciones": "es",
"firmantes": [
{
"nombre": "Jose Orozco",
"indicativoCelular": "+57",
"numeroCelular": "3013224455",
"email": null
},
{
"nombre": "Bernardo Morales",
"indicativoCelular": "+34",
"numeroCelular": "+373013224455",
"email": null
}
]
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.enviafirma.com/documentos',
headers: {
'Content-Type': 'application/json',
'X-Auth-Token': '10301c9c-2d09-43c3-950a-XXXXXXXXX'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"nombre\": \"Documento de prueba\",\n \"archivoBase64\": \"JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0KPj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAgL1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iaiAgJSBwYWdlIGNvbnRlbnQKPDwKICAvTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVAovRjEgMTYgVGYKNTAgNTAgVGQKKGhvbGEpIFRqCkVUCmVuZHN0cmVhbQplbmRvYmoKCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxMCAwMDAwMCBuIAowMDAwMDAwMDc5IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDMwMSAwMDAwMCBuIAowMDAwMDAwMzc5IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvU2l6ZSA2CiAgL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjQ3MgolJUVPRgo=\",\n \"metodoNotificacion\": \"whatsapp\",\n \"idiomaNotificaciones\": \"es\",\n \"firmantes\": [\n {\n \"nombre\": \"Jose Orozco\",\n \"indicativoCelular\": \"+57\",\n \"numeroCelular\": \"3013224455\",\n \"email\": null\n },\n {\n \"nombre\": \"Bernardo Morales\",\n \"indicativoCelular\": \"+34\",\n \"numeroCelular\": \"+373013224455\",\n \"email\": null\n }\n ]\n}");
Request request = new Request.Builder()
.url("https://api.enviafirma.com/documentos")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("X-Auth-Token", "10301c9c-2d09-43c3-950a-XXXXXXXXX")
.build();
Response response = client.newCall(request).execute();Respuesta
Ejemplos:
{
"message": "Documento cargado y enviado correctamente",
"data": {
"id": "ba93cd50-cc39-45ae-970f-87ac29dcdb80",
"fechaCreacion": "2024-11-26T17:54:26.962Z",
"estado": "pendiente",
"nombreDocumento": "Datos del certificado",
"rutaDocumentoOriginal": "https://firebasestorage.googleapis.com/v0/b/enviafirma/o/12F1018535.pdf",
"metodoNotificacion": "whatsapp",
"idiomaNotificaciones": "es",
"webhook":"https://urlcliente.com",
"firmantes": [
{
"nombre": "Jose Orozco",
"indicativoCelular": "+57",
"numeroCelular": "3013224455",
"email": null,
"estado": "pendiente"
},
{
"nombre": "Bernardo Morales",
"indicativoCelular": "+34,
"numeroCelular": "3013224455",
"email": null,
"estado": "pendiente"
}
]
}
}Última actualización