REST API D4Sign

Informações Gerais

A D4Sign é uma plataforma de assinatura eletrônica de documentos que atende os requisitos da Medida Provisória 2.200-2/01, ou seja, autenticidade, integridade e não repúdio. Trazendo, assim, validade jurídica para todas as assinaturas realizadas através da D4Sign.

Seja bem-vindo ao guia de referências da API da D4Sign! É através desta API que você irá integrar o seu sistema ao nosso. Você poderá utilizar todos os recursos da plataforma através dessa API, como, por exemplo, enviar documentos para assinatura e exibí-los em seu website, mantendo o usuário em seu ambiente.

A primeira coisa que você deve saber são os endpoints que usamos:

Ambiente Endpoint Validade jurídica
Produção https://secure.d4sign.com.br/api/v1 true
Desenvolvimento (SandBox) http://demo.d4sign.com.br/api/v1 false

Nossa API é RESTful e todas as respostas são em JSON.

Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;

try{
	$client = new Client();
	//$client->setUrl('https://secure.d4sign.com.br/api/'); //Produção - A versão (v1) já está embutida na SDK
	$client->setUrl('http://demo.d4sign.com.br/api/'); //Desenvolvimento (SandBox)
} catch (Exception $e) {
	echo $e->getMessage();
} 

Passos básicos para iniciar

1º - Realizar o upload do documento
2º - Cadastrar o webhook(POSTBack) //OPCIONAL
3º - Cadastrar os signatários
4º - Enviar o documento para assinatura
5º - Utilizar o EMBED D4Sign para exibir o documento em seu website //OPCIONAL

Erros de requisições

Resposta 4XX

Caso você utilize parâmetros inválidos, o corpo da resposta será um JSON contendo uma mensagem de erro.

  • HTTP Header: Content-Type: application/json
  • Body: { "message": "Erro" }

Resposta 5XX

Caso ocorra qualquer tipo de falha no servidor, o corpo da resposta será um JSON contendo uma mensagem de erro.

  • HTTP Header: Content-Type: application/json
  • Body: { "message": "Server error." }

Formatação JSON

A API da D4Sign utiliza JSON como formato das requisições. Todas as respostas serão em JSON.
Inclua, também, Accept: application/json e Content-Type: application/json no HEADER.

Autenticação

A autenticação é feita através do parâmetro tokenAPI que automaticamente identifica e autentica o usuário.

O parâmetro deve ser enviado no caminho da requisição, ou seja, toda requisição deverá conter no path ?tokenAPI={token_user}

API Keys

A sua Chave de API está disponível em sua conta. Faça login e acesse o menu 'Dev API'.

Você terá um limite de 50 requisições por hora. Para aumentar esse limite, entre em contato com o suporte@d4sign.com.br.

Em caso de dúvidas sobre onde encontrar a sua Chave de API, entre em contato pelo e-mail suporte@d4sign.com.br

SDKs Disponíveis

SDK PHP em https://github.com/d4sign/d4sign-php

Configuração mínima: PHP 5 >= 5.5.0

Em breve novas SDKs estarão disponíveis. :)

Testando com o Postman

Postman é uma poderosa ferramenta para tornar o seu desenvolvimento de API mais rápido e mais fácil.
Para testar o uso da API D4Sign com o Postman, basta clicar no botão acima. Após a instalação e importação da biblioteca "D4Sign - API", você precisará configurar o tokenAPI no canto superior direito, conforme imagem abaixo:

Atenção: O host padrão configurado no Postman é o host de Desenvolvimento (SandBox).

Se preferir, acesse a documentação criada pelo Postman:
https://documenter.getpostman.com/view/1486030/d4sign-api/2SMXHA

API

Na D4Sign, um processo de assinatura ocorre sempre através de um documento, ou seja, o documento precisa ser criado em seu ambiente (seu servidor) e enviado para a D4Sign através do nosso objeto de 'upload' (documents/{uuid_safe}/upload).

Cada documento possui uma chave única que é criada no momento do upload do documento. Essa chave é muito importante e deve ser inserida em seu banco de dados para futuras interações com o documento.

Listar todos os cofres

Este objeto retornará TODOS os COFRES da sua conta.

GET/safes

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/safes?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid-safe": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "name-safe": "Contratos"
},
{...}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$safes = $client->safes->find();
	
	//print_r($safes);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Listar TODOS os documentos

Este objeto retornará TODOS os documentos da sua conta.

GET/documents

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/documents?tokenAPI={SEU-TOKEN}

O resultado será de 500 documentos por páginas
Utilize o parametro PG na URL para paginar o resultado. Ex.:
https://secure.d4sign.com.br/api/v1/documents?tokenAPI={SEU-TOKEN}&pg=2

