PHPackages                             monei/sylius-monei-plugin - 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. monei/sylius-monei-plugin

ActiveSylius-plugin[Payment Processing](/categories/payments)

monei/sylius-monei-plugin
=========================

MONEI payment gateway for Sylius — Cards, Bizum, Apple Pay, Google Pay via hosted page or embedded component.

v1.0.0(1mo ago)00[1 issues](https://github.com/MONEI/SyliusMoneiPlugin/issues)MITPHPPHP ^8.2CI failing

Since Apr 12Pushed 1mo agoCompare

[ Source](https://github.com/MONEI/SyliusMoneiPlugin)[ Packagist](https://packagist.org/packages/monei/sylius-monei-plugin)[ RSS](/packages/monei-sylius-monei-plugin/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (17)Versions (2)Used By (0)

 [ ![MONEI](https://camo.githubusercontent.com/abb07eeea2b2765d632a03986f6e006b691f6d75992d4fabc4efdf4bf1373df9/68747470733a2f2f6173736574732e6d6f6e65692e636f6d2f696d616765732f6c6f676f2e737667) ](https://monei.com)

MONEI Payment Plugin for Sylius
===============================

[](#monei-payment-plugin-for-sylius)

 Accept payments with [MONEI](https://monei.com) in your Sylius store — Cards, Bizum, Apple Pay, Google Pay.
 MONEI is a licensed Payment Institution (Banco de España #6911).

 [![Build Status](https://github.com/MONEI/SyliusMoneiPlugin/workflows/CI/badge.svg)](https://github.com/MONEI/SyliusMoneiPlugin/actions) [![Latest Stable Version](https://camo.githubusercontent.com/0847d6f1a196d490e33b6a7ea17ef5021fef21ee476e7002854ba0d26898a78c/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6e65692f73796c6975732d6d6f6e65692d706c7567696e2f762f737461626c65)](https://packagist.org/packages/monei/sylius-monei-plugin) [![License](https://camo.githubusercontent.com/f1882d974f53a408099e16d8c34d4aa2ce868841738159e34c102342ad732109/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6e65692f73796c6975732d6d6f6e65692d706c7567696e2f6c6963656e7365)](https://packagist.org/packages/monei/sylius-monei-plugin) [![Sylius Version](https://camo.githubusercontent.com/7a1604ec0b38528365e31ad6b5b01e19073394c799a051ac2a7c8819300807b6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796c6975732d253545322e312d626c7565)](https://camo.githubusercontent.com/7a1604ec0b38528365e31ad6b5b01e19073394c799a051ac2a7c8819300807b6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796c6975732d253545322e312d626c7565) [![PHP Version](https://camo.githubusercontent.com/bd31a1e9f4a64c3c4f87b0386edb737ac17fb609f8ffdc06f4f08c84ce792bd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e322d707572706c65)](https://camo.githubusercontent.com/bd31a1e9f4a64c3c4f87b0386edb737ac17fb609f8ffdc06f4f08c84ce792bd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e322d707572706c65)

---

Features
--------

[](#features)

- **Two integration modes** — Hosted Payment Page (redirect) or Embedded MONEI Component (JS widget), configurable per gateway in the Sylius admin
- **All MONEI payment methods** — Cards (Visa, Mastercard, Amex), Bizum, Apple Pay, Google Pay
- **Full lifecycle support** — Capture, Refund (full &amp; partial), Cancel, and Status sync
- **Webhook-driven** — Asynchronous payment status updates via signed MONEI webhooks
- **PSD2 / SCA ready** — 3D Secure handled automatically by MONEI
- **Official SDK** — Built on the [`monei/monei-php-sdk`](https://packagist.org/packages/monei/monei-php-sdk) for reliable API communication and signature verification
- **Multi-language** — Admin translations in English, Spanish, Catalan, and French

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

[](#requirements)

DependencyVersionPHP8.2+Sylius2.1+Symfony6.4 or 7.xInstallation
------------

[](#installation)

### 1. Install via Composer

[](#1-install-via-composer)

```
composer require monei/sylius-monei-plugin
```

### 2. Register the bundle

[](#2-register-the-bundle)

If your Sylius project doesn't use Symfony Flex, add the bundle manually:

```
// config/bundles.php
return [
    // ...
    Monei\SyliusPlugin\MoneiSyliusPlugin::class => ['all' => true],
];
```

### 3. Import the plugin routes (optional)

[](#3-import-the-plugin-routes-optional)

```
# config/routes/monei.yaml
monei_sylius:
    resource: "@MoneiSyliusPlugin/config/routes.xml"
    prefix: /monei
```

> Payum handles the webhook notify route automatically — no additional route config is needed for basic operation.

### 4. Configure MONEI in the Sylius Admin

[](#4-configure-monei-in-the-sylius-admin)

1. Go to **Configuration → Payment methods**
2. Click **Create** and choose **MONEI** as the gateway
3. Fill in your **API Key** and **Account ID** (find these at [dashboard.monei.com](https://dashboard.monei.com/settings/api))
4. Select your preferred **Integration Type**: Redirect or Embedded Component
5. Toggle **Sandbox mode** for testing
6. Assign the payment method to your desired channels

That's it — your store is now accepting payments via MONEI.

Configuration Reference
-----------------------

[](#configuration-reference)

FieldDescription`api_key`Your MONEI API key (`pk_test_...` for sandbox, `pk_live_...` for production)`account_id`Your MONEI account identifier`integration_type``redirect` (hosted page) or `component` (embedded MONEI.js widget)`sandbox`Enable test mode — no real charges are processedHow It Works
------------

[](#how-it-works)

### Redirect Flow (Hosted Payment Page)

[](#redirect-flow-hosted-payment-page)

1. Customer clicks "Pay" → Sylius creates a MONEI payment via the API
2. Customer is redirected to MONEI's PCI-compliant hosted page
3. Customer completes payment (card, Bizum, Apple Pay, Google Pay)
4. MONEI redirects back to your store's completion URL
5. MONEI sends a webhook to confirm the final status asynchronously

### Component Flow (Embedded MONEI.js)

[](#component-flow-embedded-moneijs)

1. Customer clicks "Pay" → Sylius creates a MONEI payment via the API
2. An in-page payment form is rendered using MONEI.js with card input, Bizum, Apple Pay, and Google Pay buttons
3. Customer completes payment without leaving the page
4. On success, the customer is redirected to the order confirmation page
5. MONEI sends a webhook to confirm the final status asynchronously

Webhooks
--------

[](#webhooks)

MONEI uses webhooks to notify your store of payment status changes. The plugin automatically:

1. Verifies the `MONEI-Signature` header using the official SDK's signature verification (timestamp-based HMAC-SHA256)
2. Re-fetches the payment from MONEI's API to prevent spoofing
3. Updates the Sylius payment status accordingly

Ensure your server is accessible from the internet so MONEI can reach the callback URL.

Testing
-------

[](#testing)

```
# Run all tests
make test

# Run only unit tests
make test-unit

# Static analysis
make analyse

# Code style check
make check

# Auto-fix code style
make fix
```

Use MONEI sandbox credentials (`pk_test_...`) and [MONEI test cards](https://docs.monei.com/docs/testing/) to test the full flow without real charges.

Architecture
------------

[](#architecture)

```
SyliusMoneiPlugin/
├── config/
│   ├── routes.xml                     # Plugin routes
│   └── services.xml                   # Service definitions
├── src/
│   ├── Action/
│   │   ├── CaptureAction.php          # Creates payment, redirect or component
│   │   ├── ConvertPaymentAction.php   # Maps Sylius Payment → MONEI params
│   │   ├── NotifyAction.php           # Processes MONEI webhooks
│   │   ├── RefundAction.php           # Triggers refunds via MONEI API
│   │   └── StatusAction.php           # Maps MONEI status → Sylius status
│   ├── Client/
│   │   └── MoneiApiClient.php         # Thin wrapper around monei-php-sdk
│   ├── DependencyInjection/           # Symfony DI wiring
│   ├── Factory/
│   │   └── MoneiGatewayFactory.php    # Payum gateway factory registration
│   ├── Form/Type/
│   │   └── MoneiGatewayConfigurationType.php  # Admin config form
│   ├── Resolver/
│   │   └── PaymentStatusResolver.php  # Clean MONEI → Sylius status mapping
│   └── Resources/
│       └── translations/              # en, es, ca, fr
└── tests/
    ├── Unit/                          # PHPUnit unit tests
    └── Integration/                   # PHPUnit integration tests

```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

License
-------

[](#license)

This plugin is open-sourced software licensed under the [MIT license](LICENSE).

Links
-----

[](#links)

- [MONEI Documentation](https://docs.monei.com/)
- [MONEI Dashboard](https://dashboard.monei.com/)
- [MONEI PHP SDK](https://github.com/MONEI/monei-php-sdk)
- [Sylius Documentation](https://docs.sylius.com/)
- [Sylius Plugin Development Guide](https://docs.sylius.com/plugins-development-guide/how-to-create-a-plugin-for-sylius)

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance88

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

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

Unknown

Total

1

Last Release

59d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c32d0fa858b59a8ae39d6c8470ab6e8ae9f604bfae91f08c25a4ee3e9d05ee91?d=identicon)[MONEI](/maintainers/MONEI)

---

Top Contributors

[![alexandresaiz](https://avatars.githubusercontent.com/u/239624?v=4)](https://github.com/alexandresaiz "alexandresaiz (1 commits)")

---

Tags

apple-paybizumbizum-connectorgoogle-paymoneipaymentsphpsylius-pluginsyliuspaymentApple Paygoogle-paysylius-pluginbizumpsd2spainmonei

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/monei-sylius-monei-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/monei-sylius-monei-plugin/health.svg)](https://phpackages.com/packages/monei-sylius-monei-plugin)
```

###  Alternatives

[sylius/invoicing-plugin

Invoicing plugin for Sylius.

891.0M2](/packages/sylius-invoicing-plugin)

PHPackages © 2026

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