Skip to content

Stripe Payments

Collect payments with Stripe inside WPsigner. The same Stripe configuration powers:

  • Payment fields on the document signing page (signers pay before completing)
  • Payment fields in Smart Signing Forms (addon)

  • WPsigner v3.0.0 or later (Stripe integration v3.21+)
  • A Stripe account
  • HTTPS on your WordPress site (required for live payments and webhooks)
  • For Smart Forms payments: Smart Signing Forms installed and activated

  1. Go to WPsigner → Integrations
  2. Find the Stripe card
  3. Toggle the integration On
  4. Click Configure to open Stripe settings

WPsigner stores separate keys for test and live mode.

ModeUse when
Test ModeSetting up, testing cards, staging sites
Live ModeReal customer payments on production

Switch mode with the Test Mode / Live Mode toggle at the top of the Stripe settings page. Only the keys for the active mode are used for payments and webhooks.


Get keys from the Stripe Dashboard (use the test dashboard when in Test Mode).

FieldDescription
Publishable KeyStarts with pk_test_ or pk_live_. Safe to use in the browser.
Restricted KeyStarts with rk_test_ or rk_live_. Recommended — limit permissions to what WPsigner needs.
Secret KeyStarts with sk_test_ or sk_live_. Supported for compatibility; prefer restricted keys when possible.

Keys are stored encrypted on your server when OpenSSL is available.

Choose the default currency for payment fields:

USD, EUR, GBP, CAD, AUD, MXN, BRL, COP

Individual Smart Form payment fields can override the currency per form.


Webhooks let WPsigner receive payment status updates from Stripe (succeeded, failed, disputes, refunds).

Copy the URL shown on the Stripe settings page:

https://your-site.com/wp-json/insigner/v1/stripe-webhook

Replace your-site.com with your WordPress site URL.

Enable these events in Stripe (or use Create Webhook Automatically in WPsigner):

EventPurpose
payment_intent.succeededMark payment as completed
payment_intent.payment_failedHandle failed attempts
payment_intent.canceledHandle canceled intents
charge.dispute.createdDispute notifications
charge.refundedRefund tracking

Option A — Automatic (recommended)

  1. Save your API keys first
  2. Click Create Webhook Automatically
  3. WPsigner registers the endpoint in Stripe and stores the signing secret

Option B — Manual

  1. In Stripe Webhooks, add the endpoint URL above
  2. Select the events listed above
  3. Copy the Signing secret (whsec_...)
  4. Paste it into WPsigner and save

After saving keys:

  1. Click Test Connection
  2. WPsigner verifies the secret/restricted key against the Stripe API
  3. Fix any errors before switching to Live Mode

When a document includes a Payment field:

  1. The signer completes payment in the signing UI (Stripe Payment Element)
  2. WPsigner verifies the PaymentIntent on the server before the signature is accepted
  3. Webhooks keep payment status in sync

Configure payment fields when creating or editing a document in the field editor.


Smart Signing Forms uses the same Stripe settings as the core plugin.

  1. Complete this Stripe setup first
  2. In the Smart Forms builder, add a Payment field (one per form)
  3. Set amount (minimum 0.50, maximum 10,000 in the configured currency)
  4. Signers enter a valid email, pay with Pay now, then sign and submit

See the full guide: Smart Signing Forms — Payment field


IssueSolution
Not Connected statusEnter both publishable and secret/restricted keys for the active mode
Test Connection failsVerify key prefix matches mode (pk_test_ + rk_test_ in Test Mode)
Payments work but status not updatingCheck webhook URL, signing secret, and required events
Smart Form shows “Stripe not configured”Enable Stripe module and save valid keys
”Complete payment before submitting”Signer must click Pay now and wait for success before Submit & Sign
Test badge still visible in productionSwitch to Live Mode and use live keys

Enable WordPress debug logging to inspect Stripe-related errors:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

Check wp-content/debug.log for entries related to Stripe or Smart Forms payments.