O primeiro bloco do resultado exibirá o total de páginas disponíveis

Requisição

Header

{
    "Content-Type": "application/json"
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "3",
    "statusName": "Aguardando Assinaturas"
},
{...}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->find();
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Listar um documento específico

Esse objeto retornará apenas o documento solicitado.

GET/documents/{UUID-DOCUMENT}

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/documents/{UUID-DOCUMENTO}?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}
Parâmetro Descrição
UUID-DOCUMENTO (obrigatório) UUID do documento que deverá ser listado.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "3",
    "statusName": "Aguardando Assinaturas"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->find("{UUID-DOCUMENT}");
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Listar todos os documentos de um cofre ou pasta

Esse objeto retornará todos os documentos que estiverem associados ao cofre e pasta informada.

GET/documents/{UUID-SAFE}/safe

Para filtrar com a pasta, utilize /documents/{UUID-SAFE}/safe/{UUID-FOLDER}

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/documents/{UUID-SAFE}/safe?tokenAPI={SEU-TOKEN}

O resultado será de 500 documentos por páginas
Utilize o parametro PG na URL para paginar o resultado. Ex.:
https://secure.d4sign.com.br/api/v1/documents?tokenAPI={SEU-TOKEN}&pg=2

O primeiro bloco do resultado exibirá o total de páginas disponíveis

Requisição

Header

{
    "Content-Type": "application/json"
}
Parâmetro Descrição
UUID-SAFE (obrigatório) UUID do COFRE que deverá ser listado.
UUID-FOLDER UUID da PASTA (opcional)

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "3",
    "statusName": "Aguardando Assinaturas"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->safe("{UUID-SAFE}");
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Listar todos os documentos de uma fase

Esse objeto retornará todos os documentos que estiverem na fase informada.

GET/documents/{ID-FASE}/status

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/documents/{ID-FASE}/status?tokenAPI={SEU-TOKEN}

O resultado será de 500 documentos por páginas
Utilize o parametro PG na URL para paginar o resultado. Ex.:
https://secure.d4sign.com.br/api/v1/documents?tokenAPI={SEU-TOKEN}&pg=2

O primeiro bloco do resultado exibirá o total de páginas disponíveis

Requisição

Header

{
    "Content-Type": "application/json"
}
Parâmetro Descrição
ID-FASE (obrigatório) ID da FASE que deverá ser listado.

ID 1 - Processando
ID 2 - Aguardando Signatários
ID 3 - Aguardando Assinaturas
ID 4 - Finalizado
ID 5 - Arquivado
ID 6 - Cancelado

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "3",
    "statusName": "Aguardando Assinaturas"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->status("{ID-FASE}");
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Realizar o UPLOAD de um documento principal

Esse objeto realizará o UPLOAD do seu documento para os servidores da D4Sign.

Após o UPLOAD, o documento será criptografado em nossos cofres e carimbado com um número de série.

Após o processamento um preview será gerado. O processamento será realizado em background, ou seja, a requisição não ficará bloqueada.

Todos os documentos ficam armazenados em COFRES criptografados, ou seja, o parâmetro UUID-SAFE é obrigatório e determina em qual cofre o documento ficará armazenado.

POST/documents/{UUID-SAFE}/upload
Requisição

Header

{
    "Content-Type": "multipart/form-data;",
    "tokenAPI": "{token-user}"
}

Body

{
    "file": "/path/file_name.pdf",
    "uuid_folder": "{UUID DA PASTA}"
}
Parâmetro Descrição
file (obrigatório) Arquivo que será enviado para os servidores da D4Sign.

MIME Types aceitos PDF,DOC,DOCX,JPG,PNG,BMP
uuid_folder (opcional) Para que o documento fique armazenado dentro da pasta, informe o UUID dela.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid": "9f08bf18-bf4b-410f-9701-c286e5b1cad1"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$path_file = '/pasta/arquivo.pdf';
	$id_doc = $client->documents->upload('{UUID-SAFE}', $path_file);
	
	//print_r($id_doc);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Realizar o UPLOAD de um documento anexo ao principal

Esse objeto realizará o UPLOAD do seu documento para os servidores da D4Sign e ficará anexo ao documento principal.

Após o processamento um preview será gerado. O processamento será realizado em background, ou seja, a requisição não ficará bloqueada.

POST/documents/{UUID-DOC-PRINCIPAL}/uploadslave
Requisição

Header

{
    "Content-Type": "multipart/form-data;",
    "tokenAPI": "{token-user}"
}

Body

{
    "file": "/path/file_name.pdf"
}
Parâmetro Descrição
file (obrigatório) Arquivo que será enviado para os servidores da D4Sign.

MIME Types aceitos PDF,DOC,DOCX,JPG,PNG,BMP

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "File created"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$path_file = '/pasta/arquivo.pdf';
	$id_doc = $client->documents->uploadslave('{UUID-DOC-PRINCIPAL}', $path_file);
	
	//print_r($id_doc);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Realizar o UPLOAD de um documento principal (Binário)

Esse objeto realizará o UPLOAD do seu documento para os servidores da D4Sign.

Após o UPLOAD, o documento será criptografado em nossos cofres e carimbado com um número de série.

Após o processamento um preview será gerado. O processamento será realizado em background, ou seja, a requisição não ficará bloqueada.

Todos os documentos ficam armazenados em COFRES criptografados, ou seja, o parâmetro UUID-SAFE é obrigatório e determina em qual cofre o documento ficará armazenado.

POST/documents/{UUID-SAFE}/uploadbinary
Requisição

Body

{
    "base64_binary_file": "JVhsdCAdwesAD2dsadfASDQW...",
    "mime_type": "application/pdf",
    "name": "Meu contrato de venda",
    "uuid_folder": "{UUID DA PASTA}"
}
Parâmetro Descrição
base64_binary_file (obrigatório) Arquivo que será enviado para os servidores da D4Sign.

ATENÇÃO: Você deve enviar o binário do seu arquivo codificado em BASE64
mime_type (obrigatório) Informe o MIMETYPE do seu arquivo
name (opcional) Informe o nome do seu arquivo
uuid_folder (opcional) Para que o documento fique armazenado dentro da pasta, informe o UUID dela.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid": "9f08bf18-bf4b-410f-9701-c286e5b1cad1"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$uuid_safe 		= '{UUID-SAFE}';
	$name 			= 'Documento teste';
	$mime_type		= 'application/pdf';
	$base64_binary		= base64_encode("BINARIO_DO_ARQUIVO");

	$id_doc = $client->documents->uploadbinary($uuid_safe, $base64_binary, $mime_type, $name);
	//print_r($id_doc);
	
} catch (Exception $e) {
	echo $e->getMessage();
} 

Cadastrar signatários

Esse objeto realizará o cadastro dos signatários do documento, ou seja, quais pessoas precisam assinar esse documento.

POST/documents/{UUID-DOCUMENT}/createlist
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    array [signers] => {
        array{
            "email": "email@dominio.com",
            "act": "1",
            "foreign": "1",
            "certificadoicpbr": "0",
            "assinatura_presencial": "0",
            "docauth": "0",
            "docauthandselfie": "0",
       	    "embed_methodauth": "email",
      	    "embed_smsnumber": "",
      	    "upload_allow": "0",
      	    "upload_obs": "Contrato Social e Conta de Luz"
        },
        {...}
    }
}
Parâmetro Descrição
email (obrigatório) E-mail do signatário (pessoa que precisa assinar o documento)
act (obrigatório) Ação da assinatura.
Ações permitidas:

1 = Assinar

2 = Aprovar

3 = Reconhecer

4 = Assinar como parte

5 = Assinar como testemunha

6 = Assinar como interveniente

7 = Acusar recebimento

8 = Assinar como Emissor, Endossante e Avalista

foreign (obrigatório) Indica se o signatário é estrangeiro, ou seja, se possui CPF.

0 = Possui CPF (Brasileiro).

1 = Não possui CPF (Estrangeiro).

Para os signatários definidos como 'estrangeiros', o CPF não será exigido.

certificadoicpbr (obrigatório) Indica se o signatário DEVE efetuar a assinatura com um Certificado Digital ICP-Brasil.

0 = Será efetuada a assinatura padrão da D4Sign.

1 = Será efetuada a assinatura com um Certificado Digital ICP-Brasil.

assinatura_presencial (obrigatório) Indica se o signatário DEVE efetuar a assinatura de forma presencial.

1 = Será efetuada a assinatura presencial.

0 = Não será efetuada a assinatura presencial.

docauth (opcional) Indica se o signatário DEVE efetuar a assinatura apresentando um documento com foto.

1 = Será efetuada a assinatura exigindo um documento com foto.

0 = Não será efetuada a assinatura exigindo um documento com foto.

docauthandselfie (opcional) Indica se o signatário DEVE efetuar a assinatura apresentando um documento com foto e depois registrar uma selfie segurando o mesmo documento.

1 = Será efetuada a assinatura exigindo um documento com foto e uma selfie segurando o documento.

0 = Não será efetuada a assinatura exigindo um documento com foto e uma selfie segurando o documento.

