Skip to content
demo Concept demo — not a Whop product.
built by jaen_
demoConcept demo — not a Whop product.
Stripe-shaped, on Whop rails

One line. Same API.
Lower rate.

Point the Stripe SDK you already ship at swop.whop.com and keep every id, webhook and test card you have.

ts1 line changed
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);const stripe = new Stripe(process.env.SWOP_KEY, { host: 'swop.whop.com' });

That's the migration. No SDK swap, no data export, no re-integration.

Why anyone moves

Don't end up on this wall.

31 real posts from sellers it already happened to — none written by us. Filter by what went wrong.

Showing 31 of 31 posts.

Libs of TikTok@libsoftiktok

“BREAKING: @stripe disabled my account. They're also holding onto my funds.”

6.4Kreposts29Klikes4.6Mviews

Highest-reach Stripe complaint measured anywhere (2024-02-22). Exact status ID not captured in the pull — search link lands on it; swap in the status URL before external sharing.

eSIM seller closed with no notice — 3DS on, last dispute 7 months prior. Incorporated through Stripe Atlas.

23 points·14 comments·travelyesim··paraphrase — a faithful summary of the source, not a verbatim quote
r/stripe

Closed after reviewing a $15k payment — ~$45k now held for 120 days. “What are my options?”

paraphrase — a faithful summary of the source, not a verbatim quote
7points24comments
CupOJoseph@CupOJoseph

Flagged, frozen and closed “for running a business that interacted with crypto.”

153likes6.8Kviews

Status ID not captured; search link

David Mokotoff, MD

“Thousands of humans work there, but you can't speak to anyone.”

11replies
Yassine Aadouli

“The 'Stripe Support' Trap: Public Promises vs. Private Reality” — public DM invite, private denial in under 24h.

“opt-out Radar price increase dressed up as a free trial” — “Wow, really guys? 'Opt-out'??”

9 points·rapind·
r/stripe

“Great alternatives to Stripe?” — the churn-intent thread; second-biggest post of the sub's year.

79points62comments
Alex K.

“a chargeback isn't a risk. It's a guaranteed loss” — the fee is 150% of his product's price.

tendermiasma@tendermiasma.com

“Fully SFW, innocent headshots of furries = adult content” — then termination.

13replies3.3Kreposts4.2Klikes
xenraiDEV Community

Diffed two real Stripe API specs: 679 changes, 16 breaking. Twice a year, on purpose.

paraphrase — a faithful summary of the source, not a verbatim quote

“Stripe has decided to nuke my entire business” — Connect account deactivated; reason listed: “Other.”

1,624 points·678 comments·yaythefuture·

Took a six-figure pre-seed via Stripe Invoice. Account closed three days later; funds frozen 120 days.

23 points·9 comments·pureyang··paraphrase — a faithful summary of the source, not a verbatim quote
r/smallbusiness

“Payment Processors Are Killing Small Businesses By Holding Our Money Hostage”

19points29comments

Processor-general, not only Stripe

Rohan Thakor

US LLC, EIN, verified bank, full KYC before the first payment — account closed anyway.

paraphrase — a faithful summary of the source, not a verbatim quote

“They don't care about fixing your payment problem. They care about fixing their PR problem.”

HN commenter·

Support tiers: “(1) Free, but garbage. (2) Starting at £1,400 per month.”

HN commenter·
Ted Fickes

Auto-enrolled into paid Radar in January: “What a fantastic deal...for Stripe.”

r/smallbusiness

“Stripe charges you $15 for every chargeback — even if you win.”

48points37comments
r/stripe

“Can a customer continue to dispute the same charge over and over again? When will it stop???”

84points43comments
Ana Valens@acvalensVT

Stripe reps told two separate callers it blocks purchase of LGBTQ content.

paraphrase — a faithful summary of the source, not a verbatim quote
241reposts620likes76Kviews

Status ID not captured; search link

Zorq AI: ~$85,000 withheld; account closed for an “unacceptable level of risk.” Filing PSD2 regulator complaints.

36 points·19 comments·MelkerWendelbo··paraphrase — a faithful summary of the source, not a verbatim quote

[flagged] on HN

r/stripe

“Stripe Closed our account and holding money” — the sub's most-discussed freeze thread of the year.

38points117comments
scaling_shields@scaling_shields

“stripe isnt a payment processor, its a shadow bank”

142likes22Kviews

Status ID not captured; search link

cappy101OffshoreCorpTalk

High six figures frozen for 10 months — no court order, no timeline.

paraphrase — a faithful summary of the source, not a verbatim quote

40–50 min chat wait, converted to email, ignored — “TICKET IS CLOSED few mins after.”

Show HN·
r/stripe

“Stripe is about to start making you pay for your free Radar protection” — most-commented post of the sub's year.

55points88comments
Ben (PromptBase)Indie Hackers

“I cut my Stripe Connect fees from $9,400/mo to $5” — built and open-sourced the replacement.

Yoav Anergingerlime.com

