Fix “No such PaymentMethod: ‘pm_…’” in WooCommerce Stripe

Seeing “No such PaymentMethod: ‘pm_…’”? In plain English: Stripe can’t find that saved card for this account and mode. The common culprits are an account switch with old tokens still around, a Live/Test key mix‑up, or a Connect setup using a platform‑owned method on a connected account. Here’s the fast path, then the bulletproof fix.

WooCommerce Stripe shows “No such PaymentMethod: ‘pm_…’”. Can you give me a quick fix and the full, safe steps?

Why this error shows up

The error essentially means the following:

“We can't find that payment method on the account/mode you’re calling with.”

In other words: checkout tried to reuse a saved card, but that token belongs somewhere else.

Your issue probably stems from one of these:

  • You changed Stripe accounts or enabled WooPayments and WooCommerce still has tokens from the old account.
  • Your key is wrong.
  • You're using a test payment method in live mode.
  • You're using a platform‑owned PaymentMethod on a connected account without re-creating it there.

If you recently switched Stripe accounts or enabled WooPayments...

Stripe can’t see the saved cards because they were created under the old WooCommerce account.

Do this:

Tell affected customers to remove and re‑add their card in My Account → Payment Methods (see managing saved methods).

Clean old Stripe tokens so checkouts can’t grab them. Woo’s official cleanup guide explains how to safely remove old Stripe IDs and tokens.

After cleanup, the next payment will create a fresh PaymentMethod on the current account.

Otherwise, check the logs

  • Go to WooCommerce → Status → Logs.
  • Open today’s Stripe log.
  • Retry the checkout and look at the newest log lines.

If “No such PaymentMethod” appears only in Live mode, but not in Test mode: You have a key/mode issue. Here's how to fix it.

If you see “OAuth key or Stripe‑Account header was used but API request was provided with a platform‑owned payment method ID”: That’s an account/Connect mismatch. Here's how to fix it.

If you can't identify the issue…

I’ll need a bit more context to zero it in.

Scroll down, click Continue Chat, and send me:

  1. Does it fail for all customers or only those with saved cards?
  2. Did you recently switch Stripe accounts or enable WooPayments?
  3. Are you in Live or Test? (Paste the first/last 4 chars of the keys you’re using.)
  4. The exact line from the latest Stripe log in WooCommerce → Status → Logs.

Fixing a key/mode issue

  • Open WooCommerce → Settings → Payments → Stripe.
  • Make sure you’re using the right Live or Test keys, and that the plugin is in the same mode.
  • Save changes and submit a test order again.

Going forward: keep Live and Test separate. Rotate to fresh keys if needed, and double‑check mode after deployments (see Stripe keys).

Fixing an account/Connect mismatch

In Connect setups (including some WooPayments flows), a PaymentMethod created on the platform can’t be charged by a connected account unless it’s cloned or created there.

Do this:

Make sure checkout is creating/using the PaymentMethod on the same account that will make the charge.

For custom Connect flows, clone or create the PaymentMethod on the connected account before charging.

Going forward: don’t reuse platform‑owned pm_ IDs on connected accounts.

Verification

If the following are true, you're in good shape.

  • Orders complete without “No such PaymentMethod”.
  • The Stripe log shows a successful PaymentIntent on the correct account and mode.
  • Customers can pay with new and saved cards. Old tokens no longer appear.

Still stuck?

For AI help

Hit Continue Chat and I’ll walk you through logs, account context, and safe token cleanup until it’s fixed.

For expert human help

Scroll down to the contact form below. Enter your name, email, and WordPress needs. Atiba will get back to you as soon as possible.

Need human WordPress help?

WP Assistant is a free tool created by Atiba Software, a WordPress design and development company located in Nashville, TN. If you need more personalized WordPress assistance let us know, and we’ll get back to you ASAP!