Vatlayer API support for
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'))
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:
VATLAYER_ACCESS_KEY = 'YOUR_API_KEY_HERE'line
YOUR_API_KEY_HEREwith the API key that you have obtained from vatlayer API
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
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.