Skip to main content

boilpayment

Single-install facade for boilpayment. Depends on all 13 boilpayment-* distributions pinned to the exact version published alongside it (==0.1.0, not a range — a mismatched internal version can never happen) and re-exports every one of them as a submodule, so a project only installs and imports one distribution instead of thirteen.

Install

pip install boilpayment

Usage

Pick your module by submodule:

from boilpayment.core import resolve_policy, InMemoryLedger, InMemoryRepo, SystemClock, UuidIdGen
from boilpayment.lifecycle import upgrade, downgrade, cancel, reactivate
from boilpayment.credits import consume, topup
from boilpayment.refund import evaluate, execute
from boilpayment.usage import record, check
from boilpayment.webhook import receive, process, default_handlers
from boilpayment.notify import resend, smtp, slack
from boilpayment.cs import open_case, escalate
from boilpayment.postgres import PostgresRepo, PostgresLedgerStore, migrate
from boilpayment.stripe import StripeProvider
from boilpayment.toss import TossProvider
from boilpayment.portone import PortoneProvider
from boilpayment.polar import PolarProvider

Every submodule above (.core, .credits, .lifecycle, .refund, .usage, .webhook, .notify, .cs, .postgres, .stripe, .toss, .portone, .polar) is a full, unfiltered re-export of the corresponding boilpayment-* distribution — nothing is renamed or dropped, and each has its own explicit __all__ mirroring the source distribution's public surface.

The package root (from boilpayment import ..., no submodule) is narrower — see below.

Root export & name collisions

boilpayment (the bare root import) re-exports the full surface of boilpayment_core (types, Policy, Clock/IdGen, period/money helpers, idempotency helpers, in-memory reference implementations, logging) plus a curated set of the most-used entry points from the five core operation modules:

from names
lifecycle upgrade, downgrade, cancel, reactivate
credits consume, topup
refund evaluate, execute, on_external_refund
usage record, check
webhook receive, process, default_handlers

Not re-exported at the root — every one of these is a deliberate exclusion, not an oversight:

  • The four provider adapters (.stripe, .toss, .portone, .polar) — they export several same-named symbols with genuinely different shapes:

    • normalize_failure, normalize_subscription, normalize_refund, map_event_type, to_normalized_event — defined by both boilpayment_stripe and boilpayment_polar, with different signatures.
    • CashReceiptType, CashReceiptStatus, CashReceipt — defined by both boilpayment_toss and boilpayment_portone, with different shapes.

    Re-exporting any two providers at the same root would silently shadow one implementation with the other depending on import order. Import providers from their own submodule.

  • .refund's own proration_ratio (and days_between/apply_rounding/ weighted_avg_unit_price) — proration_ratio is a real collision with boilpayment_core's own proration_ratio (already re-exported at the root via the core surface). The root always resolves to core's version; refund's copy is only reachable via boilpayment.refund.

  • .notify, .cs, .postgres — add-on/infra modules most projects don't touch.

  • The rest of .lifecycle (convert_trial, retry_on_version_conflict, the dunning, scheduler, period submodules), .credits (grant_for_period, rollover_on_renewal, clawback, expire_due, notify_expiring), .usage (close_period, flush_outbox), .webhook (process_pending, http helpers, correlation-id helpers) — no collision, just kept off the root to keep it short. Pull these from their submodule.

Full contract: docs/ARCHITECTURE.md · docs/EDGE_CASES.md.

Metadata

Release files for boilpayment 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boilpayment 0.2.0
File Size Uploaded Provenance
boilpayment-0.2.0.tar.gz 227.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for boilpayment 0.2.0
File Interpreter ABI Platform
boilpayment-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 537.2 kB

Release files / boilpayment-0.2.0.tar.gz

Download URL boilpayment-0.2.0.tar.gz
Size 227.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e99d9cb14f5247a55e2799a2af371161eafce3556817a5f7c5ae0c55203011ee
BLAKE2b-256 checksum
How to use checksums
6736a2a092602bb02e1d9f3aae41d6b4d6aaa245dcf8a93f3ba8943f9dd76ede
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release files / boilpayment-0.2.0-py3-none-any.whl

Download URL boilpayment-0.2.0-py3-none-any.whl
Size 310.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8882c36e263da287b16c9e594171d272fd37b701e5a6830553f24baf63b474f
BLAKE2b-256 checksum
How to use checksums
296ba5fd0aea182890d81ef32366aee68726f6cd37fcb1e7697c51714cd8e909
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Security for boilpayment 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page