marciodojr/autentique

Sdk para o autentique

v1.2.3 2021-08-31 18:50 UTC

README

SDK em php para assinatura digital de documentos utilizando o Autentique.

Codacy Badge Build Status StyleCI Coverage Status

Observação

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.

Como instalar

composer require marciodojr/autentique

Como usar

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();

Conta

Informações de conta:

$result = $acc->info();

Documento

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);

Assinatura

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);

Pasta

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);

Para mais informações sobre parâmetros consulte a documentação da api

https://autentique.docs.apiary.io

Como testar

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

Licença

MIT

TODO

  • Testes para erros 4xx de pastas e assinaturas.
  • Tratamento de erros de falha de conexão (5xx).