Stripe billing plugin for Belgie
Project description
Belgie Stripe: Billing and Subscription Management
Belgie Stripe adds Stripe customer creation, Checkout-based subscription acquisition, Customer Portal management, and webhook-driven subscription syncing to Belgie.
The package follows Belgie's plugin model:
- register
Stripe(...)withauth.add_plugin(...) - mount package-owned routes under
/auth - optionally inject
StripeClientinto your own routes - compose explicit SQLAlchemy mixins instead of dynamic schema mapping
Installation
uv add belgie-stripe belgie-organization
For the umbrella package:
uv add belgie[alchemy,stripe,organization]
What It Provides
Stripesettings for Stripe billing configurationStripePluginfor route mounting and dependency injectionStripeClientfor app-owned billing flowsStripePlanand request/response modelsStripeAdapterand SQLAlchemy mixins for subscription persistence
Configuration
import stripe
from belgie_stripe import Stripe, StripePlan, StripeSubscription
stripe_client = stripe.StripeClient(
"sk_test_...",
http_client=stripe.HTTPXClient(),
)
plugin = Stripe(
stripe=stripe_client,
stripe_webhook_secret="whsec_...",
subscription=StripeSubscription(
adapter=subscription_adapter,
plans=[StripePlan(name="pro", price_id="price_pro", annual_price_id="price_pro_year")],
),
)
Route Surface
Mounted under /auth:
POST /stripe/webhookPOST /subscription/upgradeGET /subscription/listPOST /subscription/cancelPOST /subscription/restorePOST /subscription/billing-portalGET /subscription/success
Data Model
To use belgie-stripe with belgie-alchemy, compose these mixins into your models:
StripeAccountMixinStripeSubscriptionMixin
Unlike Better Auth, Belgie does not do schema remapping at runtime. The Stripe columns and table are explicit model definitions that live in your application code.
Notes
- Billing flows target a generic
Account, so individuals, organizations, and teams all useaccount_id. - Stripe customer creation supports both lazy creation on first billing action and automatic creation during
client.sign_up()whencreate_account_on_sign_up=True. - Injected
StripeClientinstances expose the raw async Stripe SDK asclient.stripefor app-owned SDK calls. - The package is designed around Stripe Billing APIs, Checkout Sessions, and Customer Portal.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file belgie_stripe-0.14.0.tar.gz.
File metadata
- Download URL: belgie_stripe-0.14.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0efc0330155428cf56ada26ed08e80f9882aa0ab1157025fac09dda2198685ce
|
|
| MD5 |
b46af3d6e4319a801d5fcaf8a9de7126
|
|
| BLAKE2b-256 |
7d802f0384431bfbf36f6141c245b11e296315046fafa9b95d362f27397d013d
|
File details
Details for the file belgie_stripe-0.14.0-py3-none-any.whl.
File metadata
- Download URL: belgie_stripe-0.14.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35297a74c73ca373f97b17735c35caef862daaef8f0a53950eaf580bdd56943f
|
|
| MD5 |
fc7ba140ce86e05ecabd02fe99e11bfd
|
|
| BLAKE2b-256 |
342987c46c61d5071e30dbd39a75f0c0846886ec365680f38e599d2732ac0bd9
|