Skip to main content
Bem-vindo à documentação oficial das APIs do FormSign. Nossas APIs permitem automatizar, via server-to-server, o envio e o recebimento de documentos para assinatura.

Como funciona

1. Autenticação

Para usar as APIs, você precisa de um token Bearer. Obtenha seu token de acesso fazendo uma requisição para o endpoint de autenticação. Para obter as credenciais, acesse seu painel de usuário na aba “API” para gerar um novo Client de API.
curl -X POST "https://api.formsign.com.br/api/token" \
  -H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"

2. Envio de Envelopes

Com o token em mãos, você pode enviar envelopes de duas maneiras:

A) Enviar com documento base64

Use o endpoint POST /api/envelopes/send/base64 para enviar um envelope com um arquivo PDF codificado em base64. Esta é a forma mais direta de envio. Exemplo rápido:
# Converter PDF para base64 (Linux/macOS)
PDF_BASE64=$(base64 -w 0 contrato.pdf)

# Enviar envelope
curl -X POST "https://api.formsign.com.br/api/envelopes/send/base64" \
  -H "Authorization: Bearer <SEU_TOKEN>" \
  -H "Content-Type: application/json" \
  -d "{
    \"subject\": \"Contrato para Assinatura\",
    \"message\": \"Por favor, revise e assine o documento.\",
    \"submissionType\": \"document\",
    \"base64Document\": \"$PDF_BASE64\",
    \"documentName\": \"contrato.pdf\",
    \"fields\": [
      {
        \"type\": \"signature\",
        \"name\": \"Assinatura do Cliente\",
        \"identifier\": \"assinatura_cliente\",
        \"value\": \"\",
        \"required\": true,
        \"placeholder\": \"Assinatura do destinatário\",
        \"x\": 246,
        \"y\": 291,
        \"w\": 269,
        \"h\": 74,
        \"pageNumber\": 1,
        \"recipientRole\": \"signer\"
      },
      {
        \"type\": \"date\",
        \"name\": \"Data da Assinatura\",
        \"identifier\": \"data_assinatura\",
        \"value\": \"\",
        \"required\": true,
        \"x\": 70,
        \"y\": 80,
        \"w\": 20,
        \"h\": 6,
        \"pageNumber\": 1,
        \"recipientRole\": \"signer\"
      }
    ],
    \"recipients\": [
      {
        \"email\": \"[email protected]\",
        \"name\": \"João Silva\",
        \"signatureType\": \"simple\",
        \"role\": \"signer\"
      }
    ],
    \"advancedOptions\": {
      \"autoReminders\": true,
      \"reminderDelay\": 2,
      \"reminderFrequency\": 3,
      \"expirationDays\": 30,
      \"expirationWarning\": 5
    }
  }"

B) Enviar por template

Use o endpoint POST /api/envelopes/send/template para enviar um envelope baseado em um template que você já configurou em seu painel FormSign. Com esta opção, você pode reutilizar documentos e configurações, e até mesmo sobrescrever campos, destinatários e outras configurações no momento do envio. Exemplo rápido:
curl -X POST "https://api.formsign.com.br/api/envelopes/send/template" \
  -H "Authorization: Bearer <SEU_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "tpl_abc123456789",
    "subject": "Contrato Personalizado",
    "recipients": [
      {
        "email": "[email protected]",
        "name": "João Silva",
        "signatureType": "simple",
        "role": "signer"
      }
    ],
    "advancedOptions": {
      "autoReminders": true,
      "reminderDelay": 2,
      "reminderFrequency": 3,
      "expirationDays": 30,
      "expirationWarning": 5
    }
  }'

Informações Importantes

  • Tamanho máximo: São aceitos apenas arquivos PDF de até 10MB.
  • Consumo de créditos: O envio de envelopes via API utiliza a mesma assinatura vigente do usuário, consumindo créditos da mesma maneira que envios feitos pelo painel.

Próximos passos

Novos endpoints e funcionalidades estão em constante desenvolvimento. Fique atento às atualizações em nossa documentação.