Integração · n8n
Assinatura eletrônica em workflows n8n
Use o node HTTP Request com uma credencial Header Auth para chamar a AssinAPI e o node Webhook para receber os eventos de assinatura.
curl -X POST /v1/signature-requests
201 Created · 312 ms
"status": "SENT", "signingUrl": "…/s/9xq4m"
webhook signer.signed → 200 OK
Antes de tudo: a chave fica no servidor
Onde fica a chave: Credentials → Header Auth → Name: Authorization, Value: Bearer ask_test_…. Nunca cole a chave direto no node.
Como funciona
- 1
Um gatilho (formulário, CRM, planilha) inicia o workflow.
- 2
O node HTTP Request chama a AssinAPI com a credencial Header Auth.
- 3
O signatário recebe o convite e assina.
- 4
O node Webhook recebe envelope.completed; um Code node valida o HMAC.
- 5
O workflow segue: atualiza o CRM, envia o PDF assinado, notifica a equipe.
Código pronto
Configuração do HTTP Request
{
"nodes": [
{
"name": "AssinAPI create-envelope",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.assinapi.com.br/v1/envelopes",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"title\": \"Contrato de prestação de serviços\",\n \"expirationDays\": 7\n}"
}
}
]
}Webhook e validação HMAC
1) Registre o endpoint:
curl -X POST "https://api.assinapi.com.br/v1/webhooks" \
-H "Authorization: Bearer $ASSINAPI_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://seu-sistema.com/api/webhooks/assinapi", "events": ["envelope.completed", "signer.signed"] }'
# Guarde o "secret" (whsec_…) retornado em ASSINAPI_WEBHOOK_SECRET
2) No receptor, calcule:
HMAC_SHA256(secret, X-Event-Id + "." + X-Timestamp + "." + corpo_bruto)
e compare com X-Signature (formato v1=<hex>).Exemplos apontam para o Sandbox (https://api.assinapi.com.br/v1). Em Produção, troque apenas a chave (ask_live_…); o endereço é o mesmo.
Perguntas frequentes
Perguntas técnicas.
Preciso validar o HMAC no n8n?
Sim, para ter certeza de que o evento veio da AssinAPI. Use um Code node com o corpo bruto e o ASSINAPI_WEBHOOK_SECRET.
Funciona no n8n self-hosted e no n8n Cloud?
Sim. A integração usa apenas HTTP Request e Webhook, disponíveis nas duas versões.
Como o signatário se autentica? Dá para usar WhatsApp?
WhatsApp está nos planos pagos. Simples: por padrão só o link por e-mail (EMAIL_LINK). Avançada (CPF e data de nascimento conferidos): nos planos pagos, link por e-mail + código pelo WhatsApp (WHATSAPP_OTP) ou só WhatsApp (WHATSAPP_LINK); no Free, link e código por e-mail (EMAIL_OTP), e pedir WhatsApp devolve 402 WHATSAPP_REQUIRES_PAID_PLAN. Envie o celular em phone (+5511999999999) e, se quiser, defina o padrão no projeto.
Consigo testar sem custo?
Sim. O Sandbox é gratuito: chaves ask_test_…, código de confirmação fixo 123456 e CPFs de teste. Documentos de Sandbox não têm validade e não consomem a franquia do plano.
Primeira assinatura no Sandbox em menos de 10 minutos.
Sem cartão de crédito. Sandbox gratuito; você só paga por documentos enviados em Produção.