Paddle and Lemon Squeezy side by side for selling code: the same 5% + 50¢ fee, a 1.5% international card surcharge on Lemon Squeezy, and dispute fees of $20 against $15.

Paddle vs Lemon Squeezy for Selling Code: Same 5% + 50¢, Different Bill

Provider decision for code sellers choosing between the two merchants of record: the monthly bill behind the identical headline fee, which sellers each one accepts as Lemon Squeezy heads for Stripe Managed Payments, what each one sends when money goes back to a buyer, and where the GitHub username gets collected.

#paddle #lemon squeezy #merchant of record #payments #github #repoaccess

Paddle’s pricing page says 5% + 50¢ per checkout. Lemon Squeezy’s fee page opens with $0.50 + 5%. Most comparisons stop there, at the same number.

Run a US seller through the same fee data, $99 a sale, twenty sales a month, 35% of buyers abroad, and the bill comes out at $115 a month on Paddle and $124 on Lemon Squeezy. The $9 sits in two lines neither headline mentions.

Paddle vs Lemon Squeezy for selling code: two merchants of record, one headline fee

Both are merchants of record: the seller on your buyer’s invoice, the party that collects and remits sales tax and fights the disputes. On that job they are interchangeable.

For someone selling code that lives in a private GitHub repository, a kit, a template or a paid course, four other things decide between them: what the month actually costs, whether each one will take you next year, what each sends to your code when money goes back to a buyer, and how the buyer gets their GitHub username to you. I wrote the delivery adapters for both, so the last two come mostly from running them against live money rather than from the docs alone.

TL;DR

  • Same 5% + 50¢ headline; at $99 × 20 sales, 35% abroad: Paddle $115 a month, Lemon Squeezy $124
  • Lemon Squeezy adds 1.5% per non-US card; Paddle charges $20 per dispute against $15
  • Lemon Squeezy pays out to 119 countries; Stripe Managed Payments, where it is heading, takes sellers from 37
  • Refunds can revoke repo access automatically on both; a Lemon Squeezy chargeback has no documented event

Where Paddle and Lemon Squeezy fees split: international cards against the dispute fee

The shared part is easy. At $99, 5% + 50¢ is $5.45 a sale, and twenty sales make $109.00 a month on Paddle’s pricing and on Lemon Squeezy’s fee page alike. Both keep that fee when you refund a sale.

The first split is the card. Lemon Squeezy adds “+1.5% for international (outside of the US) transactions”, so seven foreign buyers out of twenty cost $10.40 more a month. Paddle’s page adds no surcharge for foreign cards: it lists multiple currencies and payment methods inside the fee and calls the price all-inclusive.

The second split is the dispute, and it runs the other way. Paddle charges 20 USD, GBP or EUR per chargeback and does not refund it even when Paddle wins the case. Lemon Squeezy charges $15. At a 1.5% dispute rate, 0.3 disputes a month cost $6.00 on Paddle and $4.50 on Lemon Squeezy.

$99 a sale, 20 sales a month, US sellerPaddleLemon Squeezy
5% + 50¢ per sale$109.00$109.00
International cards, 35% of sales$0$10.40
Disputes, 1.5% of sales$6.00$4.50
Per month$115.00$123.90

So the question for your own numbers is which line grows faster. Every international sale costs 1.5% of the price more on Lemon Squeezy, $1.49 at $99, and every dispute costs $5 more on Paddle. At 1.5% disputes the lines cross at about 5% foreign buyers: with none at all, Lemon Squeezy comes out at $113.50 against Paddle’s $115.00.

Price moves the gap too. With the same 35% of buyers abroad, Paddle is $1.55 a month cheaper at $29 and $24.64 cheaper at $249, because the surcharge is a percentage and the dispute fee is flat.

Where you live changes it again. Lemon Squeezy pays out free to US bank accounts and takes 1% per payout to a bank anywhere else, which adds $19.80 a month to the same scenario and brings it to $143.69. Paddle pays out free “for most countries” and warns of a $15 SWIFT fee for certain countries; even with that fee on every monthly payout, Paddle stays at $130.

These figures come from the fee data behind my repo access cost calculator, which runs the same arithmetic for your price, volume, buyer mix and country. PayPal is the one line it cannot price: Lemon Squeezy adds another 1.5% to a PayPal payment, and which buyers pay that way is not something you choose.

Which one will take you: Lemon Squeezy’s move to Stripe Managed Payments and the 37-country cut?

A cheaper bill matters only if both will have you. Paddle works with software businesses anywhere except a published list of 28 places, and decides on you by reviewing your business, not by where you live. Why that makes Paddle the default for sellers Stripe does not serve is its own read: the Paddle guide.

