PHPackages                             owlympus/owly-monetico - 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. owlympus/owly-monetico

ActiveLibrary[Payment Processing](/categories/payments)

owlympus/owly-monetico
======================

Monetico Gateway

v0.8.2(3y ago)15GPL-3.0-or-laterPHPPHP &gt;=7.4

Since Jul 29Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Owlympus/owly-monetico)[ Packagist](https://packagist.org/packages/owlympus/owly-monetico)[ Docs](https://github.com/Owlympus/owly-monetico)[ RSS](/packages/owlympus-owly-monetico/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)DependenciesVersions (5)Used By (0)

OwlyMonetico
============

[](#owlymonetico)

Une petite librairie en PHP qui facilite la mise en place de [Monetico](https://www.monetico-paiement.fr/fr/accueil.html).

---

Partie FR 🇫🇷
============

[](#partie-fr-)

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

[](#installation)

```
composer require owlympus/owly-monetico
```

Prérequis
---------

[](#prérequis)

- PHP &gt;= 7.4

Usage
-----

[](#usage)

### Monetico

[](#monetico)

```
$monetico = new \OwlyMonetico\Monetico(
    '1234567', // Code TPE, 7 caractères max
    '0E23341908D38F6119E49F77651A15B8D4290203', // Clé de sécurité, 40 caractères hexadécimaux
    'maSociete' // Code société
);
```

### Client

[](#client)

```
use OwlyMonetico\Collection\Civility;
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\Customer;

$customer = (new Customer())
    ->setCivility($id_gender == 1 ? Civility::MR : Civility::MLLE) // Optionnel
    ->setFirstName('John') // Optionnel
    ->setLastName('Doe') // Optionnel
    ->setBirthdate(new DateTime('1970-01-01')) // Optionnel
    ->setEmail('john.doe@site.ext') // Optionnel
    ->setCountry(Country::FR); // Optionnel
```

### Item et Panier

[](#item-et-panier)

```
use OwlyMonetico\Model\Cart;
use OwlyMonetico\Model\Item;

$item = (new Item())
    ->setName('Item de test') // Optionnel
    ->setQuantity(1)
    ->setUnitPrice(2000); // En centimes

$cart = (new Cart())
    ->addItem($item);
```

### Addresse de facturation

[](#addresse-de-facturation)

```
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\BillingAddress;

$billingAddress = new BillingAddress(
    'Pl. Général de Gaulle',
    'La Valette-du-Var',
    '83160',
    Country::FR)
    ->setFirstName('John') // Optionnel
    ->setLastName('Doe') // Optionnel
    ->setEmail('john.doe@site.ext'); // Optionnel
```

### Addresse de livraison

[](#addresse-de-livraison)

```
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\ShippingAddress;

$billingAddress = new ShippingAddress(
    'Pl. Général de Gaulle',
    'La Valette-du-Var',
    '83160',
    Country::FR)
    ->setFirstName('John') // Optionnel
    ->setLastName('Doe') // Optionnel
    ->setEmail('john.doe@site.ext'); // Optionnel
```

### Commande

[](#commande)

```
use OwlyMonetico\Model\Order;

$order = new Order(
    uniqid('ref_'),
    $cart->getItemTotalAmount(),
    $customer,
    $cart,
    $billingAddress,
    $shippingAddress
);
```

Paiements
---------

[](#paiements)

### Paiement simple

[](#paiement-simple)

Récupération des champs à envoyer en POST.

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\SimplePaymentRequest;

$simpleRequest = (new SimplePaymentRequest($order, Language::FR, Currency::EUR))
    ->setUrlSuccess('http://localhost/success') // Optionnel
    ->setUrlError('http://localhost/fail') // Optionnel
    ->setEmail('john.doe@site.ext'); // Optionnel pour envoyer le reçu.

// Récupération des valeurs AVEC vérification des champs
try {
    $simpleFields = $monetico->getSimplePaymentRequestFields($simpleRequest); // skipValidation: false par défaut
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($simpleFields);

// Récupération des champs SANS vérification
$simpleFields = $monetico->getSimplePaymentRequestFields($simpleRequest, true); // skipValidation: true
var_dump($simpleFields);
```

### Paiement en page épurée

[](#paiement-en-page-épurée)

Permet l'affichage de la page de paiement dans une iFrame avec les champs en GET.

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\IFramePaymentRequest;

$iFrameRequest = (new IFramePaymentRequest($order, Language::FR, Currency::EUR, 'john.doe@site.ext')) // Email obligatoire pour cette méthode
    ->setUrlSuccess('http://localhost/success') // Optionnel
    ->setUrlError('http://localhost/fail'); // Optionnel

// Récupération des valeurs AVEC vérification des champs
try {
    $iframeFields = $monetico->getIFramePaymentRequestFields($iFrameRequest); // skipValidation: false par défaut
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($iframeFields);

// Récupération des champs SANS vérification
$iframeFields = $monetico->getIFramePaymentRequestFields($iFrameRequest, true); // skipValidation: true
var_dump($iframeFields);
```

### Paiement en 2x, 3x ou 4x

[](#paiement-en-2x-3x-ou-4x)

Récupération des champs à envoyer en POST.

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\SplitPaymentRequest;

$splitRequest = (new SplitPaymentRequest($order, Language::FR, Currency::EUR, 2)) // Nombre de paiements
    ->setUrlSuccess('http://localhost/success.php') // Optionnel
    ->setUrlError('http://localhost/fail.php') // Optionnel
    ->setDueAmount1(10.00)
    ->setDueDate1(new DateTime()) // Premier paiement aujourd'hui
    ->setDueAmount2(10.00)
    ->setDueDate2(new DateTime('+1 month')); // Second paiement dans un mois (Échéances mensuelles obligatoires)

// Récupération des valeurs AVEC vérification des champs
try {
    $splitFields = $monetico->getSplitPaymentRequestFields($splitRequest); // skipValidation: false par défaut
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($iframeFields);

// Récupération des champs SANS vérification
$splitFields = $monetico->getSplitPaymentRequestFields($splitRequest, true); // skipValidation: true
var_dump($splitFields);
```

### Paiement avec pré-autorisation

[](#paiement-avec-pré-autorisation)

Récupération des champs à envoyer en POST.

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\PreAuthorizedPaymentRequest;

$preAuthorizedRequest = (new PreAuthorizedPaymentRequest($order, Language::FR, Currency::EUR, '20150901PRE1')) // Le numéro de dossier obligatoire
    ->setUrlSuccess('http://localhost/success.php') // Optionnel
    ->setUrlError('http://localhost/fail.php'); // Optionnel

// Récupération des valeurs AVEC vérification des champs
try {
    $preAuthorizedFields = $monetico->getPreAuthorizedPaymentRequestFields($splitRequest); // skipValidation: false par défaut
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($preAuthorizedFields);

// Récupération des champs SANS vérification
$preAuthorizedFields = $monetico->getPreAuthorizedPaymentRequestFields($preAuthorizedRequest, true); // skipValidation: true
var_dump($preAuthorizedFields);
```

### Paiement en 3x, 4x via COFIDIS

[](#paiement-en-3x-4x-via-cofidis)

Récupération des champs à envoyer en POST.

```
use OwlyMonetico\Collection\Civility;
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\CofidisPaymentRequest;

$cofidisRequest = (new CofidisPaymentRequest($order, Language::FR, Currency::EUR))
    ->setCivility(Civility::MR) // Optionnel
    ->setFirstName('Yannick') // Optionnel
    ->setUrlSuccess('http://localhost/success.php') // Optionnel
    ->setUrlError('http://localhost/fail.php'); // Optionnel

// Récupération des valeurs AVEC vérification des champs
try {
    $cofidisFields = $monetico->getCofidisPaymentRequestFields($splitRequest); // skipValidation: false par défaut
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($preAuthorizedFields);

// Récupération des valeurs SANS vérification des champs
$cofidisFields = $monetico->getCofidisPaymentRequestFields($cofidisRequest, true); // skipValidation: true
var_dump($cofidisFields);
```

Vérifications
-------------

[](#vérifications)

La vérification des retours venant des `url_success` et `url_error` arrive prochainement.

License
-------

[](#license)

La librairie est sous licence [GNU](LICENCE).

---

Part EN/US 🇬🇧/🇺🇸
================

[](#part-enus-)

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

[](#installation-1)

```
composer require owlympus/owly-monetico
```

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

[](#requirements)

- PHP &gt;= 7.4

Usage
-----

[](#usage-1)

### Monetico

[](#monetico-1)

```
$monetico = new \OwlyMonetico\Monetico(
    '1234567', // EPT Code, 7 characters max
    '0E23341908D38F6119E49F77651A15B8D4290203', // Security key, 40 hexadecimal characters
    'myCompany' // Company code
);
```

### Customer

[](#customer)

```
use OwlyMonetico\Collection\Civility;
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\Customer;

$customer = (new Customer())
    ->setCivility($id_gender == 1 ? Civility::MR : Civility::MLLE) // Optional
    ->setFirstName('John') // Optional
    ->setLastName('Doe') // Optional
    ->setBirthdate(new DateTime('1970-01-01')) // Optional
    ->setEmail('john.doe@site.ext') // Optional
    ->setCountry(Country::FR); // Optional
```

### Item et Cart

[](#item-et-cart)

```
use OwlyMonetico\Model\Cart;
use OwlyMonetico\Model\Item;

$item = (new Item())
    ->setName('Test item') // Optional
    ->setQuantity(1)
    ->setUnitPrice(2000); // In cents

$cart = (new Cart())
    ->addItem($item);
```

### Billing address

[](#billing-address)

```
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\BillingAddress;

$billingAddress = new BillingAddress(
    'Pl. Général de Gaulle',
    'La Valette-du-Var',
    '83160',
    Country::FR)
    ->setFirstName('John') // Optional
    ->setLastName('Doe') // Optional
    ->setEmail('john.doe@site.ext'); // Optional
```

### Shipping address

[](#shipping-address)

```
use OwlyMonetico\Collection\Country;
use OwlyMonetico\Model\ShippingAddress;

$billingAddress = new ShippingAddress(
    'Pl. Général de Gaulle',
    'La Valette-du-Var',
    '83160',
    Country::FR)
    ->setFirstName('John') // Optional
    ->setLastName('Doe') // Optional
    ->setEmail('john.doe@site.ext'); // Optional
```

### Commande

[](#commande-1)

```
use OwlyMonetico\Model\Order;

$order = new Order(
    uniqid('ref_'),
    $cart->getItemTotalAmount(),
    $customer,
    $cart,
    $billingAddress,
    $shippingAddress
);
```

Payments
--------

[](#payments)

### Simple payment

[](#simple-payment)

Get the fields to send in POST

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\SimplePaymentRequest;

$simpleRequest = (new SimplePaymentRequest($order, Language::FR, Currency::EUR))
    ->setUrlSuccess('http://localhost/success') // Optional
    ->setUrlError('http://localhost/fail') // Optional
    ->setEmail('john.doe@site.ext'); // Optional to send the bill.

// Get the fields WITH field validation
try {
    $simpleFields = $monetico->getSimplePaymentRequestFields($simpleRequest); // skipValidation: false by default
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($simpleFields);

// Get the fields WITHOUT field validation
$simpleFields = $monetico->getSimplePaymentRequestFields($simpleRequest, true); // skipValidation: true
var_dump($simpleFields);
```

### Paiement en page épurée

[](#paiement-en-page-épurée-1)

Allows the payment page to be displayed in an iFrame with the fields in GET.

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\IFramePaymentRequest;

$iFrameRequest = (new IFramePaymentRequest($order, Language::FR, Currency::EUR, 'john.doe@site.ext')) // Email required for this method
    ->setUrlSuccess('http://localhost/success') // Optional
    ->setUrlError('http://localhost/fail'); // Optional

// Get the fields WITH field validation
try {
    $iframeFields = $monetico->getIFramePaymentRequestFields($iFrameRequest); // skipValidation: false by default
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($iframeFields);

// Get the fields WITHOUT field validation
$iframeFields = $monetico->getIFramePaymentRequestFields($iFrameRequest, true); // skipValidation: true
var_dump($iframeFields);
```

### Paiement en 2x, 3x ou 4x

[](#paiement-en-2x-3x-ou-4x-1)

Get the fields to send in POST

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\SplitPaymentRequest;

$splitRequest = (new SplitPaymentRequest($order, Language::FR, Currency::EUR, 2)) // Nombre de paiements
    ->setUrlSuccess('http://localhost/success.php') // Optional
    ->setUrlError('http://localhost/fail.php') // Optional
    ->setDueAmount1(10.00)
    ->setDueDate1(new DateTime()) // First payment today
    ->setDueAmount2(10.00)
    ->setDueDate2(new DateTime('+1 month')); // Second payment in a month (Monthly due dates)

// Get the fields WITH field validation
try {
    $splitFields = $monetico->getSplitPaymentRequestFields($splitRequest); // skipValidation: false by default
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($iframeFields);

// Get the fields WITHOUT field validation
$splitFields = $monetico->getSplitPaymentRequestFields($splitRequest, true); // skipValidation: true
var_dump($splitFields);
```

### Paiement avec pré-autorisation

[](#paiement-avec-pré-autorisation-1)

Get the fields to send in POST

```
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\PreAuthorizedPaymentRequest;

$preAuthorizedRequest = (new PreAuthorizedPaymentRequest($order, Language::FR, Currency::EUR, '20150901PRE1')) // Required file number
    ->setUrlSuccess('http://localhost/success.php') // Optional
    ->setUrlError('http://localhost/fail.php'); // Optional

// Get the fields WITH field validation
try {
    $preAuthorizedFields = $monetico->getPreAuthorizedPaymentRequestFields($splitRequest); // skipValidation: false by default
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($preAuthorizedFields);

// Get the fields WITHOUT field validation
$preAuthorizedFields = $monetico->getPreAuthorizedPaymentRequestFields($preAuthorizedRequest, true); // skipValidation: true
var_dump($preAuthorizedFields);
```

### Paiement en 3x, 4x via COFIDIS

[](#paiement-en-3x-4x-via-cofidis-1)

Get the fields to send in POST

```
use OwlyMonetico\Collection\Civility;
use OwlyMonetico\Collection\Currency;
use OwlyMonetico\Collection\Language;
use OwlyMonetico\Request\CofidisPaymentRequest;

$cofidisRequest = (new CofidisPaymentRequest($order, Language::FR, Currency::EUR))
    ->setCivility(Civility::MR) // Optional
    ->setFirstName('Yannick') // Optional
    ->setUrlSuccess('http://localhost/success.php') // Optional
    ->setUrlError('http://localhost/fail.php'); // Optional

// Get the fields WITH field validation
try {
    $cofidisFields = $monetico->getCofidisPaymentRequestFields($splitRequest); // skipValidation: false by default
} catch (Exception $e) {
    die($e->getMessage());
}
var_dump($preAuthorizedFields);

// Get the fields WITHOUT field validation
$cofidisFields = $monetico->getCofidisPaymentRequestFields($cofidisRequest, true); // skipValidation: true
var_dump($cofidisFields);
```

Checks
------

[](#checks)

Checking for returns from `url_success` and `url_error` is coming soon.

License
-------

[](#license-1)

The library is licensed under [GNU](LICENCE).

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

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

Every ~3 days

Total

2

Last Release

1379d ago

### Community

Maintainers

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

---

Top Contributors

[![Owlympus](https://avatars.githubusercontent.com/u/30384652?v=4)](https://github.com/Owlympus "Owlympus (6 commits)")

---

Tags

monetico

### Embed Badge

![Health badge](/badges/owlympus-owly-monetico/health.svg)

```
[![Health](https://phpackages.com/badges/owlympus-owly-monetico/health.svg)](https://phpackages.com/packages/owlympus-owly-monetico)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

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