PHPackages                             edmarr2/d4sign-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. edmarr2/d4sign-laravel

ActiveLibrary

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(4y ago)43.7k3[2 issues](https://github.com/edmarr2/d4sign-laravel/issues)MITPHP

Since Mar 16Pushed 4y ago1 watchersCompare

[ Source](https://github.com/edmarr2/d4sign-laravel)[ Packagist](https://packagist.org/packages/edmarr2/d4sign-laravel)[ RSS](/packages/edmarr2-d4sign-laravel/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (4)Versions (20)Used By (0)

D4Sign Laravel Client - SDK
===========================

[](#d4sign-laravel-client---sdk)

SDK Não oficial de integração á API do serviço [D4Sign REST API](http://docapi.d4sign.com.br/).

Instalação
==========

[](#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
=======================

[](#criação-do-configurador)

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

Configuração
============

[](#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
-------------

[](#passo-a-passo)

### 1º - Realizar o upload do documento

[](#1º---realizar-o-upload-do-documento)

### 2º - Cadastrar o webhook(POSTBack)

[](#2º---cadastrar-o-webhookpostback)

### 3º - Cadastrar os signatários

[](#3º---cadastrar-os-signatários)

### 4º - Enviar o documento para assinatura

[](#4º---enviar-o-documento-para-assinatura)

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

[](#5º---utilizar-o-embed-d4sign-para-exibir-o-documento-em-seu-website)

Documentos
----------

[](#documentos)

### Listar TODOS os documentos

[](#listar-todos-os-documentos)

Este objeto retornará TODOS os documentos da sua conta.

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

### Listar um documento específico

[](#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

[](#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

[](#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

[](#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

[](#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

[](#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

[](#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

[](#cancelar-um-documento)

Esse objeto irá cancelar o documento.

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

### Reenviar link de assinatura

[](#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

[](#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)
----------------------------

[](#webhooks-services-postback)

### Listar Webhook de um documento

[](#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

[](#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
----------------------------

[](#documentação-completa-da-api)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 83.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

16

Last Release

1793d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/34609890?v=4)[Edmar Espinola](/maintainers/edmarr2)[@edmarr2](https://github.com/edmarr2)

---

Top Contributors

[![edmarr2](https://avatars.githubusercontent.com/u/34609890?v=4)](https://github.com/edmarr2 "edmarr2 (35 commits)")[![ludioao](https://avatars.githubusercontent.com/u/7070404?v=4)](https://github.com/ludioao "ludioao (7 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/edmarr2-d4sign-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/edmarr2-d4sign-laravel/health.svg)](https://phpackages.com/packages/edmarr2-d4sign-laravel)
```

###  Alternatives

[s-ichikawa/laravel-sendgrid-driver

This library adds a 'sendgrid' mail driver to Laravel.

4139.3M1](/packages/s-ichikawa-laravel-sendgrid-driver)[stechstudio/laravel-zipstream

A fast and simple streaming zip file downloader for Laravel.

4633.7M3](/packages/stechstudio-laravel-zipstream)[laravel-notification-channels/microsoft-teams

A Laravel Notification Channel for Microsoft Teams

1603.0M7](/packages/laravel-notification-channels-microsoft-teams)[spatie/laravel-export

Create a static site bundle from a Laravel app

646127.9k5](/packages/spatie-laravel-export)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
