Skip to main content

PayU payment gateway integration for python-getpaid ecosystem.

Project description

python-getpaid-payu

PyPI version Python versions License: MIT

PayU payment processor plugin for the python-getpaid ecosystem.

Provides a fully async HTTP client (PayUClient) and a payment processor (PayUProcessor) implementing the getpaid-core BaseProcessor interface. Communicates with PayU via their REST API v2.1 using OAuth2 authentication.

Features

  • Full Payment Lifecycle: Supports prepared, locked, paid, failed, and refunded states.
  • Pre-authorization: Reserve funds on customer's card (lock) and capture them later (charge).
  • Refunds: Full and partial refund support via API.
  • Multiple Currencies: Support for 15 currencies across Europe and beyond.
  • Asynchronous: Built with httpx for non-blocking API communication.
  • Security: Robust callback signature verification (SHA-256 and MD5).
  • Comprehensive API: Wraps every PayU REST API v2.1 endpoint.

Supported Currencies

The following 15 currencies are supported: BGN, CHF, CZK, DKK, EUR, GBP, HRK, HUF, NOK, PLN, RON, RUB, SEK, UAH, USD.

Installation

pip install python-getpaid-payu

Install simulator support only when you want this package to register its local simulator plugin with python-getpaid-simulator:

pip install python-getpaid-payu[simulator]

This extra installs the simulator host and Litestar dependencies, then exposes the payu plugin through the getpaid.simulator.providers entry point.

Simulator Plugin

When python-getpaid-payu[simulator] is installed alongside python-getpaid-simulator, the simulator host auto-discovers the PayU plugin.

Typical local setup:

pip install python-getpaid-simulator python-getpaid-payu[simulator]
getpaid-simulator

The plugin contributes:

  • PayU OAuth and order/refund simulator API routes
  • PayU authorization UI at /sim/payu/authorize/{order_id}
  • PayU-specific webhook signing and state transitions

Useful simulator environment variables:

  • SIMULATOR_PAYU_SECOND_KEY
  • SIMULATOR_PLUGIN_FAILURE_MODE (warn or strict)

Configuration

To use the PayU backend, register it in your getpaid configuration and provide the following settings:

Key Type Default Description
pos_id int PayU POS (point of sale) identifier
second_key str Second key (MD5) from PayU panel, used for signature verification
oauth_id int OAuth client ID from PayU panel
oauth_secret str OAuth client secret from PayU panel
sandbox bool True Use sandbox (secure.snd.payu.com) or production (secure.payu.com)
notify_url str None Notification callback URL template, e.g. https://example.com/payments/{payment_id}/notify
continue_url str None Redirect URL template after payment, e.g. https://example.com/payments/{payment_id}/continue

Example configuration:

GETPAID_BACKENDS = {
    "payu": {
        "pos_id": "300746",
        "second_key": "b6ca15b0d1020e8094d9b5f8d163db54",
        "oauth_id": "300746",
        "oauth_secret": "2ee86a66e5d97e3fadc400c9f19b065d",
        "notify_url": "https://your-domain.com/payments/payu/callback/",
        "continue_url": "https://your-domain.com/payments/payu/success/",
        "sandbox": True,
    }
}

Sandbox Mode

PayU provides a sandbox environment for testing. You can use the example keys provided above for testing in PLN.

Ecosystem

python-getpaid-payu is part of the larger python-getpaid ecosystem. Use it with one of our web framework wrappers:

Requirements

  • Python 3.12+
  • python-getpaid-core >= 3.0.0a3
  • httpx >= 0.27.0

License

MIT

Credits

Created by Dominik Kozaczko.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_getpaid_payu-3.0.0a4.tar.gz (108.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_getpaid_payu-3.0.0a4-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file python_getpaid_payu-3.0.0a4.tar.gz.

File metadata

  • Download URL: python_getpaid_payu-3.0.0a4.tar.gz
  • Upload date:
  • Size: 108.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_getpaid_payu-3.0.0a4.tar.gz
Algorithm Hash digest
SHA256 1a9ccd347fb0486cedd50e85de52c3f57b3c823fc89322faffc176a0869f34a8
MD5 aefb29c69d7cabb6c79129b731f7b7e5
BLAKE2b-256 2f31c16b7d1d76d369473a803137cc8c6cda04076430ed4a8018d5199ed6ab7e

See more details on using hashes here.

File details

Details for the file python_getpaid_payu-3.0.0a4-py3-none-any.whl.

File metadata

  • Download URL: python_getpaid_payu-3.0.0a4-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_getpaid_payu-3.0.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 f75e2d56160c499e087a6ad6825f6bb6720fdfb5f7c982c0f701e22801a4bf36
MD5 7b38bfe4c6f6bc318c0b51c7ff010788
BLAKE2b-256 2f593259a18cef360fc7421d210da17a6af55912463981813f26eb834b9d92d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page