Skip to content

WhatsApp Business Integration

WPsigner 3.0.6+Graph API v25.0

Markdown for LLMs

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.


FeatureDescription
Signing requestsSame timing as the signing-request email
Signature recordedConfirm when an individual signer finishes
Document completeNotify when all required signatures are collected
DeclinedNotify when a signer declines
RemindersManual and scheduled reminders
OTP (AUTH)Optional WhatsApp OTP template for advanced signing
In-plugin templatesCreate / sync default Meta templates from WPsigner
Complete SetupOne admin action: save, test, detect WABA, create templates, enable notifies
Encrypted credentialsAES-256-GCM at rest

  • 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_management
    • whatsapp_business_messaging
  • WPsigner 3.0.6+ (Complete Setup + current template definitions)

  1. Open developers.facebook.com/apps and click Create App.

  2. Choose the use case Connect with customers through WhatsApp (recommended), or create a Business app and add the WhatsApp product later.

  3. Link or create a Meta Business portfolio when prompted.

  4. Finish the wizard until you reach WhatsApp → API Setup. Meta provides a test phone number for development.


  1. In the app, open WhatsApp → API Setup.

  2. Under From, copy the Phone number ID (digits only, e.g. 123456789012345).

  3. For production, add and verify your own business phone number (not a personal WhatsApp number).

Recommended — System User token

  1. Note your App ID under App settings → Basic.

  2. Open System users in Meta Business Suite.

  3. Add a system user (e.g. WPsigner Integration), role Admin.

  4. Add assets → assign your WhatsApp Business Account with full control.

  5. Generate new token:

    • Select your Meta app
    • Choose a long-lived / never-expire option when available
    • Permissions: whatsapp_business_management, whatsapp_business_messaging
  6. Copy the token and store it securely (shown once).

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.

  1. In WordPress, go to WPsigner → Integrations → WhatsApp Business.

  2. Paste Phone Number ID and Permanent Access Token.

  3. Optionally set template language and WABA ID.

  4. 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
  5. Open Message Templates and click Refresh until required templates show APPROVED (or use Create Missing Templates if some are still missing).

  6. Confirm the checklist: credentials, WABA, templates, notifications enabled.


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.

TemplateCategoryPurpose
signing_requestUTILITYSigning link (+ URL button)
signing_signedUTILITYIndividual signature recorded
signing_completedUTILITYAll parties finished
signing_reminderUTILITYReminder (+ URL button)
signing_declinedUTILITYDecline notice
otp_verificationAUTHENTICATIONOTP copy-code (advanced signing)

Named body parameters (examples):

  • signing_request: signer_name, document_title, expire_hours
  • signing_signed: signer_name, document_title
  • signing_completed: document_title, signed_date, brand_name
  • signing_reminder: document_title, deadline
  • signing_declined: signer_name, document_title, decline_reason

  1. Create or edit a document / campaign signer.

  2. Enter the WhatsApp number in E.164 form (country code included), e.g. +15551234567.

  3. Signers without a valid phone only receive email.


Toggle each event under WhatsApp settings:

EventTemplateTrigger
Signing Requestsigning_requestwps_signing_request_sent (same timing as email)
Signature Recordedsigning_signedwps_after_document_signed
Document Completesigning_completedwps_document_completed
Document Declinedsigning_declinedwps_document_declined
Reminderssigning_reminderwps_reminder_sent

Create document + signer phone
Signing request email timing ──► WhatsApp signing_request (if enabled)
Signer signs ──► signing_signed (optional)
All done ──► signing_completed

FeatureDetail
Token / ID storageEncrypted at rest (AES-256-GCM)
AJAXNonce + manage_options (or settings capability)
Phone validationE.164 before send
Rate limitsTest / save / sync throttles in admin
AuditSettings and template actions logged when Audit is available

  1. Phone Number ID must be numeric only.
  2. Use a permanent token (temporary tokens expire).
  3. Confirm WhatsApp is added to the Meta app.
  4. System user must have the WhatsApp asset + messaging permissions.
TierTypical daily limitNotes
Unverified~250Raise via business verification
Verified tiers1k → 100k+Depends on quality rating

PHP class: \InSigner\Integrations\Messaging\WhatsApp

MethodDescription
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_BASEhttps://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.