edmarr2/d4sign-laravel

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.

v1.2.9 2021-06-14 23:04 UTC

README

SDK Não oficial de integração á API do serviço D4Sign REST API.

Instalação

Abra o arquivo composer.json e insira a seguinte instrução

"require": {
    "edmarr2/d4sign-laravel": "dev-main"
}

Via composer, execute o seguinte comando:

composer require edmarr2/d4sign-laravel

Criação do configurador

php artisan vendor:publish --tag=d4sign-config

Configuração

Coloque dentro do seu .env as seguintes variáveis:

D4SIGN_ENV = homologacao | producao

  • homologação, utiliza o endpoint de demonstração - sem validade jurídica
  • produção, utiliza o endpoint de produção - com validade jurídica.

D4SIGN_TOKEN_API = token

D4SIGN_CRYPT_KEY = crypt

Passo a Passo

1º - Realizar o upload do documento

2º - Cadastrar o webhook(POSTBack)

3º - Cadastrar os signatários

4º - Enviar o documento para assinatura

5º - Utilizar o EMBED D4Sign para exibir o documento em seu website

Documentos

Listar TODOS os documentos

Este objeto retornará TODOS os documentos da sua conta.

$docs = D4Sign::documents()->find();

Listar um documento específico

Esse objeto retornará apenas o documento solicitado.

$docs = D4Sign::documents()->find("{UUID-DOCUMENT}");

Listar TODOS os documentos de um cofre

Para simplificar a requisição foi pensado em instanciar uma classe

$docs = D4Sign::documents()->safe("{UUID-SAFE}");

Esse objeto retornará todos os documentos que estiverem associados ao cofre informado.

$docs = D4Sign::documents()->safe("{UUID-SAFE}");

Listar TODOS os documentos de uma fase

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

$docs = D4Sign::documents()->status("{ID-FASE}");

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

Realizar o UPLOAD de um documento

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.

$path_file = '/pasta/arquivo.pdf';
$id_doc = D4Sign::documents()->upload('{UUID-SAFE}', $path_file);

Cadastrar signatários

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

$signers = [
    ["email" => "email1@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0', "assinatura_presencial" => '0', "embed_methodauth" => 'email', "embed_smsnumber" => ''],
    ["email" => "email2@dominio.com", "act" => '1', "foreign" => '0', "certificadoicpbr" => '0',"assinatura_presencial" => '0', "embed_methodauth" => 'sms', "embed_smsnumber" => '+5511953020202']
];

$return = D4Sign::documents()->createList("{UUID-DOCUMENT}", $signers);

Listar signatários de um documento

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

$docs = D4Sign::documents()->listSignatures("{UUID-DOCUMENT}");

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.

$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 ou Assinatura Presencial);

$doc = D4Sign::documents()->sendToSigner("{UUID-DOCUMENT}",$message, $skip_email, $workflow);

Cancelar um documento

Esse objeto irá cancelar o documento.

$docs = D4Sign::documents()->cancel("{UUID-DOCUMENT}");

Reenviar link de assinatura

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

$email = 'email@dominio.com';
$return = D4Sign::documents()->resend('{UUID-DOCUMENT}', $email);

Realizar o DOWNLOAD de um documento

Esse objeto irá disponibilizar um link para download do documento.

//Você poderá fazer download do ZIP ou apenas do PDF setando o último parametro.
$url_final = D4Sign::documents()->getFileUrl('{UUID-DOCUMENT}','zip');
//print_r($url_final);

$arquivo = file_get_contents($url_final->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_final->name.".zip"."\"");
echo $arquivo;

WebHooks Services (POSTBack)

Listar Webhook de um documento

Esse objeto irá retornar o webhook cadastrado no documento.

$webhook = D4Sign::documents()->webhookList("{UUID-DOCUMENT}");

Cadastrar Webhook em um documento

Esse objeto irá cadastrar o webhook no documento.

$url = 'http://seudominio.com.br/post.php';
$webhook = D4Sign::documents()->webhookAdd("{UUID-DOCUMENT}",$url);

Documentação completa da API

http://docapi.d4sign.com.br/