Skip to main content

entirius-django-vault

A Django module for saved payment cards in Entirius, the open-source modular ecommerce platform. It keeps the tokenized PayU cards of a customer per sales channel and serves them over a key-protected REST API; card numbers never reach the database.

PyPI Python License: MPL-2.0

What it does

  • Lists, adds and deletes the saved payment cards of a signed-in customer.
  • Stores only the link between a customer and the payment provider's vault; the cards stay tokenized at PayU.
  • Holds the payment provider configuration per sales channel.
  • Guards every route with customer authentication and a key in the X-API-KEY header.

Installation

uv add entirius-django-vault
pip install entirius-django-vault
INSTALLED_APPS = [
    ...
    "django_utils",
    "django_accounts",
    "django_vault",
]

# urls.py
urlpatterns = [
    path("", include("django_vault.urls")),
]

Required settings: BI_ENVIRONMENT and BI_BUSINESS_UNIT (read when the module is imported). Reference: https://github.com/entirius/entirius-django-vault/blob/develop/AGENTS.md (section Settings).

With django_access installed the key is an access token with the scope vault.api:

python manage.py access_token create --application <name> --create-application --scope vault.api --channel <idx>

Without django_access, create the key with python manage.py vault-generate-api-key [--file_path <path>]. The key is printed once and cannot be read back; keys added by hand in the Django admin have a random value nobody sees, so create them with the command. With django_access installed the command refuses: keys are access tokens there.

Quick start

from django_vault.models import CustomerPaymentVault

vaults = CustomerPaymentVault.objects.filter(customer=customer).select_related("channel_for_payment")

The REST routes mount under {API_BASE_URL}/vault/<version>/<channel_idx>/payment_card/; requests and responses are in https://github.com/entirius/entirius-django-vault/blob/develop/docs/vault_docs.md.

Requirements

  • Python 3.11 or newer, Django 5.0 or newer.
  • Entirius packages pulled in: entirius-django-accounts, entirius-django-utils, entirius-py-payu-sdk, entirius-py-bievents, entirius-py-process-logger.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos), where the checkout uses it for card-on-file payments.

Development

make install     # sync dependencies (uv)
make check       # lint + format check (ruff)
make test        # test suite (pytest + pytest-django)

Development and agent instructions: https://github.com/entirius/entirius-django-vault/blob/develop/AGENTS.md

License

Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-vault/blob/develop/LICENSE.

Metadata

Release files for entirius-django-vault 3.0.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 entirius-django-vault 3.0.0
File Size Uploaded
entirius_django_vault-3.0.0.tar.gz 95.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-vault 3.0.0
File Interpreter ABI Platform
entirius_django_vault-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 118.1 kB

Release files / entirius_django_vault-3.0.0.tar.gz

Download URL entirius_django_vault-3.0.0.tar.gz
Size 95.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d9ea2197f5a45d3ad76f58f5a87d1de6b87b501db69c92ede1bca12ca764786d
BLAKE2b-256 checksum
How to use checksums
c38070592517aaeb19037709f4b6986cbb5b4b8de13a19bd06551488c3137de3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}

Release files / entirius_django_vault-3.0.0-py3-none-any.whl

Download URL entirius_django_vault-3.0.0-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a239502189f6897c8b3e5d237a4901a38208c1aa4c9cccdafa02755181caf12c
BLAKE2b-256 checksum
How to use checksums
440c9351183136b81d5604b7237385a1abd45ca705c5e3ff5d71358252967052
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files

2.0.0

2 release files

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