Send document signing requests and notifications via the official WhatsApp Cloud API (Meta). The current setup path is step-by-step: copy credentials from Meta, then use Complete Setup in WPsigner.
Features
Section titled “Features”| Feature | Description |
|---|---|
| Signing requests | Same timing as the signing-request email |
| Signature recorded | Confirm when an individual signer finishes |
| Document complete | Notify when all required signatures are collected |
| Declined | Notify when a signer declines |
| Reminders | Manual and scheduled reminders |
| OTP (AUTH) | Optional WhatsApp OTP template for advanced signing |
| In-plugin templates | Create / sync default Meta templates from WPsigner |
| Complete Setup | One admin action: save, test, detect WABA, create templates, enable notifies |
| Encrypted credentials | AES-256-GCM at rest |
Prerequisites
Section titled “Prerequisites”- A Meta Business Account
- A Meta app with the WhatsApp product
- A Phone Number ID (test number or production business number)
- A permanent System User access token with:
whatsapp_business_managementwhatsapp_business_messaging
- WPsigner 3.0.6+ (Complete Setup + current template definitions)
Step 1: Create the Meta app
Section titled “Step 1: Create the Meta app”-
Open developers.facebook.com/apps and click Create App.
-
Choose the use case Connect with customers through WhatsApp (recommended), or create a Business app and add the WhatsApp product later.
-
Link or create a Meta Business portfolio when prompted.
-
Finish the wizard until you reach WhatsApp → API Setup. Meta provides a test phone number for development.
Step 2: Get your credentials
Section titled “Step 2: Get your credentials”Phone Number ID
Section titled “Phone Number ID”-
In the app, open WhatsApp → API Setup.
-
Under From, copy the Phone number ID (digits only, e.g.
123456789012345). -
For production, add and verify your own business phone number (not a personal WhatsApp number).
Access token
Section titled “Access token”Recommended — System User token
-
Note your App ID under App settings → Basic.
-
Open System users in Meta Business Suite.
-
Add a system user (e.g.
WPsigner Integration), role Admin. -
Add assets → assign your WhatsApp Business Account with full control.
-
Generate new token:
- Select your Meta app
- Choose a long-lived / never-expire option when available
- Permissions:
whatsapp_business_management,whatsapp_business_messaging
-
Copy the token and store it securely (shown once).
- WhatsApp → API Setup → copy the temporary token.
- Valid for ~24 hours. Do not use in production.
Business Account ID (WABA)
Section titled “Business Account ID (WABA)”Needed for template management. You can:
- Paste it manually (WhatsApp Business Account ID from Business Suite / WhatsApp Manager), or
- Leave it blank and let Complete Setup try to auto-detect it from Phone Number ID + token.
Step 3: Complete Setup in WPsigner
Section titled “Step 3: Complete Setup in WPsigner”-
In WordPress, go to WPsigner → Integrations → WhatsApp Business.
-
Paste Phone Number ID and Permanent Access Token.
-
Optionally set template language and WABA ID.
-
Click Complete Setup. WPsigner will:
- Save credentials (encrypted)
- Test the connection
- Detect WABA when possible
- Create any missing default templates in Meta
- Turn on notification toggles
-
Open Message Templates and click Refresh until required templates show APPROVED (or use Create Missing Templates if some are still missing).
-
Confirm the checklist: credentials, WABA, templates, notifications enabled.
Step 4: Default templates
Section titled “Step 4: Default templates”WPsigner creates these templates via the Meta API (named parameters, not {{1}} / {{2}} body vars). Prefer creating them from the plugin rather than hand-building outdated positional templates.
| Template | Category | Purpose |
|---|---|---|
signing_request | UTILITY | Signing link (+ URL button) |
signing_signed | UTILITY | Individual signature recorded |
signing_completed | UTILITY | All parties finished |
signing_reminder | UTILITY | Reminder (+ URL button) |
signing_declined | UTILITY | Decline notice |
otp_verification | AUTHENTICATION | OTP copy-code (advanced signing) |
Named body parameters (examples):
signing_request:signer_name,document_title,expire_hourssigning_signed:signer_name,document_titlesigning_completed:document_title,signed_date,brand_namesigning_reminder:document_title,deadlinesigning_declined:signer_name,document_title,decline_reason
Step 5: Add signer phone numbers
Section titled “Step 5: Add signer phone numbers”-
Create or edit a document / campaign signer.
-
Enter the WhatsApp number in E.164 form (country code included), e.g.
+15551234567. -
Signers without a valid phone only receive email.
Notification events
Section titled “Notification events”Toggle each event under WhatsApp settings:
| Event | Template | Trigger |
|---|---|---|
| Signing Request | signing_request | wps_signing_request_sent (same timing as email) |
| Signature Recorded | signing_signed | wps_after_document_signed |
| Document Complete | signing_completed | wps_document_completed |
| Document Declined | signing_declined | wps_document_declined |
| Reminders | signing_reminder | wps_reminder_sent |
How it works
Section titled “How it works”Create document + signer phone │ ▼Signing request email timing ──► WhatsApp signing_request (if enabled) │ ▼Signer signs ──► signing_signed (optional) │ ▼All done ──► signing_completedSecurity
Section titled “Security”| Feature | Detail |
|---|---|
| Token / ID storage | Encrypted at rest (AES-256-GCM) |
| AJAX | Nonce + manage_options (or settings capability) |
| Phone validation | E.164 before send |
| Rate limits | Test / save / sync throttles in admin |
| Audit | Settings and template actions logged when Audit is available |
Troubleshooting
Section titled “Troubleshooting”- Phone Number ID must be numeric only.
- Use a permanent token (temporary tokens expire).
- Confirm WhatsApp is added to the Meta app.
- System user must have the WhatsApp asset + messaging permissions.
- Ensure WABA ID is saved (Complete Setup or manual).
- Use Create Missing Templates then Refresh.
- Wait for Meta APPROVED before expecting delivery.
- Language in WPsigner must match the template language you created.
- Phone must be E.164 and have WhatsApp.
- Template must be APPROVED.
- Check Meta quality rating and messaging limits.
- Sandbox / test numbers can only message allowed recipients.
If you see Meta saying the business cannot register customers, that is a Meta Tech Provider / verification / App Review limit — not a WPsigner bug. Keep using Complete Setup until one-click is re-enabled.
Meta messaging tiers (summary)
Section titled “Meta messaging tiers (summary)”| Tier | Typical daily limit | Notes |
|---|---|---|
| Unverified | ~250 | Raise via business verification |
| Verified tiers | 1k → 100k+ | Depends on quality rating |
Developer reference
Section titled “Developer reference”PHP class: \InSigner\Integrations\Messaging\WhatsApp
| Method | Description |
|---|---|
is_enabled() | Notifications toggle |
is_configured() | Phone ID + token present |
validate_phone( $phone ) | E.164 check |
test_connection( $phone_id, $token ) | Graph phone lookup |
get_default_templates() | Template definitions |
sync_default_templates() | Create missing defaults |
get_setup_status( $refresh ) | Admin checklist data |
use InSigner\Integrations\Messaging\WhatsApp;
if ( WhatsApp::is_enabled() && WhatsApp::is_configured() ) { // Ready to send via hooks / templates}
if ( WhatsApp::validate_phone( '+15551234567' ) ) { // Store on signer}Graph base URL constant: WhatsApp::API_BASE → https://graph.facebook.com/v25.0.
Is WhatsApp API free?
Meta offers a free conversation allowance; overage is billed per Meta’s regional rates. Customers attach payment on their WABA when required.
Can I use a personal WhatsApp number?
No. Use a number registered for WhatsApp Cloud API / Business Platform.
Do I still need email?
Yes. Email remains the primary channel; WhatsApp is additive when a valid phone is present.
When will one-click Connect return?
After Meta allows customer onboarding for the WPsigner business app (Tech Provider / App Review). Then it can be turned on with WPS_WHATSAPP_EMBEDDED_SIGNUP.
Next steps
Section titled “Next steps”- Didit KYC — identity verification before signing
- Email templates — parallel email channel
- Webhooks — react to document events in your stack
- Markdown for LLMs — plain-text copy of this guide