Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Laravel Package

lemonsqueezy/laravel

Official Laravel package for Lemon Squeezy that makes integrating payments simple. Add the Billable trait to models, then handle checkouts, subscriptions, webhooks, and license keys with an expressive, familiar API.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Monetization go-live timing. Choosing Lemon Squeezy as merchant of record (MoR) means the company does not build or operate tax/VAT remittance, invoicing, or payment-failure handling. This package turns that decision into days of Laravel work rather than a billing subsystem. It directly influences whether the first paid tier ships this quarter or next.
  • Build vs. buy on billing. Billing, dunning, tax, and subscription state are almost never differentiating for an early- or mid-stage product. Use this package as the "buy" side of the argument: it is the thin adapter that lets engineering stay out of the billing domain while still owning entitlement logic in-app.
  • Pricing and packaging experiments. Checkout creation, variant/product IDs, trials, coupons, and subscription upgrades/downgrades can be driven from application code. PM can run pricing tests and launch tiers without waiting on platform migrations; each experiment is a config/product change, not an engineering project.
  • Subscription lifecycle as a product surface. Webhook-driven subscription state (created, updated, cancelled, paused, payment failed, expired) is what powers feature gating, upgrade prompts, in-app cancellation flows, and win-back nudges. Mapping these events to lifecycle emails and paywall state is a roadmap item this package de-risks.
  • Licensing and self-serve distribution. For developer-tool or template-style products, license-key issuance and activation via Lemon Squeezy webhooks supports a self-serve commercial motion without building key management.
  • Affiliate and global launch. MoR-backed checkout with local currency presentation and tax handling lowers the operational bar to selling outside the home market, which affects launch-scope decisions (which regions to open, when).
  • Buy-vs-extend for the long term. Committing to an adapter now sets an exit cost: how tightly subscription state is coupled to Lemon Squeezy webhooks determines how expensive a later move to Stripe Billing/Paddle would be. That is a deliberate architectural bet worth recording.

When to Consider This Package

Adopt when most of these hold:

  • The product is Laravel-based and the team wants to own billing integration in first-party code rather than adopt a full billing platform like Chargebee or Recurly. As of 1.9.0 the package tracks current framework and runtime versions (compatibility extended to Laravel 13 and PHP 8.5), so it will not pin your upgrade roadmap in the near term.
  • You are selling SaaS subscriptions, one-off licenses, or digital goods and want a merchant of record to absorb global sales tax and VAT compliance.
  • The company is small-to-mid stage: no dedicated billing/finance engineering team, and speed to first revenue outweighs deep customization.
  • You need standard subscription mechanics — plans, trials, coupons, upgrades/downgrades, cancellation, license keys — and do not need usage-based/metered billing at fine granularity (Lemon Squeezy's metered support is limited relative to Stripe's).
  • Your webhook infrastructure is HTTP-accessible and you can verify signatures; you want the package's event mapping rather than hand-rolling payload parsing. Note: as of 1.9.0 the package no longer requires the pcntl PHP extension, so it installs cleanly on shared hosting and standard managed-PHP environments.
  • You are comfortable with a single-vendor dependency and a package with modest community traction (~590 stars, no declared dependents) — meaning your team can read and patch it if needed. The 1.9.0 cycle is a mildly positive signal here: continued maintenance releases, forward-compatible version support, and several new outside contributors, though governance remains small.

Look elsewhere when:

  • You need Stripe-grade flexibility: complex proration rules, multi-currency price localization at the line-item level, usage metering at scale, or an extensive partner ecosystem.
  • Enterprise procurement requires invoicing, PO-based billing, net terms, or a vendor with a large established footprint — Paddle or Stripe Billing + Stripe Tax may be a better organizational fit.
  • You are not on Laravel, or you run a multi-service architecture where billing must be a standalone service rather than app-embedded.
  • You expect high-stakes SLA requirements: the package's governance is small, so long-term maintenance risk is yours. If that is unacceptable, prefer a vendor SDK with formal support.
  • Billing is a core differentiator (marketplace payouts, revenue sharing, complex entitlements) — then a bespoke build or a specialized platform is justified.

How to Pitch It (Stakeholders)

To executives: This is a small, low-cost integration that lets us start charging customers through Lemon Squeezy, which acts as merchant of record — they handle global sales tax, VAT, invoicing, and payment methods on our behalf. In practical terms it moves "first revenue" earlier and removes a compliance workstream we are not staffed to run. The trade-off is vendor concentration: pricing, tax, and payout behavior become partly Lemon Squeezy's, and moving later has a cost. Recommendation: adopt for launch, keep subscription state behind our own service layer so a future migration is contained.

To engineering: It is a Laravel package that wraps Lemon Squeezy's API and webhooks: checkout URL creation, signature-verified webhook endpoint, typed events for order and subscription changes, and model-level helpers for subscription state. Integration effort is small — configuration, a webhook route, and mapping their events to our entitlement checks. The real engineering work is ours, not the package's: idempotent webhook handling, a source-of-truth subscription record, reconciliation with the vendor on drift, and a clear boundary so entitlement lookups never call out to Lemon Squeezy synchronously. Treat the package as a convenience adapter, not a framework: pin the version, review webhook payload assumptions, and be ready to fork if maintenance lags. Version 1.9.0 is a maintenance release — no API or behavioural changes to plan around — that adds Laravel 13 and PHP 8.5 support, drops the pcntl requirement, and fixes the expose listen command's argument parsing; upgrading is low risk and removes an extension prerequisite from our deployment checklist.

To the product team: Practically, this unlocks self-serve checkout, trials, upgrade/downgrade, cancellation, and license keys without a billing build. It also gives us webhook signals — payment failed, subscription cancelled, trial ending — that we can turn into lifecycle messaging and retention features.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource