Set up Stripe Checkout
- View as Markdown Open this page as plain Markdown (opens in a new tab)
- Open in ChatGPT Ask questions about this page (opens in a new tab)
- Open in Claude Ask questions about this page (opens in a new tab)
- Open in Google AI Studio Ask questions about this page (Google account required) (opens in a new tab)
Stripe Checkout lets Ultimate Membership Pro send members to Stripe’s own hosted payment page to pay for a Membership. Members enter their card on stripe.com, then come back to your site, and Stripe confirms the payment to your site through a webhook.
This guide connects Stripe Checkout with your API keys, adds the webhook, explains every setting on the screen and runs a test payment for the Coaching Club site.
Before you start
- You have an activated Stripe account and can open Developers › API keys in the Stripe dashboard.
- Your site is reachable from the internet, so Stripe’s webhook can reach it.
- You have a paid Membership, for example Pro Monthly at $19/month. See Create your first Membership.
- Your currency is set under Ultimate Membership Pro›Settings›Payment Settings. See Set your currency.
Stripe Checkout or Stripe Connect?
Both gateways charge through your own Stripe account and support one-time and recurring Memberships with trials. The difference is where members pay and what they can manage afterwards.
Choose Stripe Checkout when
- Payment page
- You prefer Stripe’s hosted page, branded in your Stripe dashboard
- Setup
- You’d rather paste API keys than connect an account
Choose Stripe Connect when
- Payment page
- Members should pay on your own page without leaving the site
- Member Portal
- Members should change their card; saved cards at checkout
Stripe Connect is the recommended gateway, and the settings screen says so too, because it covers more subscription management. Stripe Checkout remains a supported choice. Setting up Connect instead? See Set up Stripe.
What Stripe Checkout supports
Payments
- One-time
- Yes: LifeTime, Limited Time and Date Range Memberships
- Recurring
- Yes: On Going and Limited (2 to 52 payments)
- Checkout
- Redirect to Stripe’s hosted payment page
Billing rules
- Cycles
- 1 to 365 days, 1 to 52 weeks, 1 to 12 months or 1 year
- Trials
- Free or paid, set in any period
- Member Portal
- Cancel for recurring plans
A paid trial or a discounted first payment appears on Stripe’s page as a separate line called “Initial payment”. The smallest amount Stripe charges is $0.50 in currencies with cents.
Open the Stripe Checkout settings
- Go to Ultimate Membership Pro›Payment Gateways.
- Find Stripe Checkout and click Complete setup. Once the gateway is on, the button reads Manage.

The page is called Stripe Checkout Gateway, with an Inactive or Active badge, and has four cards: Stripe Checkout Setup, Stripe Checkout Settings, Additional Settings and Extra Settings. Nothing is stored until you click Save Changes at the bottom.
Turn on the gateway

Makes Stripe Checkout available at checkout, once both keys are filled in. While it’s off, your site doesn’t process Stripe Checkout’s webhook calls.
Default: Off
The yellow notice under the switch recommends Stripe Connect. Once the gateway is saved as on, it also links to the migration steps; you can ignore it if Stripe Checkout is your choice.
Paste your API keys
- In Stripe, go to Developers › API keys. Use the test keys first; you switch to the live keys after your test payment.
- Copy the Publishable key and the Secret key into the matching fields.

Starts with pk_test_ (test) or pk_live_ (live).
Starts with sk_test_ or sk_live_. Keep it private.
There is no separate test switch: test keys mean test mode, live keys mean real payments. Use a pair from the same mode.
Add the webhook in Stripe
Stripe Checkout only tells your site about a payment through the webhook. Coming back to your site after paying doesn’t complete the order; the webhook does.

https://yoursite.com/?ihc_action=stripe_checkout
- In Stripe, open Webhooks (in test mode while you test) and add an endpoint.
- Paste the address above, copied from the Webhook URL box.
- Select all the events from Charge, Customer, Invoice and Subscription Schedule, and from Checkout select
checkout.session.completed. Save the endpoint. - Add the same endpoint in live mode when you switch to live keys.
The Setup Instructions on the screen list these steps, plus two optional ones in Stripe: the rules for Manage payments that require 3D Secure, and the branding of the Checkout page and emails. The Test Credentials box shows the test card 4000002500003155 with expiry 12 of next year.
Choose the language and return pages