Lemon Squeezy sends bank payouts to 119 countries, and to PayPal elsewhere. The catch is where it is going. Its January 2026 update names the goal as “an easy way to migrate to Stripe Managed Payments”, and Managed Payments accepts sellers based in 37 locations: 31 in Europe, the US and Canada, and Australia, Japan, Hong Kong and Singapore.

Every one of those 37 is already on Lemon Squeezy’s list, so 82 of its payout countries have no documented place at the destination. Pakistan, Nigeria, Turkey, Bangladesh, Egypt and India are among them. There is no deadline and no shutdown date, and Lemon Squeezy works today.

For a seller in one of the 37, that is a detail: Lemon Squeezy now and Managed Payments later are both merchant-of-record routes. For a seller in one of the 82, choosing Lemon Squeezy means choosing a rail whose announced next step does not include you. What the move changes for repo sellers who are already on Lemon Squeezy is covered in the Lemon Squeezy migration read.

How Paddle and Lemon Squeezy pay you: once a month or twice

Paddle runs one payout a month. Whatever sits above your threshold on the 1st (at least $100, higher if you set it) leaves by the 15th as a wire transfer or a Payoneer payment and normally lands three working days later.

Lemon Squeezy runs two: every sale is held for 13 days, and what has cleared goes out on the 1st and on the 15th, provided at least $50 is waiting. Bank transfers are converted to your currency at the mid-market rate and take one to five business days; PayPal transfers stay in dollars, as Lemon Squeezy’s getting-paid page sets out.

PaddleLemon Squeezy
How oftenMonthly, sent by the 15thTwice a month, on the 1st and the 15th
Minimum balance$100, adjustable upward$50
Where the money goesWire transfer or PayoneerBank in local currency, or PayPal in USD
Payout feeNone in most countries, $15 SWIFT in someFree to a US bank, 1% to other banks, PayPal $0.50 in the US or 3% capped at $30 elsewhere

For cash flow the difference is frequency. Lemon Squeezy pays twice as often, while on Paddle a sale from the first days of a month sits until the following month’s run.

What a refund and a chargeback send to your delivery code

Neither provider knows what a GitHub repository is. Each paid order produces a webhook and an email to the buyer, and whatever invites the buyer to your repo, and removes them when the money goes back, is code you run. So the useful comparison is what each provider tells that code, and when.

Paddle: an adjustment with a lifecycle

A Paddle sale reaches your code as transaction.completed, and everything that takes money back arrives as an adjustment, on adjustment.created and adjustment.updated. The action says what happened: refund, credit, chargeback, chargeback_warning, or a reversal of one of them. The status says where it stands: pending_approval, approved, rejected or reversed.

What revokes access is an approved refund or a chargeback. A refund waiting for Paddle’s approval is not money gone yet, and neither is a chargeback_warning, which Paddle describes as an early signal with a window of about 48 hours to act. My adapter leaves both alone and changes nothing on GitHub.

One field lies. Paddle has marked a genuine full refund with type: partial, which I found with a real refund, not in the documentation. A rule that revokes only on full refunds would skip real refunds on Paddle, so the setup revokes on any approved refund.

Paddle also refunds on its own. On a pre-chargeback alert it issues “a full refund to the buyer before the chargeback is finalised”. My adapter does not look at who created a refund, so an approved refund adjustment revokes access whoever made it.

A dispute Paddle wins comes back as chargeback_reverse, and it does not return the buyer’s access. The worker ignores reversals, so the buyer stays out until you invite them back to the team by hand, and the $20 fee stays gone too. That manual invitation sits outside the worker’s records, so no later event on the same transaction will remove it again.

Lemon Squeezy: one refund event and an undocumented dispute

A Lemon Squeezy sale arrives as order_created and a refund as order_refunded, which its event list describes as a full or partial refund on an order. Whether a refund was full or partial can be computed reliably from its payload, so a revoke-only-on-full-refund policy holds on this provider. Lemon Squeezy may also refund a buyer itself within 60 days to head off a chargeback, and its event list draws no line between a refund you issue and one it issues.

Chargebacks are the gap. The published list has 17 event types and no dispute among them. Disputes do produce events, yet none of them is documented, the API reference defines no dispute object, and test mode offers no way to raise one. Without a payload to test against, there is nothing reliable to build on.

That makes every Lemon Squeezy chargeback a manual revoke: you see the dispute in the dashboard or your inbox and remove the buyer from the team yourself. For a $29 kit that may be a shrug. For a $249 one, with a buyer who keeps the code and gets the money back, it is the strongest argument in this section for Paddle.

