Accept Multibanco and MB WAY payments via euPago in pretix
Project description
This is a plugin for pretix that integrates euPago, a Portuguese payment gateway, to accept Multibanco references and MB WAY push payments.
Installation
Install the plugin into the same Python environment as your pretix instance:
pip install pretix-eupago
Then restart your pretix server. The plugin registers itself with pretix’s plugin registry automatically via a setuptools entry point — no changes to INSTALLED_APPS are needed. You can now enable it for an event under the “plugins” tab in that event’s settings.
Development setup
Make sure that you have a working pretix development setup.
Clone this repository.
Activate the virtual environment you use for pretix development.
Execute pip install -e . (or, if you use uv, uv sync --extra test) within this directory to register this application with pretix’s plugin registry.
Execute make within this directory to compile translations.
Restart your local pretix server. You can now use the plugin from this repository for your events by enabling it in the ‘plugins’ tab in the settings.
Run make test to run the test suite and make lint to run ruff.
Configuration
Enable the plugin for an event, then configure the shared euPago settings under Settings → Payment → euPago:
API Key — your euPago API key, found in Backoffice → Channels → Channel Listing.
Sandbox / Test mode — use the euPago sandbox environment for testing.
Webhook signature secret — optional but strongly recommended. The encryption key generated for this channel’s webhook in Backoffice → Channels → Channel Listing → “Receive notification for a URL”. When set, incoming webhook v2.0 (POST) notifications are only accepted if their signature matches; without it, they’re accepted based on a weaker cross-check only.
These are shared by every euPago payment method, so you only set them once. Then enable and configure each payment method you want individually under Settings → Payment:
Multibanco — has no method-specific settings besides the reference validity:
Multibanco reference validity (days) — how many days a generated Multibanco reference stays valid.
MB WAY — no method-specific settings.
Finally, configure a single webhook URL in euPago’s Backoffice (Channels → Channel Listing → “Receive notification for a URL”), for every channel you use:
https://<your-pretix-domain>/eupago/webhook/
This URL is global (not event-scoped) and handles both euPago webhook formats (v1.0 GET and v2.0 POST). v1.0 notifications are verified against your configured API key; v2.0 notifications are verified against your configured webhook signature secret, if set. The optional “encrypt” webhook setting in Backoffice is also supported (the payload is decrypted using that same secret).
License
Copyright 2026 Afonso Santos
Released under the terms of the Apache License 2.0, see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pretix_eupago-1.1.0.tar.gz.
File metadata
- Download URL: pretix_eupago-1.1.0.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
427f5dfc0b6bee0cbc8573b5df3abe88152bde2cf817ea368f356205ba321d1a
|
|
| MD5 |
e2d51f4c6c8f91b5334b3720f9ebe942
|
|
| BLAKE2b-256 |
e9f7418b095e8fc16c029c55e2e476d92d448f7d89aa80659c07d4be3299d321
|
Provenance
The following attestation bundles were made for pretix_eupago-1.1.0.tar.gz:
Publisher:
ci.yml on afonsosantos/pretix-eupago
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pretix_eupago-1.1.0.tar.gz -
Subject digest:
427f5dfc0b6bee0cbc8573b5df3abe88152bde2cf817ea368f356205ba321d1a - Sigstore transparency entry: 2206699956
- Sigstore integration time:
-
Permalink:
afonsosantos/pretix-eupago@65524059a6e383215d9d96804539133fbaec6f09 -
Branch / Tag:
refs/tags/1.1.0 - Owner: https://github.com/afonsosantos
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@65524059a6e383215d9d96804539133fbaec6f09 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pretix_eupago-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pretix_eupago-1.1.0-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06322d6a0afc3f8c54cb3d69c1dafa0094e44de593af0407e65c000b528df8b0
|
|
| MD5 |
3c25c91ebf313d0694405ea38573b393
|
|
| BLAKE2b-256 |
fbdde1141e429adb060cf2f90349c6507b1eb5661a041b110da5292418c5c499
|
Provenance
The following attestation bundles were made for pretix_eupago-1.1.0-py3-none-any.whl:
Publisher:
ci.yml on afonsosantos/pretix-eupago
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pretix_eupago-1.1.0-py3-none-any.whl -
Subject digest:
06322d6a0afc3f8c54cb3d69c1dafa0094e44de593af0407e65c000b528df8b0 - Sigstore transparency entry: 2206699974
- Sigstore integration time:
-
Permalink:
afonsosantos/pretix-eupago@65524059a6e383215d9d96804539133fbaec6f09 -
Branch / Tag:
refs/tags/1.1.0 - Owner: https://github.com/afonsosantos
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@65524059a6e383215d9d96804539133fbaec6f09 -
Trigger Event:
release
-
Statement type: