Webhook Setup

Webhooks allow Stripe to notify PayPress when important payment events happen.

Overview

Webhooks allow Stripe to notify PayPress when important payment events happen.

For example, when a customer completes checkout, Stripe sends a webhook event to your WordPress site. PayPress uses that event to create or update the local order, subscription, receipt, invoice, refund, and diagnostic records.

Without a working webhook, payments may complete in Stripe but not appear correctly inside WordPress.

Requirements

Before setting up the webhook, make sure:

  • PayPress is installed and active.
  • Stripe API keys are saved.
  • The active mode is correct.
  • You have administrator access to WordPress.
  • Your website is publicly reachable by Stripe.

Steps

  1. Open the PayPress settings page.
  2. Find the Webhook Connection section.
  3. Review the Webhook Endpoint URL shown by PayPress.
  4. Confirm that a Stripe secret key is saved for the active mode.
  5. Click Create Webhook Automatically.
  6. Wait for PayPress to create the webhook endpoint in Stripe.
  7. Confirm that the Webhook Connection status shows as configured.
  8. Save any settings if prompted.

Expected Result

PayPress should create a webhook endpoint in your Stripe account and store the webhook signing secret locally.

After this is configured, Stripe can notify PayPress about:

  • Completed checkouts.
  • Successful payments.
  • Failed payments.
  • Subscription updates.
  • Subscription renewals.
  • Invoice payments.
  • Refunds.
  • Receipt and invoice updates.

Important Notes

Save Stripe API keys before creating the webhook.

Test Mode and Live Mode use separate Stripe environments. A webhook created for Test Mode is not the same as a webhook created for Live Mode.

If you switch from Test Mode to Live Mode, review your webhook setup again.

PayPress validates Stripe webhook signatures before processing webhook data. This helps confirm that the request came from Stripe.

PayPress also validates installation ownership. This helps prevent a payment from one WordPress installation being recorded on another WordPress installation when multiple sites share the same Stripe account.

Troubleshooting

If the Create Webhook button is disabled, save the active-mode Stripe secret key first.

If orders are not appearing after successful Stripe payments, check Diagnostics and the Event Timeline.

If Stripe cannot reach your site, make sure your site is publicly accessible and not blocked by maintenance mode, firewall rules, or security plugins.

If you use caching or a CDN, do not cache the webhook endpoint.

If you see foreign-event diagnostics, confirm that the payment was created by the same WordPress installation that received the webhook.

Related Articles