django-prices-vatlayer: Vatlayer API support for prices
from prices import Money, TaxedMoney
from django_prices_vatlayer.utils import (
get_tax_for_rate, get_tax_rates_for_country)
de_tax_rates = get_tax_rates_for_country('DE')
books_tax = get_tax_for_rate(de_tax_rates, 'books')
price_with_vat = books_tax(Money(10, 'EUR'))
print(price_with_vat)
# TaxedMoney(net=Money('10', 'EUR'), gross=Money('11', 'EUR'))
price_with_vat = books_tax(
TaxedMoney(net=Money(10, 'EUR'), gross=Money(10, 'EUR')))
print(price_with_vat)
# TaxedMoney(net=Money('10', 'EUR'), gross=Money('11', 'EUR'))
Installation
The package can easily be installed via pip:
pip install django-prices-vatlayer
After installation, you'll also need to setup your site to use it. To do that, open your settings.py and do the following:
- Add
'django_prices_vatlayer',to yourINSTALLED_APPS - Add
VATLAYER_ACCESS_KEY = 'YOUR_API_KEY_HERE'line - Replace
YOUR_API_KEY_HEREwith the API key that you have obtained from vatlayer API
Lastly, run manage.py migrate to create new tables in your database and manage.py get_vat_rates to populate them with initial data.
Forcing secure API connection in production
Because HTTPS is unavailable in the free vatlayer plan, django-prices-vatlayer uses the unsafe HTTP connection by default.
If you are using a paid plan, you can force the secure HTTP on your site by adding following line to your settings.py:
VATLAYER_USE_HTTPS = True
Remember that not using HTTPS may expose you to DNS poisoning and man-in-the-middle attacks; we recommend enabling VATLAYER_USE_HTTPS in production sites.
Updating VAT rates
To get current VAT rates from the API run the get_vat_rates management command.
You may also set cron job for running this task daily to always be up to date with current tax rates.
Crafted with ❤️ by Mirumee Software
Release files for django-prices-vatlayer 1.2.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 | |
|---|---|---|---|
| django_prices_vatlayer-1.2.0.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_prices_vatlayer-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.6 kB
Release files / django_prices_vatlayer-1.2.0.tar.gz
| Download URL | django_prices_vatlayer-1.2.0.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1cfda20da69c2c27a747019010ac53e1a83e444f5fbbf9e41120084468ac0436
|
|
BLAKE2b-256 checksum How to use checksums |
43d9e52874c9887c406b4fd4e59d4dcd55b5dd9db01d31251891b20bba042aa5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2025.
Transparency logRelease files / django_prices_vatlayer-1.2.0-py3-none-any.whl
| Download URL | django_prices_vatlayer-1.2.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5396ccb094e49e4fb083d7d88ec6de2c9e871dce32e458bc15e4590aa0958d26
|
|
BLAKE2b-256 checksum How to use checksums |
f2c6763d41275c60ecb6faa8b772dd720ff083d1ad1762dbb2ca2b217312e39d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2025.
Transparency log