Getting the buyer’s GitHub username: before payment on Paddle, after it on Lemon Squeezy

Neither checkout lets the buyer enter a GitHub username. Paddle’s hosted checkout asks for payment details and has no field for anything else; Lemon Squeezy lets you attach custom data to an order, but you set it, the buyer does not. So each provider pushes the username step to a different moment.

Paddle adds a condition first: live payments wait for its approval of your domain, and the page the checkout runs on has to link your terms, refund and privacy policies. RepoAccess Pro turns that into the username step. The worker serves a checkout page on your domain, the buyer types and confirms the handle, and only then does Paddle’s payment frame open, as covered on the Paddle integration page.

Lemon Squeezy hosts its own checkout and needs no domain. The buyer pays first. A button on the order confirmation popup, repeated in the receipt email, takes them to a claim page where they type the username once, as described on the Lemon Squeezy integration page. Selling for real needs the store activated after a business questionnaire and an identity check, which usually takes two to three business days.

The trade is time against order. Paddle costs more setup before the first sale and collects the handle before the money moves. Lemon Squeezy gets you selling sooner and collects the handle after, which is why the receipt email repeats the popup’s button.

When neither Paddle nor Lemon Squeezy fits

A merchant of record is worth its extra points only if you would otherwise owe sales tax in places you have never been. If Stripe takes you and you are ready to file that tax yourself, Stripe’s standard pricing costs the same US seller about $85 a month against Paddle’s $115.

If Stripe does not take sellers from your country, the country question comes before this one, and the guide for sellers Stripe does not serve walks through Paddle, Lemon Squeezy, Gumroad, Razorpay and Telegram Stars. Razorpay is a gateway for sellers in India, so the tax stays yours. Telegram Stars takes payment inside Telegram itself, with no card and no chargebacks at all.

The calculator linked above lists those rails too, so the comparison you ran for Paddle and Lemon Squeezy extends to them with the same inputs.

What this comparison leaves out

It is one scenario. Your price, your share of foreign buyers and your dispute rate move the answer, and the crossover near 5% international buyers holds only at a 1.5% dispute rate. A higher dispute rate moves the crossover up; with no disputes at all, Paddle is cheaper as soon as one buyer pays with a foreign card.

Some costs are not in the table. Lemon Squeezy’s extra 1.5% on PayPal payments and its PayPal payout fees depend on how your buyers pay and how you withdraw. Paddle’s SWIFT fee and your bank’s conversion depend on your country. Paddle also sets custom pricing for products under $10.

Fees are from the providers’ own pages in September 2026, and both change them on their own schedule. Lemon Squeezy’s terms after the Managed Payments move are not published, and the move has no date.

And one behaviour above is documented rather than watched: anything Lemon Squeezy sends for a dispute. Launch time differs as well: Paddle wants a domain approval and three policy pages, Lemon Squeezy an activation review of a few days.

Pick the rail, keep the delivery

The headline fee was never the difference. Pick the rail on the surcharge against the dispute fee for your own buyer mix, and on whether the country list you stand on today is the one you will stand on next year.

Whichever you pick, the part that invites a buyer to your repo and removes them on a refund should not be welded to it. RepoAccess Pro ships live-tested adapters for both Paddle and Lemon Squeezy on one worker in your own Cloudflare account, with the same product-to-team mapping behind each, so moving from one to the other is a configuration change rather than a rewrite. It is a one-time licence, and it takes no cut of a sale.

Frequently Asked Questions

Are Paddle and Lemon Squeezy fees the same?

The headline fee is the same, 5% + 50¢ per sale on both, and the bill is not. Lemon Squeezy adds 1.5% on every sale paid with a card from outside the US and another 1.5% on PayPal payments, while Paddle adds no surcharge for foreign cards. Paddle charges more per dispute: $20, €20 or £20, not refunded even when the dispute is won, against Lemon Squeezy's $15. For a US seller at $99 a sale, 20 sales a month, 35% international buyers and 1.5% disputes, that comes to $115.00 a month on Paddle and $123.90 on Lemon Squeezy. Both keep their fee on a refunded sale.

When is Lemon Squeezy cheaper than Paddle?

When almost all of your buyers pay with US cards. Each international sale costs 1.5% of the price more on Lemon Squeezy, which is $1.49 on a $99 product, and each dispute costs $5 more on Paddle. At a 1.5% dispute rate the two lines cross at roughly 5% international buyers: with none at all, Lemon Squeezy costs $113.50 a month against Paddle's $115.00 for 20 sales at $99. Above that share Paddle is cheaper, and the gap grows with the price: $1.55 a month at $29, $8.90 at $99 and $24.64 at $249, all with 35% international buyers. A seller outside the US also pays Lemon Squeezy 1% per bank payout.