embed_methodauth (opcional) Indica qual o método de autenticação será utilizado no EMBED.

email = O token será enviado por e-mail

password = Caso o signatário já possua uma conta D4Sign, será exigida a senha da conta.

sms = O token será enviado por SMS (para utilizar essa opção entre em contato com a equipe comercial da D4Sign)

embed_smsnumber (opcional) Indica o número de telefone que será enviado o TOKEN.

Atenção: esse número deverá seguir o padrão E.164.

Ex.: +5511953020202 (código do país, DDD, número do telefone)

upload_allow (opcional) Indica se o signatário poderá enviar outros documentos
upload_obs (opcional) Se o upload_allow for setado como 1, indique aqui quais documentos o signatário deve enviar

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "key_signer": "NwYu=",
    "email": "email@user.com.br",
    "act": "1",
    "foreign": "0",
    "certificadoicpbr": "0",
    "assinatura_presencial": "0",
    "doc_auth": "0",
    "embed_methodauth": "email",
    "embed_smsnumber": "",
    "upload_allow": "0",
    "upload_obs": "Contrato Social e Conta de Luz",
    "status": "created"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$signers = array(
		array("email" => "email1@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0', "assinatura_presencial" => '0', "embed_methodauth" => 'email', "embed_smsnumber" => '', "docauth" => '0'),
		array("email" => "email2@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0', "assinatura_presencial" => '0', "embed_methodauth" => 'sms', "embed_smsnumber" => '+5511953201200', "docauth" => '0')
	);
	
	$return = $client->documents->createList("{UUID-DOCUMENT}", $signers);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Alterar signatário

Esse objeto atualizará o e-mail do signatário

POST/documents/{UUID-DOCUMENT}/changeemail
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body


{
    "email-before": "antigoemail@dominio.com",
    "email-after": "novoemail@dominio.com",
    "key-signer": "NyWx="
},
Parâmetro Descrição
email-before (obrigatório) ANTIGO e-mail do signatário
email-after (obrigatório) NOVO e-mail signatário
key-signer Chave do signatário

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "E-mail changed",
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$signatario_antigo	= 'emailantigo@email.com';
	$signatario_novo	= 'emailnovo@email.com';
	$key_signer		= 'Nwsy=';
	$return = $client->documents->changeemail("{UUID-DOCUMENT}",$signatario_antigo, $signatario_novo,$key_signer);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Cadastrar informações do signatário (para assinatura presencial)

Esse objeto cadastrará as informações (nome, cpf e data de nascimento) no signatário criado. Você poderá utilizar esse objeto para as assinaturas presenciais. Se você souber os dados do signatário, cadastre-os para evitar que o signatário precise informá-los no momento da assinatura.

POST/documents/{UUID-DOCUMENT}/addinfo
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "key_signer": "NwYj=",
    "email": "seusignatario@email.com",
    "display_name": "Nome do Signatário",
    "documentation": "CPF do Signatário",
    "birthday": "Data de Nascimento do Signatário",
    "tokenAPI": "{token-user}"
}
Parâmetro Descrição
key_signer Chave do signatário
email (obrigatório) E-mail do signatário cadastrado
display_name (opcional) Informar o nome do signatário
documentation (opcional) Informar o CPF do signatário
birthday (opcional) Informar a data de nascimento do signatário

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid-doc": 00004fa2-a361-42e3-a923-bb088b1809fe,
    "email": "seusignatario@email.com",
    "name": "Nome do signatário",
    "documentation": "CPF do signatário",
    "birthday": "Data de nascimento do signatário",
    "status": "changed"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$email			= 'email@dominio.com';
	$display_name	= 'Nome do signatário';
	$documentation	= '00.00.00.000-23';
	$birthday		= '22/11/1970';
	$key_signer		= 'Nwyj=';
	
	$add = $client->documents->addinfo({UUID-DOCUMENT}, $email, $display_name, $documentation, $birthday, $key_signer);
	
	//print_r($add);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Listar signatários de um documento

Esse objeto retornará todos os signatários de um documento..

GET/documents/{UUID-DOCUMENT}/list

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/documents/{UUID-DOCUMENT}/list?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}
Parâmetro Descrição
UUID-DOCUMENT (obrigatório) UUID do documento que deverá ser listado.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "3",
    "statusName": "Aguardando Assinaturas",
    "list": {
    	"key_signer": "NwYj=",
    	"user_name": "Signatario 1",
    	"user_document": "000000000000 (CPF)",
    	"email": "signatario@email.com.br",
    	"signed": "0",
    	"type": "1",
    	"foreign": "0",
    	"certificadoicpbr": "0",
    	"assinatura_presencial": "0",
    	"embed_methodauth": "email",
    	"embed_smsnumber": "",
    	"email_sent": "1",
    	"email_sent_status": "Delivery",
    	"email_sent_message": "Mensagem entregue com sucesso.",
    	"upload_allowed": "0",
    	"upload_obs": "Descricao dos documentos",
    	"documents_attached": "[]",
    	"date": "2016-04-17 13:56:21"
    	
	}
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->listsignatures("{UUID-DOCUMENT}");
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Enviar um documento para assinatura

