---
title: "Lemon Squeezy to GitHub Repo Access: Sell Code With Lemon Squeezy as Your Merchant of Record"
description: "Integration page for RepoAccess Pro with Lemon Squeezy: what Lemon Squeezy does and does not do for a code seller, how the buyer gives a GitHub username, what a refund does and why there is no chargeback event, and what the Stripe Managed Payments migration means for delivery."
canonical: "https://edgekits.dev/en/tools/repoaccess/lemon-squeezy/"
published: "2026-09-22"
tags: ["Lemon Squeezy", "Merchant of Record", "GitHub", "RepoAccess", "Cloudflare Workers"]
---

You sell a boilerplate, a starter kit or a course that lives in a private GitHub repository, and Lemon Squeezy is your checkout, or the one you are choosing because Stripe is not available where you are. RepoAccess Pro is the delivery half: a Lemon Squeezy order becomes a GitHub team invitation, and a Lemon Squeezy refund takes that access away. It is a one-time licence, it runs as one Cloudflare Worker on your own account, and Lemon Squeezy stays the merchant of record on every sale.

This page is what you need to know about Lemon Squeezy specifically before you buy. The general product, its price and the other adapters are on [the RepoAccess page](/en/tools/repoaccess/).

## What Lemon Squeezy does for a code seller, and what it leaves to you

Lemon Squeezy is a merchant of record: it is the seller on the buyer's invoice, so VAT, GST and US sales tax are collected and remitted by Lemon Squeezy, and you receive a payout net of its fee. It pays out to bank accounts in [119 countries](https://docs.lemonsqueezy.com/help/getting-started/supported-countries) and by PayPal elsewhere, on the 1st and the 15th, from a $50 balance, which is why it is the checkout most sellers outside Stripe's list already use.

Two things Lemon Squeezy does not do. Its checkout has no buyer-facing field, so it cannot ask for a GitHub username. And a completed order ends with a webhook and a receipt: nothing happens on GitHub. Both gaps are RepoAccess's job.

## How the buyer gives their GitHub username on a Lemon Squeezy checkout

Custom data on a Lemon Squeezy order is passed by the seller, not typed by the buyer, so the route is the claim page. The buyer pays on Lemon Squeezy's checkout, and a button in the confirmation modal and in the receipt email, carrying the order id, takes them to the claim page the worker serves; they type the GitHub username once and get the team invitation by email. The receipt email is permanent, so a buyer who closes the modal still gets there, and the claim link is single-use: two submissions of the same link cannot grant twice.

Nothing about the detour weakens the identity check. There is no "Login with GitHub" and no OAuth: GitHub's own invitation can only be accepted by the account it was sent to, so the handle typed on the claim page is verified by GitHub itself at the moment of acceptance.

## What a Lemon Squeezy refund does, and why there is no chargeback event

A refund revokes the product that was refunded, not the buyer. A customer who owns two of your products and returns one keeps the other. Whether the refund was full or partial is computed from Lemon Squeezy's own payload, so with this provider a policy that revokes only on full refunds can be trusted; that is not true of every adapter, and the difference is decided per provider, not by you.

Chargebacks work differently here, and you should know it before you buy. Lemon Squeezy is the merchant of record and absorbs disputes itself, so there is no chargeback event for the worker to act on: a refund is the whole revoke surface on this rail. If you learn of a dispute and want the access gone, you remove the buyer from the team by hand.

## The migration to Stripe Managed Payments, and why delivery should not ride the rail

