PHPackages                             lensmedia/symfony-ideal - 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. lensmedia/symfony-ideal

ActiveSymfony-bundle[Payment Processing](/categories/payments)

lensmedia/symfony-ideal
=======================

"Private" bundle for handling iDeal transactions

2.1.0(10mo ago)01.0kproprietaryPHPPHP &gt;=8.2

Since Apr 15Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/lensmedia/symfony-ideal)[ Packagist](https://packagist.org/packages/lensmedia/symfony-ideal)[ RSS](/packages/lensmedia-symfony-ideal/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (9)Versions (20)Used By (0)

Basic bundle for creating iDEAL 2 payments.

Currently only implemented basic payment initiation/notification/status calls. Uses [brick/money](https://github.com/brick/money) (Money/Decimal/Currency) for money values/currency things.

The bundle exists of mainly two parts, the symfony bundle things. And a sort of not-extracted-standalone-library () for all requests/responses from the API which I ran in to. Which could be used outside of symfony.

Config
------

[](#config)

These are the test values from our rabobank docs.

```
lens_ideal:
    initiating_party_id: '002881'
    client: 'RaboiDEAL'
    base_url: 'https://routingservice-rabo.awltest.de/'
    public_key_path: '%kernel.project_dir%/config/certificates/TestCertificatesiDEAL.2.0.pem'
    private_key_path: '%kernel.project_dir%/config/certificates/TestCertificatesiDEAL.2.0.key'

    notifications:
        token: 'iDEAL2.0testnotificationtoken'
```

Payment
-------

[](#payment)

```
// Random ID
$endToEndId = (string)(new Ulid());

// This bundle has a lib of classes for the data structure comparable to the open banking one.
$payment = new PaymentInitiationRequest();
$payment->paymentProduct[] = PaymentProduct::Ideal;

$basicPayment = new PaymentInitiationRequestBasic();
$basicPayment->endToEndId = $endToEndId;
$payment->commonPaymentData = $basicPayment;

$price = Money::of(IdealInterface::DEBUG_PRICE_COMPLETED, 'EUR');
$basicPayment->amount = Amount::create($price);
$basicPayment->remittanceInformation = '00004123';
$basicPayment->remittanceInformationStructured = new RemittanceInformationStructured();
$basicPayment->remittanceInformationStructured->reference = '00004123';

// Set up headers, see docs or PaymentArrayShapeTrait::PAYMENT_HEADERS
$headers = [
    // The return URL when the payment has been completed.
    'InitiatingPartyReturnUrl' => $this->generateUrl('ideal_completed', [
        'id' => $endToEndId,
    ], UrlGeneratorInterface::ABSOLUTE_URL),

    // Optional if you want to use the notification system.
    'InitiatingPartyNotificationUrl' => $this->generateUrl('ideal_notification', [
        'id' => $endToEndId,
    ], UrlGeneratorInterface::ABSOLUTE_URL),

    'Locale' => $request->getLocale(),
];

// Send payment initiation request.
$response = $ideal->payments->create($payment, headers: $headers);

// Redirect to bank.
return $this->redirect($response->links->redirectUrl->href);
```

Status
------

[](#status)

```
/** @var \Lens\Bundle\IdealBundle\Ideal\Data\PaymentDetailedInformation $response */
$response = $ideal->payments->status($paymentId);
```

- **note** `paymentId` is returned by the bank in the initiation request, it is not our end to end id or anything.
- **note** `paymentId` is different from the `aspspPaymentId` which holds the old ideal transaction id. This makes status requests INCOMPATIBLE with previous transactions as you can not query using the old ID's.

Notification
------------

[](#notification)

Notification route example.

```
public function notification(
    IdealInterface $ideal,
    Request $request,
): Response {
    /** @var \Lens\Bundle\IdealBundle\Ideal\Data\PaymentDetailedInformation $data */
    $data = $ideal->payments->mapPaymentNotificationData($request->getContent());

    ...
```

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance61

Regular maintenance activity

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity74

Established project with proven stability

 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

Every ~88 days

Recently: every ~148 days

Total

19

Last Release

310d ago

Major Versions

0.0.5 → 1.0.02021-05-20

1.1.5 → 2.0-RC12024-01-05

PHP version history (2 changes)0.0.3PHP &gt;=8

2.0-RC1PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/31341528?v=4)[LENS Media BV](/maintainers/lensmedia)[@lensmedia](https://github.com/lensmedia)

---

Top Contributors

[![jennevdmeer](https://avatars.githubusercontent.com/u/310006?v=4)](https://github.com/jennevdmeer "jennevdmeer (34 commits)")

---

Tags

symfony-bundle

### Embed Badge

![Health badge](/badges/lensmedia-symfony-ideal/health.svg)

```
[![Health](https://phpackages.com/badges/lensmedia-symfony-ideal/health.svg)](https://phpackages.com/packages/lensmedia-symfony-ideal)
```

###  Alternatives

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M734](/packages/sylius-sylius)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

515100.5k3](/packages/web-auth-webauthn-framework)

PHPackages © 2026

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