Esse objeto enviará o documento para assinatura, ou seja, o documento entrará na fase 'Aguardando assinaturas', onde, a partir dessa fase, os signatários poderão assinar os documentos.

POST/documents/{UUID-DOCUMENT}/sendtosigner
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "message": "{mensagem_para_o_signatário}",
    "skip_email": "1",
    "workflow": "0",
    "tokenAPI": "{token-user}"
}
Parâmetro Descrição
message (opcional) Mensagem que será enviada para os signatários, caso o parâmetro skip_email esteja definido como 0
skip_email (obrigatório) Opções:

0 = Os signatários serão avisados por e-mail que precisam assinar um documento.

1 = O e-mail não será disparado.

ATENÇÃO: Nos casos em que o EMBED ou a ASSINATURA PRESENCIAL estiver sendo usado, ou seja, quando o signatário for efetuar a assinatura diretamente do seu website ou em seu Tablet, o parâmetro skip_email DEVERÁ ser definido como 1
workflow (obrigatório) Opções:

0 = Para não seguir o workflow.

1 = Para seguir o workflow.

Caso o parâmetro workflow seja definido como 1, o segundo signatário só receberá a mensagem de que há um documento aguardando sua assinatura DEPOIS que o primeiro signatário efetuar a assinatura, e assim sucessivamente.

Porém, caso seja definido como 0, todos os signatários poderão assinar o documento ao mesmo tempo.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "File sent to successfully signing"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$message = 'Prezados, segue o contrato eletrônico para assinatura.';
	$workflow = 0 //Todos podem assinar ao mesmo tempo;
	$skip_email = 1 //Não disparar email com link de assinatura (usando EMBED);
	
	$doc = $client->documents->sendToSigner("{UUID-DOCUMENT}", $message, $workflow, $skip_email);
	
	//print_r($doc);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Cancelar um documento

Esse objeto irá cancelar o documento.

POST/documents/{UUID-DOCUMENT}/cancel
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuidDoc": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "nameDoc": "teste.pdf",
    "type": "application/pdf",
    "size": "118990",
    "pages": "6",
    "uuidSafe": "06b3ddb1-abc9-4ab8-b944-0d7c940486af",
    "safeName": "Atendimento",
    "statusId": "6",
    "statusName": "Cancelado"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$docs = $client->documents->cancel("{UUID-DOCUMENT}");
	
	//print_r($docs);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Realizar o DOWNLOAD de um documento

Esse objeto irá gerar uma URL final para download do documento.

POST/documents/{UUID-DOCUMENT}/download
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "type": "{type}"
}
Parâmetro Descrição
type (opcional) Para realizar o download do arquivo completo, escolha ZIP nesse atributo.
Para realizar o download apenas do PDF, escolha PDF nesse atributo.
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "url": "https://secure.d4sign.com.br/CODIGO",
    "name": "teste.pdf"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	//Você poderá fazer download do ZIP ou apenas do PDF setando o último parametro.
	$url_doc = $client->documents->getfileurl("{UUID-DOCUMENT}",'zip');
	//print_r($url_doc);
	
	$arquivo = file_get_contents($url_doc->url);
	
	//CASO VOCÊ ESTEJA FAZENDO O DOWNLOAD APENAS DO PDF, NÃO ESQUEÇA DE ALTERAR O CONTENT-TYPE PARA application/pdf E O NOME DO ARQUIVO PARA .PDF
	header("Content-type: application/octet-stream");
	header("Content-Disposition: attachment; filename=\"".$url_doc->name.".zip"."\"");
	
	//Para PDF
	//header("Content-type: application/pdf");
	//header("Content-Disposition: attachment; filename=\"".$url_doc->name.".pdf"."\"");
	
	echo $arquivo;
	
	//Você poderá, também, simplesmente redirecionar o seu usuário para a URL final de download.
} catch (Exception $e) {
	echo $e->getMessage();
} 

Esse objeto irá reenviar o link de assinatura para o signatário.

