tpay / magento2
tpay/magento2
Tpay payments module
Tpay Payment Module for Magento 2
Polish version of README
Basic information
The official module for quick online payments via Tpay on the Magento 2 platform.
Functions
- Many payment methods: e-transfer, BLIK, card payments, installments and buy now pay later.
- The highest security standards: PCI DSS Level 1, TLS encryption, KIP status
- Returns made from the admin store panel
- Support for currencies other than PLN via payment cards
- Possibility to use a Sandbox account (from module version: 2.0.0)
Requirements
- Shop with available currency: Polish Zloty (PLN)
- Composer on the server
- Active account at Tpay.com
- Account access to Open API enabled
Module version from 2.0.0
- Magento version from 2.3.0
- PHP version compliant with the requirements of the sales platform
Module version up to 2.0.0
- Magento version from 2.0.0
- PHP version compliant with the requirements of the sales platform
Module installation via Composer
-
Download the Tpay module. In the main Magento folder, enter the command:
composer require tpaycom/magento2basic -
Turn on the Tpay module. In the main Magento folder, enter the command:
php bin/magento module:enable Tpay_Magento2 php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy -
Configure module in admin panel: Stores -> Configuration -> Payment Methods -> tpay.com.
Payment gateway configuration
Configuration of returns from the administration panel
Configuration of support for currencies other than PLN
GraphQL support
It is possible to integrate this solution with our plugin. You can find the repository
here.
Hyvä Checkout support
If you are using Hyvä Checkout additional compatybility module is required.
You can find the repository here
Technical assistance
If you have additional questions, please contact the Tpay Customer Service Department at this
link
Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
2.8.0
Added
- New order status
pending_payment_tpayassigned to newly created orders with Tpay payment methods. - Ability to click "Pay with Tpay" in customer order details view (for orders in status
pending_payment_tpay) - Ability to send payment reminders from adminhtml order details view (for orders in status
pending_payment_tpay)
2.7.1
Added
- ClientId in userAgent suffix
2.7.0
Added
- Notification amount validation
- Test notification detection
2.6.3
Added
- Admin private IP warning
2.6.2
Changed
- New SDK notifications support
2.6.1
Changed
- Prevents sending too short address optional field values to API that would cause validation based rejection
2.6.0
Changed
- Removed OrderRepository override that provided loadByIncrementId method, loading order details using OrderRepository::get
2.5.3
Added
- Validation for notification request
2.5.2
Fixed
- Validation for IPv6
2.5.1
Changed
- Enforced length limit (trimming) on UserAgent field sent to payment gateway
2.5.0
Changed
- Compliance with Magento Coding Standards:
- Stop using superglobals
- Securing use of serialize/unserialize
- Escaping unsescaped output
- Removed installers and provided declarative schema definitions
- Improved version detection and registration of dependend libraries
2.4.2
Changed
- Increased callback urls length
2.4.1
Fixed
- Issue creating multiple returns for single transaction
- Preventing non-digits from being entered into BLIK code input
2.4.0
Added
- Feature: new block added to success page, for BLIK payments will show message "confirm in bank payment app" and allow to retry payment if BLIK payment fails
Changed
- updated payment icons
2.3.2
Added
- Feature: based on number of days in setting scheduled tasks cancel orders with overdue payment
2.3.1
Fixed
- Resolves DI compilation issue on Magento 2.4.8+
2.3.0
Changed
- Streamlined IPN processing
- Moved to Tpay OpenAPI SDK 2.0
2.2.2
Fixed
- Streamlined payment processing when there are no paywall redirects
2.2.1
Fixed
- Cache in multistore settings could store data from improper context
2.2.0
Added
- Proper use of CSP nonceProvider in checkout for PCI DSS 4.0 compliance
Fixed
- Origin Card API not respecting Sandbox setting
- Origin API not logging
- Improved caching of Open API token and group/channels list
- Changed API selection logic to prioritize Open API
2.1.7
Added
- Module version bump to be adequate to github tag
2.1.6
Added
- Blik one click payment variant
2.1.5
Fixed
- Remove unnecessary tos input
[2.1.4]
Fixed
- Language improvements
[2.1.3]
Added
- Adding minimum amount validation
Fixed
- Performance improvements
[2.1.1]
Fixed
- CSP configuration
- Partial refund
[2.1.0]
Added
- Adding version information in the Tpay configuration view
[2.0.9]
Fixed
- Fixed refund scope
[2.0.8]
Fixed
- Fixed admin scope config
[2.0.7]
Added
- Added regulations in english
Fixed
- Fixed card notification
[2.0.6]
Fixed
- Fixed currency validation
[2.0.5]
Added
- Readme file
Fixed
- Fixed channels and groups collision
[2.0.4]
Fixed
- Casting in additional data
- Regulations checkbox
[2.0.3]
Fixed
- Fixed logging
[2.0.2]
Fixed
- Performance improvements
[2.0.1]
Added
- Changes required for tpay-com/tpay-magento2-graphql
[2.0.0]
Added
- New version introducing (details below)
- Card payment in PLN and other currencies
- Tpay OpenApi (PLN) and Tpay OriginApi (PLN and card sales in other currencies) support
- Generic payment methods which can be displayed in checkout
- Code refactored to PSR-12 standards
- Bumped versions of Tpay libraries
- Sandbox Support
- Add changelog
| Version | Stability | QA Status | Compatibility | Released |
|---|---|---|---|---|
| 2.8.0 | stable | Fail | Magento 2.4.7-2.4.9 Details | 2026-06-09 14:21:00 |
| 2.7.1 | stable | Not tested | Not yet tested Details | 2026-05-08 07:44:57 |
| 2.7.0 | stable | Not tested | Not yet tested Details | 2026-03-27 09:46:27 |
| 2.6.3 | stable | Not tested | Not yet tested Details | 2026-03-26 09:04:36 |
| 2.6.2 | stable | Not tested | Not yet tested Details | 2026-03-19 11:20:02 |
| 2.6.1 | stable | Not tested | Not yet tested Details | 2026-03-13 09:24:42 |
| 2.6.0 | stable | Not tested | Not yet tested Details | 2026-02-24 13:16:29 |
| 2.5.3 | stable | Not tested | Not yet tested Details | 2025-12-11 08:16:14 |
| 2.5.2 | stable | Not tested | Not yet tested Details | 2025-11-05 14:12:42 |
| 2.5.1 | stable | Not tested | Not yet tested Details | 2025-10-27 10:37:05 |
| 2.5.0 | stable | Not tested | Not yet tested Details | 2025-10-07 07:16:41 |
| 2.4.2 | stable | Not tested | Not yet tested Details | 2025-10-01 09:47:31 |
| 2.4.1 | stable | Not tested | Not yet tested Details | 2025-09-26 12:11:01 |
| 2.4.0 | stable | Not tested | Not yet tested Details | 2025-08-21 13:22:57 |
| 2.3.2 | stable | Not tested | Not yet tested Details | 2025-07-07 08:14:22 |
| 2.3.1 | stable | Not tested | Not yet tested Details | 2025-05-29 09:29:39 |
| 2.3.0 | stable | Not tested | Not yet tested Details | 2025-05-26 11:18:48 |
| 2.2.2 | stable | Not tested | Not yet tested Details | 2025-05-13 08:20:56 |
| 2.2.1 | stable | Not tested | Not yet tested Details | 2025-04-30 08:24:52 |
| 2.2.0 | stable | Not tested | Not yet tested Details | 2025-04-07 14:31:34 |
| 2.1.7 | stable | Not tested | Not yet tested Details | 2025-01-16 13:30:51 |
| 2.1.6 | stable | Not tested | Not yet tested Details | 2024-12-17 09:04:44 |
| 2.1.5 | stable | Not tested | Not yet tested Details | 2024-10-28 08:58:49 |
| 2.1.4 | stable | Not tested | Not yet tested Details | 2024-10-04 13:58:40 |
| 2.1.3 | stable | Not tested | Not yet tested Details | 2024-09-30 10:36:59 |
| 2.1.2 | stable | Not tested | Not yet tested Details | 2024-08-13 14:24:04 |
| 2.1.1 | stable | Not tested | Not yet tested Details | 2024-08-09 08:49:13 |
| 2.1.0 | stable | Not tested | Not yet tested Details | 2024-08-06 08:17:47 |
| 2.0.9 | stable | Not tested | Not yet tested Details | 2024-07-23 10:08:34 |
| 2.0.8 | stable | Not tested | Not yet tested Details | 2024-07-16 08:20:05 |
| 2.0.7 | stable | Not tested | Not yet tested Details | 2024-06-18 07:05:55 |
| 2.0.6 | stable | Not tested | Not yet tested Details | 2024-05-21 08:13:49 |
| 2.0.5 | stable | Not tested | Not yet tested Details | 2024-04-25 11:30:32 |
| 2.0.4 | stable | Not tested | Not yet tested Details | 2024-04-16 13:00:25 |
| 2.0.3 | stable | Not tested | Not yet tested Details | 2024-03-19 15:58:38 |
| 2.0.2 | stable | Not tested | Not yet tested Details | 2024-03-18 18:54:45 |
| 2.0.1 | stable | Not tested | Not yet tested Details | 2024-03-18 13:30:45 |
| 2.0.0 | stable | Not tested | Not yet tested Details | 2024-03-15 09:09:46 |
| 1.5.5 | stable | Not tested | Not yet tested Details | 2022-12-21 09:29:39 |
| 1.4.6 | stable | Not tested | Not yet tested Details | 2021-08-31 10:23:53 |
| 1.4.5 | stable | Not tested | Not yet tested Details | 2021-06-28 12:59:53 |
| 1.5.4 | stable | Not tested | Not yet tested Details | 2021-06-28 10:31:50 |
| 1.5.3 | stable | Not tested | Not yet tested Details | 2021-02-12 10:43:47 |
| 1.5.2 | stable | Not tested | Not yet tested Details | 2020-11-26 10:08:30 |
| 1.5.1 | stable | Not tested | Not yet tested Details | 2020-01-07 08:04:15 |
| 1.5.0 | stable | Not tested | Not yet tested Details | 2019-07-15 15:36:06 |
| 1.4.4 | stable | Not tested | Not yet tested Details | 2019-04-30 10:30:38 |
| 1.4.3 | stable | Not tested | Not yet tested Details | 2019-04-19 14:08:05 |
| 1.4.2 | stable | Not tested | Not yet tested Details | 2019-04-11 09:19:15 |
| 1.4.1 | stable | Not tested | Not yet tested Details | 2018-12-19 13:32:46 |
| 1.4.0 | stable | Not tested | Not yet tested Details | 2018-09-26 14:39:02 |
| 1.3.9 | stable | Not tested | Not yet tested Details | 2018-06-15 12:46:53 |
| 1.3.8 | stable | Not tested | Not yet tested Details | 2018-04-09 11:15:16 |
| 1.3.7 | stable | Not tested | Not yet tested Details | 2018-02-21 14:16:34 |
| 1.3.6 | stable | Not tested | Not yet tested Details | 2017-12-29 15:55:33 |
| 1.3.5 | stable | Not tested | Not yet tested Details | 2017-11-15 13:39:22 |
| 1.3.4 | stable | Not tested | Not yet tested Details | 2017-11-07 11:16:02 |
| 1.3.3 | stable | Not tested | Not yet tested Details | 2017-10-23 14:37:02 |
| 1.3.2 | stable | Not tested | Not yet tested Details | 2017-10-05 10:16:29 |
| 1.3.1 | stable | Not tested | Not yet tested Details | 2017-08-28 13:29:18 |
| 1.3.0 | stable | Not tested | Not yet tested Details | 2017-08-28 12:36:08 |
| 1.2.0 | stable | Not tested | Not yet tested Details | 2017-08-04 12:48:26 |
| 1.1.9 | stable | Not tested | Not yet tested Details | 2017-08-04 11:46:16 |
| 1.1.8 | stable | Not tested | Not yet tested Details | 2017-07-03 08:55:31 |
| 1.1.7 | stable | Not tested | Not yet tested Details | 2017-06-23 10:32:30 |
| 1.1.6 | stable | Not tested | Not yet tested Details | 2017-06-21 11:53:41 |
| 1.1.5 | stable | Not tested | Not yet tested Details | 2017-05-25 10:12:26 |
| 1.1.4 | stable | Not tested | Not yet tested Details | 2017-05-23 11:26:15 |
Requires 6
| Package | Constraint |
|---|---|
| composer-runtime-api | ^2.0 |
| ext-json | * |
| php | >=7.1 |
| psr/simple-cache | ^1 |
| tpay-com/tpay-openapi-php | ^2.4.5 |
| tpay-com/tpay-php | ^2.4.7 |
Requires-dev 6
| Package | Constraint |
|---|---|
| php-cs-fixer/shim | ^3.92 |
| php-parallel-lint/php-parallel-lint | ^1.4 |
| phpstan/phpstan | ^2.1 |
| squizlabs/php_codesniffer | * |
| tpay-com/coding-standards | ^1.1 |
| vimeo/psalm | ^5.15.0 |
Suggests 2
| Package | Reason |
|---|---|
| tpay-com/magento2-graphql | Additional GraphQL endpoints to use in PWA checkout applications |
| tpay-com/module-hyva-checkout | Compatybility module for Hyvä Checkout |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.
Static analysis
Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.
| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Warning | 133 | 133 warnings (ruleset: Magento2) — 2 auto-fixable with phpcbf |
| PHPMD | Warning | 27 | 27 rule violations (UnusedFormalParameter:10, CyclomaticComplexity:3, NPathComplexity:3, ExcessiveClassComplexity:3, UnusedLocalVariable:2) |
| Cpd | Pass | 0 | |
| Composer validate | Pass | 0 |
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
Unit tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Integration tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Security
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
Turn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.