PHPackages                             mahocommerce/module-revolut - 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. mahocommerce/module-revolut

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

mahocommerce/module-revolut
===========================

Revolut payment gateway integration for Maho

110↓100%[3 PRs](https://github.com/MahoCommerce/module-revolut/pulls)PHPCI passing

Since May 21Pushed 1w agoCompare

[ Source](https://github.com/MahoCommerce/module-revolut)[ Packagist](https://packagist.org/packages/mahocommerce/module-revolut)[ RSS](/packages/mahocommerce-module-revolut/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (3)Used By (0)

Maho Revolut
============

[](#maho-revolut)

[![Maho Commerce](https://camo.githubusercontent.com/b6b18863bd9be2e126f1d0153283cb2c819a84aaf70031e8b7587a9faedeebcb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61686f5f436f6d6d657263652d6d6f64756c652d6f72616e6765)](https://camo.githubusercontent.com/b6b18863bd9be2e126f1d0153283cb2c819a84aaf70031e8b7587a9faedeebcb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61686f5f436f6d6d657263652d6d6f64756c652d6f72616e6765)[![License](https://camo.githubusercontent.com/bf8fb4e29810a9fc189ac77817d64e700c8cdad65219aec8af767d3413542703/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4f534c2d2d332e302d626c7565)](https://camo.githubusercontent.com/bf8fb4e29810a9fc189ac77817d64e700c8cdad65219aec8af767d3413542703/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4f534c2d2d332e302d626c7565)[![PHP](https://camo.githubusercontent.com/304040cd133992ef00119f16bf25c890678ce0c5b9898eb2b53349394e39707e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e332d383839324246)](https://camo.githubusercontent.com/304040cd133992ef00119f16bf25c890678ce0c5b9898eb2b53349394e39707e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e332d383839324246)[![PHPStan Level](https://camo.githubusercontent.com/ff3c7f8c8667ce643f47e74532748f673482a5f95d7d4269f925f2eebbe5117e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230382d627269676874677265656e)](https://camo.githubusercontent.com/ff3c7f8c8667ce643f47e74532748f673482a5f95d7d4269f925f2eebbe5117e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230382d627269676874677265656e)

Revolut payment gateway for [Maho Commerce](https://mahocommerce.com). The v1 ships **Revolut Pay** as a redirect checkout: the customer is sent to Revolut's hosted payment page, and the order is captured back in Maho via webhook.

Requirements
------------

[](#requirements)

- PHP &gt;= 8.3
- Maho Commerce
- A Revolut Business / Merchant account with API access

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

[](#installation)

```
composer require mahocommerce/module-revolut
```

Configuration
-------------

[](#configuration)

### 1. Get the Merchant API key

[](#1-get-the-merchant-api-key)

In your Revolut Business dashboard — production at , sandbox at  — go to:

**Merchant → APIs → Merchant API** tab → **API Keys → Sandbox API Secret key** (or *Production API Secret key* when going live).

Click the eye icon and copy the full `sk_...` secret.

Important

Make sure you are on the **Merchant API** tab, **not** *Business API*. The Business API needs OAuth + JWT + certificates; this module does not use it. The **Public key** (`pk_...`) shown on the same screen is unused by v1 (redirect checkout, no JS widget) — ignore it.

### 2. Configure Maho and register the webhook

[](#2-configure-maho-and-register-the-webhook)

In Maho admin → **System → Configuration → Sales → Payment Methods → Revolut — General Settings**:

1. **Sandbox Mode** — on while testing, off in production
2. **Merchant API Key** — the `sk_...` from step 1
3. Click **Save Config**
4. Click **Register Webhook**

The module calls `POST /api/1.0/webhooks` on your behalf, registers `https:///revolut/webhook` for the relevant order events, and stores the returned signing secret and webhook ID in the form. The signing secret is returned only once by Revolut, so the button is the easiest way to get it.

Note

The Revolut Merchant dashboard does **not** have a Webhooks UI — webhook management is API-only. If you'd rather do it by hand, run:

```
curl -X POST https://sandbox-merchant.revolut.com/api/1.0/webhooks \
  -H "Authorization: Bearer " \
  -H "Revolut-Api-Version: 2024-09-01" \
  -H "Content-Type: application/json" \
  -d '{"url":"https:///revolut/webhook","events":["ORDER_COMPLETED","ORDER_AUTHORISED","ORDER_PAYMENT_DECLINED","ORDER_PAYMENT_FAILED"]}'
```

Swap the host to `https://merchant.revolut.com` for production. Then paste the `signing_secret` from the response into the **Webhook Signing Secret** field.

To **list / rotate / delete** webhooks later:

- `GET /api/1.0/webhooks` — list all
- `GET /api/1.0/webhooks/{id}` — retrieve one (also returns `signing_secret`)
- `POST /api/1.0/webhooks/{id}/rotate-signing-secret` — rotate the secret
- `DELETE /api/1.0/webhooks/{id}` — delete

### 3. Enable Revolut Pay

[](#3-enable-revolut-pay)

Under **Revolut — Revolut Pay**:

- **Enabled** — Yes
- **Title / Sort Order / Payment Action** — to taste (Authorize Only vs. Authorize and Capture)

Development
-----------

[](#development)

This module ships with the standard Maho CI gates:

- **PHPStan** (level 8) — `vendor/bin/phpstan analyze`
- **Rector** (dry-run) — `vendor/bin/rector -c .rector.php --dry-run`
- **PHP CS Fixer** (dry-run) — `vendor/bin/php-cs-fixer fix --dry-run`
- **PHP / XML syntax checks** — automatic on CI

Run `composer install` and you can execute any of the above locally before pushing.

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance64

Regular maintenance activity

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 95.2% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/262e16fb4a6bbef60ac0fd0172f5586e2c24effcc80a2138e662fb0316083c4c?d=identicon)[fballiano](/maintainers/fballiano)

---

Top Contributors

[![fballiano](https://avatars.githubusercontent.com/u/909743?v=4)](https://github.com/fballiano "fballiano (20 commits)")[![maho-organization-controller[bot]](https://avatars.githubusercontent.com/u/176492716?v=4)](https://github.com/maho-organization-controller[bot] "maho-organization-controller[bot] (1 commits)")

---

Tags

ecommercemahoopen-sourcepayment-integrationphprevolut

### Embed Badge

![Health badge](/badges/mahocommerce-module-revolut/health.svg)

```
[![Health](https://phpackages.com/badges/mahocommerce-module-revolut/health.svg)](https://phpackages.com/packages/mahocommerce-module-revolut)
```

###  Alternatives

[omnipay/coinbase

Coinbase driver for the Omnipay payment processing library

18570.2k1](/packages/omnipay-coinbase)[yenepay/php-sdk

YenePay SDK for PHP

112.7k](/packages/yenepay-php-sdk)

PHPackages © 2026

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