veeqtoh/cashier-paystack
Laravel Cashier for Paystack: a fluent billing library that brings subscriptions, customers, payment methods, single charges, invoices, refunds, and webhook handling to your Laravel app with minimal configuration.
Build vs. buy for subscription billing in Paystack markets. If we are a Laravel shop targeting Nigeria/Ghana (Paystack's core footprint), the alternative to this package is not "free" — it is 4–8 engineer-weeks building and maintaining subscription state machines: trial windows, grace periods, cancel-at-period-end, resume-without-rebilling, plan/entitlement checks, webhook reconciliation, refunds, invoice records. This package collapses that into a Billable trait plus a subscriptions table, which is a material scope reduction for an MVP or a regional expansion line.
subscribed('main') as route middleware), cancel/resume with grace-period retention flows, and single-charge add-ons. This lets us ship paywalled features and a trial-to-paid funnel in one increment rather than three.Adopt when:
Look elsewhere when:
webong/cashier-paystack) was abandoned, which is a direct signal about category fragility.laravel/cashier is the obvious, better-supported choice.Mandatory due diligence before committing: confirm actual release cadence and issue responsiveness (treat the 2026-07-06 release date as a claim to verify, not a fact); inspect webhook signature verification and idempotency handling in source; check test coverage; validate a full sandbox cycle (subscribe → trial → cancel → grace → resume → refund → webhook replay); confirm migration compatibility with our existing users table.
To executives: We can enter Paystack-based markets without building a billing system. This package gives us subscriptions, trials, cancellations, grace periods, refunds, and invoices out of the box, modeled on Laravel's official Cashier so it is familiar to our engineers. That converts a multi-week build into roughly a week of integration plus a pilot — the kind of trade that de-risks a market test before we commit headcount to it.
To engineering: It is a Billable trait and a subscriptions table, with the same method names you already know from Cashier (newSubscription, subscribed, onTrial, onGracePeriod, cancelNow, resume). Low integration friction, no new architectural pattern to learn. The caveats are real and we should say them plainly: single maintainer, near-zero adoption, no dependents, and a prior package in this exact niche was abandoned. Mitigation is standard — pin the version, read the webhook and charge paths before trusting them, and treat the MIT fork as our insurance policy.
The ask: Approve a time-boxed spike (1–2 sprints) behind a feature flag, scoped to a single plan and a sandbox Paystack account, with a written go/no-go covering: sandbox lifecycle validation, webhook reliability, source review of security-sensitive paths, and an estimate of what forking would cost us. If the spike passes, we ship a regional pricing test; if it fails, the sunk cost is days, not a quarter, and the fallback (official Paystack SDK plus a thin in-house billing layer) is already characterized.
How can I help you explore Laravel packages today?