Actual package installation is quite simple and can be done via pip. Dependencies should be handled by pip fine [1]:

pip install django-afip

You’ll then need to configure your project to use this app by adding it to your


Make sure to run all migrations after you’ve added the app:

python migrate afip


It is also possible (yet optional) to define optional storages for files used by the app. If undefined, the default file storage is used.

The value of these settings should be a string with the path to the instance of a storage to use (eg: 'myapp.storages.my_private_storage'). Both S3 and the default storages have been tested, but any django-compatible storage should work just fine. See the django documentation for more details on storages.

AFIP_KEY_STORAGE  # Keys for authenticating with AFIP (TaxPayer.key)
AFIP_CERT_STORAGE  # Certs for auth'ing with AFIP (TaxPayer.certificate)
AFIP_PDF_STORAGE  # PDFs generated for receipts (ReceiptPDF.pdf_file)
AFIP_LOGO_STORAGE  # Logos used in invoices (TaxPayerExtras.logo)


It is recommended that you pin versions, at least to major releases, since major releases are not guaranteed to be totally compatibility (clear upgrade notes ARE provided though):

django-afip 4.0 >= , < 5.0
[1]Receipt PDF generation uses weasyprint, which has some additional dependencies. Consult their documentation for clear and up-to-date details.

We strictly follow Semantic Versioning. We only support version of Django that are currently supported upstream.

Django-afip is compatible with all currently supported django versions.


Backwards compatibility may break at major release, however, we always provide migrations to upgrade existing installations (we actually always use those ourselves on our production instances without any data loss).


If you’re on a pre-v4.0.0 release, you should upgrade to v4.0.0 and then further, since migrations will be squashed and purged in latter releases.

If you’re working on new/non-production projects, it’s safe to ignore this warning (though you’ll have to drop your current DB).