What is Stripe Connect in Payment Page#

Payment Page connects to Stripe using Stripe Connect OAuth. When you click Connect with Stripe in the plugin, you're routed through a managed flow that registers your Stripe account with Payment Page and stores the credentials needed to charge cards on your behalf.

This is a single global Stripe account per WordPress site, applied to every payment form on that site. It is not a per-form / per-vendor connected-accounts setup, and it does not turn the plugin into a marketplace. Every form on the site charges into the same Stripe account.

How the OAuth flow works#

  1. From Payment Page > Payment Gateways, click Connect with Stripe in either TEST or LIVE mode.
  2. The plugin requests a redirect URL from Payment Page's API at api.paymentpageplugin.com/stripe/connect. That URL points at the Stripe-hosted authorisation page with the correct OAuth parameters.
  3. You're sent to Stripe to authorise Payment Page. In TEST mode, Stripe also offers a "Skip this form" button so you can complete the connection without filling in business details — this is useful for quick local testing, but data from those test payments is not written back to a real Stripe account.
  4. Stripe redirects back to the plugin's /wp-json/payment-page/v1/payment-gateway/connect-callback endpoint with the authorisation result.
  5. The plugin stores the credentials in the payment_page_settings option under the keys stripe_{mode}_user_id, stripe_{mode}_public_key, and stripe_{mode}_secret_key (where {mode} is test or live). After this, the gateway dashboard shows your Stripe account name next to the mode switcher and a TEST/LIVE/Mixed indicator appears in the WordPress admin bar.

LIVE mode does not offer the "Skip this form" option — connecting in LIVE requires a real, fully onboarded Stripe account.

Free vs Pro: the 2% platform fee#

The free version of Payment Page charges a 2% platform fee on Stripe transactions. Here's how that works under the hood:

  • On the Free plan, Payment Page does not call Stripe directly. It proxies PaymentIntent / SetupIntent / Subscription creation calls through api.paymentpageplugin.com/wp-json/payment-page-api/v1/, which adds an application_fee_amount to each charge equal to 2% of the transaction. The fee is deducted by Stripe and routed to Payment Page automatically — there's nothing for you to invoice or reconcile manually.
  • On the Pro plan, the proxy is bypassed. The plugin signs the requests with your stored Stripe secret key and hits Stripe directly, with no application_fee_amount. The 2% fee disappears.

Stripe's own processing fees and terms still apply on both plans; those charges are separate from the Payment Page platform fee. See Stripe's current pricing for the connected account's country and payment method, and read What's the total cost of using the plugin? for the Payment Page portion.

Switching modes#

Use the TEST / LIVE switcher at the top of the Payment Gateways screen to flip the site's active mode. The switch is global — every payment form on the site uses whichever mode is currently active. The WordPress admin bar shows a coloured badge (yellow for TEST, green for LIVE, mixed if one gateway is in a different mode than another) so you can spot the current mode at a glance.

Disconnecting#

Click Disconnect in either TEST or LIVE mode to clear the credentials and local webhook binding for that mode. The plugin removes the stored stripe_{mode}_user_id, _public_key, and _secret_key, clears the mode's local webhook secret/endpoint/account/API-version values and event-readiness state, and clears any cached Apple Pay domain transient. Disconnecting one mode does not affect the other.

Next step: configure webhooks#

Immediately after a successful Stripe Connect OAuth callback, Payment Page provisions its endpoint with the exact 12-event contract and saves the returned signing secret for that mode. Existing owned 1.5.2 endpoints are eligible for a bounded background event-list upgrade without endpoint deletion, API-version changes, or signing-secret rotation. Manually managed endpoints are never changed automatically. Stripe checkout remains paused for a mode until automatic readiness is verified or an administrator saves the completed manual configuration shown on the next page.

Stripe Webhook ConfigurationSetting Up Payment Page