Pular para o conteúdo principal

Finalizar assinatura

Autorização Basic Auth

Para se autenticar conosco você deve enviar a Chave de API, gerada no passo anterior, no campo apiKey dentro do cabeçalho JSON da requisição:

{
"apiKey":"SUA CHAVE DE API",
...
}

Finalizar assinatura

A etapa de finalização é a última etapa do fluxo de assinatura. O retorno dessa etapa será o documento assinado.

Para autenticação na API, você deve enviar a sua Chave de API cadastrada previamente no LedgerDoc, no campo apiKey.

caution

Você deve enviar os mesmos valores em todos os campos enviados também para o endpoint de inicialização (etapa 1). Caso envie valores diferentes, o resultado será um documento com assinatura inválida que será reprovado por validadores de assinatura digital.

O valor do campo signingTime deve ser o mesmo valor retornado pelo endpoint de inicialização.

O valor do campo signatureValue deve ser o valor retornado pela API do LedgerSign na etapa 2.

O campo signedDocument contém os bytes do documento assinado digitalmente codificados em base64. Você pode fazer o decode para visualizar o arquivo em seu formato original.

https://ledgertec.com.br/api/sign-service/pdf-service/v2/finalize
apiKey* Obrigatóriostring(header)
certificate* Obrigatório(formData)
file* Obrigatóriofile(formData)
hashAlgorithm* Obrigatório(formData)
signatureField(formData)
signatureFieldPage(formData)
signaturePolicy* Obrigatório(formData)
signaturePolicyVersion* Obrigatório(formData)
signatureValue* Obrigatório(formData)
signingTime* Obrigatório(formData)
visualSignatureDateTime(formData)
visualSignatureFilefile(formData)
visualSignatureHeight(formData)
visualSignatureLayout(formData)
visualSignaturePositionX(formData)
visualSignaturePositionY(formData)
visualSignatureText(formData)
visualSignatureTextAlignment(formData)
visualSignatureTextFontSize(formData)
visualSignatureWidth(formData)

Exemplo de Requisição:

javascript-Fetch
var myHeaders = new Headers();
myHeaders.append("apiKey", "{{apikey}}");
myHeaders.append("Content-Length", "");

var formdata = new FormData();
formdata.append("nonce", "1");
formdata.append("certificate", "{{certificate}}");
formdata.append("hashAlgorithm", "SHA256");
formdata.append("signaturePolicy", "RT");
formdata.append("signaturePolicyVersion", "1.1");
formdata.append("file", fileInput.files[0], "/path/to/file");
formdata.append("signatureValue", "{{signatureValue}}");
formdata.append("signingTime", "{{signingTime}}");
formdata.append("visualSignatureFile", fileInput.files[0], "/path/to/file");
formdata.append("visualSignaturePositionX", "200");
formdata.append("visualSignaturePositionY", "400");
formdata.append("visualSignatureWidth", "400");
formdata.append("visualSignatureHeight", "241");
formdata.append("visualSignatureText", "Signer Name");

var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};

fetch("https://ledgertec.com.br/api/sign-service/pdf-service/v2/finalize", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));

Exemplo de Resposta:

Resposta
{
"signedDocument": "JVBERi0xLjMNCiXi48/TDQoNC...3RhcnR4cmVmCjEwNjc5NwolJUVPRgo=",
"error": ""
}

  • O campo signedDocument contém os bytes do documento assinado digitalmente codificados em base64. Você pode fazer o decode para visualizar o arquivo em seu formato original.
  • Erros

    A nossa API valida cada um dos campos enviados na requisição antes de prosseguir.

    Utilizamos os códigos de resposta convencionais do HTTP para indicar o sucesso ou a falha de uma requisição. Sendo assim, códigos 2xx indicam sucesso, 4xx indicam erros por algum dado informado incorretamente (por exemplo, algum campo obrigatório não enviado ou um cartão sem data de validade) e 5xx indicando erros nos servidores do LedgerDoc.


    Tabela dos HTTP Status Code

    CódigoStatus
    200OK
    201Created
    401Unauthorized
    403Forbidden
    404Not Found