El uso más simple es simplemente enviar el documento a Acertia sin especificar firmantes ni ninguna otra opción. A esta opción se le van agregando las demás como código QR, stickers, flujo, etc.
Para subir el documento puedes:
Enviar la URL directamente
Si tu documento puede ser accedido públicamente a través de una URL, puedes simplemente mandarnos esa URL
// puedes mandar el nombre junto con la urlconstresponse=awaitservices.request({ url_doc : { url:'https://www.dropbox.com/s/sxvgq1uhb4k3s4w/contrato.pdf?dl=0', name:'contrato.pdf' },})// o en este caso el nombre del documento se extraerá del parámetro "filename"// del header "Content-Disposition". De no encontrarse, el documento // se guardará con el nombre de "default.pdf"constresponse=awaitservices.request({ url_doc :'https://www.dropbox.com/s/sxvgq1uhb4k3s4w/contrato.pdf?dl=0'})
Enviar el documento en base64
Si tu documento no es accesible por una URL, puedes mandarlo a Acertia codificado en base64
constresponse=awaitservices.request({ b64_doc: {// documento codificado en base64 data:'documento codificado en base64',// nombre con el que se guardará el documento name:'ejemplo.pdf' }})
Utilizar un template
Si estarás usando el mismo documento sólo cambiando unos datos. Puedes darlo de alta como un template HTML y sólo estar mandando los datos que quieres que inyectemos. Nosotros inyectamos los datos y generamos el documento PDF.
Para dar de alta el template, el primer paso es definir el HTML con su CSS inline.
El HTML puede contener campos y tablas dinámicos para inyectar los datos mas adelante.
Un campo puede ser cualquier elemento HTML que contenga texto. Para declarar un campo en tu página HTML agrega la clase "signmage-template-field" y un id único al elemento:
<p style="text-align:justify;">
<span class="signmage-template-field" id="full-name"></span>
is the owner of this document.
</p>
Cuando generes el documento, el valor que especifiques será insertado en el campo:
<p style="text-align:justify;">
<span class="signmage-template-field" id="full-name">John Doe</span>
is the owner of this document.
</p>
Las tablas son tablas HTML con la clase "signmage-template-table" y un id único:
Una vez que ya tienes el template definido en HTML, el siguiente paso es darlo de alta en Acertia:
consttemplateData='html del documento';constresponse=awaitservices.saveTemplate({ template_type:'html',// el template tiene que mandarse codificado en base64 template_data:Buffer.from(templateData).toString('base64'),// nombre con el que se guardará el template template_name:'ejemplo1' })
Acertia contestará con los campos dinámicos que encontró en tu template:
Y de ahí en adelante, cada vez que quieras utilizarlo, sólo es necesario que mandes los datos correspondientes:
constresponse=awaitservices.request({ template_title:'ejemplo1', fields: [ {"id":"full-name","value":"John Doe"} ], tables: [{ id:'directory', rows: [ ['John Doe','843 James Lane Lake Mary, FL 32746','202-555-0141'], ] }] })
Stickers
Los stickers te permiten especificar quién puede firmar el documento y dónde puede hacerlo. Sólo los usuarios que se especifiquen en los stickers podrán firmar el documento, y sólo pueden firmar en la posición del sticker que hayas definido.
Hay tres maneras diferentes de colocar un sticker:
A través del API:
constresponse=awaitservices.request({//La URL, base64 o template de tu documento url_doc:'https://acertia.com/assets/files/signmage.pdf',//stickers es un arreglo de firmantes stickers: [ {//el emisor del certificado que puede firmar //este sticker//(el default es SAT)//las opciones son://'SAT' para certificados del SAT//'Vinculada a Correo Electronico'//'Vinculada a SMS'//'Vincualda a Correo Electronico por Liga' authority:'SAT',//el tipo de sticker//puede ser 'line': la firma se coloca en el sticker de //manera relativa al fondo de la posición proporcionada//o 'rect': centra la firma en la posición dada stickerType:'line',//tipo de dato//el tipo de dato con el cual se validará al firmante//actualmente, el sticker se puede validar a través//de: correo, teléfono o RFC//(email, phone, rfc) dataType:'rfc',//el dato a utilizar para validar al firmante data:'ARCX9012226P8',//tipo de imagen//opcional//puedes especificar el tipo de imagen que el usuario //usará para firmar este sticker//las opciones disponibles son://'desc': una imagen con el texto: "Firma realizada con //certificado emitido por [emisor] para: [nombre]"//'name': nombre del firmante tal como se encuentra en //su certificado escrito con una fuente de //escritura a mano//'hash': el base64 del sha256 del documento antes //de ser firmado //seguido por el nombre del firmante//'stroke': la firma dibujada dentro del app imageType:'hash',//el correo del firmante//si quieres que Acertia maneje el flujo de firma,//este campo//es mandatorio email:'jhon@gmail.com',//página donde se debe encontrar la firma (comenzando //desde 0) page:0,//posición de la firma dentro de la página//ESTAS SON COORDENADAS PDF. //EL (0,0) ES LA ESQUINA INFERIOR IZQUIERDA rect: {//x inferior izquierda lx:388,//y inferior izquierda ly:400,//x superior derecha tx:496,//y superior derecha ty:480 } } ] })
Colocando un recuadro de firma en tu PDF
Cuando se recibe un PDF, Acertia analiza el documento en busca de áreas de firma. Un área de firma es cualquier rectángulo que dentro tenga la palabra "Acertia" seguida de un RFC o un correo electrónico. Acertia elimina estos rectángulos y coloca un sticker en su lugar de manera automática.
Además del RFC o correo del firmante, también puedes especificar los otros parámetros del sticker. Por ejemplo:
Todas se refieren a la firma amparada con certificado del SAT para GOCF9002226A7. El correo es opcional a menos que se desee usar el flujo de Acertia, en cuyo caso es obligatorio.
Se puede incluir la palabra "Linea" o "Centrada", para alinear la firma a la línea inferior o para centrarla al sticker.
También se pueden incluir las palabras: "Cualquiera", "Descriptiva", "Nombre", o "Hash", para definir la imagen que se asocia a la firma.
Si se omite un parámetro se aplica el default establecido en su configuración.
Colocando un recuadro de firma en tu template HTML
Puedes colocar un recuadro en tu template HTML en la posición donde quieres que aparezca la firma. Al momento de solicitar tu documento, inyectas en este recuadro los datos del sticker como se pueden ver en el punto anterior (Colocando un recuadro de firma en tu PDF). Por ejemplo:
Defines el recuadro como parte del template en HTML:
Si estás generando tu PDF a través de Microsoft Word, puedes colocar una línea horizontal con un ALT text siguiendo las mismas reglas que se utilizan para colocar recuadros de firma. Acertia detectará esta línea y colocará un sticker en su lugar.
Flujos
Un flujo de firmas toma un documento con stickers, lo manda a todos los firmantes y te notifica cuando todos lo han firmado.
constresponse=services.await({//URL, base64 o template de tu documento url_doc:'https://acertia.mx/assets/files/signmage.pdf',//para iniciar un flujo de firmas el documento debe contener al//menos un sticker stickers: [ { email:'jhon@gmail.com', dataType:'rfc', data:'ARCX9012226P8', stickerType:'line', page:0, rect: { lx:388, ly:400, tx:496, ty:480 } } ],//flujo de firma workflow: {//opcional//especifica la fecha de expiración del flujo de firma. El//flujo será cancelado si no se ha completado antes de esta//fecha. Por default se fijan 3 meses desde la fecha en la //que el flujo fue creado//formato de la fecha: dd/MM/yyyy expiration_date:'12/11/2016',//opcional//define que tan seguido debe recordar a los firmantes que//firmen este documento//los valores permitidos son://12h, 1d, 2d, 3d, 4d, 5d, 6d or 7d remind_every:'1d',//opcional//lenguaje en el que los firmantes recibiarán la invitación//en sus correos//por default es 'es'//los valores permitidos son: 'es' (Español), 'en' (Inglés) language:'es',//opcional//si se encuentra presente, define el orden en el que las firmas//serán solicitadas//DEBE SER DEL MISMO TAMAÑO QUE EL NÚMERO DE STICKERS EN EL DOCUMENTO ordered: [ {//dato del firmante (debe corresponder a un sticker) data:'ARCX9012226P8' } ] }})
Código QR
Puedes agregar un código QR al documento que apunta a la versión firmada del mismo en nuestros servidores. De tal manera que si alguien recibe el documento por cualquier medio, incluso impreso, podrá validarlo usando la liga incrustada en el código QR.
Para agregar un código QR manda en la solicitud la página y posición en donde quieres que aparezca:
constresponse=awaitservices.request({//URL, base64 o template de tu documento url_doc:'https://acertia.mx/assets/files/signmage.pdf',//posición del código QR//esto agregará un código QR en la esquina//inferior izquierda de la primera página qr: { width:150, height:150, x:0, y:0, page:1 } })
Descripción de la respuesta de solicitud de un documento
Cada vez que subas un documento, Acertia contestará con la información básica del documento que se dio de alta. Por ejemplo:
{// el ticket es el id del documento en Acertia. Te será// util cuando recibas notificaciones sobre las firmas del // documento o para realizar acciones sobre el mismo document_ticket:'6c46b879-42e1-4b3e-a1c4-dcf959178821',// indica si se inicio o no un flujo de firmas para el documento document_flow:false,// indica la cantidad de stickers que se dieron de alta con el documento sticker_count:1,// muestra los detalles de los stickers que se dieron de alta stickers: [ { sticker_index:0, sticker_email:null, sticker_data:'GOCF9002226A711', sticker_page:0, sticker_coordinates: [Object], sticker_type:'RFC', sticker_image_type:'desc', sticker_authorities: [Array] } ],// URL del documento listo para ser firmado document_url:'https://acertia.mx/pdf/6c46b879-42e1-4b3e-a1c4-dcf959178821/?child=true&inv=true'}
Descargar documento
Una vez que ya diste de alta el documento, puedes descargarlo en cualquier momento utilizando su id e indicando si quieres descargar el documento "original" o el "universal".
// response contendrá el base64 del documento correspondienteconstresponse=awaitservices.getDocument('original','04c0c65d-a06c-4f43-9a17-63b375b0106b')
Información del documento
Puedes consultar en cualquier momento el estatus de un documento (además de las notificaciones que recibirás cuando se firme un documento).
Puedes eliminar documentos que tu hayas subido y que no hayan sido firmados. Para hacer esto, envía el id del documento (Acertia_id) y la acción "delete":