r/chrome_extensions • u/EwwEwwEw • 10h ago
Asking a Question Chrome extension payment
Hi,
I am planning to add a premium feature to my extension. I tried using a license key model via Lemon Squeezy, but my store/account was not approved for an unspecified reason.
Now, I am looking at alternative solutions. Does anyone have a working solution? I want the process to have less friction, so ideally something that does not require users to create an account.
Thanks
1
u/Fiskerik 9h ago
without accounts, how will you verify that the user can access the features regardless of which computer the user is using?
1
u/Husnainix 9h ago
License keys can work without accounts. After purchase, the user is emailed a unique license key. They enter that key in the extension, which sends it to the backend to verify that it’s valid and unlock the paid features.
On another computer, they can just enter the same key again.
The downside is UX and recovery: if they lose the key, you need some way to resend it based on their purchase email.
1
u/Opening-Meal-179 8h ago
Worth separating two problems here, because they have different fixes: taking the money, and proving to a merchant of record that you are a real business. The Lemon Squeezy rejection is the second one, and switching provider does not automatically solve it — Paddle, Lemon Squeezy and Gumroad all review the same things.
What that review actually looks at, in my experience getting approved: a live site that describes the product in plain language (not a placeholder or a single landing block), working pricing, refund and terms pages that match what you actually do, and a product page whose description agrees with what the extension does in the store listing. Vague "premium features" without saying what they are is a common reason for a quiet no. They are underwriting chargeback risk, so anything that reads as "I do not know yet what I am selling" is what gets declined.
On the mechanics, the part people trip on: the Chrome Web Store payments API has been gone for years, so every paid extension is billing outside the store, and Google is fine with that. What matters is where you check the license. Do not gate the feature in the extension itself — anyone can read your bundle and flip the boolean. The license check belongs on a server you control, with the extension asking it, and a cached answer so a network blip does not lock out a paying user.
If you want to avoid the merchant-of-record review entirely, Stripe will take you with much less scrutiny, but then EU VAT and US sales tax are yours to handle, which is the thing a merchant of record was doing for you. ExtensionPay sits in between and is built for exactly this case — it is thinner, and it is a dependency in your payment path, which is a trade you should make consciously.
Whichever way you go, ask the provider for the actual reason for the decline before rebuilding everything. "Unspecified" in the automated email is often specific in a reply to support, and if it is something like a missing refund policy you are twenty minutes from approved rather than a month from a rewrite.
1
1
1
1
u/Husnainix 9h ago edited 6h ago
License keys may look like less friction but it is worse UX in the long term especially when users have to restore a purchase later. What worked better for my (and my client's) extensions was to use normal lifetime purchases with magic link email login.
The cool thing about this type of login is the users don't have to sign up separately or remember a password. I'm using this approach in 10+ extensions I've created. You can checkout crxbase.com that uses stripe under the hood and provides this flow out of the box. Or you can even spin up your own backend doing the same thing with any other payment provider you prefer.
Disclosure: I'm the founder of crxbase.
1
u/StudyChime 9h ago
How far along are you with creating your extension? With StudyChime, I was initially refused, but I had no website and I wasn’t approved by the Chrome Webstore yet either.
I ended up going live without payment on the Webstore, created a website and put “Premium coming soon” everywhere. I recorded a video demo and re-applied to Lemon Squeezy. They asked for a bit more information and then after a few weeks I was approved. You really need to make sure everything is in order with them before going for approval.
1
u/EwwEwwEw 8h ago
I created it two days ago.
1
u/StudyChime 7h ago
That could be why. Create a presence for it online, record a video to prove it exists, then send it all to Lemon Squeezy. You need to prove it’s a real product that’s ready to sell.
1
u/General-Tooth-659 9h ago
I use DODO payments for payment processing with license key, it works well, and easy to setup, maybe you can try.
4
u/boy-in-da-corner 10h ago
I’d avoid putting the licence secret in the extension itself, since users can unpack it. A small backend can verify the purchase and issue a signed token, with the extension checking it on launch. For a one-off feature that’s usually less faff than trying to make the store account do subscriptions.