Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Django integration with ATOL online

Project description

Application for integrating Django and

Important limitations:

  • Python 3.5+
  • Support Django 1.11+
  • PostgreSQL ≥ 9.4 (JSONB field)
  • only 1 purchase is supported in receipt (1 product)
  • only v3 protocol version is supported

Quick start

  1. Add atol to your INSTALLED_APPS setting like this:

  2. Add atol settings like this:

    RECEIPTS_ATOL_INN = '112233445573'
    RECEIPTS_ATOL_PAYMENT_ADDRESS = 'г. Москва, ул. Оранжевая, д.22 к.11'
    RECEIPTS_OFD_URL_TEMPLATE = u'{fn}&fp={fp}'
  3. Add celery-beat tasks to CELERYBEAT_SCHEDULE settings like this:

        'atol_retry_created_receipts': {
            'task': 'atol_retry_created_receipts',
            'schedule': crontab(minute=25)
        'atol_retry_initiated_receipts': {
            'task': 'atol_retry_initiated_receipts',
            'schedule': crontab(minute=35)
  4. Include the atol URLconf in your project like this:

    from atol.views import ReceiptView
    url(r'^r/(?P<short_uuid>[\w]+)/$', ReceiptView.as_view(), name='receipt')
  5. Run python migrate atol to create the receipt model.

  6. Add receipt field to your payment model:

    from atol.models import Receipt
    receipt = models.OneToOneField(Receipt, verbose_name=_('Чек'), blank=True, null=True, on_delete=models.SET_NULL)
  7. Add the mechanics of calling a receipt creation after a successful payment. For example, this can be done through a signal that will be called upon successful payment:

    # <your_app>/
    payment_accepted = Signal(providing_args=['payment'])
    # <your_app>/providers/
    def process_payment(payment)
        payment_accepted.send(sender='google-play', payment=payment)
    # <your_app>/
    def init_payment_receipt(sender, payment, **kwargs):
        receipt = Receipt.objects.create(
        payment.receipt = receipt['receipt'])
            lambda: atol_create_receipt.apply_async(args=(,), fallback_sync=True)

Run tests

python test


1.2.1 (2018-05-22)

  • AtolAPI.base_url specifying in settings

1.2.0 (2017-12-14)

  • Support retried not processed receipt

1.1.0 (2017-12-13)

  • Django 2.0 support

1.0.0 (2017-12-01)

  • Initial release

Project details

Release history Release notifications

This version
History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django_atol-1.2.1-py2.py3-none-any.whl (14.3 kB) Copy SHA256 hash SHA256 Wheel py2.py3 May 23, 2018
django-atol-1.2.1.tar.gz (17.7 kB) Copy SHA256 hash SHA256 Source None May 22, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page