# almapay/alma-monthlypayments-magento2

> Integrates Alma Monthly Payments into Magento 2

`composer require almapay/alma-monthlypayments-magento2`

Canonical URL: https://packagento.com/almapay/alma-monthlypayments-magento2

## At a glance

- **Vendor**: almapay (https://packagento.com/almapay.md)
- **Latest version**: 5.8.1 — released 2025-10-01
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/almapay/alma-monthlypayments-magento2 and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require almapay/alma-monthlypayments-magento2:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

Integrates Alma Monthly Payments into Magento 2

## README

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](https://getalma.eu) 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.1` to `8.1`

### Installation

#### Account Setup (Required)

Before configuring the module, you need to create your merchant account on [dashboard.getalma.eu](https://dashboard.getalma.eu).

1. Go to [registration page](https://dashboard.getalma.eu/register) and create an account.
2. Retrieve your API key from the dashboard.
3. Use these credentials in the module configuration.

#### Method: Composer Installation (Recommended)
1. Run the following command in your Magento root directory:
   ```bash
   $ composer require almapay/alma-monthlypayments-magento2
    ```
2. Enable the module:
   ```bash
   $ bin/magento module:enable Alma_MonthlyPayments
    ```

3. Run setup upgrade and compile:
   ```bash
   $ 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](https://dashboard.getalma.eu/security).

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 [support@getalma.eu](mailto:support@getalma.eu.).

## 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]](https://github.com/apps/alma-renovate-bot) and [github-actions[bot]](https://github.com/apps/github-actions)

### 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]](https://github.com/apps/alma-renovate-bot) and [github-actions[bot]](https://github.com/apps/github-actions)

### v5.7.1 - 2025-07-31

#### 🐛 Bug Fixes

- Coding standard lint and escape (#271)

##### Contributors

@Francois-Gomis and [github-actions[bot]](https://github.com/apps/github-actions)

### 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]](https://github.com/apps/alma-renovate-bot)
and [github-actions[bot]](https://github.com/apps/github-actions)

### 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]](https://github.com/apps/alma-renovate-bot)
and [github-actions[bot]](https://github.com/apps/github-actions)

### 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]](https://github.com/apps/alma-renovate-bot)
and [github-actions[bot]](https://github.com/apps/github-actions)

### 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]](https://github.com/apps/alma-renovate-bot)
and [github-actions[bot]](https://github.com/apps/github-actions)

### 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 hng.atuan@gmail.com

### v5.1.0 - 2024-08-08

#### Changes

- Shipment info analysis (#182)

##### Contributors

@Francois-Gomis

### v5.0.2 - 2024-07-30

_(Changelog truncated for .md surface. Full history on https://packagento.com/almapay/alma-monthlypayments-magento2.)_

## Recent Versions

| Version | Released |
|---|---|
| 5.8.1 | 2025-10-01 |
| 5.8.0 | 2025-09-30 |
| 5.7.1 | 2025-07-31 |
| 5.7.0 | 2025-07-30 |
| 5.6.0 | 2025-04-24 |
| 5.5.0 | 2025-03-24 |
| 5.4.0 | 2025-02-03 |
| 5.3.0 | 2024-12-12 |
| 5.2.0 | 2024-09-12 |
| 5.1.0 | 2024-08-08 |

Showing 10 of 63 versions. Full release history on https://packagento.com/almapay/alma-monthlypayments-magento2.

## Dependencies

### Require

| Package | Constraint |
|---|---|
| alma/alma-php-client | ^2.6 |
| php | >=7.1 |

### Require (dev)

| Package | Constraint |
|---|---|
| mockery/mockery | ^1.3 |

## Quality

Latest release (5.8.1) fails the Packagento QA pipeline. Verdicts below are per-cell (Magento line × PHP version) for the matrixed tools, and run-once for the static / security tiers.


### Compatibility

Each Magento line is installed on its supported PHP versions, then the module is built (DI compile + static-content deploy). Cells show passed / failed / untested; staircase gaps render as `–`.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | Pass | Pass | – | – |
| 2.4.8 | – | Pass | Pass | – |
| 2.4.9 | – | – | Pass | Pass |


### Code Quality

Advisory checks against the module's source. Never affect the Compatibility verdict — 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 against a real Magento install. Re-runs per Magento + PHP version because resolvable symbols differ between releases.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | 107 | 107 | – | – |
| 2.4.8 | – | 108 | 108 | – |
| 2.4.9 | – | – | 107 | 107 |


### Tests

Unit and integration suites run per Magento + PHP cell. Test failures speak to the module's behaviour, not its compatibility with a line, so they're reported here separately.

#### Unit Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | Pass | Pass | – | – |
| 2.4.8 | – | Pass | Pass | – |
| 2.4.9 | – | – | Pass | Pass |

#### 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

Dependency-advisory audit (composer audit) plus a source malware scan. A malware detection fails the version outright.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| Composer audit | Pass | 0 |  |
| Malware scan | Pass | 0 |  |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["almapay/alma-monthlypayments-magento2"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

almapay is a Magento 2 vendor on Packagento. See https://packagento.com/almapay.md for their full catalogue.

