npx skills add https://github.com/vm0-ai/vm0-skills --skill zapsignSKILL.md
ZapSign
Use ZapSign via direct curl calls to create and manage electronic signatures with legal validity.
Official docs:
https://docs.zapsign.com.br/english
When to Use
Use this skill when you need to:
- Create documents for electronic signature (PDF, DOCX, or Markdown)
- Add signers to documents with various authentication methods
- Track signing status and get signed documents
- Send automatic notifications via email or WhatsApp
- Collect biometric verification (selfie, document photo, facial recognition)
Prerequisites
- Sign up at ZapSign (Production) or Sandbox
- Go to Settings > Integrations > ZAPSIGN API
- Copy your API token
export ZAPSIGN_API_TOKEN="your-api-token"
Environments
| Environment | API Endpoint | Legal Validity |
|---|---|---|
| Sandbox | https://sandbox.api.zapsign.com.br | No |
| Production | https://api.zapsign.com.br | Yes |
Pricing
- Sandbox: Free for testing (no legal validity)
- Production: Requires API plan, pay per document
Important: When using
$VARin a command that pipes to another command, wrap the command containing$VARinbash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .
How to Use
All examples use the sandbox environment. For production, replace sandbox.api.zapsign.com.br with api.zapsign.com.br.
1. Create Document from PDF URL
Create a document for signature from a public PDF URL:
Write to /tmp/zapsign_request.json:
{
"name": "Employment Contract",
"url_pdf": "https://example.com/contract.pdf",
"lang": "en",
"signers": [
{
"name": "John Doe",
"email": "john@example.com",
"auth_mode": "assinaturaTela",
"send_automatic_email": true
}
]
}
Then run:
bash -c 'curl -s -X POST "https://sandbox.api.zapsign.com.br/api/v1/docs/" -H "Authorization: Bearer ${ZAPSIGN_API_TOKEN}" -H "Content-Type: application/json" -d @/tmp/zapsign_request.json' | jq '{token, status, sign_url: .signers[0].sign_url}'
2. Create Document from Base64
Create a document from base64-encoded PDF:
# First, encode your PDF to base64
BASE64_PDF=$(base64 -i document.pdf)
Write to /tmp/zapsign_request.json:
{
"name": "Contract",
"base64_pdf": "${BASE64_PDF}",
"signers": [
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
Then run:
bash -c 'curl -s -X POST "https://sandbox.api.zapsign.com.br/api/v1/docs/" -H "Authorization: Bearer ${ZAPSIGN_API_TOKEN}" -H "Content-Type: application/json" -d @/tmp/zapsign_request.json' | jq '{token, status, signers}'
3. Create Document from Markdown
Create a document directly from Markdown text (great for AI integrations):
Write to /tmp/zapsign_request.json:
{
"name": "Service Agreement",
"markdown_text": "# Service Agreement\n\nThis agreement is between **Company A** and **Client B**.\n\n## Terms\n\n1. Service will be provided for 12 months\n2. Payment is due monthly\n\n---\n\nSignature: ________________",
"signers": [
{
"name": "Client Name",
"email": "client@example.com"
}
]
}
Then run:
bash -c 'curl -s -X POST "https://sandbox.api.zapsign.com.br/api/v1/docs/" -H "Authorization: Bearer ${ZAPSIGN_API_TOKEN}" -H "Content-Type: application/json" -d @/tmp/zapsign_request.json' | jq '{token, status, original_file}'
4. Create Document with Multiple Signers
Create a document with signing order:
Write to /tmp/zapsign_request.json:
{
"name": "Multi-party Contract",
"url_pdf": "https://example.com/contract.pdf",
"signature_order_active": true,
"signers": [
{
"name": "First Signer",
"email": "first@example.com",
"order_group": 1,
"send_automatic_email": true
},
{
"name": "Second Signer",
"email": "second@example.com",
"order_group": 2,
"send_automatic_email": true
}
]
}
Then run:
bash -c 'curl -s -X POST "https://sandbox.api.zapsign.com.br/api/v1/docs/" -H "Authorization: Bearer ${ZAPSIGN_API_TOKEN}" -H "Content-Type: application/json" -d @/tmp/zapsign_request.json' | jq '{token, status, signature_order_active}'
5. Create Document with Expiration
Create a document with a deadline for signing:
Write to /tmp/zapsign_request.json:
{
"name": "Limited Time Offer",
"url_pdf": "https://example.com/offer.pdf",
"date_limit_to_sign": "2025-12-31T23:59:59Z",
"signers": [
{
"name": "Customer",
"email": "customer@example.com"
}
]
}
Then run:
bash -c 'curl -s -X POST "https://sandbox.api.zapsign.com.br/
...