almapay / alma-monthlypayments-magento2
almapay/alma-monthlypayments-magento2
Integrates Alma Monthly Payments into Magento 2
Alma Monthly Payments for Magento 2
This plugin adds a new payment method to Magento 2, which allows you to offer monthly payments to your customer using Alma.
Description
Alma is a service to provide merchants with an easy and safe monthly payments solution.
Let your customers pay for their purchases at their own pace! You'll receive the funds instantly, and your customer will pay later over a few monthly instalments.
This plugin integrates Alma into Magento 2 by adding a new payment method that you can activate to offer monthly payments to your customers.
Requirements
Compatibility
- Adobe Commerce (Magento) versions 2.3.5 to 2.4.7: Fully compatible with the latest version of our module.
- Adobe Commerce (Magento) versions 2.2.8 to 2.3.5: Compatible with module version 2.8.2.
- Adobe Commerce (Magento) versions lower than 2.2.8: Partially compatible with module version 2.8.2.
- PHP: Compatible with versions
7.1to8.1
Installation
Account Setup (Required)
Before configuring the module, you need to create your merchant account on dashboard.getalma.eu.
- Go to registration page and create an account.
- Retrieve your API key from the dashboard.
- Use these credentials in the module configuration.
Method: Composer Installation (Recommended)
-
Run the following command in your Magento root directory:
$ composer require almapay/alma-monthlypayments-magento2 -
Enable the module:
$ bin/magento module:enable Alma_MonthlyPayments -
Run setup upgrade and compile:
$ bin/magento setup:upgrade $ bin/magento setup:di:compile $ bin/magento setup:static-content:deploy $ bin/magento cache:flush
Configuring the plugin
After installing the plugin, go to Stores > Configuration > Sales > Payment Methods.
Find "Alma Monthly Payments" in the payment methods list to start configuring it.
Fill in the API keys for your account, which you can find on your dashboard's security page.
You also have access to different settings to control what the plugin should display on the Cart, Mini-cart and Checkout pages.
We advise you to stay in "Test" mode until you're happy with your configuration and are ready to accept payments from your customers.
Once everything is properly set up, go ahead and switch to "Live" mode!
Support
If you encounter any issues or have questions, feel free to contact us at [email protected].
Changelog
v5.8.1 - 2025-10-01
Changes
- Backport main to develop (#280)
🐛 Bug Fixes
- fix: install on version 2.4.8 (#283)
Contributors
@Benjamin-Freoua-Alma, @alma-renovate-bot[bot], @remi-zuffinetti, alma-renovate-bot[bot] and github-actions[bot]
v5.8.0 - 2025-09-30
Changes
🚀 New Features
- feat: add payment method list to cms Features (#278)
Contributors
@Francois-Gomis, @alma-renovate-bot[bot], @remi-zuffinetti, alma-renovate-bot[bot] and github-actions[bot]
v5.7.1 - 2025-07-31
🐛 Bug Fixes
- Coding standard lint and escape (#271)
Contributors
@Francois-Gomis and github-actions[bot]
v5.7.0 - 2025-07-30
Changes
🚀 New Features
- fix PHP 8.4 Implicitly marking parameter as nullable is deprecated (#267)
🐛 Bug Fixes
- fix: Error previous order without shipping method (#264)
- fix: add website scope in gateway config (#266)
Contributors
@Benjamin-Freoua-Alma, @Francois-Gomis, @alma-renovate-bot[bot], @gdraynz, @joyet-simon,
@remi-zuffinetti, alma-renovate-bot[bot]
and github-actions[bot]
v5.6.0 - 2025-04-24
Changes
🚀 New Features
- Feature: set in page setting to 1 by default (#246)
- Feature: upgrade widget to v4 (#245)
🐛 Bug Fixes
- Fix: remove insurance db (#252)
- Fix: first save fee plans config (#244)
Contributors
@Benjamin-Freoua-Alma, @Francois-Gomis, @alma-renovate-bot[bot], @joyet-simon, @remi-zuffinetti,
@webaaz, alma-renovate-bot[bot]
and github-actions[bot]
v5.5.0 - 2025-03-24
🚀 New Features
- Use the new endpoint for order status (#231)
🐛 Bug Fixes
- Fix CSP whitelist for Stripe, Adyen and checkout.com (#233)
Changes
- Remove insurance codebase (#236)
Contributors
@Benjamin-Freoua-Alma, @Francois-Gomis, @alma-renovate-bot[bot],
@webaaz, alma-renovate-bot[bot]
and github-actions[bot]
v5.4.0 - 2025-01-30
🚀 New Features
- Implement merchant business event (#223)
Contributors
@Francois-Gomis, @alma-renovate-bot[bot], @carine-bonnafous,
@joyet-simon, alma-renovate-bot[bot]
and github-actions[bot]
v5.3.0 - 2024-12-12
🚀 New Features
- Fix gather cms data (#212)
- Implement Send Url and Gather Data collection (#211)
- Change wording for in page configuration (#209)
- Multi shipping insurance compatibility (#208)
- Integrate credit for in page (#202)
- Fix bug cart payment payload creation (#200)
🐛 Bug Fixes
- Fix compatibility with parent::__construct form Fieldset 2.3.7 (#207)
Contributors
@Francois-Gomis, @alma-renovate-bot, @alma-renovate-bot[bot], @gdraynz, @github-actions, @joyet-simon and
@remi-zuffinetti
v5.2.0 - 2024-09-12
Changes
- Remove insurance products from active carts when insurance is disabled (#197)
- Add signature verification on ipn (#191)
- Insurance reset widget on qty change (#195)
- Warn user that module is in test mode (#187)
🐛 Bug Fixes
- Fix getNameUnsanitizedHtml name override (#193)
- Fix Order confirmation email was sent, but the field email_sent remains NULL (#194)
- Fix stack product in quote if insurance product not exist (#188)
Contributors
@FranceBe, @Francois-Gomis, @defenseoftheancients, @github-actions and [email protected]
v5.1.0 - 2024-08-08
Changes
- Shipment info analysis (#182)
Contributors
@Francois-Gomis
v5.0.2 - 2024-07-30
Changes
- Fix add insurance pop up click event listener only for eligible products (#179)
Contributors
@Francois-Gomis, @carine-bonnafous and @github-actions
v5.0.1 - 2024-07-09
- Change array_search to in_array for adobe commerce php_cs
v5.0.0 - 2024-07-08
- Beta Alma Insurance
- Gather cart data from pnx and deferred payments
v4.3.0
- feat : data analysis for improved customer experience
v4.2.0
- feat : Deferred Payments with In page checkout
v4.1.1
- fix : Remove duplicate font src in csp whitelist
- fix : Replace grand_total by base_grand_total for In Page
v4.1.0
- feat: Remove Alma feature flag for In Page
- fix : payment method selection bug on checkout
v4.0.0
- feat: Allow in page payment for Pay Now and pay in installments
v3.4.0
- feat: Pay now by credit card with Alma
- feat: Add data for Alma Risk - 10 past purchases
- fix: Fix return SEPA issue
- fix: Fix php 8.2 compatibility issues
v3.3.0
- feat: Add quote items in Alma payment payload for credit.
v3.2.0
- fix: Add unit of time in Payment expiration time comment.
- feat: change payment upon trigger visibility
v3.1.3
- fix: StoreResolver GraphQl compatibility
- fix: product page TTC price when "Update with qty" is false
- feat: No refresh widget when "Update with qty" is false
- feat: redirection to payment page after cancel order
v3.1.2
- fix: sql error for product without category
- fix: remove backend path in return url
- fix: readme composer vendor name
- fix: init empty message
v3.1.1
- fix: cart eligibility translations
- fix: SecureHtmlRenderer does not exist
- fix: Parse error: syntax error unexpected 'Config'
v3.1.0
- New Alma logo !
- fix: fatal error on disabled
- feature: Share of Checkout
- refactor: allowed plans
v3.0.0
- feature: change vendor name to almapay
- fix: get product error on product page when cache is enabled
- feature: update alma widget to 2.12.3
v2.9.0
- fix : multi store management
- feature : use only test or prod api Key
- feature : change payment methode configuration in back office
v2.8.2
- Wait for share of checkout legal
v2.8.1
- Fix Alma is not defined in back office
- Change widget version 2.11.1
v2.8.0
- Add B2B compatibility
- Add cancel order by ipn ( need configuration in alma dashboard )
- i18n add share of checkout translations
v2.7.0
- Add share of checkout
- Add online invoice refund
v2.6.2
- Fix virtual cart compatibility
v2.6.1
- Fix CDN version 2.8.0
v2.6.0
- Add rejected payment url in config back office.
- Add failure_return_url in payment payload.
- Add failre return controler page.
- Add languages : de_AT,en_GB,EN_IE,fr_BE,fr_LU,nl_BE
v2.5.0
- Change badge price for configurable product
- Cancel pending order with Alma payment page return button
- Fix isFullyConfigured missing function in config
v2.4.0
- Fix shipping cost in checkout page
- Fix badge price for front without cents
- Refactor helpers
v2.3.2
- Fix eligibility initialisation for : isEligible() must be of the type boolean
v2.3.1
- Fix alma-php-client requirement
- I18n
v2.3.0
- Feature add payment uppon trigger
- Fix tax grand total in p>4
- Fix white space in translatation "Your cart total : "
- Feature add module version on enable comment
- Feature add collect logs in back office
- Feature add control for min and max value for each plan
v2.2.1
- Catch eligibility exception
- Remove quote init in constructor
- Change quoteHelper return type
v2.2.0
- Add quote selector for eligibility and remove checkout session.
- Fix get alma payment Url
- Remove customer data in eligibility
- Use custom class for back-office display
- Fixes total cart round credit cost
- Add Alma in back-office menu
- Split payment methods
v2.1.3
- Fixes compatibility issues
v2.1.2
- Fixes cart min and max alma eligibility
- Add graphQL eligibility function
v2.1.1
- Fixes product page secure render for 2.3.5
v2.1.0
- Add i18n badge V2
- Fixes fee plans and installments on checkout page
v2.0.0
- Add i18n with eligibility V2
- Fixes init quote with hasquote methode in session plugin
- Fixes circular dependency injection in gateway/config and Log
v1.4.1
- Incremental compatibility Fix on invalid payment into Session for Magento 2.4.2-p1 and later
v1.4.0
- Add Alma Paylater feature
- Add Alma Pnx payment plan from 5x to 12x
v1.3.1
- Add Alma 10x payment plan feature
v1.3.0
- Adds an Alma badge with eligibility/payment plans information on product pages
- Standardization of code
v1.2.1
- Fixes module's registration dir path, which in some situations prevented the payment plans admin config form to
display correctly
v1.2.0
- Improves admin configuration UI
- Updates Alma logo
- Fixes bug preventing Alma from being activated after saving its configuration for the first time
- Fixes Alma disappearing from payment methods when sort order is higher than number of methods
- Displays fullscreen loader while redirecting to Alma's payment page from checkout
- Adds support for multiple payment plans, each configurable with specific purchase amount bounds
- Adds Web API endpoint to check eligibility for the activated payment plans
v1.1.2
- Makes sure there is a CheckoutSession with an active quote when using the REST API
v1.1.1
- Removes
api_rootoverride that should not have been committed
v1.1.0
-
Adds Web API endpoints to get an Alma URL for an order paid with Alma, and to validate such a payment
upon customer return. Seeetc/webapi.xmlfor endpoints URLs andModel/Api/Payment.phpfor
implementation. -
Adds 3 API Configuration fields to override
return_url,ipn_callback_urlandcustomer_cancel_url
in created payments.
v1.0.7
- Order status fix
v1.0.6
- Order status fix
v1.0.5
- Fixes a bug with order status management on Magento 2.3.2
- Adds some data collection for risk/fraud prevention
v1.0.4
- Fixes obfuscated API keys values being retried as Alma API credentials
v1.0.3
- Fixes incorrect version requirements in Composer manifest
v1.0.2
- Fixes class not found
Throwableon some PHP versions
v1.0.1
Let's start following semver.
- Switches logo image to SVG
- Adds User-Agent string containing the module's version, Magento version, PHP client and PHP versions, to all requests
going to Alma's API.
v1.0.0
This version evolved for a while without any version bump 🤷♂️
Features in the latest push to this release:
- Module can be configured in Test and Live mode
- A message displays below the cart and in the minicart to indicate whether the purchase is eligible to monthly
installments - The module adds a payment method to the checkout, which redirects the user to Alma's payment page.
If everything goes right (i.e. Customer doesn't cancel, pays the right amount, ... ), the order is validated upon
customer return.
| Version | Stability | QA Status | Compatibility | Released |
|---|---|---|---|---|
| 5.8.1 | stable | Fail | Magento 2.4.7-2.4.9 Details | 2025-10-01 09:13:41 |
| 5.8.0 | stable | Not tested | Not yet tested Details | 2025-09-30 14:11:46 |
| 5.7.1 | stable | Not tested | Not yet tested Details | 2025-07-31 13:15:49 |
| 5.7.0 | stable | Not tested | Not yet tested Details | 2025-07-30 08:19:40 |
| 5.6.0 | stable | Not tested | Not yet tested Details | 2025-04-24 12:35:57 |
| 5.5.0 | stable | Not tested | Not yet tested Details | 2025-03-24 14:14:38 |
| 5.4.0 | stable | Not tested | Not yet tested Details | 2025-02-03 09:31:09 |
| 5.3.0 | stable | Not tested | Not yet tested Details | 2024-12-12 14:35:10 |
| 5.2.0 | stable | Not tested | Not yet tested Details | 2024-09-12 13:05:33 |
| 5.1.0 | stable | Not tested | Not yet tested Details | 2024-08-08 13:52:57 |
| 5.0.2 | stable | Not tested | Not yet tested Details | 2024-07-30 13:06:28 |
| 5.0.1 | stable | Not tested | Not yet tested Details | 2024-07-09 10:26:35 |
| 5.0.0 | stable | Not tested | Not yet tested Details | 2024-07-08 14:01:29 |
| 4.3.0 | stable | Not tested | Not yet tested Details | 2024-05-23 13:12:33 |
| 4.2.0 | stable | Not tested | Not yet tested Details | 2024-03-25 14:10:12 |
| 4.1.1 | stable | Not tested | Not yet tested Details | 2023-12-20 14:28:53 |
| 4.1.0 | stable | Not tested | Not yet tested Details | 2023-09-18 13:47:09 |
| 4.0.0 | stable | Not tested | Not yet tested Details | 2023-07-31 07:39:00 |
| 3.4.0 | stable | Not tested | Not yet tested Details | 2023-06-26 14:57:09 |
| 3.3.0 | stable | Not tested | Not yet tested Details | 2023-06-05 15:52:15 |
| 3.2.0 | stable | Not tested | Not yet tested Details | 2023-02-13 22:09:33 |
| 3.1.3 | stable | Not tested | Not yet tested Details | 2023-01-10 20:31:53 |
| 3.1.2 | stable | Not tested | Not yet tested Details | 2022-12-12 12:09:43 |
| 3.1.1 | stable | Not tested | Not yet tested Details | 2022-11-18 13:34:54 |
| 3.1.0 | stable | Not tested | Not yet tested Details | 2022-11-10 08:19:36 |
| 3.0.0 | stable | Not tested | Not yet tested Details | 2022-10-04 13:09:17 |
| 2.9.0 | stable | Not tested | Not yet tested Details | 2022-09-13 12:14:29 |
| 2.8.2 | stable | Not tested | Not yet tested Details | 2022-07-25 08:21:50 |
| 2.8.1 | stable | Not tested | Not yet tested Details | 2022-07-19 09:44:47 |
| 2.8.0 | stable | Not tested | Not yet tested Details | 2022-06-29 08:44:14 |
| 2.7.0 | stable | Not tested | Not yet tested Details | 2022-06-21 15:07:23 |
| 2.6.2 | stable | Not tested | Not yet tested Details | 2022-06-09 14:06:46 |
| 2.6.1 | stable | Not tested | Not yet tested Details | 2022-06-07 14:27:27 |
| 2.6.0 | stable | Not tested | Not yet tested Details | 2022-05-23 09:28:58 |
| 2.5.0 | stable | Not tested | Not yet tested Details | 2022-04-19 07:34:24 |
| 2.4.0 | stable | Not tested | Not yet tested Details | 2022-04-12 13:49:39 |
| 2.3.2 | stable | Not tested | Not yet tested Details | 2022-03-30 11:43:15 |
| 2.3.1 | stable | Not tested | Not yet tested Details | 2022-03-22 13:07:01 |
| 2.3.0 | stable | Not tested | Not yet tested Details | 2022-03-22 13:00:14 |
| 2.2.1 | stable | Not tested | Not yet tested Details | 2022-03-21 16:52:31 |
| 2.2.0 | stable | Not tested | Not yet tested Details | 2022-03-07 09:57:46 |
| 2.1.3 | stable | Not tested | Not yet tested Details | 2022-02-16 10:45:22 |
| 2.1.2 | stable | Not tested | Not yet tested Details | 2022-02-14 08:29:47 |
| 2.1.1 | stable | Not tested | Not yet tested Details | 2022-02-07 12:10:14 |
| 2.1.0 | stable | Not tested | Not yet tested Details | 2022-01-31 13:28:20 |
| 2.0.0 | stable | Not tested | Not yet tested Details | 2022-01-20 16:13:56 |
| 1.4.1 | stable | Not tested | Not yet tested Details | 2021-10-26 08:42:52 |
| 1.4.0 | stable | Not tested | Not yet tested Details | 2021-10-08 09:21:44 |
| 1.3.1 | stable | Not tested | Not yet tested Details | 2021-09-09 11:27:37 |
| 1.3.0 | stable | Not tested | Not yet tested Details | 2021-06-17 14:38:35 |
| 1.2.1 | stable | Not tested | Not yet tested Details | 2021-04-28 22:24:08 |
| 1.2.0 | stable | Not tested | Not yet tested Details | 2021-04-16 01:05:37 |
| 1.1.2 | stable | Not tested | Not yet tested Details | 2020-05-07 17:59:38 |
| 1.1.1 | stable | Not tested | Not yet tested Details | 2020-04-16 12:54:20 |
| 1.1.0 | stable | Not tested | Not yet tested Details | 2020-03-15 01:07:46 |
| 1.0.7 | stable | Not tested | Not yet tested Details | 2019-09-17 09:58:47 |
| 1.0.6 | stable | Not tested | Not yet tested Details | 2019-09-16 20:05:33 |
| 1.0.5 | stable | Not tested | Not yet tested Details | 2019-09-16 09:38:30 |
| 1.0.4 | stable | Not tested | Not yet tested Details | 2019-05-16 12:39:15 |
| 1.0.3 | stable | Not tested | Not yet tested Details | 2019-05-14 16:01:27 |
| 1.0.2 | stable | Not tested | Not yet tested Details | 2019-04-17 14:25:25 |
| 1.0.1 | stable | Not tested | Not yet tested Details | 2019-03-02 12:59:36 |
| 1.0.0 | stable | Not tested | Not yet tested Details | 2019-03-02 12:45:31 |
Requires 2
| Package | Constraint |
|---|---|
| php | >=7.1 |
| alma/alma-php-client | ^2.6 |
Requires-dev 1
| Package | Constraint |
|---|---|
| mockery/mockery | ^1.3 |
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 | 1041 | 1041 warnings (ruleset: Magento2) — 69 auto-fixable with phpcbf |
| PHPMD | Fail | 49 | 49 rule violations (UndefinedVariable:17, UnusedFormalParameter:7, MissingImport:6, TooManyPublicMethods:5, UnusedPrivateMethod:3) |
| Cpd | Warning | 4 | 4 duplicated chunks spanning 91 total lines (min-lines=5, min-tokens=70) |
| Composer validate | Info | 1 | valid; 1 advisory note (composer validate --strict) |
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
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.