POST/documents/{UUID-DOCUMENT}/resend
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "email": "email@dominio.com",
    "key_signer": "NwUj="
}
Parâmetro Descrição
email (obrigatório) Email do signatário que deverá receber o link novamente.
key_signer Chave do signatário

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "Message sent"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$email 		= 'email@dominio.com';
	$key_signer = 'NwuJ=';
	
	$return = $client->documents->resend('{UUID-DOCUMENT}', $email, $key_signer);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 


Listar templates

Esse objeto irá retornar todos os templates criados em sua conta.

POST/templates
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "id": "MzE=",
    "name": "Nome do template",
    "variables": 
    	array {
    		"0": "variavel 1",
		"1": "variavel 2",
		"2": "variavel 3"
	}

}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$return = $client->templates->find();
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 


Gerar documento a partir do template

Esse objeto irá gerar um documento em seu cofre a partir de um template.

POST/documents/{UUID-SAFE}/makedocumentbytemplate
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "name_document": "Nome do documento",
    "uuid_folder (opcional)": "{UUID DA PASTA}",
    "templates": 
	    "id_template 1": {
	    	"variavel 1": "valor 1",
	    	"variavel 2": "valor 2",
	    	{...}
	    },
	    "id_template 2": {
	    	"variavel 1": "valor 1",
	    	"variavel 2": "valor 2",
	    	{...}
	    },
	    {...}
}
Parâmetro Descrição
name_document (opcional) Define o nome do documento. Se não for preenchido, o documento terá o nome "Documento"
uuid_folder (opcional) Para que o documento fique armazenado dentro da pasta, informe o UUID dela.
id_template (obrigatório) Array contendo o ID do template na CHAVE e as variáveis no VALUE.

Ex.:

array(
	"MzE=" => array (
			'arrastando' => 'teste',
			'blocos' => 'teste2')
,
	"Mg==" => array (
			'NOME_CONTRATANTE' => 'fulano',
			'representante_contratante' => 'sss')
),
{...}
			
Você poderá concatenar vários templates, conforme o exemplo acima. Lembrando que você deverá informar pelo menos um template.

As variavéis dos campos personalizados (ex.: arrastando, bloco, NOME_CONTRATANTE, etc.) precisam ser informadas exatamente iguais ao cadastro.

Ex.: 'NOME_CONTRATANTE' => 'fulano' irá substituir o campo personalizado NOME_CONTRATANTE por fulano. O sistema é case sensitive, ou seja, você deverá respeitar letras maiusculas e minusculas.

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid": "9f08bf18-bf4b-410f-9701-c286e5b1cad1"
}
Exemplos
PHP (SDK)      C# (.NET)

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$templates = array(
			"id_template1" => array(
					'campo_personalizado1' => 'Valor1',
					'campo_personalizado2' => 'Valor2'
					),
			"id_template2" => array (
					'campo_personalizado1' => 'Valor1',
					'campo_personalizado2' => 'Valor2')
			);							
	
	$name_document = "Nome do documento";
	$uuid_cofre = 'db5dc9e0-22cb-4461-8476-9cd0a651e496';
	//$uuid_pasta = 'db5dc9e0-22cb-4461-8476-9cd0a651e496';
	
	$return = $client->documents->makedocumentbytemplate($uuid_cofre, $name_document, $templates, $uuid_pasta);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 


Listar pastas do cofre

Este objeto retornará TODAS as PASTAS do cofre.

GET/folders/{UUID-SAFE}/find

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/folders/{uuid-safe}/find?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid_safe": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "uuid_folder": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "name": "Contratos",
    "dt_cadastro": "2017-08-21 21:43:42"
},
{...}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$folders = $client->folders->find('{UUID-SAFE}');
	
	//print_r($folders);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Criar pasta no cofre

Esse objeto irá criar uma pasta dentro do cofre informado.

POST/folders/{UUID-SAFE}/create
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "folder_name": "Nome da pasta"
}
Parâmetro Descrição
folder_name (obrigatório) Nome da pasta

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "Folder created",
    "uuid": "{UUID-FOLDER}"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$nome = 'Teste criar pasta 20189';
	$return = $client->folders->create('{UUID-SAFE}', $nome);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 


Renomear pasta do cofre

Esse objeto irá renomear uma pasta dentro do cofre informado.

POST/folders/{UUID-SAFE}/rename
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "folder_name": "Nome da pasta",
    "uuid_folder": "{UUID-FOLDER}"
}
Parâmetro Descrição
folder_name (obrigatório) Nome da pasta
uuid_folder (obrigatório) UUID da pasta que será renomeada

Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "Folder changed"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$nome = 'Teste criar pasta 20189';
	$return = $client->folders->rename('{UUID-SAFE}', '{UUID-FOLDER}', $nome);
	
	//print_r($return);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Exibir saldo da conta