The language of Stripe’s payment page: Simplified Chinese, Danish, Dutch, English, Finnish, French, German, Italian, Japanese, Norwegian, Spanish or Swedish.
Default: English
Where members land after paying. Leave … to use your Thank You page (set under Ultimate Membership Pro›Settings›Pages Setup).
Default: …
Where members land if they leave Stripe’s page without paying. Pick a page such as your Subscription Plan page; with … they go to your home page.
Default: …
Autocomplete Stripe Checkout Email Address with current user account: fills the email field on Stripe’s page with the member’s account email.
Default: Off
Set how Stripe Checkout appears at checkout

The name of this payment method that members see at checkout.
Default: Stripe Checkout
The order of this gateway among the payment methods at checkout. Lower numbers come first.
Default: 11
Optional text about the gateway, saved with its settings.
Click Save Changes. The page badge changes to Active.
Test a payment
- With test keys saved and the test webhook added, open your site in a private window and buy Pro Monthly.
- Pick Stripe Checkout and continue. You’re sent to Stripe’s payment page in test mode.
- Pay with
4000002500003155, expiry 12 of next year and any CVC, and approve the 3D Secure test window. - You return to the Success redirect page. In Ultimate Membership Pro›Payment History, the order turns Completed when the webhook arrives, and the Membership is active.
When the test works, replace both keys with your live keys, add the live webhook in Stripe, and save.
Renewals, cancellations and refunds
Stripe charges the member on each renewal date. Each paid invoice reaches your site through the webhook, adds a new Completed order and extends the Membership. For a Limited plan, Stripe stops the subscription after the last payment.
Members can Cancel a recurring plan in the Member Portal; it’s cancelled in Stripe right away. A subscription cancelled in Stripe is marked Cancelled on your site too.
Refund in your Stripe dashboard. When Stripe reports a refund, or money withdrawn for a dispute, the Membership is removed from the member.
Limits to know
- Members can’t change their card or use saved cards from your site; Pause, Resume and Change Card are Stripe Connect features.
- Billing cycles can be at most 1 year.
- The minimum charge is $0.50 in currencies with cents.
- Orders stay Pending until the webhook arrives. The webhook only works while the gateway switch is on and your site is public.
Brand the payment page
Stripe’s hosted page uses the logo, colors and email settings from your Stripe dashboard’s branding settings. Set them before going live so members recognize your business.
Example: Coaching Club on Stripe Checkout
- Keys
- Test keys first, then live keys
- Webhook
?ihc_action=stripe_checkout, events from Charge, Customer, Invoice, Subscription Schedule, pluscheckout.session.completed- Stripe Checkout page Language
- English
- Success redirect page
- Thank You Page
- Cancel redirect page
- Subscription Plan
- Stripe Checkout Fields
- On
- Membership
- Pro Monthly, Recurring Subscription, 1 Months, $19, On Going
Troubleshooting
Why is the order still Pending after the member paid on Stripe?
The order is completed only by the webhook. Check that the endpoint exists in the same Stripe mode as your keys, with checkout.session.completed and the four event groups, that the gateway switch is on, and that your site is public. See Paid, but the Membership is still on hold.
Why do members land back on my page instead of Stripe’s payment page?
Stripe couldn’t create the payment page. Check that both keys are complete, from the same mode, without spaces, and that your Stripe account is activated.
Why does the webhook address show “No Payments details sent. Come later” in my browser?
That’s expected: the address only does something when Stripe sends an event.
Do coupons work with Stripe Checkout?
Yes. An Entire Billing Period coupon lowers every payment; a Just for Initial Payment coupon lowers the first payment, shown as “Initial payment” on Stripe’s page, and the full price starts one cycle later. See Create coupon codes.
Can I move my Stripe Checkout members to Stripe Connect later?
Yes. Once you switch Stripe Checkout off, each subscription moves to Stripe Connect automatically at its next renewal. See Move from Stripe Checkout to Stripe Connect.
What’s next
#1 Membership WordPress Plugin