Skip to main content

An unofficial SDK for Paddle's billing API and webhooks.

Project description

Unofficial Paddle Billing Python SDK

A small Paddle Billing SDK. It uses pydantic for schemas derived from the Paddle Billing OpenAPI file.

Installation

To install the package, install it from pypi:

uv add python-paddle
# or
pip install python-paddle

Or your favorite package manager.

Usage

Currently, the SDK does not provide functions to call the API for all resources. It does provide two things:

  1. API schemas as Pydantic models
  2. Webhook validation
  3. Operations on customers
  4. Operations on transactions
  5. Operations on saved payment methods
  6. Operations on subscriptions
  7. Operations on addresses
  8. Operations on businesses

Calling the API

To call the API, you need to initialize a client:

from paddle import Paddle

client = Paddle(token="...")

In case you're using the sandbox environment, pass production = False as an argument when initializing the Paddle class.

client = Paddle(token="...", production=False)

Once you have the client, you can call any methods on it asynchronously. For example:

transaction = await client.get_transaction(transaction_id)

Schemas

The schemas can be found under paddle.schemas, like paddle.schemas.Transaction.

Webhooks

Webhooks can be validated using paddle.webhooks.verify. For example:

from paddle import webhooks

webhooks.verify(
    secret="YOUR_WEBHOOK_SECRET",
    signature="YOUR_WEBHOOK_SIGNATURE",  # Extract this value from the `Paddle-Signature` in the webhook request
    body="THE_REQUEST_BODY",
)

It'll raise a paddle.webhooks.exceptions.ValidationError if the webhook could not be verified, otherwise it'll return True.

To instead get a bool returned from the function, without an error raised on failure, pass the error=False argument.

from paddle import webhooks

is_valid = webhooks.verify(
    secret="YOUR_WEBHOOK_SECRET",
    signature="YOUR_WEBHOOK_SIGNATURE",  # Extract this value from the `Paddle-Signature` in the webhook request
    body="THE_REQUEST_BODY",
    error=False,
)

if is_valid:
    print("Great!")

else:
    print("Damn")

Exceptions

All exceptions raised by this library inherit from paddle.exceptions.PaddleException.

Contributing

All contributions are welcome! Whether it's tests, bugs, documentation, or anything else, open an issue in our GitHub repository. Thanks for your interest!

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

python_paddle-0.3.5.tar.gz (48.7 kB view details)

Uploaded Source

Built Distribution

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

python_paddle-0.3.5-py3-none-any.whl (60.0 kB view details)

Uploaded Python 3

File details

Details for the file python_paddle-0.3.5.tar.gz.

File metadata

  • Download URL: python_paddle-0.3.5.tar.gz
  • Upload date:
  • Size: 48.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_paddle-0.3.5.tar.gz
Algorithm Hash digest
SHA256 19ba4f255ad69538ca40952cd2e503396ed37b43fa161245444b3b3d67347070
MD5 e258b7bb48d34d22ed8726bc0822af7b
BLAKE2b-256 316f62f51c7159e578139c6f37714f80530db937f552a31dc83bbba0520b9bcf

See more details on using hashes here.

File details

Details for the file python_paddle-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: python_paddle-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 60.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_paddle-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 69ba1f1763287d2f887632f4decf836dd367b6fb9fa1a93267b22caaecac0d73
MD5 9652de0b4794bcca0ca3ded7ede4de6c
BLAKE2b-256 07ff0362b4d93d91131123c8b50f4c6e0381a330d97eeb66f6113f40ecbaf8fa

See more details on using hashes here.

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