Skip to main content

pretix-gpwebpay

GP webpay (Global Payments Europe) payment provider for pretix. It takes card and bank-button payments, and refunds them automatically, including when customers cancel their own orders.

How it works

  • Payment: the customer is redirected to the GP webpay gateway (HTTP API). The signed answer on return is accepted only if:
    • DIGEST1 verifies with GPE's public key (this signature covers your merchant number), and
    • it concerns this very payment (ORDERNUMBER, MD, OPERATION).
  • Customers who never come back: the HTTP API has no server notification. A periodic task asks the WS API (getPaymentStatus) about open payments:
    • every few minutes in the first hour,
    • hourly for a day,
    • then every 6 hours for 8 days (bank-button payments can take up to 7 days).
  • Refunds: these go through the WS API (processRefund), full or partial. A refund for a payment still in the day's open batch is sent automatically after the batch closes (around 22:00). A refund whose answer is lost is never sent twice: GP webpay's refunded total decides.
  • Refunds made in the GP webpay portal appear in pretix as external refunds the next time the payment is refunded or checked.

Requirements

  • pretix 2025.1 or later, Python 3.11 or later
  • A GP webpay merchant account. Your bank must also enable the WS API for your merchant number.
  • Event currency CZK, EUR, USD, GBP or PLN (multicurrency depends on your bank)

Configuration

Enable the plugin for the event, then open Settings → Payment → GPWebPay.

Setting
Merchant number from your bank
Provider code 4 digits identifying your bank, e.g. 0100 KB SmartPay, 0300 ČSOB, 0880 Global Payments CZ (WS API documentation, annex 5)
Private key paste the PEM including the BEGIN/END lines; stored in the database
Private key password if the key is encrypted
GPE public key GP webpay's signing key or certificate for the environment (test and production differ)
Test environment uses test.3dsecure.gpwebpay.com

Keys uploaded as files by version 7.0 or older ended up in pretix's public media folder. The settings page warns about this; pasting the key into the field deletes the file. If the file may have been reachable, ask your bank for a new key pair.

Refunds are possible for 6 months after payment (13 months with UniCredit). After that pretix offers a manual refund instead.

Cancellations and automatic refunds

Event → Settings → Cancellation:

  • allow customers to cancel paid orders,
  • refund automatically to the original payment method.

Development

pip install -e ".[test]"
pytest
flake8 pretix_gpwebpay tests && isort --check-only pretix_gpwebpay tests

The tests run against a real pretix with throwaway RSA keys and a fake WS API. Releasing: see RELEASING.md.

GP webpay's documentation is confidential (GPE's terms). Do not commit it to this repository.

Licence

Apache License 2.0

Metadata

Release files for pretix-gpwebpay 7.1.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 pretix-gpwebpay 7.1.0
File Size Uploaded
pretix_gpwebpay-7.1.0.tar.gz 26.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pretix-gpwebpay 7.1.0
File Interpreter ABI Platform
pretix_gpwebpay-7.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 52.1 kB

Release files / pretix_gpwebpay-7.1.0.tar.gz

Download URL pretix_gpwebpay-7.1.0.tar.gz
Size 26.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cbf06100c698b90392f70fa52aa0650232fa23ea3f52a98d1ac4362d6a6c072c
BLAKE2b-256 checksum
How to use checksums
82ec2fc13eb055fc34d42faee79a88f952eb2efa8d257fc3debe9fbcbc0f1301
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pretix_gpwebpay-7.1.0-py3-none-any.whl

Download URL pretix_gpwebpay-7.1.0-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
158d31d0b6907bcda4e0364ddedb4a3cd41e00538f01f09ffd3c68a5c856f462
BLAKE2b-256 checksum
How to use checksums
20f94f67dd2f849f9987ea2f934891792822e456ce2f32b8c56026163d59ebd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

7.1.0 This release

2 release files

7.0.18

2 release files

7.0.17

1 release file

7.0.16

1 release file

7.0.15

1 release file

7.0.14

1 release file

7.0.13

1 release file

7.0.12

1 release file

7.0.11

1 release file

7.0.10

1 release file

7.0.9

1 release file

7.0.8

1 release file

7.0.7

1 release file

7.0.6

1 release file

7.0.5

1 release file

7.0.4

1 release file

7.0.3

1 release file

7.0.2

1 release file

7.0.1

1 release file

6.0.29

2 release files

6.0.26

2 release files

6.0.25

2 release files

6.0.24

2 release files

6.0.23

2 release files

6.0.22

2 release files

6.0.21

2 release files

6.0.19

2 release files

6.0.17

2 release files

6.0.16

2 release files

6.0.14

2 release files

6.0.13

2 release files

6.0.12

2 release files

6.0.10

2 release files

6.0.9

2 release files

6.0.8

2 release files

6.0.7

2 release files

6.0.6

2 release files

6.0.5

2 release files

6.0.4

2 release files

6.0.3

2 release files

6.0.2

2 release files

6.0.1

2 release files

3.0.1

2 release files

2.0.1

2 release files

1.0.1

2 release files

1.0.0

2 release files

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