Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-firma
n8n community node for Firma.dev — electronic signature and document signing API.
83 operations across 8 resources + a webhook trigger node. Fully declarative, zero runtime dependencies.
Installation
Community Nodes (recommended)
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-firma - Agree to the risks and select Install
Manual Installation
cd ~/.n8n/nodes
npm install n8n-nodes-firma
Restart n8n after installation.
Authentication
- In Firma, go to Workspace Settings > API
- Copy your API Key
- In n8n, create a new Firma API credential
- Paste your API key
- (Optional) Paste your Webhook Secret if using the trigger node with signature validation
The credential defaults to https://api.firma.dev. Select Custom environment only for self-hosted or staging instances.
Resources and Operations
| Resource | Operations | Description |
|---|---|---|
| Signing Request | List, Create, Create and Send, Get, Update (partial/full), Send, Cancel, Resend, Download, Get Audit, Get Users, Get Fields, Get Reminders, Delete, Custom Fields (list/create/delete) | Core signing workflow |
| Template | List, Create, Get, Update (partial/full), Delete, Duplicate, Replace Document, Get Fields/Users/Reminders, Custom Fields (list/create/delete) | Reusable document templates |
| Webhook | List, Create, Get, Update, Delete, Test, Rotate Secret (company/workspace), Secret Status (company/workspace) | Webhook management |
| Workspace | List, Create, Get, Update (partial/full), Get/Update Settings, API Key Regenerate/Expire, Custom Fields (list/create/update/delete) | Workspace administration |
| Company | Get, Update (partial/full) | Company-level settings |
| Domain | List, Add, Get, Delete, Verify DNS, Verify Ownership, Finalize, Set Primary (company and workspace scopes) | Custom domain management |
| Email Template | List, Upsert, Delete (company/workspace), Get Defaults, Get Placeholders | Email template customization |
| JWT | Generate/Revoke Template Token, Generate/Revoke Signing Request Token | Embedded editor/signing tokens |
Trigger Node
The Firma Trigger node starts a workflow when a Firma event occurs. It supports all 27 webhook events:
- Signing Request: created, sent, viewed, completed, expired, cancelled, deleted, updated, certificate generated, reminder sent, field filled, document updated
- Recipients: added, signed, declined, updated, identity changed
- Templates: created, updated, deleted, field added, used
- Workspaces: created, updated, deleted
- Domains: verified, verification failed
HTTPS Required
Firma's webhook API requires HTTPS URLs. For local development, use a tunnel service:
# Using cloudflared
cloudflared tunnel --url http://localhost:5678
# Using ngrok
ngrok http 5678
Webhooks Must Be Enabled
Firma gates webhook delivery behind a master switch at both the company and workspace level. If the trigger activates but never receives events, enable webhooks for your workspace in the Firma dashboard (Workspace Settings > Webhooks). The per-webhook Test button bypasses this switch, so a successful test does not confirm real events will deliver.
Signature Validation
If a webhook secret is configured in the credential, the trigger node validates the X-Firma-Signature header using HMAC-SHA256. It also supports X-Firma-Signature-Old for secret rotation grace periods.
Important Notes
No Auto-Retry on Write Operations
Firma's write endpoints (Create, Create and Send, Send, Resend) have no idempotency key. Auto-retrying these operations can create duplicate legally-binding signing requests. Set Retry On Fail to off for workflows that use these operations.
Document Upload
Documents are sent as base64-encoded inline JSON, not multipart. When creating a signing request or template from a file, use a binary data node (e.g., Read Binary File) before the Firma node.
Download Returns a URL
The Download operation returns a signed URL and metadata, not binary data. Use an HTTP Request node to fetch the actual file from the download_url.
Example Workflows
Send a signing request from a template
- Firma node: Create and Send operation with
template_id, recipient name and email - Firma Trigger node: listen for
signing_request.completed - Process the completed signing request data
Monitor signing progress
- Firma Trigger: listen for
signing_request.recipient.signed - IF node: check if all recipients have signed
- Firma: Download the completed document