“Stripe is friendly to 'friendly fraud'” — delivery-proofed order, customer admitted the bank erred; dispute lost anyway.

dieselbrain@dieselbrain.bsky.social

Stripe operators told him plainly he “cannot use stripe for the purchase of LGBTQ content.”

57replies4.1Kreposts8Klikes
KubaDEV Community

A webhook field silently moved: “No announcement. No deprecation warning.”

Real posts, pulled 2026-09 via superagnt_. Engagement as returned by each source. Nothing here is written by us — every card links to its origin.

Rack rates, both sides

What the switch is worth.

Drag your own numbers in. If the answer is that you should stay on Stripe, the panel says so.

$120,100

$1k – $2M, logarithmic

$49

2,451 transactions a month

12%

Cross-border cards, +1.5% on both sides

Payout frequency

4.33 payouts a month, at $2.50 each on swop.

Annual saving on swop

SIMULATED Modelled from published rack rates. Not a quote.

$2,694/yr

Same volume, two price books. At $120,100 a month you'd pay $5,051 on swop against $5,275 on Stripe. The difference is the rate cut minus the adders.

Stripe

$5,275/mo

  • Base rate 2.9%$3,483
  • Per transaction $0.30$735.31
  • Billing 0.7%$840.70
  • International +1.5% on 12%$216.18

swop → Whop

$5,051/mo

  • Base rate 2.7%$3,243
  • Per transaction $0.40$0.30 + $0.07 risk scoring + $0.03 3DS$980.41
  • Billing 0.5%$600.50
  • International +1.5% on 12%$216.18
  • Payouts weekly · $2.50 eachnext-day ACH$10.83

Rack rates, 2026-09. Weekly payouts assumed unless changed. Negotiated pricing swaps the base rate only; per-transaction fees are unchanged. Cross-border, billing and tax adders apply on both sides.

The new part

Proof mode.

Flip one flag and swop mirrors every request to both processors, compares the responses field by field, and shows you the report before you commit.

How proof mode mirrors a requestOne inbound request forks to both Stripe and Whop. Both responses meet at a comparator, which records a match or a diff. Only the Stripe response is returned to your application while the flag is on.Your appsubscriptions.createStripeapi.stripe.com · liveWhopwhop rails · shadowComparatorfield-by-fieldsource of truthrecorded, never returned200 OK · Stripe response only
One flag. Both rails answer. Your customers only ever see Stripe's response until you decide otherwise.

Response parity, last 30 days

SIMULATED Simulated parity report. Illustrative only — not a measurement.

99.99%

41,203 requests compared · 3 diffs, all documented

Parity report

30 daysSIMULATED Simulated dashboard. Illustrative only — not a measurement.
Simulated per-endpoint response parity between Stripe and Whop over 30 days.
EndpointComparedMatchDiffs
POST /v1/payment_intents14,006100.00%No differences
POST /v1/subscriptions12,441100.00%No differences
POST /v1/customers9,812100.00%No differences
GET /v1/invoices4,23899.93%
POST /v1/refunds706100.00%No differences

Parity held for 30 days.

Reversible for 90 days. Your Stripe account stays open, your keys stay valid, and traffic moves back with the same flag.

Mock control. This page cannot move anyone's traffic.

How it works

The schematic.

A Stripe-shaped edge, a translator that keeps your ids and re-signs your webhooks, and Whop underneath.

swop request and webhook architectureForward path: your application calls the swop edge, which speaks the Stripe API shape; the translator holds a bidirectional id map, an idempotency store and a webhook re-signer; it then calls the Whop rails. Return path: a Whop event is translated, re-signed with a Stripe-Signature header, and delivered to your existing webhook endpoint.Your appstripe-node · unchangedswop edgeswop.whop.comTRANSLATORid map · cus_ ⇄ whop_useridempotency store · 24hwebhook re-signer · HMACWhop railspaymentsWhop eventpayment.succeededTranslate + re-signinvoice.payment_succeededYour webhook endpointsignature verifies · ordering preservedsame deployment[ REQUEST PATH ][ WEBHOOK RETURN ]Stripe-Signature: t=1757462400,v1=…ids preserved end to end · cus_… sub_… in_… pi_…
One host swap. The ids, the events and the signature header are the ones your code already parses.Scroll the drawing →

Same IDs

cus_, sub_, in_ and pi_ come back exactly as your database stored them. A bidirectional map holds the Whop id on the other side; you never see it, and you never migrate a primary key.

Same webhooks

Whop events are translated to Stripe event types and re-signed with a Stripe-Signature header your existing verifier accepts. Ordered per object, retried on the same backoff.

Same test cards

4242 4242 4242 4242 still approves; 4000 0000 0000 0002 still declines. Your test suite runs unchanged against the sandbox host before you touch live traffic.

Where it is not one line. Checkout and Payment Links are a host swap and nothing else. Elements is not: the mount points and the confirmation call differ enough that you are looking at a ~30-line component swap, once, per form. We would rather put that on the page than in a footnote after you have migrated.

Concept demo — not a Whop product. Built to argue a position, not to take a payment.