Billing logic you can own
Flexprice sits between a product and the systems that collect money. An application sends events such as API calls, compute time, or database queries. Flexprice aggregates that usage, applies the customer's plan and credits, checks entitlements, and produces invoice line items. A payment processor can then collect the money, while Flexprice remains the source for the pricing calculation.
That distinction matters. Stripe can sell a straightforward subscription very well, but unusual pricing often pushes developers into custom counters, credit ledgers, feature flags, and reconciliation jobs. Flexprice pulls those related jobs into one data model. It supports pay-as-you-go rates, tiers, seats, prepaid and promotional credits, free allowances, overages, and customer-level overrides. Plan versioning is particularly useful because a pricing change should not silently rewrite an existing customer's contract.
Flexprice is aimed at AI and SaaS companies, but any service billed from product events can fit. Go, Python, and JavaScript SDKs lead into the API. It can also sit above Stripe or Chargebee instead of replacing an existing payment flow.
The strongest parts are connected
Many open-source projects stop at event metering. Flexprice connects meters to pricing, wallets, subscriptions, invoices, and feature access. That reduces a dangerous class of disagreement where the usage dashboard says one number, the entitlement service enforces another, and the invoice contains a third. Every charge is intended to trace back to measured usage or a defined price.
Credits are more than a cosmetic balance. The README describes prepaid and promotional grants, expiration, and automatic top-ups. Those pieces suit products that sell token bundles or include monthly credits before charging overage. Entitlements can be boolean features, metered limits, or configuration values, so the same plan that determines price can also tell the application what a customer may use.
A central API is easier to audit than copying billing calculations into checkout, product access, support, and reporting surfaces. The dashboard lets non-developers edit the catalog while applications keep an explicit integration point.
This breadth is Flexprice's reason to exist, but it also raises the cost of a mistake. Meter aggregation, credit ordering, proration, invoice timing, and external payment sync all become financially significant behavior. Treat the product as part of the money path, not as an analytics add-on.
One setup command hides a real platform
The local quick start is refreshingly direct: clone the repository and run make dev-setup. It builds the application image, runs database migrations, initializes Kafka, and starts the API, consumer, and worker. The setup guide includes service addresses, development credentials, useful Make targets, direct Go execution, an OpenAPI file, and troubleshooting commands. An experienced backend developer should be able to evaluate the API without reverse-engineering the repository.
The resulting environment is not small. PostgreSQL stores transactional data, Kafka carries events, ClickHouse handles analytical usage data, Redis supports the stack, and Temporal runs workflows. Kafka, Temporal, and ClickHouse each introduce their own failure modes, upgrade rules, storage needs, and monitoring vocabulary. The direct go run route still asks Docker Compose to start those dependencies, so bypassing the application container does not remove the architecture.
Production work therefore includes backups for two databases, broker retention, workflow health, migrations, secret management, and capacity tests that resemble real event traffic. Payment and accounting integrations also need reconciliation procedures. A successful health check proves that services started; it does not prove that rounding, discounts, credits, taxes, and retries match your contracts.
Open core, active fixes, and billing risk
The repository describes itself as commercial open source. Its core is under AGPLv3, while code in ee and internal/ee is commercially licensed. That is transparent, but procurement and legal review should happen before an implementation grows around enterprise-only behavior. Teams that need a permissive license should stop here.
Open issue activity gives a useful view of current edges. One report says coupon discounts calculated in Flexprice were not reflected in Stripe invoice line items. Another says metadata sent while creating a subscription is discarded. An August security tracking issue says the authenticated API lacks a general application-level rate limiter, although it notes that the highlighted webhook retry path is tenant-scoped and requires a valid key. These are not reasons to dismiss the project, but they are reasons to build contract tests and place rate controls at the ingress.
The infrastructure is also being tuned under real load. Open reports track Kafka 4.x offset-commit compatibility, Temporal startup retries, and excessive one-row ClickHouse parts, with implementation pull requests linked from those reports. That is encouraging evidence of operational attention. It also shows why adopting Flexprice means following upgrades and fixes rather than installing it once and forgetting it.
Healthy momentum, with a careful recommendation
The last push was August 13, 2026, and the latest tagged release was v2.1.23 on August 5. The repository had 210 open issues and pull requests combined, including 78 actual open issues, with work updated throughout August. More than 4,300 stars and frequent release tags indicate meaningful interest, while the active queue shows a product still changing quickly.
Documentation is good enough to understand both the product model and local architecture before installation. The README explains why Flexprice exists, how events flow through billing, which pricing patterns it covers, and what the development command starts. The separate setup guide and API specification add practical depth. Operational guidance is less complete than the local path, so production teams will still design their own reliability playbook.
Flexprice is best for a company that already knows basic subscriptions are insufficient. It can replace a surprising amount of fragile internal billing code, and its connected treatment of usage, credits, entitlements, and invoices is compelling. For a simple SaaS plan, stay with the payment provider. For complex usage pricing, run a proof of concept with real contract fixtures, audit the license boundary, and make reconciliation a release gate.