Skip to main content

Multi-broker payment processor for Django.

Project description

django-getpaid

PyPI Python Version Django Version License Documentation

Multi-broker payment processing framework for Django, built on getpaid-core.

v3.0.0a1 (Alpha) — This is a pre-release. The API may change before the stable v3.0 release.

Features

  • Multiple payment brokers at the same time
  • Flexible plugin architecture via getpaid-core
  • Asynchronous status updates -- both push and pull
  • REST-based broker API support
  • Multiple currencies (one per payment)
  • Global and per-plugin validators
  • Swappable Payment and Order models (like Django's User model)
  • Runtime FSM for payment status transitions (no django-fsm dependency)

Installation

pip install django-getpaid

Or with uv:

uv add django-getpaid

Then install a payment backend plugin (check that the plugin supports v3 before installing — v2 plugins are not compatible):

Quick Start

Define an Order model:

from getpaid.abstracts import AbstractOrder

class Order(AbstractOrder):
    amount = models.DecimalField(decimal_places=2, max_digits=8)
    description = models.CharField(max_length=128)
    buyer = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

    def get_total_amount(self):
        return self.amount

    def get_buyer_info(self):
        return {"email": self.buyer.email}

    def get_description(self):
        return self.description

Configure settings:

INSTALLED_APPS = [
    # ...
    "getpaid",
    "getpaid_payu",
]

GETPAID_ORDER_MODEL = "yourapp.Order"

GETPAID_BACKEND_SETTINGS = {
    "getpaid_payu": {
        "pos_id": 12345,
        "second_key": "91ae651578c5b5aa93f2d38a9be8ce11",
        "oauth_id": 12345,
        "oauth_secret": "12f071174cb7eb79d4aac5bc2f07563f",
    },
}

Add URL configuration:

urlpatterns = [
    # ...
    path("payments/", include("getpaid.urls")),
]

See the full documentation for details on configuration, customization, plugin development, and migration from v2.

Supported Versions

  • Python: 3.12+
  • Django: 5.2+

Running Tests

uv sync
uv run pytest

Or with ruff for linting:

uv run ruff check getpaid/ tests/

Alternatives

Credits

Created by Krzysztof Dorosz. Redesigned and rewritten by Dominik Kozaczko.

Development of version 2.0 sponsored by SUNSCRAPERS.

Disclaimer

This project has nothing in common with the getpaid plone project.

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

django_getpaid-3.0.0a1.tar.gz (127.1 kB view details)

Uploaded Source

Built Distribution

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

django_getpaid-3.0.0a1-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file django_getpaid-3.0.0a1.tar.gz.

File metadata

  • Download URL: django_getpaid-3.0.0a1.tar.gz
  • Upload date:
  • Size: 127.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro 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 django_getpaid-3.0.0a1.tar.gz
Algorithm Hash digest
SHA256 9ff7407859cec7590d035535be99553b91f1dbacedfe906352d2b9f8499714a7
MD5 3428e62571bbd2af9d5a2b0e958611f1
BLAKE2b-256 4011afa731df1d44b5b98856b3f77aa02f3b3082ec245c22b355c895c19c31ea

See more details on using hashes here.

File details

Details for the file django_getpaid-3.0.0a1-py3-none-any.whl.

File metadata

  • Download URL: django_getpaid-3.0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro 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 django_getpaid-3.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2547ea2eb76f399d3a8d68bf4b1797dc7c8421017fe02a1aedce345b906c470
MD5 e311b88704e682b631af90f991f3cd01
BLAKE2b-256 bd7491b440257d2f02d5e45c2e23961936ca5cfc04dce6b1d06119e39554ed19

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