{"id":350905,"date":"2026-08-13T07:25:17","date_gmt":"2026-08-13T07:25:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/firma-dev-e-signature-document-signing\/"},"modified":"2026-08-13T12:37:22","modified_gmt":"2026-08-13T12:37:22","slug":"firma-esignature","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/firma-esignature\/","author":23543971,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Firma.dev \u2013 E-Signature & Document Signing","header_author":"Firma.dev","header_description":"Send documents for e-signature from any page, form, or custom workflow using Firma.dev. Pay-as-you-go pricing, no subscriptions, no per-seat fees.","assets_banners_color":"ffffff","last_updated":"2026-08-13 12:37:22","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.firma.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"firmadev","date":"2026-08-13 07:24:52"},"1.0.1":{"tag":"1.0.1","author":"firmadev","date":"2026-08-13 12:37:22"}},"upgrade_notice":{"1.0.1":"<p>Adds a one-off &quot;Send a Document&quot; screen and several UX clarity fixes. No settings or mappings are affected by upgrading.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3645329,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3645329,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3645329,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3645329,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3645329,"resolution":"1","location":"assets","locale":"","width":2157,"height":842},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3645329,"resolution":"2","location":"assets","locale":"","width":2159,"height":510},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3645329,"resolution":"3","location":"assets","locale":"","width":2162,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3645329,"resolution":"4","location":"assets","locale":"","width":2132,"height":627}},"screenshots":{"1":"Firma \u2192 Send a Document: send a one-off document to anyone, no setup required.","2":"Firma \u2192 Documents: track every sent envelope and its status.","3":"Firma \u2192 Send Setup: map a Firma.dev template to WordPress data with dropdowns, no code required.","4":"Firma \u2192 Settings: connect your API key and webhook."}},"plugin_section":[],"plugin_tags":[264060,275464,26327,147615,286],"plugin_category":[45],"plugin_contributors":[275465],"plugin_business_model":[],"class_list":["post-350905","plugin","type-plugin","status-publish","hentry","plugin_tags-contracts","plugin_tags-docusign-alternative","plugin_tags-electronic-signature","plugin_tags-esignature","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-firmadev","plugin_committers-firmadev"],"banners":{"banner":"https:\/\/ps.w.org\/firma-esignature\/assets\/banner-772x250.png?rev=3645329","banner_2x":"https:\/\/ps.w.org\/firma-esignature\/assets\/banner-1544x500.png?rev=3645329","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/firma-esignature\/assets\/icon-128x128.png?rev=3645329","icon_2x":"https:\/\/ps.w.org\/firma-esignature\/assets\/icon-256x256.png?rev=3645329","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/firma-esignature\/assets\/screenshot-1.png?rev=3645329","caption":"Firma \u2192 Send a Document: send a one-off document to anyone, no setup required."},{"src":"https:\/\/ps.w.org\/firma-esignature\/assets\/screenshot-2.png?rev=3645329","caption":"Firma \u2192 Documents: track every sent envelope and its status."},{"src":"https:\/\/ps.w.org\/firma-esignature\/assets\/screenshot-3.png?rev=3645329","caption":"Firma \u2192 Send Setup: map a Firma.dev template to WordPress data with dropdowns, no code required."},{"src":"https:\/\/ps.w.org\/firma-esignature\/assets\/screenshot-4.png?rev=3645329","caption":"Firma \u2192 Settings: connect your API key and webhook."}],"raw_content":"<!--section=description-->\n<p>Firma.dev brings e-signature to any WordPress site: send a contract, waiver, or agreement for signature from a page, a form submission, or your own custom code, and track its status without leaving wp-admin.<\/p>\n\n<p>Unlike most e-signature plugins, Firma.dev for WordPress isn't tied to one form builder or one workflow. It's built around a single, universal way to trigger a signature request, so it works with whatever you're already running.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Create your contract or document template in your Firma.dev dashboard (a free account takes a minute to set up).<\/li>\n<li>For a one-off document to someone with no WordPress record, an outside vendor, a one-off client, use Firma \u2192 Send a Document: pick the template, type in who needs to sign, send.<\/li>\n<li>For a document you'll send repeatedly to people who already have data in WordPress, customers, form entries, logged-in users, use Firma \u2192 Send Setup once to map the template's fields to that data.<\/li>\n<li>Drop the <code>[firma_send_signature]<\/code> shortcode anywhere, or trigger it from any other plugin or custom code with a single WordPress action hook. Every send after that is automatic.<\/li>\n<li>Track every sent document's status (Sent, Viewed, Completed, Declined) under Firma \u2192 Documents.<\/li>\n<\/ol>\n\n<p><strong>Works with anything<\/strong><\/p>\n\n<p>Every trigger in this plugin, including the shortcode, funnels through one action hook:<\/p>\n\n<pre><code>do_action( 'firma_send_document', $mapping_id, $context );\n<\/code><\/pre>\n\n<p>Any other plugin or custom theme code can fire this to send a document for signature. Firma.dev isn't limited to the integrations we've built, it works with your specific setup, out of the box.<\/p>\n\n<p><strong>Why Firma.dev<\/strong><\/p>\n\n<ul>\n<li>Pay-as-you-go pricing (roughly \u20ac0.049 \/ ~5\u00a2 per envelope), no monthly minimums, no per-seat fees. Send one document a year or ten thousand, you only pay for what you use.<\/li>\n<li>Legally valid e-signatures in 55+ countries.<\/li>\n<li>Built for developers and agencies as much as everyday site owners.<\/li>\n<\/ul>\n\n<p>Firma.dev is a hosted service. A Firma.dev account is free to create and includes a no-cost test API key, so you can wire everything up and send a real test document before you commit to anything. Once you recieve your live key, you're ready to send for real.<\/p>\n\n<p>Get started with Firma.dev for free, no credit card required: https:\/\/www.firma.dev<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Firma.dev API (https:\/\/api.firma.dev) to send documents for e-signature and track their status. A Firma.dev account and API key are required for the plugin to function. This is a core, required part of what the plugin does, not an optional add-on.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li>When a document is sent (via the shortcode or the <code>firma_send_document<\/code> action), the plugin sends the signer's name and email address, plus any WordPress data you've chosen to map into template fields, to Firma.dev's API to create and deliver the signing request.<\/li>\n<li>Every API request includes your Firma.dev API key for authentication.<\/li>\n<li>Firma.dev sends status updates (viewed, signed, declined, etc.) back to this site via a webhook you configure, so the plugin does not need to repeatedly poll Firma.dev for status.<\/li>\n<\/ul>\n\n<p>This service is provided by Firma.dev: <a href=\"https:\/\/firma.dev\/legal\/terms-conditions\">Terms of Service<\/a>, <a href=\"https:\/\/firma.dev\/legal\/privacy-policy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files, or install directly from the WordPress Plugin Directory.<\/li>\n<li>Activate the plugin. You'll be taken straight to Firma \u2192 Settings.<\/li>\n<li>Enter your Firma.dev API key.<\/li>\n<li>For a one-off document, go to Firma \u2192 Send a Document. For a recurring, automated send, go to Firma \u2192 Send Setup, choose a template, and map its fields.<\/li>\n<li>Add the <code>[firma_send_signature mapping=\"ID\"]<\/code> shortcode to any page, or use the <code>firma_send_document<\/code> action from your own code.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20firma.dev%20account%3F\"><h3>Do I need a Firma.dev account?<\/h3><\/dt>\n<dd><p>Yes. Templates are created and managed in your Firma.dev dashboard; this plugin sends documents for signature using your account's API key. A free account includes a test API key that doesn't consume credits.<\/p><\/dd>\n<dt id=\"does%20this%20only%20work%20with%20woocommerce%20%2F%20a%20specific%20form%20plugin%3F\"><h3>Does this only work with WooCommerce \/ a specific form plugin?<\/h3><\/dt>\n<dd><p>No. The core plugin works on any page via the shortcode, and exposes a <code>firma_send_document<\/code> action hook that any other plugin or custom code can call. Dedicated integrations for WooCommerce, Gravity Forms, WPForms, and Contact Form 7 are planned as fast-follow releases.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Nothing is deleted unless you check \"Delete all Firma.dev mappings and document records\" on the Settings page before removing the plugin. Deactivating never deletes data.<\/p><\/dd>\n<dt id=\"is%20my%20api%20key%20stored%20securely%3F\"><h3>Is my API key stored securely?<\/h3><\/dt>\n<dd><p>Your API key and webhook secret are encrypted at rest in the WordPress database. This protects against someone reading your database directly; as with any plugin, it does not protect against a fully compromised server.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added Firma \u2192 Send a Document, a one-off send screen for recipients with no WordPress record. No mapping required.<\/li>\n<li>Documents and Send Setup now show template names instead of raw template IDs.<\/li>\n<li>Send Setup now tells apart \"no template selected\" from \"template has no signer roles or fields to map.\"<\/li>\n<li>Documents page reminds you to add a webhook secret when status auto-updates aren't set up yet.<\/li>\n<li>API error messages now lead with a plain-language summary ahead of the technical detail.<\/li>\n<li>First activation now goes straight to Settings.<\/li>\n<li>Saved Mappings list shows how many documents each mapping has actually sent, so unused test mappings are easy to spot before deleting.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: settings, template-based send mapping, shortcode, <code>firma_send_document<\/code> action hook, webhook-driven status tracking, Documents list.<\/li>\n<\/ul>","raw_excerpt":"Send any document for e-signature from WordPress using Firma.dev. Pay-as-you-go pricing, no subscriptions, works with any plugin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350905"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/firmadev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350905"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350905"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350905"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350905"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350905"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}