內容簡介
Assinafy 外掛將您的 WordPress 網站與 Assinafy 電子簽名服務連接,讓您能夠輕鬆發送 PDF 文件進行簽署,並在控制台內追蹤簽署狀態,提升文件管理效率。
【主要功能】
• 發送媒體庫中的 PDF 文件進行簽署
• 邀請多位簽署者並設定簽署順序
• 追蹤每個簽署請求的狀態和進度
• 重新發送邀請或變更截止日期
• 下載簽署後的 PDF 和證書頁面
• WooCommerce 整合,訂單完成時請求簽署
外掛標籤
開發者團隊
原文外掛簡介
Assinafy connects your WordPress site to the Assinafy electronic signature service. Choose a PDF you have already uploaded, name the people who must sign it, and send it for signature without leaving the admin. Each request stays on record inside WordPress, and its status is kept current until the document is signed and certified.
An Assinafy account is required. Connect your production workspace with OAuth from the settings screen. Existing API keys continue to work, and the sandbox still uses an API key.
What it does
Send any PDF in the media library for signature, with a message and a deadline.
Invite as many signers as you need, each with a name, an email address and an optional WhatsApp number.
Control the order: signers sharing a number are invited together, a higher number waits for every lower number to sign.
Track each request as its own record under Assinafy → Documents, with a status badge and a per-signer progress line.
Copy the signing link for any signer who has already been invited.
Resend an invitation, move the deadline, rename the document before it is sent, or cancel the request.
Download the original PDF, the signed PDF, the signature certificate page, the PAdES file and the complete bundle. Downloads are proxied through WordPress behind a capability check, so no Assinafy URL is ever exposed to a browser.
Keep status current automatically: Assinafy can notify this site over a webhook, and an hourly background job reconciles anything a webhook missed.
Three roles’ worth of access control: separate capabilities to send, to manage and to view signature requests.
Optional WooCommerce integration: attach a PDF to a product and the customer is asked to sign it when their order is completed. The order gets a note either way.
Optional Elementor Pro Forms action: send an existing local PDF to a mapped name/email signer. Development adapter: documented API contract tests pass; licensed Pro runtime validation is pending.
WP-CLI: wp assinafy status, send, sync and webhook.
Privacy tools: the WordPress personal data exporter reports a person’s signature requests, and the eraser redacts their name, address and signing link while retaining the signature evidence.
Form integrations
The source repository also contains separate development add-ons for Gravity Forms, Contact Form 7 and WPForms. They are not bundled in this core ZIP. Each provides an existing-PDF workflow; none generates contracts or requires payment. CF7 and WPForms Lite have real-host tests. Gravity Forms, Elementor Pro and WPForms Pro still require licensed-host validation. See README.en.md and docs/integrations.en.md in that repository for exact scope and setup.
Sending from your own code
Any form plugin, theme or custom integration can send a document by firing one action:
do_action( 'assinafy_send_document', array(
'attachment_id' => 123,
'signers' => array( array( 'name' => 'Jane Doe', 'email' => '[email protected]' ) ),
) );
Use assinafy_send_document_async for the same thing on a scheduled event. Status changes fire assinafy_document_status_changed, plus assinafy_document_certificated, _rejected, _expired and _failed.
Verification methods
Assinafy offers three, and a signer uses one of them:
Email (the default) — the signer receives a one-time code by email. No credits.
WhatsApp — the code arrives over WhatsApp. Requires a phone number and a paid Assinafy plan.
Digital certificate — the signer signs with their own ICP-Brasil certificate. Requires the Digital Certificate feature on the Assinafy account, and the signer must be alone in their signing step.
The send screen uses email verification, and falls back to WhatsApp for a signer entered with a phone number and no address. The other methods are available to code that calls the assinafy_send_document action or WP-CLI.
Signing happens on Assinafy’s own hosted pages, not inside WordPress. This plugin composes the request, stores the document and assignment identifiers, and fetches status and files back.
External services
This plugin connects to the Assinafy electronic signature service, which is where documents are uploaded, signed, certified and stored. It is required for the plugin to do anything.
API requests use one of two hosts, chosen by the Environment setting:
api.assinafy.com.br — Production. Real, legally effective signatures.
sandbox.assinafy.com.br — Sandbox. Test signatures with no legal effect.
Production OAuth connection opens auth.assinafy.com.br for consent. A new tab first visits integrations.assinafy.com.br/wordpress/oauth-start with the public client ID, requested permissions, random state and PKCE challenge. Assinafy sends a short-lived authorization code to integrations.assinafy.com.br/wordpress/oauth-callback. That page validates the browser session, state and issuer, then shows the code for the admin to copy into the original WordPress settings tab. It does not forward the code to a site or receive the PKCE verifier, access token or refresh token. The plugin exchanges the code directly with api.assinafy.com.br using the verifier stored on this WordPress site. WordPress stores both tokens encrypted and renews them as needed. Each renewal is valid for another 30 days, so you only reconnect after 30 days without one, when Assinafy rejects the connection, or when a renewal was interrupted after leaving the site: a refresh token Assinafy may have retired is never sent again.
Production API requests use Authorization: Bearer after OAuth connection. Existing API-key connections and Sandbox requests use X-Api-Key. The signer-side token route needs neither credential.
Disconnect, and deleting the plugin with “Delete data on uninstall” enabled, revoke the connection at api.assinafy.com.br and remove this site’s OAuth tokens even if remote revocation fails. In that case, revoke the app in Assinafy Connected Apps. Both wait for a renewal in progress, so the latest token is the one revoked; Disconnect asks you to try again shortly.
What is sent, and when:
Testing the connection, or registering the webhook (when you press either button): your account id. Registering also sends this site’s webhook URL and the notification address you type into the field.
Pricing a request (immediately before a send): the number of signers and the verification method chosen for each. No file and no personal data.
Sending a document for signature (when you press Send, when a WooCommerce order is completed, when an enabled form adapter processes an eligible submission, or when the assinafy_send_document action fires): the PDF file, the document name, and for every signer their full name, email address and/or WhatsApp number, signing order, verification method and notification method, plus your optional message and the deadline.
Checking status (hourly, on a webhook delivery, when you open a document, and on wp assinafy sync): the Assinafy document id.
Resending, moving a deadline, cancelling or renaming (when you press the button): the Assinafy document or assignment id, and the new deadline or name.
Downloading a file (when you press a download link): the Assinafy document id and the name of the file requested.
No site visitor data, no post content and no WordPress user account data leaves the site beyond the connection details above and what you enter or explicitly map into a signature request.
Assinafy delivers status notifications back to this site over the webhook endpoint, if you register one. Those deliveries are used only as a signal to re-check a document.
Service terms: Terms of Use and Privacy Policy.
