Opcional: Posicionar assinaturas

Caso você tenha testado a plataforma Web da ZapSign, deve ter conhecido a funcionalidade "Posicionar assinaturas". Essa funcionalidade é totalmente opcional e não influencia na validade jurídica do documento (que já está assegurada pelas demais formas de autenticação). Mesmo assim, alguns clientes ainda gostam de utilizar essa funcionalidade por deixar o documento final mais parecido com uma assinatura física.

Abaixo, há a documentação do endpoint, seguida por um tutorial para entender melhor cada um desses campos e a funcionalidade.

Posicionar assinaturas

POST https://api.zapsign.com.br/api/v1/docs/{{doc_token}}/place-signatures/

Headers

Name
Type
Description

Authorization*

string

Api token a frente do texto "Bearer".

Ex: Bearer c7f35c84-7893-4087-b4fb-d1f06c23

Request Body

Name
Type
Description

rubricas[type]

string

Há dois tipos de rubricas possíveis, a "signature" (assinatura) ou o "visto". Default: "signature".

rubricas[page]

integer

Página em que a assinatura será posicionada. Começa em 0.

rubricas[relative_size_x]

number

(Explicado abaixo)

rubricas[relative_size_y]

number

(Explicado abaixo)

rubricas[relative_position_bottom]

number

(Explicado abaixo)

rubricas[relative_position_left]

number

(Explicado abaixo)

rubricas[signer_token]

string

Token do signatário da assinatura que será posicionada

Exemplo de requisição:

Antes de começar, veja como a funcionalidade funciona na plataforma web:

Se ainda não conhece, veja abaixo:

Como funciona o posicionamento via API?

E como a ZapSign calcula onde essas assinaturas devem ser posicionadas? De acordo com os cálculos abaixo:

O posicionamento acima representado, da assinatura de "Fulano Silveira" na metade direita do documento, corresponderia ao JSON:

    {
        "page": 0, //primeira página do documento
        "relative_position_bottom": 42.50, //distância de 0 a 100 da extremidade inferior da página
        "relative_position_left": 65.71, //distância de 0 a 100 da extremidade esquerda da página
        "relative_size_x": 19.55, //tamanho de 0 a 100 da assinatura em comparação à largura da página 
        "relative_size_y": 9.42, //tamanho de 0 a 100 da assinatura em comparação à altura da página
        "signer_token": "cf1c0b7a-03d3-468b-97ce-3061e3abcdefg" //token do signatário "Fulano Silveira"
    }

Abaixo segue uma explicação detalhada de cada um dos campos.

relative_position_left e relative_position_bottom: Posicionando a assinatura no documento

É necessário tomar alguns cuidados, para que as assinaturas não fiquem fora do documento. Por exemplo, se o relative_position_left for de 80, o relative_size_x não deve ser maior do que 20 (totalizando 100 que é o eixo X). Se essa soma for maior do que 100, a assinatura ficaria em parte para fora do documento.

Matematicamente falando, seu objeto deve respeitar os seguintes limites: 0 <= relative_size_y <= 100 0 <= relative_size_x <= 100 0 <= relative_position_bottom <= 100 0 <= relative_position_left <= 100 E também: 0 <= (relative_size_y + relative_position_bottom) <= 100 0 <= (relative_size_x + relative_position_left) <= 100

relative_size_x e relative_size_y: Mantendo a proporção da assinatura

  • Caso seu PDF seja uma folha A4 vertical (mais comum), recomenda-se utilizar sempre os valores relative_size_x: 19.55 e relative_size_y: 9.42, como no exemplo acima. Se você quiser aumentar o tamanho da assinatura, multiplique-os pelo mesmo número, para que a razão seja mantida.

    • Obs.: caso se trate de uma rubrica com type "visto", recomenda-se relative_size_x: 13.76 e relative_size_y: 9.42

  • Caso o PDF seja uma folha A4 horizontal, recomendam-se os valores de relative_size_x: 15.05 e relative_size_y: 12.13.

    • Obs.: caso se trate de uma rubrica com type "visto", recomenda-se relative_size_x: 10.58 e relative_size_y: 12.13

page: Como definir a página em que a assinatura será posicionada

O parâmetro page equivale a cada página do documento, começando no 0. Se você quiser posicionar a assinatura no mesmo local em todas as páginas, é necessário passar o objeto mais de uma vez. Por exemplo:

{
	"rubricas":[
    {
        "page": 0, //primeira página do documento
        "relative_position_bottom": 42.50, 
        "relative_position_left": 65.71, 
        "relative_size_x": 19.55, 
        "relative_size_y": 9.42, 
        "signer_token": "cf1c0b7a-03d3-468b-97ce-3061e3abcdefg"
    },
    {
        "page": 1, //segunda página do documento
        "relative_position_bottom": 42.50, 
        "relative_position_left": 65.71, 
        "relative_size_x": 19.55, 
        "relative_size_y": 9.42, 
        "signer_token": "cf1c0b7a-03d3-468b-97ce-3061e3abcdefg"
    }
  ]
}

Perguntas frequentes

  • Como eu sei se o posicionamento das assinaturas deu certo? R.: Você só saberá depois que o documento for assinado, conferindo diretamente o PDF. As validações devem ser feitas do seu lado.

  • Caso o posicionamento tenha sido feito errado, tem como eu mudar? R.: Para sobrescrever o posicionamento das assinaturas anterior, basta fazer um novo POST para essa rota, que todos posicionamentos anteriores serão deletados e substituídos pelos novos.

  • Como eu posso cancelar o posicionamento de assinaturas? R.: Basta fazer um post com o objeto rubricas sendo um array vazio. Ex: {"rubricas":[ ]}

  • O documento assinado é atualizado sempre que eu mudar o posicionamento das assinaturas? R.: Não!!! O novo posicionamento só será aplicado depois que um novo signatário assinar o documento. Isto é, o documento não será atualizado toda vez que você alterar o posicionamento de assinaturas, mas apenas quando algum signatário assinar.

Last updated