Contact Us
Webflow Premium Partner Ehab Fayez
Back to Agent Skills
Data & Analytics

LemonSqueezy Payments

Sell digital products and SaaS subscriptions with LemonSqueezy as a merchant of record for indie developers.

Claude Code Cursor Copilot Windsurf

Overview

LemonSqueezy is a merchant of record payment platform designed for indie developers and small SaaS businesses. Like Paddle, it handles all tax compliance globally, but with a simpler setup process and pricing model optimized for smaller businesses. It supports digital downloads, subscriptions, license key generation, and donation-style payments.

The platform provides a beautiful, customizable checkout overlay that handles payment collection, tax calculation, and receipt delivery. LemonSqueezy supports credit cards and PayPal, with automatic currency conversion for 30+ currencies. Built-in features include discount codes, affiliate programs, email marketing, and a customer portal for subscription management.

The @lemonsqueezy/lemonsqueezy.js SDK provides a typed API for managing products, variants, checkouts, subscriptions, and license keys. Webhooks deliver events for purchases, subscription changes, and license activations. License key validation enables software licensing with activation limits, expiration dates, and hardware fingerprinting. The platform is particularly popular with indie hackers, course creators, and desktop app developers.

Who Is This For?

  • Sell software subscriptions with automatic tax handling
  • Generate and validate license keys for desktop apps
  • Create a checkout for digital downloads and courses
  • Set up affiliate programs for product distribution

Installation

Setup for Claude Code
npm install @lemonsqueezy/lemonsqueezy.js

Configuration

import { lemonSqueezySetup, createCheckout, getSubscription } from "@lemonsqueezy/lemonsqueezy.js"

lemonSqueezySetup({ apiKey: process.env.LEMON_SQUEEZY_API_KEY! })

// Create a checkout
const { data } = await createCheckout("store-id", "variant-id", {
  checkoutData: {
    email: "user@example.com",
    custom: { userId: "123" },
  },
})

// Get subscription
const sub = await getSubscription("sub-id")