PHPackages                             paytrail/paytrail-for-adobe-commerce - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. paytrail/paytrail-for-adobe-commerce

ActiveMagento2-module[Payment Processing](/categories/payments)

paytrail/paytrail-for-adobe-commerce
====================================

Paytrail is a payment gateway that offers 20+ payment methods for Finnish customers.

2.2.15(2mo ago)348.2k↓29%9[2 PRs](https://github.com/paytrail/paytrail-for-adobe-commerce/pulls)MITPHPPHP ^8.0

Since Oct 14Pushed 2mo ago6 watchersCompare

[ Source](https://github.com/paytrail/paytrail-for-adobe-commerce)[ Packagist](https://packagist.org/packages/paytrail/paytrail-for-adobe-commerce)[ RSS](/packages/paytrail-paytrail-for-adobe-commerce/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (8)Versions (51)Used By (0)

Paytrail for Adobe Commerce
===========================

[](#paytrail-for-adobe-commerce)

[![](https://camo.githubusercontent.com/1f0acd5244f7ba89214926c6dadd52faa4e790b95e22b7bae9965bf58026558c/68747470733a2f2f7777772e706179747261696c2e636f6d2f68756266732f706179747261696c2d666f722d61646f62652d636f6d6d657263652f61646f62652d746563686e6f6c6f67792d706172746e65722e706e67)](https://camo.githubusercontent.com/1f0acd5244f7ba89214926c6dadd52faa4e790b95e22b7bae9965bf58026558c/68747470733a2f2f7777772e706179747261696c2e636f6d2f68756266732f706179747261696c2d666f722d61646f62652d636f6d6d657263652f61646f62652d746563686e6f6c6f67792d706172746e65722e706e67)

[Paytrail](https://www.paytrail.com) payment service for [Adobe Commerce](https://www.magento.com) (formerly known as Magento 2)

**WARNING: This module is not compatible with Markup/Paytrail module. Using both modules will cause errors.**

***Always perform a backup of your database and source code before installing any extensions.***

This module has been tested on Adobe Commerce / Magento 2.4.7, 2.4.6, 2.4.5, 2.4.4 and 2.3.X {community|commerce} versions. Support for 2.2.X has ended and compatibility with older versions cannot be guaranteed.

Adobe Commerce system requirements per tested version can be found [here](https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html).

Features
--------

[](#features)

This payment module has the following features:

- Payment methods provided by Paytrail payment service
- The ability to restore and ship a cancelled order
- Support for delayed payments (Collector etc.)
- Support for multiple stores within a single Magento 2 instance
- [Recurring Payments](https://github.com/paytrail/paytrail-for-adobe-commerce/wiki/Recurring-Payments)

Installation
------------

[](#installation)

**The module only supports installation via composer.**

Steps:

1. Make sure that you have Magento file system owner rights.
2. Navigate to your Adobe Commerce root folder on the command line and enter:
    `composer require paytrail/paytrail-for-adobe-commerce: --no-update`
3. If your credentials are asked, enter your Adobe Commerce marketplace access keys.
4. Enter command:
     `composer update paytrail/paytrail-for-adobe-commerce`
5. Run the following commands:
     `php bin/magento module:enable Paytrail_PaymentService`
     `php bin/magento setup:upgrade`
    `php bin/magento setup:di:compile`
    `bin/magento setup:static-content:deploy`
6. Navigate to Adobe Commerce admin interface and select **Stores -&gt; Store Configuration -&gt; Sales -&gt; Payment Methods -&gt; Paytrail for Adobe Commerce**
7. Enter your credentials and enable the module ([Test credentials](https://paytrail.github.io/api-documentation/#/?id=test-credentials))
8. Clear the cache

Usage
-----

[](#usage)

The module settings can be found from: **Stores -&gt; Configuration -&gt; Sales -&gt; Payment Methods -&gt; Paytrail for Adobe Commerce**

The module has the following settings:

- **Enable**: Defines whether the payment method is enabled or not *(Input: Yes / No)*
- **Payment method selection on a separate page**: Display payment method selection on a separate page *(Input: Yes / No)*
- **Merchant ID**: Your Paytrail merchant ID *(Input: Text)*
- **Merchant Secret**: Your Paytrail merchant secret *(Input: Secret)*
- **New Order Status**: A custom status for a new order paid for with Paytrail *(Input: Selection)*
- **Email Address For Notifications**: If a payment has been processed after the order has been cancelled, a notification will be sent to the merchant so that they can reactivate and ship the order *(Input: Email address)*
- **Payment from Applicable Countries**: Allow payments from all countries or specific countries *(Input: All / Specific)*
- **Payment from Specific Countries**: If the previous setting has been set to specific countries, this list can define the allowed countries *(Input: Selection)*

Setting up Recurring Payments
-----------------------------

[](#setting-up-recurring-payments)

The module now supports recurring payments. Please refer to [the full instructions on Recurring Payments](https://github.com/paytrail/paytrail-for-adobe-commerce/wiki/Recurring-Payments) to set it up.

Refunds
-------

[](#refunds)

This payment module supports online refunds.

Steps:

1. Navigate to **Sales -&gt; Orders** and select the order you need to fully or partially refund
2. Select Invoices from Order View side bar
3. Select the invoice
4. Select Credit Memo
5. Define the items you want to refund and optionally define an adjustment fee
6. Click Refund

Canceled order payment email notification
-----------------------------------------

[](#canceled-order-payment-email-notification)

If the customer closes the browser window right after completing the payment BUT before returning to the store, Adobe Commerce is left with a “Pending payment” status for the order. This status has a timeout, so if the payment confirmation does not arrive within 8 hours of the purchase, Adobe Commerce automatically cancels the order. Paytrail informs Adobe Commerce of a payment that has gone through, but it may take over 8 hours.

When the confirmation is finally made, Adobe Commerce registers the transaction to the order and changes the order status to Processing. But since the stock may have changed in the interim, the items are still cancelled. The merchant will receive an email informing about the payment that has gone through, but they have to manually go to said order, make sure the items are still available, and click “Restore order” to be able to ship it.

**Adjust the timeout**
The timeout period of 8 hours can be adjusted in Adobe Commerce configuration. A longer period may allow for Paytrail to confirm the order before it gets canceled, but it also reserves the stock for that exact time.

1. Go to **Stores -&gt; Configuration -&gt; Sales -&gt; Sales -&gt; Orders Cron Settings**
2. Adjust the **Pending Payment Order Lifetime (minutes)** value to your liking.

Order status
------------

[](#order-status)

**Pending Payment**
Assigned to an order when customer is redirected to the payment provider of their choosing.

**Pending Paytrail Payment Service**
Assigned to an order if Paytrail for Adobe Commerce is still waiting for a confirmation of payment. Applies to invoices, such as Collector.

**Processing**
Assigned to an order once payment is completed and items are ready for shipping.

**Canceled**
Assigned to an order if Pending Payment status has been active for over 8 hours.

Available statuses:

- Processing
- Suspected Fraud
- Pending Payment
- Pending Paytrail Payment Service
- Payment Review
- Pending
- On Hold
- Complete
- Closed
- Canceled

Setting up Apple Pay
--------------------

[](#setting-up-apple-pay)

The payment module supports Apple pay payments.

Steps:

1. Enable Apple Pay for your Paytrail Merchant Panel.
2. [Verify your domain with association file](https://docs.paytrail.com/#/?id=verifying-your-domain-with-apple-pay)
3. Enable Apple Pay in admin panel **Stores -&gt; Configuration -&gt; Sales -&gt; Payment Methods -&gt; Apple Pay Configuration**

Multiple stores
---------------

[](#multiple-stores)

If you have multiple stores, you can set up the payment module differently depending on the selected store. In configuration settings, there is a selection for Store View.

By changing the Store View, you can define different settings for each store within the Adobe Commerce instance.

Payment page UI
---------------

[](#payment-page-ui)

Version 2.2.0 provided new UI for payment page. There is no need to use new UI for payment page, old UI is still available when **Enable new UI** is set to No, as it is by default.

Enable New UI interface in admin panel **Stores -&gt; Configuration -&gt; Sales -&gt; Payment Methods -&gt; Payment Page UI -&gt; Enable new UI**

For the new UI, personalisation options are restricted only to highlight selected payment method and hover on payment method.

Data Anonymization
------------------

[](#data-anonymization)

If you want to anonymize data from order that is sent to payment provider, you can enable it in admin panel.

Enable Anonymization Order Data in admin panel **Stores -&gt; Configuration -&gt; Sales -&gt; Payment Methods -&gt; Anonymization Order Data -&gt; Enable**

Rounding problems with certain providers (Collector)
----------------------------------------------------

[](#rounding-problems-with-certain-providers-collector)

In some cases, this module might send a so-called "rounding-row" item in the order data, which might result in an error if this value is negative (this has been observed with Collector payment method). This is related to how Adobe Commerce calculates and rounds taxes and how this module compensates for possible mismatches between the total and sum of individual items.

There are three algorithms for tax calculation in Adobe Commerce which can be set in **Stores -&gt; Configuration -&gt; Sales -&gt; Tax -&gt; Tax Calculation Method Based On**

- Unit Price based
- Row Total based
- Total based

If the described error occurs when the calculation algorithm is Total based, changing it to Unit Price based might result in tax calculation with no mismatches.

**Note:** Changing the setting does not mean that the Unit Price based algorithm is better than Total or Row Total based, all three can have rounding issues in certain situations that can be resolved by choosing one of the other algorithms. The algorithms end up with the same calculations majority of the time.

---

***Disclaimer:*** *This open source module is provided to help merchants get started with our payment service. However, we do not offer any warranty or guarantee that the module will work as intended and provide limited support for it. Use at your own risk.*

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance85

Actively maintained with recent releases

Popularity35

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 65.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~37 days

Recently: every ~61 days

Total

44

Last Release

76d ago

Major Versions

1.4.5 → 2.0.02023-10-26

PHP version history (3 changes)1.0.0PHP ^7.1

1.2.0PHP ^7.3|^8.0

2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/261e7693fafe9aa13b98391de12213c6db6e8ea0904fc41b55ffc9a35f681a08?d=identicon)[VuorelaJ-P](/maintainers/VuorelaJ-P)

![](https://www.gravatar.com/avatar/4cf08522f5fee9430e0286956ae8252c185fe8f8c5d66a42f622dca111df9657?d=identicon)[loueranta-paytrail](/maintainers/loueranta-paytrail)

---

Top Contributors

[![bartoszkaluzny-solteq](https://avatars.githubusercontent.com/u/85225665?v=4)](https://github.com/bartoszkaluzny-solteq "bartoszkaluzny-solteq (911 commits)")[![konrad-konieczny](https://avatars.githubusercontent.com/u/51909244?v=4)](https://github.com/konrad-konieczny "konrad-konieczny (242 commits)")[![tommi-martin](https://avatars.githubusercontent.com/u/5362449?v=4)](https://github.com/tommi-martin "tommi-martin (91 commits)")[![loueranta-paytrail](https://avatars.githubusercontent.com/u/93136005?v=4)](https://github.com/loueranta-paytrail "loueranta-paytrail (76 commits)")[![robert-chmielewski](https://avatars.githubusercontent.com/u/109587170?v=4)](https://github.com/robert-chmielewski "robert-chmielewski (24 commits)")[![kotivuori](https://avatars.githubusercontent.com/u/111269748?v=4)](https://github.com/kotivuori "kotivuori (14 commits)")[![Seppo-Konttinen-Solteq](https://avatars.githubusercontent.com/u/45000414?v=4)](https://github.com/Seppo-Konttinen-Solteq "Seppo-Konttinen-Solteq (11 commits)")[![richard-madarasz](https://avatars.githubusercontent.com/u/60097305?v=4)](https://github.com/richard-madarasz "richard-madarasz (7 commits)")[![taskula](https://avatars.githubusercontent.com/u/12877644?v=4)](https://github.com/taskula "taskula (2 commits)")[![VuorelaJ-P](https://avatars.githubusercontent.com/u/92095698?v=4)](https://github.com/VuorelaJ-P "VuorelaJ-P (1 commits)")[![juhanihaapala](https://avatars.githubusercontent.com/u/3079827?v=4)](https://github.com/juhanihaapala "juhanihaapala (1 commits)")[![MAleksei](https://avatars.githubusercontent.com/u/35692782?v=4)](https://github.com/MAleksei "MAleksei (1 commits)")[![nikitasedletskiy](https://avatars.githubusercontent.com/u/67694099?v=4)](https://github.com/nikitasedletskiy "nikitasedletskiy (1 commits)")[![nikolaybaychenko](https://avatars.githubusercontent.com/u/13581265?v=4)](https://github.com/nikolaybaychenko "nikolaybaychenko (1 commits)")[![nikolay-baychenko-solteq](https://avatars.githubusercontent.com/u/220891000?v=4)](https://github.com/nikolay-baychenko-solteq "nikolay-baychenko-solteq (1 commits)")[![sheepfy](https://avatars.githubusercontent.com/u/17467949?v=4)](https://github.com/sheepfy "sheepfy (1 commits)")[![vmalyk](https://avatars.githubusercontent.com/u/5318027?v=4)](https://github.com/vmalyk "vmalyk (1 commits)")

---

Tags

adobe-commercemagento2paytrailpayment gatewayrecurring paymentmagento 2paytrailadobe commerce

### Embed Badge

![Health badge](/badges/paytrail-paytrail-for-adobe-commerce/health.svg)

```
[![Health](https://phpackages.com/badges/paytrail-paytrail-for-adobe-commerce/health.svg)](https://phpackages.com/packages/paytrail-paytrail-for-adobe-commerce)
```

###  Alternatives

[shetabit/multipay

PHP Payment Gateway Integration Package

291348.2k3](/packages/shetabit-multipay)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
