Pular para o conteúdo
AssinAPI

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. 1

    Um workflow do Bubble chama a ação do API Connector (executada no servidor).

  2. 2

    A AssinAPI cria o envelope e envia o convite.

  3. 3

    O signatário assina pelo link.

  4. 4

    Um Backend Workflow exposto como API recebe envelope.completed.

  5. 5

    O workflow atualiza a Thing do contrato com o status e o link do PDF.

Código pronto

Chamada no API Connector

text
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

text
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.