Integração · Bubble
Assinatura eletrônica em apps Bubble
Configure o API Connector com o header Authorization marcado como Private e receba os eventos em um Backend Workflow.
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: API Connector → Shared headers → Authorization: Bearer <chave> com “Private” marcado, para a chave nunca ir ao navegador.
Como funciona
- 1
Um workflow do Bubble chama a ação do API Connector (executada no servidor).
- 2
A AssinAPI cria o envelope e envia o convite.
- 3
O signatário assina pelo link.
- 4
Um Backend Workflow exposto como API recebe envelope.completed.
- 5
O workflow atualiza a Thing do contrato com o status e o link do PDF.
Código pronto
Chamada no API Connector
Bubble — API Connector
Método: POST
URL: https://api.assinapi.com.br/v1/envelopes
Header: Authorization: Bearer <ASSINAPI_SECRET_KEY> (privado)
Header: Content-Type: application/json
Body (JSON):
{
"title": "Contrato de prestação de serviços",
"expirationDays": 7
}
Resposta de erro: { "error": { "code", "message", "hint", "requestId" } }Recebendo eventos
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.
O Bubble consegue validar o HMAC do webhook?
Não nativamente. Receba o webhook em um backend leve (Supabase Edge Function, Cloudflare Worker ou n8n) que valida o HMAC e repassa ao Bubble.
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.