Este objeto retornará o balanço da sua conta

GET/account/balance

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/account/balance?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "credit": "999",
    "sent": "372",
    "used_balance": "372/999"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$return = $client->account->balance();
	//print_r($return);
	
} catch (Exception $e) {
	echo $e->getMessage();
} 


Criar lote

Este método criará um lote de documentos

POST/batches

Não esqueça de enviar o ?tokenAPI em sua requisição.

Ex.: https://secure.d4sign.com.br/api/v1/batches?tokenAPI={SEU-TOKEN}

Requisição

Header

{
    "Content-Type": "application/json"
}

Body

{
    "keys": [
    	"0b2ec469-6b49-42bb-809f-d977279baeeb",
    	"db75a09b-6b30-48b9-b9f0-873351a050ed",
    	"42334730-5a93-48ae-b5e4-e8e82d62610a"
    	]
    
}
Parâmetro Descrição
keys (obrigatório) UUID dos documentos que farão parte do lote
Atenção: O máximo são 25 documentos por lote.
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "Batches created",
    "uuid_batches": "lote_embed_232342asd-ss134asd-xASdwe",
    "total": "25"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$batchs = array("0b2ec469-6b49-42bb-809f-d977279baeeb",		
			"1b2ec469-6b49-42bb-809f-d977279baeeb",
			"2b2ec469-6b49-42bb-809f-d977279baeeb");
			
	$return = $client->batches->create($batchs);
	//print_r($return);
	
} catch (Exception $e) {
	echo $e->getMessage();
} 


Webhooks (POSTBack)

Webhook é uma forma de recebimento de informações quando um evento acontece. O webhook na prática, é a forma de receber informações entre dois sistemas de uma forma passiva.

Na D4Sign, quando um documento for assinado por todos os signatários ou cancelado, ou seja, atingir a fase FINALIZADO ou CANCELADO, iremos disparar um evento HTTP POST para a URL que foi informada no documento.

Além disso, quando um e-mail não for entregue ao signatário, iremos, também, disparar um evento HTTP POST para a URL que foi informada no documento.

O evento que dispara o WEBHOOK é apenas quando o documento for assinado por todas as partes, for cancelado ou quando um e-mail não for entregue ao signatário cadastrado.

Retornos enviados para a sua URL via POST

Retorno de documento finalizado
{
    "uuid": "UUID-DOCUMENT",
    "type_post": "1",
    "message": "Finished document"
}
Retorno de documento cancelado
{
    "uuid": "UUID-DOCUMENT",
    "type_post": "3",
    "message": "Cancelled document"
}
Retorno de e-mail não entregue
{
    "uuid": "UUID-DOCUMENT",
    "type_post": "2",
    "message": "E-mail not sent"
}

ATENÇÃO: Sugerimos a utilização do https://requestbin.fullcontact.com/ para os testes. RequestBin fornece uma URL que irá coletar as requisições HTTP para apresentá-las de forma fácil.

Tentativas de disparo

Se a URL cadastrada no documento estiver indisponível, tentaremos efetuar 2 novas requisições, conforme abaixo:

Tentativa 1: 0 min.
Tentativa 2: após 1 hora.
Tentativa 3: após 1 hora.
Tentativa 4: após 1 hora.
Tentativa 5: após 6 horas.
Tentativa 6: após 6 horas.
Tentativa 7: após 12 horas.

Portanto, o webhook será perdido somente se a URL cadastrada estiver indisponível por mais de 27 horas.

Listar Webhook de um documento

Esse objeto irá retornar o webhook cadastrado no documento.

GET/documents/{UUID-DOCUMENT}/webhooks
Requisição

Header

{
    "Content-Type": "application/json",
}
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "uuid": "9f08bf18-bf4b-410f-9701-c286e5b1cad1",
    "webhook_url": "http://sua-url-parar-receber-post.com"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$webhook = $client->documents->webhooklist("{UUID-DOCUMENT}");
	
	//print_r($webhook);
} catch (Exception $e) {
	echo $e->getMessage();
} 

Cadastrar Webhook em um documento

Esse objeto irá cadastrar o webhook no documento.

POST/documents/{UUID-DOCUMENT}/webhooks
Requisição

Header

{
    "Content-Type": "application/json",
    "tokenAPI": "{token-user}"
}

Body

{
    "url": "http://www.seudominio.com/"
}
Parâmetro Descrição
url (obrigatório) URL que receberá o POSTBack da D4Sign após o documento atingir a fase FINALIZADO
Resposta (200)

Você receberá uma resposta em JSON com os seguintes objetos

{
    "message": "Webhook successfully registered"
}
Exemplo usando SDK PHP

