Skip to content

Signature Field Placement

Schema

SignatureFieldPlacement

CampoTipoObrigatórioDescrição
idstringSimIdentificador único (gerado no frontend)
typestringSim'signature' ou 'initials'
xnumberSimPosição horizontal em % (0-100) do A4
ynumberSimPosição vertical em % (0-100) do A4
widthnumberNãoLargura em % (8-50). Default por tipo
heightnumberNãoAltura em % (3-20). Default por tipo

Tamanhos default por tipo

TipoWidth (%)Height (%)
signature196
initials104

Os tamanhos default são definidos em SIGNATURE_FIELD_SIZES. Quando o usuário redimensiona um campo, width e height são salvos individualmente. Se omitidos, o backend deve usar os defaults acima.

Limites de redimensionamento

LimiteWidth (%)Height (%)
Mínimo83
Máximo5020

Coordenadas

As coordenadas x e y são percentuais relativos à página A4 (210mm x 297mm).

  • x = 0 → borda esquerda
  • x = 100 → borda direita
  • y = 0 → topo da página
  • y = 100 → base da página

Armazenamento

Os campos ficam dentro de SignerMember.signatureFields[] na SignatureStepConfig:

json
{
  "signatureConfig": {
    "groups": [
      {
        "id": "group-1",
        "name": "Partes",
        "order": 1,
        "isPartGroup": true,
        "members": [
          {
            "id": "signer-1",
            "userId": "user-123",
            "name": "João Silva",
            "email": "joao@example.com",
            "order": 1,
            "signatureFields": [
              { "id": "field-1", "type": "signature", "x": 10.5, "y": 85.2, "width": 25, "height": 8 },
              { "id": "field-2", "type": "initials", "x": 75.0, "y": 92.0 }
            ]
          }
        ]
      }
    ]
  }
}

Conversão para coordenadas absolutas no PDF

A4 em pontos (72 DPI): 595.28pt × 841.89pt

absoluteX = (x / 100) * 595.28
absoluteY = (y / 100) * 841.89

Tamanhos absolutos (defaults)

TipoWidth (pt)Height (pt)
signature~113.1~50.5
initials~59.5~33.7

Quando width/height estão presentes no campo:

absoluteWidth = (width / 100) * 595.28
absoluteHeight = (height / 100) * 841.89

Endpoint

Não requer endpoint novo. Os campos são enviados como parte do payload existente:

  • PUT /workflows/:id: atualiza workflow incluindo signatureFields nos membros
  • POST /workflows: cria workflow incluindo signatureFields nos membros