SDK em php para assinatura digital de documentos utilizando o Autentique.
Essa SDK foi construída devido a necessidade de integração de um projeto de terceiro com o Autentique. Foi publicada com a ideia de que possa ser útil para outras pessoas. Este repositório (e, consequentemente, seu dono) não possuem qualquer vínculo com o Autentique.
composer require marciodojr/autentique
use Mdojr\Autentique\Autentique;
use Mdojr\Autentique\Endpoint;
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => Endpoint::PRODUCTION,
'headers' => [
'X-Autntiq-Api' => $productionToken
]
]);
$autentique = new Autentique($client);
// Manipulação de conta
$acc = $autentique->account();
// Manipulação de Documentos
$doc = $autentique->document();
// Manipulação de Assinaturas
$sign = $autentique->signature();
// Manipulação de Pastas
$folder = $autentique->folder();
Informações de conta:
$result = $acc->info();
Listar todos os documentos que não estão em uma pasta:
$page = 1;
$count = 60;
$s = ''; // opcional
$result = $doc->listNotInFolder($page, $count, $s);
Resgata informações sobre documento específico
$uuid = '9ab23456325c40c2a5023051cf4bbf0e' // uuid do documento
$result = $doc->retrieve($uuid);
Lista apenas documentos recebidos que não estão em numa pasta
$page = 1;
$count = 60;
$s = ''; // opcional
$doc->listReceivedNotInFolder($page, $count, $s);
Lista apenas documentos enviados
$page = 1;
$count = 60;
$s = ''; // opcional
$doc->listOnlySent($page, $count, $s);
Criar um novo documento
$nome = 'Contrato de aluguel';
$partes = [
[
'email' => 'umemail@gmail.com',
'funcao' => 'assinar'
]
];
$arquivo = fopen('meu_arquivo.txt', 'r');
$rejeitavel = false;
$mensagem = 'Mensagem qualquer'; // opcional
$lembreteAssinatura = false; // opcional
$lembreteVencimento = true; // opcional
$frequencia = 'semanal'; // ou 'diario' opcional
$diasVencimento = 7; // opcional
$dataVencimento = '2018-09-10'; // opcional
$qrCode = 'B'; // opctional
$doc->create(
$nome,
$partes,
$arquivo,
$rejeitavel,
$mensagem,
$lembreteAssinatura,
$lembreteVencimento,
$frequencia,
$diasVencimento,
$dataVencimento,
$qrCode
);
Reenviar email de assinatura para os signatários que não assinaram/rejeitaram
$uuid = '9ab23456325c40c2a5023051cf4bbf0e'; // uuid do documento
$doc->resendNotSignedOrRejected($uuid);
Remover documento
$uuid = '9ab23456325c40c2a5023051cf4bbf0e'; // uuid do documento
$result = $doc->deleteDocument($uuid);
Resgatar informações sobre assinatura
$token = 'bf0e456325c40c2a5023051cf4';
$result = $sign->retrieve($token);
Signatário aceitar o documento
$token = 'bf0e456325c40c2a5023051cf4';
$result = $sign->accept($token);
Signatário rejeitar o documento (se po)
$token = 'bf0e456325c40c2a5023051cf4';
$motivo = 'Não estou de acordo com os termos';
$result = $sign->reject($token, $motivo);
Listar pasta
$s = ''; // opcional
$result = $folder->list($s);
Resgatar informações da pasta
$uuid = '456325c40c2a5023051cf456325c40';
$result = $folder->retrieve($uuid);
Listar documentos da pasta
$uuid = '456325c40c2a5023051cf456325c40';
$s = '' // opcional
$result = $folder->listDocuments($uuid, $s);
Criar pasta
$nome = 'Pasta XYZ';
$result = $folder->create($nome);
Mover documentos para pasta
$folderUuid = '456325c40c2a5023051cf456325c40';
$docSignUuids = [
'456325c40c2a5023051cf56656325c40',
'456325c40c2a502345451cf456325c40',
'456325c40c2a502305ffsdf456325c40'
]; // token de assinaturas de documentos
$result = $folder->moveDocumentsTo($folderUuid, $docSignUuids);
Atualizar informações da pasta
$uuid = '456325c40c2a5023051cf456325c40';
$nome = 'Outro nome';
$result = $folder->update($uuid, $nome);
Remover pasta (arquivos são movidos para "Todos")
$uuid = '456325c40c2a5023051cf456325c40';
$result = $folder->deleteFolder($uuid);
https://autentique.docs.apiary.io
Por padrão todas as requisições são simuladas:
composer test
Caso queira testar contra o ambiente de sandbox:
export AUTENTIQUE_TOKEN=sandbox_token
export AUTENTIQUE_ENDPOINT=endpoint_url
composer test
MIT
- Testes para erros 4xx de pastas e assinaturas.
- Tratamento de erros de falha de conexão (5xx).