require_once(__DIR__ . '/sdk/vendor/autoload.php');

use D4sign\Client;
try{
	$client = new Client();
	$client->setAccessToken("{TOKEN-USER}");
	
	$url = 'http://seudominio.com.br/post.php';
	$webhook = $client->documents->webhookadd("{UUID-DOCUMENT}",$url);
		
	//print_r($webhook);
} catch (Exception $e) {
	echo $e->getMessage();
} 



EMBED D4Sign

Introdução

O Embed é o componente front-end da D4Sign. Com ele é possível executar nossa tecnologia de assinatura eletrônica de documentos diretamente no website do cliente. Tudo de forma simples e rápida!

O conceito é bem simples: Basta carregar a biblioteca JavaScript da D4Sign e indicar qual o UUID do documento que deverá ser assinado. O resto a D4Sign faz para você.

ATENÇÃO: O documento precisa estar na fase "AGUARDANDO ASSINATURAS".
Se o documento estiver na fase "Aguardando signatários", ele não será exibido.

Veja quais são os passos:

1º - O documento será exibido para o usuário diretamente do seu website
2º - O usuário deverá clicar no botão 'ASSINAR'.
3º - A D4Sign enviará um TOKEN de confirmação para o e-mail do usuário.
4º - Após a assinatura do usuário, a D4Sign enviará um CALLBACK para o seu website informando que a assinatura foi realizada.

Instalação

Requisitos para instalação em seu website

1. Carregar a biblioteca javascript da D4Sign.
2. Disponibilizar um elemento DIV em sua página.
3. Chamar a função javascript para montagem do EMBED.
4. Interagir com o callback do EMBED.

Biblioteca

A biblioteca deve ser incluída no corpo da página. O arquivo deve ser copiado para seu próprio site.

Exemplo de como a biblioteca deve ser carregada:


    <script src='/js/d4sign.js' type='text/javascript'></script>

Exemplo de elemento DIV que deverá existir em sua página


    <div id='signature-div'></div>

Função Javascript


<script>
d4sign.configure({
    container: "signature-div",
    key: "{UUID-DOCUMENT}",
    protocol: "https",
    host: "secure.d4sign.com.br/embed/viewblob",
    signer: {
        email: "email@signatario.com",
        display_name: "Nome do Signatário", //optional,
        documentation: "123.321.123-40", //optional,
        birthday: "22/11/1983", //optional
        key_signer: "{CHAVE-DO-SIGNATARIO}"
    },
    width: '1025',
    height: '400',
    callback: function(event) {
      if (event.data === "signed") {
        alert('ASSINADO');
      }
    }
});
</script>
Parâmetro Descrição
container (obrigatório) ID na DOM do elemento no qual o iframe será inserido
key (obrigatório) Chave do documento que será exibido
protocol (obrigatório) Protocolo a ser utilizado na montagem do iframe
host (obrigatório) Host a ser utilizado na montagem do iframe
signer.email (obrigatório) E-mail do signatário
signer.display_name Nome do signatário. Se for preenchido, o campo não será exigido na tela de assinatura.
signer.documentation CPF do signatário. Se for preenchido, o campo não será exigido na tela de assinatura.
signer.birthday Data de nascimento do signatário. Formato: 22/11/1983. Se for preenchido, o campo não será exigido na tela de assinatura.
width Largura em pixels do iframe
height Altura em pixels do iframe

Callback function

Quando um documento for assinado pelo signatário, a função callback será acionada com o parâmetro signed ou wrong-data.

Através desse callback você poderá manipular a sua aplicação conforme necessário.

Por exemplo, poderá disparar uma mensagem para o usuário ou redirecionar o usuário para outra página.


    callback: function(event) {
      if (event.data === "signed") {
        alert('ASSINADO'); //ou redirecionar o usuário para outra página.
      }
    }

    callback: function(event) {
      if (event.data === "wrong-data") {
        alert('USUARIO CLICOU NO LINK: Meus dados estão errados.'); //ou redirecionar o usuário para uma página onde poderá alterar os seus dados.
      }
    }

Demonstração

Acesse a nossa página de demonstração e veja, na prática, esse recurso funcionando:

http://demonstracao.d4sign.com.br/

Assinatura em lote via EMBED

Para assinar um lote de documentos via EMBED, primeiro crie um lote utilizando o método /batches e, depois, personalize os campos abaixo no seu EMBED.

Parâmetro Descrição
key (obrigatório) Chave do LOTE de documentos que será exibido
host (obrigatório) Defina o seguinte host:
secure.d4sign.com.br/embedlote/viewblob

Os outros parâmetros do EMBED não precisam ser alterados.