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.
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-KEYheader.
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
- Module docs: https://github.com/entirius/entirius-django-vault/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-vault/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos), where the checkout uses it for card-on-file payments.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-accounts, https://github.com/entirius/entirius-django-checkout
- PayU SDK: https://github.com/entirius/entirius-py-payu-sdk
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)
| File | Size | Uploaded | |
|---|---|---|---|
| entirius_django_vault-3.0.0.tar.gz | 95.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|