Pregunta

Actualmente estoy trabajando con la API DESCUSIGN REST y me pregunto si alguien tiene un ejemplo de cómo puedo agregar documentos y plantillas en un sobre.Tengo acceso a la identificación de la plantilla que necesita y he usado plantillas compuestas para crear un sobre con múltiples documentos con plantillas correspondientes.Estoy haciendo esto solo usando la identificación de la plantilla.Ahora estoy tratando de averiguar cómo agregar un documento a la plantilla compuesta.Si el documento contiene una plantilla (tengo acceso a las ID de la plantilla si tiene una), debe aplicar la plantilla a ese documento.

¿Puedo aplicar plantillas a un documento a través de la API de descanso?Si es así, ¿alguien tiene un ejemplo?

¿Fue útil?

Solución

Aquí hay un par de ejemplos que muestran cómo se pueden utilizar las plantillas compuestas para combinar información de la (s) plantilla (s) con información especificada a través de la solicitud API en sí.

Ejemplo # 1:

La siguiente solicitud de ejemplo crea un sobre donde se usa la plantilla para definir las etiquetas y los roles del destinatario para el sobre, pero la información del documento y el destinatario se proporciona en la propia solicitud de API.

POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1

X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100

--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data

{
    "emailBlurb":"Test Email Body",
    "emailSubject": "Test Email Subject",
    "status" : "sent",
    "compositeTemplates": [
    {
        "serverTemplates": [
        {
            "sequence" : 1,
            "templateId": "TEMPLATE_ID"
        }],
        "inlineTemplates": [
        {
            "sequence" : 2,
            "recipients": {
                "signers" : [{
                    "email": "bettysemail@outlook.com",
                    "name": "Betty Adamson",
                    "recipientId": "1",
                    "roleName": "RoleOne"
                }]
            }
        }],
        "document": {
            "documentId": 1,
            "name": "test1.pdf"
        }
    }]
}

--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="TestDocAPI.pdf"; documentid="1"

<document bytes removed>

--MY_BOUNDARY--

Como se muestra arriba, para proporcionar documentos a través de la solicitud API en sí, requiere que envíe una solicitud multiforme , donde la primera parte representa el JSON completo para la solicitud, y cada uno La parte posterior de la solicitud representa los contenidos de un solo documento que se hace referencia en el JSON. Si su JSON hace referencia a múltiples documentos, su solicitud contendría una parte adicional / separada para cada documento.

Las plantillas compuestas son poderosas, ya que le brindan una gran flexibilidad en términos de combinar información de plantillas con información (documentos, destinatarios) proporcionados a través de la solicitud API en tiempo de ejecución. El ejemplo anterior es muy simple (una plantilla, un documento, un destinatario), pero se puede ampliar fácilmente para los casos en los que desea combinar múltiples plantillas / documentos / destinatarios.

(La solicitud de ejemplo en la Guía P26-27 de la API de REST muestra el formato básico que se requiere al enviar una solicitud multifunción: http://www.docusign.com/sites/default/files/rest_api_guide_v2.pdf .)

Ejemplo # 2:

A continuación, asumamos que desea incluir en un sobre todos los documentos que se definen en una plantilla, pero también desea incluir dos documentos adicionales (no definidos por una plantilla) en el sobre. La siguiente solicitud de ejemplo crea un sobre con 2 documentos que se especifican como parte de la solicitud API (CustomerAngeMreement.PDF y FIVICE.PDF), y todos los documentos definidos por la plantilla a la que se hace referencia en la 3er estructura de plantilla compuesta. Un par de notas generales:

  • aparecerán documentos en el sobre en el orden en que son especificado en la solicitud de JSON. En este ejemplo, eso significa que el orden del documento es: 1) CustomerAnMreement.pdf (especificado a través de la solicitud API en la primera estructura de plantilla compuesta), 2) factura.pdf (especificada a través de la solicitud API en la segunda estructura de plantilla compuesta), y 3 ) Todos los documentos especificados por la plantilla a la que se hace referencia en la tercera estructura de plantilla compuesta.

  • Aunque cada estructura de plantilla compuesta individual debe especificar información del destinatario: DocUSign coincidirá / fusionará cualquier información del destinatario idéntico al formar la colección del destinatario para el sobre. En este ejemplo, el sobre resultante tiene un solo destinatario: Abby Abbott.

Porque estamos especificando dos documentos a través de la solicitud API, la solicitud tiene un total de tres partes: 1) JSON, 2) Contenido del primer documento, 3) Contenido del segundo documento.

POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1

X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100

--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data

{
    "status" : "sent",
    "emailSubject" : "Test Envelope Subject",
    "emailBlurb" : "Test Envelope Blurb",
    "compositeTemplates": [
    {
        "inlineTemplates": [
        {
            "sequence" : 1,
            "recipients": {
                "signers" : [{
                    "email": "abbysemail@outlook.com",
                    "name": "Abby Abbott",
                    "recipientId": "1"
                }]
            }
        }],
        "document": {
            "documentId": 1,
            "name": "CustomerAgreement",
            "fileExtension": "pdf"
        }
    },
    {
        "inlineTemplates": [
        {
            "sequence" : 2,
            "recipients": {
                "signers" : [{
                    "email": "abbysemail@outlook.com",
                    "name": "Abby Abbott",
                    "recipientId": "1"
                }]
            }
        }],
        "document": {
            "documentId": 2,
            "name": "Invoice",
            "fileExtension": "pdf"
        }
    },
    {
        "serverTemplates": [
        {
            "sequence" : 1,
            "templateId": "TEMPLATE_ID"
        }],
        "inlineTemplates": [
        {
            "sequence" : 2,
            "recipients": {
                "signers" : [{
                    "email": "abbysemail@outlook.com",
                    "name": "Abby Abbott",
                    "recipientId": "1",
                    "roleName": "Initiator",
                    "routingOrder":"1"
                }
                ]
            }
        }]
    }]
}

--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"

    <document bytes removed>

--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="Invoice.pdf"; documentid="2"

    <document bytes removed>

--MY_BOUNDARY--

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top