Skip to main content

django-referral-system

CI PyPI version License Python Versions Coverage Status

A plug-and-play Django referral engine. Track promoters, reward commissions, manage payouts — all wired up in minutes.

Full documentation: Read the Docs


What it does

Area Capability
Promoters Create and manage promoters with unique referral tokens and links
Referral tracking Track sign-ups, activation status, and click counts per link
Commissions Configurable commission rates tied to the active referral program
Payouts Wise CSV export; auto-skip promoters below minimum withdrawal balance
Refunds Commission is automatically reversed when a referred user refunds
Email invitations Send branded HTML invite emails via a custom template

Only one referral program can be active at a time, keeping the logic focused and predictable.


Quick start

1. Install

pip install django-referral-system

Requires Python 3.9 – 3.14 and Django 4.2+.

2. Add to INSTALLED_APPS

INSTALLED_APPS = [
    ...
    "referrals",
]

3. Mount the URLs

from django.urls import path, include

urlpatterns = [
    ...
    path("referrals/", include("referrals.urls")),
]

4. Migrate

python manage.py migrate

5. Create a referral program

python manage.py create_referral_program \
    --name="My Referral Program" \
    --commission-rate=5.00 \
    --min-withdrawal-balance=10.00

Setting a program as active automatically deactivates any existing active program.


Environment variables

Variable Purpose
BASE_REFERRAL_LINK Base URL used when generating referral links
BASE_EMAIL Sender address for invitation emails

License

MIT — see LICENSE for details.

Contributing

Issues and pull requests are welcome. If this project saves you time, a star on GitHub goes a long way. github star

Metadata

Release files for django-referral-system 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-referral-system 0.4.0
File Size Uploaded Provenance
django_referral_system-0.4.0.tar.gz 25.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for django-referral-system 0.4.0
File Interpreter ABI Platform
django_referral_system-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 58.7 kB

Release files / django_referral_system-0.4.0.tar.gz

Download URL django_referral_system-0.4.0.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d3e48627fc81a70da95800b1f070f051471833868890c082facfb202d4d6c616
BLAKE2b-256 checksum
How to use checksums
27700b95db9eb7efcdec8b208d66156305663ed5e4ba7608e8fa9ad517d70599
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / django_referral_system-0.4.0-py3-none-any.whl

Download URL django_referral_system-0.4.0-py3-none-any.whl
Size 33.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
445cb9bdb19ee4725d0112b58455016c8ba7ada8ddb5111a53c1f5aee20df135
BLAKE2b-256 checksum
How to use checksums
7848497ba1bd4790fbc6cc16ab6ddcfeeac259e5de25f49c0d744e8486f463f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for django-referral-system 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page