Accrue
Billing state, modeled clearly.
Quickstart
Add Accrue to deps/0, configure the Stripe processor, then run the installer:
defp deps do
[
{:accrue, "~> 0.1.2"}
]
endconfig :accrue, :processor, Accrue.Processor.Stripemix deps.get
mix accrue.installFrom there, configure your runtime Stripe secrets, mount the generated routes, and call your host billing facade for checkout, subscriptions, invoices, and customer self-service.
What ships
- Billing facades for customers, subscriptions, invoices, charges, refunds, coupons, promotion codes, and metered usage.
- Checkout, billing portal, and Connect helpers on top of the Stripe-backed processor contract.
- Webhook ingest, async dispatch, replay tooling, event-ledger history, and operational telemetry.
- Transactional email, invoice PDF rendering, installer tasks, and a Fake-first test surface.
Public API stability
The supported public surface is the facade layer under Accrue.Billing, Accrue.Checkout, Accrue.BillingPortal, Accrue.Connect, Accrue.Events, and Accrue.Test.
Breaking changes for that facade layer follow the deprecation cycle documented in guides/upgrade.md. Accrue deprecates public APIs before removal instead of silently changing behavior in place.
Guides
- Quickstart
- Configuration
- Testing
- Sigra integration
- Custom processors
- Custom PDF adapter
- Branding
- Webhook gotchas
- Upgrade
Security
Use runtime-only secrets for Stripe credentials, keep webhook signing secrets out of source control, and review the repository SECURITY.md before production rollout or vulnerability reporting.