Does Lemon Squeezy send a webhook for chargebacks?

Not one you can build on. Lemon Squeezy's published webhook list has 17 event types and none of them is a dispute or a chargeback; refunds arrive as order_refunded, which covers full and partial refunds. Dispute events do exist on Lemon Squeezy, but the documentation leaves them out, the API reference defines no dispute object, and test mode has no way to raise one, so nobody can write a handler against a payload they have never seen. Lemon Squeezy fights the dispute itself and deducts a $15 fee. If you deliver code through a private GitHub repo, removing a buyer after a Lemon Squeezy chargeback is a manual step.

What does Paddle send on a refund and a chargeback?

An adjustment, delivered as adjustment.created and adjustment.updated. The action field says what happened: refund, credit, chargeback, chargeback_warning, or a reversal of one of them. The status field says where it stands: pending_approval, approved, rejected or reversed, and most refunds need Paddle's approval before they count. Code that removes access should act on an approved refund and on a chargeback, and leave a pending refund, a rejected one and a chargeback_warning alone. One trap: Paddle has been seen to mark a genuine full refund with type partial, so a rule that revokes only on full refunds skips real refunds. A won dispute arrives as chargeback_reverse and does not restore access by itself.

Do I need a website or a domain to sell code through Paddle?

Yes. Paddle reviews and approves a domain before it takes live payments, and it expects your terms, refund policy and privacy policy to be linked from the page the checkout runs on; a free workers.dev subdomain is not accepted. Paddle's hosted checkout also offers the buyer no input for a GitHub username. RepoAccess Pro answers both with a checkout page its own worker serves on your domain, where the buyer types and confirms the username before Paddle's payment frame opens. Lemon Squeezy needs no domain: it hosts the checkout, and the buyer gives the username on a claim page after paying.

Can I sell code with Lemon Squeezy from a country outside Stripe Managed Payments?

Today, yes, if Lemon Squeezy pays out to your country: its bank payouts reach 119 countries, with PayPal for the rest. The open question is the next step. Lemon Squeezy has said it wants to move its sellers to Stripe Managed Payments, and that product takes sellers based in 37 locations, all of them inside the 119. So 82 of Lemon Squeezy's payout countries, among them Pakistan, Nigeria, Turkey, Bangladesh, Egypt and India, have no documented place at the destination. There is no deadline and no shutdown date. A seller in one of those countries choosing a merchant of record today can pick Paddle, which works with software sellers everywhere except a published list of 28 places.

Paddle vs Lemon Squeezy vs Polar: which one fits a code seller?

Paddle and Lemon Squeezy are merchants of record with the same 5% + 50¢ headline fee and no GitHub feature, so repo delivery is a webhook you wire yourself. Polar is a merchant of record too, charges 5% + 50¢ on its free Starter plan with lower rates on paid plans, adds 1.5% on international cards, and can add buyers to a GitHub repository itself as part of a purchase. It pays out through Stripe Connect, so it reaches sellers where Stripe does. Paddle stands on its own rails, and Lemon Squeezy pays out to 119 countries. Pick Polar for built-in delivery inside Stripe's footprint, Paddle or Lemon Squeezy for wider reach with delivery you own.

When is neither Paddle nor Lemon Squeezy the right choice?

When you do not need a merchant of record, or when your country or your buyers point elsewhere. If Stripe accepts you and you are ready to register and file sales tax yourself, Stripe's standard pricing costs a US seller about $85 a month at $99 a sale and 20 sales, against $115 on Paddle. A seller in India can take Razorpay, a gateway at 2% plus GST on the fee, and file tax as the seller. Telegram Stars takes payment in a Telegram chat, with no card involved and no chargebacks at all. And a seller who does not want to run webhook code can take a platform with repo delivery built in, such as Polar, and accept its checkout and its payout rails with it.

How often do Paddle and Lemon Squeezy pay out?

Lemon Squeezy pays out twice as often as Paddle. Its sales wait 13 days, then everything cleared is paid on the 1st and on the 15th when at least $50 is waiting, converted to your currency for a bank or kept in dollars for PayPal. Paddle makes a single run each month: a balance above your threshold, $100 at minimum, leaves by the 15th by wire or Payoneer. On fees, Lemon Squeezy is free only to US banks and takes 1% elsewhere, while Paddle charges nothing in most countries and a $15 SWIFT fee in some.

September 25, 2026 · September 25, 2026
← Back to Overview

We use cookies to analyze site traffic and improve your experience. By clicking "Accept All", you consent to our use of analytical tracking.