Pergunta

Atualmente estou trabalhando com a API docusign rest e gostaria de saber se alguém tem um exemplo de como posso adicionar documentos e modelos em um envelope.Tenho acesso aos IDs de modelo necessários e usei modelos compostos para criar um envelope com vários documentos com modelos correspondentes.Estou fazendo isso SOMENTE usando o ID do modelo.Agora estou tentando descobrir como adicionar um documento ao modelo composto.Se o documento contiver um modelo (tenho acesso aos IDs do modelo, se houver), ele deverá aplicar o modelo a esse documento.

Posso aplicar modelos a um documento por meio da API REST?Se sim, alguém tem um exemplo?

Foi útil?

Solução

Aqui estão alguns exemplos que mostram como os modelos compostos podem ser utilizados para combinar informações do(s) modelo(s) com informações especificadas por meio da própria solicitação da API.

Exemplo 1:

A solicitação de exemplo a seguir cria um Envelope onde o Modelo é usado para definir as tags e as funções de destinatário do Envelope, mas as informações do Documento e do Destinatário são fornecidas na própria solicitação 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--

Conforme mostrado acima, para fornecer documentos por meio da própria solicitação de API, é necessário enviar um solicitação de várias partes -- onde a primeira parte representa o JSON completo da solicitação e cada parte subsequente da solicitação representa o conteúdo de um único documento referenciado no JSON.Se o seu JSON fizer referência a vários documentos, sua solicitação conterá um documento adicional/separado papel para cada documento.

Os modelos compostos são poderosos porque oferecem grande flexibilidade em termos de combinação de informações dos modelos com informações (documentos, destinatários) fornecidas por meio da própria solicitação da API em tempo de execução.O exemplo acima é muito simples (um modelo, um documento, um destinatário) - mas pode ser facilmente estendido para casos em que você deseja combinar vários modelos/documentos/destinatários.

(O exemplo de solicitação nas páginas 26-27 do Guia da API REST mostra o formato básico necessário ao enviar uma solicitação de várias partes: http://www.docusign.com/sites/default/files/REST_API_Guide_v2.pdf.)

Exemplo #2:

A seguir, vamos supor que você deseja incluir em um Envelope todos os documentos definidos em um Modelo, mas também deseja incluir dois documentos adicionais (não definidos por um Modelo) no Envelope.A solicitação de exemplo a seguir cria um Envelope com dois documentos especificados como parte da solicitação de API (CustomerAgreement.pdf e Invoice.pdf) e todos os documentos definidos pelo modelo referenciado na estrutura do terceiro modelo composto.Algumas notas gerais:

  • Os documentos aparecerão no envelope na ordem em que sejam especificados na solicitação JSON.Neste exemplo, isso significa que a ordem dos documentos é:1) CustomerAgreement.pdf (especificado por meio da solicitação de API na primeira estrutura de modelo composto), 2) Invoice.pdf (especificado por meio da solicitação de API na segunda estrutura de modelo composto) e 3) todos os documentos especificados pelo modelo referenciado em a terceira estrutura do modelo composto.

  • Embora cada estrutura individual do modelo composto deva especificar as informações do destinatário - a DocuSign combinará/mesclará qualquer informação de destinatário idêntica ao formar a coleção de destinatários para o Envelope.Neste exemplo, o Envelope resultante possui apenas um destinatário:Abby Abbott.

Como estamos especificando dois documentos por meio da solicitação da API, a solicitação tem um total de TRÊS partes:1) JSON, 2) conteúdo do primeiro documento, 3) conteúdo do 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top