PaywallProject Docs
  1. Home
  2. PaywallProject plugin
  3. Move to PaywallProject from Stripe Payment Links or Checkout
  1. Home
  2. Stripe
  3. Move to PaywallProject from Stripe Payment Links or Checkout

Move to PaywallProject from Stripe Payment Links or Checkout

This guide is for publishers who sell straight through Stripe, with Payment Links, Stripe Checkout or the Stripe Dashboard. You don’t need accounts or a membership plugin first: the import creates them. Readers keep their card, price and renewal date.

What happens to each subscriber

For each Stripe subscriber, PaywallProject looks for a WordPress account with the same email:

  • Found: it updates that account. The login and password don’t change.
  • Not found: it creates a new account.

Either way, the Stripe subscription is linked to the account. Readers don’t re-enter a card, and nobody is charged.

Tell your readers

New accounts have a random password, so readers need a way in. Use one or both:

  • Welcome email (PaywallProject 4.2.0 and later). On the import’s last step, tick Email new accounts a welcome message with a link to set their password. Each new account with access gets your New subscriber welcome email with a link to set a password. Existing accounts get nothing. It’s off by default, and the step shows how many emails it sends.
  • Your newsletter. Tell readers their subscription carries over and to sign in with the same email, using Forgot password?.

The link works once and expires after a day. After that, readers use Forgot password? (all the ways in).

Before you start

  • Update to PaywallProject 4.2.0 or later. You need administrator access to WordPress and to your Stripe account.
  • Connect the Stripe account your readers already pay into, under PaywallProject → Settings → Stripe.
  • Create one level for each old plan, with the same price and billing interval. The level can have a new name (see Renaming a plan). Steps 1 and 2 of the walkthrough show how.
  • Do a test run on a staging copy of your site first.
  1. Go to PaywallProject → Tools. On the Import subscribers card, select Start an import.
  2. Under Where are your readers now?, choose Your connected Stripe account, then select Next.
  3. Check the Stripe mode shown (live or test), then select Read subscriptions. PaywallProject reads every subscription that isn’t canceled.
  4. Under Match plans to levels, check the level for each Stripe price. A price a level already bills is chosen for you. Choose Leave out for prices of other products you sell.
  5. Under Match statuses, check the status chosen for each old status. Change any you want.
  6. Select Next until you reach Review, and read the preview. Nothing is saved until the last step.
  7. On Confirm, optionally tick Email new accounts a welcome message with a link to set their password. Then tick I’ve reviewed the preview and want to import and select the red Import … readers button.
  8. Select Download report (CSV) to keep a record.
Import directly from your connected Stripe account is chosen; PaywallProject explains that it reads the subscriptions in the connected account, with a Read subscriptions button
The Stripe import reads the account under Settings → Stripe, here in test mode.

Method 2: Import an export file

Use this to move only some subscriptions, filtered in the Stripe Dashboard.

  1. In Stripe, go to Billing → Subscriptions and filter to the subscriptions you want. Most publishers pick Active, Past due and Trialing.
  2. Select Export, choose All columns and the UTC time zone, and export.
  3. Go to PaywallProject → Tools. On the Import subscribers card, select Start an import.
  4. Under Where are your readers now?, choose Stripe only (Payment Links, Checkout, or the Dashboard), then select Next.
  5. Under Add your export file, add the Stripe export. To check how its columns were matched, open More options.
  6. Under Match plans to levels, check the level for each old plan. A level with the same name is chosen for you. Choose Leave out to skip a plan.
  7. Under Match statuses, check the status chosen for each old status. Change any you want.
  8. Select Next until you reach Review, and read the preview. Nothing is saved until the last step.
  9. On Confirm, optionally tick Email new accounts a welcome message with a link to set their password. Then tick I’ve reviewed the preview and want to import and select the red Import … readers button.
  10. Select Download report (CSV) to keep a record.
Check the columns step with a sample Stripe export: each PaywallProject field and the column matched to it
Check the columns with a sample Stripe export. Made-up readers.
Match plans to levels and Match statuses steps for a sample Stripe export
Plans matched to levels, and the statuses PaywallProject chose.

After the import

  • Deactivate your old Payment Links in Stripe (Payment Links, open each, Deactivate). Remove old buy buttons from your site.
  • Turn off any webhook, Zapier step or other automation you built for the old setup.
  • Turn off plan switching in Stripe’s customer portal. PaywallProject doesn’t see a plan switched there, so the reader keeps their old level.
  • Open a few readers under PaywallProject → Subscribers. Each should have a sub_ subscription ID, or renewals won’t reach them.
  • If you didn’t send the welcome email, tell readers how to sign in (see Tell your readers above).

Renaming a plan

Moving a reader to a different level in WordPress never changes their Stripe subscription. They keep the same price and renewal date, and only their access on your site changes. So you need one level per plan, not one for the old name and one for the new. Give the level the new name and match the old plan to it on Match plans to levels.

Stripe changes only if readers switch plans themselves on their account page. Stripe receipts keep the old product name until you rename the product in Stripe.

Good to know

  • A Stripe customer without an email can’t be matched to an account. The preview says so.
  • A subscription with several prices uses its first price as the plan.
  • Read the preview explains every result and warning.
  • Prefer an AI app? Claude, ChatGPT or another connected app can run the same import. See Move subscribers with an AI app.
Updated on November 9, 2026
Was this article helpful?

Related Articles

Get more help
Can't find the answer you're looking for? Get in touch.
Contact support