Skip to main content

Thin, dependency-free server-side client for the VellumCharter entitlements + billing API

Project description

vellumcharter

Thin, dependency-free (stdlib-only) server-side client for the VellumCharter entitlements + billing API. Server-side only — it holds a secret API key.

Install

pip install vellumcharter

Requires Python 3.11+.

Usage

from vellumcharter import VellumCharterClient

vellum = VellumCharterClient(
    api_key="vlm_sam.xxxxx",   # keep server-side, never ship to a browser
    tenant_id="sam",
    # base_url defaults to https://api.vellumcharter.com
)

# Gate a feature (cached with a short TTL):
if vellum.can("unit_1", "imports"):
    ...

ent = vellum.get_entitlements("unit_1")
ent.is_active()            # True for active/trialing
ent.has("imports")
ent.config("trial_days")
ent.found                  # False if the customer has no record (no exception)

A 404 returns an empty EntitlementSet (no exception), so gating never needs a null check.

Async

AsyncVellumCharterClient is the awaitable counterpart — same constructor and methods, each await-ed. Use it from async frameworks (e.g. FastAPI):

from vellumcharter import AsyncVellumCharterClient

vellum = AsyncVellumCharterClient(api_key="vlm_sam.xxxxx", tenant_id="sam")

if await vellum.can("unit_1", "imports"):
    ...

ent = await vellum.get_entitlements("unit_1")
vellum.invalidate("unit_1")   # cache op is synchronous (no await)

What it covers

  • Entitlements: get_entitlements, can, opt-in TTL cache + invalidate.
  • Checkout / subscriptions: create_checkout, create_setup_checkout, create_subscription, cancel_subscription, get_subscription.
  • Provisioning: create_account, create_customer, set_account_status, set_customer_status.
  • Billing: list_payment_methods, set_default_payment_method, remove_payment_method, set_subscription_payment_method, list_invoices, invoice_pdf_url.
  • Webhook verification: verify_push_signature(raw_body, header, secret) — validates a push and returns the parsed event (raises on a bad signature).

Errors

VellumCharterAuthError on 401/403; VellumCharterApiError (with .status / .body) on other non-2xx; VellumCharterSignatureError on a bad push signature. The API key is sent as x-api-key on every request.

API reference

Full endpoint + webhook contract: https://api.vellumcharter.com/openapi.json

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vellumcharter-0.2.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vellumcharter-0.2.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file vellumcharter-0.2.0.tar.gz.

File metadata

  • Download URL: vellumcharter-0.2.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vellumcharter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d0f7d33a2caf44faa8e2a275ebeb28316b3c01b2f085c6efa783f3b70b2fbc12
MD5 1e517140dbc027144fa614a926ec0237
BLAKE2b-256 a7901ed7899be895c1be8b0309fbf99b0674974c6fc97aa34703c505662130ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for vellumcharter-0.2.0.tar.gz:

Publisher: publish.yml on tdesposito/VellumCharter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vellumcharter-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vellumcharter-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vellumcharter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4833dc7c78119e5c9bf6f044c85b7f6a61bb0d962bd90cf359a26d93acba5af5
MD5 7af1f1a6d0ab8c8cdda9732219a56821
BLAKE2b-256 0197c4e3bfba3041be301942e1536a05685094326896c1d590c3bef519556f2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vellumcharter-0.2.0-py3-none-any.whl:

Publisher: publish.yml on tdesposito/VellumCharter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page