Skip to content


Subversion checkout URL

You can clone with
Download ZIP
a payments Django app for Stripe
Latest commit 19710fc @paltman paltman Lint fixes

Pinax Stripe

This app was formerly called django-stripe-payments and has been renamed to avoid namespace collisions and to have more consistency with Pinax.

Refactor and Update Plans

November 22, 2015

Phew! 10 days and almost 100 commits later and milestone is as far as I know code complete. The only remaining tasks are:

  • writing documentation - lots has changes, drastically, time to throw out the current docs and write a comprehensive set from scratch
  • review current test coverage and improve on it if the gaps that are open look critical
  • package up the templates I've been testing with in a new release of pianx-theme-bootstrap (see PTB Issue #104)
  • put together a demo starter project (this one i might hold off until after 2.0 ships)

November 12, 2015

A long time ago we started a 2.0 Milestone then when got really busy with other areas of Pinax, our day jobs, and life. Today, we getting back into the swing of things starting with merging of the long-overdue-updates branch.

These items will be made into issues in the 2.0 Milestone.

  • address namespace issue with payments - Issue #169
  • full Python 3 compatibility (DSP should support every Python that Django supports) - Issue #170
  • make sure custom user model support is fully in place - Issue #172
  • support Django 1.7, 1.8, 1.9 (currently master) - Issue #171
  • refactor out payments/ to payments/ to support django-appconf or do something with payments/ - Issue #179
  • add hooksets for key points of extensibility - Issue #180
  • convert ajax views to CBVs - Issue #181
  • add migrations - Issue #164
  • update for latest / greatest API compatibility - Issue #178
  • add new webhooks - Issue #182

Subsequent (shorter) milestones involve adding support for the following Stripe services:


Pinax is an open-source platform built on the Django Web Framework. It is an ecosystem of reusable Django apps, themes, and starter project templates. This collection can be found at

This app was developed as part of the Pinax ecosystem but is just a Django app and can be used independently of other Pinax apps.


pinax-stripe is a payments Django app for Stripe.

This app allows you to process one off charges as well as signup users for recurring subscriptions managed by Stripe.

Some suggested integration steps:

  1. Overload the templates provided to use your inheritance tree (for bases etc) and block names.
  2. Point your stripe account at the webhook address in the payments urls.
  3. Add the static media snippet from here (or else nothing will actually talk to stripe):
  4. Set up SSL if you have not already.
  5. Define some plans (see docs).
  6. Run syncdb to generate the necessary tables, then init_plans and init_customers.


pinax-stripe supports a variety of Python and Django versions. It's best if you test each one of these before committing. Our Travis CI Integration will test these when you push but knowing before you commit prevents from having to do a lot of extra commits to get the build to pass.

Environment Setup

In order to easily test on all these Pythons and run the exact same thing that Travis CI will execute you'll want to setup pyenv and install the Python versions outlined in tox.ini.

If you are on the Mac, it's recommended you use brew. After installing brew run:

$ brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper


$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include -I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install 2.7.10 3.2.6 3.3.6 3.4.3 3.5.0

$ pyenv virtualenv 2.7.10 test-2.7.10
$ pyenv virtualenv 3.2.6 test-3.2.6
$ pyenv virtualenv 3.3.6 test-3.3.6
$ pyenv virtualenv 3.4.3 test-3.4.3
$ pyenv virtualenv 3.5.0 test-3.5.0
$ pyenv global 2.7.10 test-2.7.10 test-3.2.6 test-3.2.6 test-3.3.6 test-3.4.3 test-3.5.0

$ pip install detox

To run test suite:

Make sure you are not inside a virtualenv and then:

$ detox

This will execute the testing matrix in parallel as defined in the tox.ini.


In order to make this app more maintainable and scale with all the services that Stripe is offering, we have refactored this internal API away from being just model methods into a service layer in pinax.stripe.actions.

Internally, things like views, management commands, and receivers, all flow through the public API defined in the pinax.stripe.actions modules. These modules interact with both the Stripe API as well as pinax-stripe's internal models. To interface with the models, they work through a set of proxy models found in pinax.stripe.proxies. Methods on this proxy models are for internal use only and provide a clean separation from the actual models.










Documentation for django-stripe-payments can be found at The Pinax documentation is available at

Code of Conduct

In order to foster a kind, inclusive, and harassment-free community, the Pinax Project has a code of conduct, which can be found here

Pinax Project Blog and Twitter

For updates and news regarding the Pinax Project, please follow us on Twitter at @pinaxproject and check out our blog

Something went wrong with that request. Please try again.