Set up Stripe Checkout

15 minIntermediateUltimate Membership Pro 14.2+

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

  1. Go to Ultimate Membership Pro›Payment Gateways.
  2. Find Stripe Checkout and click Complete setup. Once the gateway is on, the button reads Manage.
Stripe Checkout row on the Payment Gateways screen with the Inactive badge and the Complete setup button highlighted
Stripe Checkout on the Payment Gateways screen.

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

Stripe Checkout Setup card with the Activate Stripe Checkout Payment Service switch highlighted and a notice recommending Stripe Connect
Switch on Activate Stripe Checkout Payment Service.
Activate Stripe Checkout Payment Service

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

  1. In Stripe, go to Developers › API keys. Use the test keys first; you switch to the live keys after your test payment.
  2. Copy the Publishable key and the Secret key into the matching fields.
Stripe Checkout Settings card with test Publishable Key and Secret Key filled in, numbered 1 and 2
Test keys for the example site.
1Publishable KeyRequired

Starts with pk_test_ (test) or pk_live_ (live).

2Secret KeyRequired

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.

Setup Instructions list with nine steps and the Webhook URL box showing https://yoursite.com/?ihc_action=stripe_checkout highlighted
Setup Instructions and the webhook address.
https://yoursite.com/?ihc_action=stripe_checkout
  1. In Stripe, open Webhooks (in test mode while you test) and add an endpoint.
  2. Paste the address above, copied from the Webhook URL box.
  3. Select all the events from Charge, Customer, Invoice and Subscription Schedule, and from Checkout select checkout.session.completed. Save the endpoint.
  4. 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

Additional Settings card with English, Thank You Page as Success redirect page, Subscription Plan as Cancel redirect page and the email autocomplete switch on, numbered 1 to 4
Additional Settings for the example site.
1Stripe Checkout page Language

The language of Stripe’s payment page: Simplified Chinese, Danish, Dutch, English, Finnish, French, German, Italian, Japanese, Norwegian, Spanish or Swedish.

Default: English

2Success redirect page

Where members land after paying. Leave … to use your Thank You page (set under Ultimate Membership Pro›Settings›Pages Setup).

Default: …

3Cancel redirect page

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: …

4Stripe Checkout Fields

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

Extra Settings card with Label Stripe Checkout, Position 11 and an empty Short Description, numbered 1 to 3
Extra Settings with the default values.
1Label

The name of this payment method that members see at checkout.

Default: Stripe Checkout

2Position

The order of this gateway among the payment methods at checkout. Lower numbers come first.

Default: 11

3Short Description

Optional text about the gateway, saved with its settings.

Click Save Changes. The page badge changes to Active.

Test a payment

  1. With test keys saved and the test webhook added, open your site in a private window and buy Pro Monthly.
  2. Pick Stripe Checkout and continue. You’re sent to Stripe’s payment page in test mode.
  3. Pay with 4000002500003155, expiry 12 of next year and any CVC, and approve the 3D Secure test window.
  4. 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

Renewals

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.

Cancellation

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.

Refunds and disputes

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

Coaching ClubPro Monthly at $19/month, paid on Stripe’s hosted page.
Keys
Test keys first, then live keys
Webhook
?ihc_action=stripe_checkout, events from Charge, Customer, Invoice, Subscription Schedule, plus checkout.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

What are your feelings

  • Happy
  • Normal
  • Sad