Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Adyen package for django-oscar

Latest Version on PyPI Supported Python versions TravisCI status

This package provides integration with the Adyen payment gateway. It is designed to work with the e-commerce framework django-oscar. This extension supports Django 1.8+, Python 3.6+ and Oscar 1.4+.



Get it from PyPi:

$ pip install django-oscar-adyen

Add 'adyen' to INSTALLED_APPS and run:

$ django-admin migrate adyen

to create the appropriate database tables.


You have two approaches to configure django-oscar-adyen.

Settings-based configuration

For simple deployments, setting the required values in the settings will suffice.

Edit your to set the following settings:

  • ADYEN_IDENTIFIER - The identifier of your Adyen account.
  • ADYEN_SKIN_CODE - The code for your Adyen skin.
  • ADYEN_SECRET_KEY - The secret key defined in your Adyen skin.
  • ADYEN_ACTION_URL - The URL towards which the Adyen form should be POSTed to initiate the payment process (e.g. '').
  • ADYEN_IP_ADDRESS_HTTP_HEADER - Optional. The header in META to inspect to determine the IP address of the request. Defaults to REMOTE_ADDR.

You will likely need to specify different settings in your test environment as opposed to your production environment.

Class-based configuration

In more complex deployments, you will want to e.g. alter the Adyen identifier based on the request. That is not easily implemented with Django settings, so you can alternatively set ADYEN_CONFIG_CLASS to a config class of your own. See adyen.settings_config.FromSettingsConfig for an example.


0.9.0 - unreleased

  • Upgrade to Oscar 2.0.

0.8.0 - unreleased

  • Add support for OpenInvoice (Klarna, AfterPay)

0.7.1 - released April 19th, 2016

  • Sanitize payment request form fields from newlines

0.7.0 - released April 18th, 2016

  • Add adyen.signers module to handle signature algorithm
  • Refactor how the merchantSig is generated, using the new adyen.signers module.
  • Splits constants and exceptions into their own module
  • Handle shopper, billing and delivery fields (with signatures for SHA-1)
  • Handle merchantSig with SHA-256 algorithm
  • Improve test coverage and other minor changes

This version is backwrd compatible with version 0.6.0.

Note that plugin users need to implement method get_signer_backend if they uses their own config class from the abstract config class.


The implementation of the signature with SHA-256 algorithm has not been tested in a real-life case. Plugin users may use it carefuly, and they are invited to report any issues they may encounter.

0.6.0 - released March 1st, 2016

  • Allow plugin user to extend it with get_class,
  • Split several methods in order to override specific parts of the plugin,
  • Expose more methods as public methods to allow plugin user to override more specific parts of the plugin,
  • Add deprecation note on handle_payment_feedback and add two separates methods to handle payment return case and payment notification case.
  • Add allowedMethods to the payment request form (unused by default).
  • Start a sphinx documentation for the project.

This version is backward compatible with version 0.5.0.

Note that plugin users need to implement method get_allowed_methods if they uses their own config class from the abstract config class.

0.5.0 - released October 7th, 2015

  • Add support for Adyen's ERROR and PENDING payment statuses (#20). This means two additional payment statuses for the Scaffold interface; please adapt your code as needed when upgrading.

0.4.2 - released September 29, 2015

  • Acknowledge, but don't process Adyen's test notifications (#18)

0.4.1 - released September 24, 2015

  • ignore additional data sent by Adyen's new-style system communications (#17)

0.4.0 - released July 14th, 2015

  • change scaffold interface (#16)
  • ignore duplicate Adyen notifications (#16)

0.3.0 - released July 8th, 2015

  • Django 1.8 and Oscar 1.1 support (##15)
  • introduce config classes for dynamic configuration (#14)


django-oscar-adyen is released under the BSD license, like Django itself.