Lemon Squeezy's stated direction is a migration to Stripe Managed Payments, Stripe's own merchant-of-record product. Managed Payments accepts sellers from [37 business locations](https://docs.stripe.com/payments/managed-payments/eligibility); Lemon Squeezy pays out to 119 countries, and all 37 are among them, so 82 Lemon Squeezy countries have no documented seat at the destination. Nobody has said what happens to those sellers, and Lemon Squeezy's sign-up form now asks for your country before it recommends a path.

For delivery this cuts one way. If your invites and revokes are wired to Lemon Squeezy's payloads, a rail change is a rewrite that lands on someone else's schedule. With the delivery layer separate, it is an adapter swap: to Stripe if your country is on the list, to Paddle or Gumroad if it is not, with the product-to-team mapping and every existing buyer's access untouched. The full read of that migration is [its own article](/en/blog/lemon-squeezy-stripe-managed-payments-repo-access/).

## What an evening of DIY does not buy

Wiring one Lemon Squeezy webhook to the GitHub API is an evening's work, and the free AGPL core exists because that is true. What the evening does not produce is the part that costs you money later: a refund whose full-or-partial status is guessed instead of computed, a webhook delivered twice that invites twice, a revoke that trusts a stored flag instead of GitHub's live team membership, a claim link two people can use at once, and a provider that is publicly in motion toward a different rail.

Pro is the maintained version of all of that, for Lemon Squeezy and for Paddle, Gumroad, Razorpay and Telegram Stars, with twelve months of updates from the day you buy. Every version you download in that window is yours to run without limit. The price and the full comparison with the free core are on [the product page](/en/tools/repoaccess/).

## Before you start

You need a Lemon Squeezy store, a GitHub organization with a team per product, a Cloudflare account, and a second GitHub account to play the test buyer. No custom domain is needed, because Lemon Squeezy hosts the checkout and the worker only serves the claim and delivery pages. A new store starts in test mode, which covers the sale, the claim page and the refund end to end; selling for real needs the store activated, a business questionnaire and an identity check that Lemon Squeezy reviews, usually in two to three business days, so start that before your launch date. With those in hand, the guided setup walks a coding agent through the deployment in about an hour.

If your question is whether Lemon Squeezy takes sellers from your country at all, or how its payouts compare with Paddle's and Gumroad's, start with [the country guide](/en/blog/stripe-not-available-in-my-country-sell-code/).

## Frequently Asked Questions

**Q: Does RepoAccess take a cut of Lemon Squeezy sales?**

**A:** No. RepoAccess Pro is a one-time licence and never touches the money: the buyer pays Lemon Squeezy, Lemon Squeezy pays you, and the worker only sees the webhook. Lemon Squeezy's own fee is the only per-sale cost, and it is the same whether you deliver the repository by hand or through RepoAccess. The licence price is on the product page.

---

**Q: Can a buyer type their GitHub username inside Lemon Squeezy's checkout?**

**A:** No. Lemon Squeezy's checkout has no buyer-facing field; custom data on a Lemon Squeezy order is passed by the seller, not typed by the buyer. So the route is the claim page: the buyer pays on Lemon Squeezy's checkout, lands on a page the RepoAccess worker serves, types the GitHub username once, and receives the team invitation by email. The claim link is single-use and the invitation can only be accepted by the account it was sent to, so nothing about the detour weakens the identity check.

---

**Q: Does a Lemon Squeezy refund revoke GitHub access automatically?**

**A:** Yes. The Lemon Squeezy adapter computes whether a refund was full or partial from Lemon Squeezy's own payload, so a policy that revokes only on full refunds can be trusted with this provider, unlike with Paddle. The revoke is scoped to the product that was refunded: a buyer who owns two products and returns one keeps the other. There is no chargeback event on this rail: Lemon Squeezy is the merchant of record and absorbs disputes itself, so a refund is the whole revoke surface. If you learn of a dispute and want the access gone, you remove the buyer by hand.

---

**Q: What happens to my Lemon Squeezy store when it migrates to Stripe Managed Payments?**

**A:** Nothing has been announced beyond the direction. Lemon Squeezy has said its goal is an easy migration to Stripe Managed Payments, which accepts sellers from 37 business locations, while Lemon Squeezy pays out to bank accounts in 119 countries. If your country is among the 37, the destination is Stripe's rail, which the free RepoAccess core already speaks on paper. If it is not, the like-for-like move is another merchant of record such as Paddle. Either way the delivery layer stays where it is: the adapter changes, your product-to-team mapping and your buyers' access do not.

```json
{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","headline":"Lemon Squeezy to GitHub Repo Access: Sell Code With Lemon Squeezy as Your Merchant of Record","description":"Integration page for RepoAccess Pro with Lemon Squeezy: what Lemon Squeezy does and does not do for a code seller, how the buyer gives a GitHub username, what a refund does and why there is no chargeback event, and what the Stripe Managed Payments migration means for delivery.","image":"https://cdn.edgekits.dev/public/products/repoaccess/lemon-squeezy/lemon-squeezy-github-repo-access-hero.jpg","author":{"@type":"Person","name":"Gary Stupak","url":"https://x.com/GaryEdgeKits"},"datePublished":"2026-09-22T15:18:00.000Z","dateModified":"2026-09-23T13:38:00.000Z","keywords":["Lemon Squeezy","Merchant of Record","GitHub","RepoAccess","Cloudflare Workers"],"mainEntityOfPage":{"@type":"WebPage","@id":"https://edgekits.dev/en/tools/repoaccess/lemon-squeezy/"},"publisher":{"@id":"https://edgekits.dev/#organization"}},{"@type":"Organization","@id":"https://edgekits.dev/#organization","name":"EdgeKits","url":"https://edgekits.dev","logo":"https://cdn.edgekits.dev/public/branding/edgekits-logo.png","sameAs":["https://x.com/GaryEdgeKits","https://github.com/EdgeKits","https://www.linkedin.com/in/gary-stupak/"]}]}
```