PHPackages                             tecnoponto/d4sign - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. tecnoponto/d4sign

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tecnoponto/d4sign
=================

Pacote de integração com a D4sign para a Tecnoponto

v1.3.0(1y ago)0117MITPHP

Since May 20Pushed 1y agoCompare

[ Source](https://github.com/EduardoCooperTecnoponto/d4sign-tecnoponto)[ Packagist](https://packagist.org/packages/tecnoponto/d4sign)[ RSS](/packages/tecnoponto-d4sign/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (4)Versions (5)Used By (0)

Tecnoponto D4Sign
=================

[](#tecnoponto-d4sign)

Pacote de integração com a API do serviço [D4Sign REST API](http://docapi.d4sign.com.br/). Pacote forkado do projeto [d4sign-laravel](https://github.com/edmarr2/d4sign-laravel)

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

[](#instalação)

```
composer require tecnoponto/d4sign
```

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

26

—

LowBetter than 43% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.1% 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 ~18 days

Total

4

Last Release

662d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/23157c465f1f752a9f5e2c9123a731ebcd3b6a5c6a8bdb49b12d2b4e357a51cb?d=identicon)[EduardoCooperTecnoponto](/maintainers/EduardoCooperTecnoponto)

---

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)")[![Desenvolvedor-Tecnoponto](https://avatars.githubusercontent.com/u/270354972?v=4)](https://github.com/Desenvolvedor-Tecnoponto "Desenvolvedor-Tecnoponto (4 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[stevebauman/location

Retrieve a user's location by their IP Address

1.3k7.6M65](/packages/stevebauman-location)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[pulkitjalan/ip-geolocation

IP Geolocation Wrapper with Laravel Support

89164.9k1](/packages/pulkitjalan-ip-geolocation)[adrianorosa/laravel-geolocation

Laravel Geo Location package to get details for a given IP Address

6593.3k1](/packages/adrianorosa-laravel-geolocation)[bakame/laravel-domain-parser

Laravel package to integrate PHP Domain parser.

26534.8k4](/packages/bakame-laravel-domain-parser)

PHPackages © 2026

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