PHPackages                             nola-consulting/module-universign - 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. [Security](/categories/security)
4. /
5. nola-consulting/module-universign

ActiveMagento2-module[Security](/categories/security)

nola-consulting/module-universign
=================================

Magento module allowing you sign documents with Universign, an eIDAS qualified Trust Service Provider.

1.0.0(2y ago)011MITPHPPHP ^8

Since May 15Pushed 2y agoCompare

[ Source](https://github.com/nola-consulting/module-universign)[ Packagist](https://packagist.org/packages/nola-consulting/module-universign)[ RSS](/packages/nola-consulting-module-universign/feed)WikiDiscussions main Synced yesterday

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

NolaConsulting\_Universign
==========================

[](#nolaconsulting_universign)

NolaConsulting\_Universign is a Magento module allowing you and your customers to sign documents with Universign, an eIDAS qualified Trust Service Provider. A Universign account is required to use this module.

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

[](#installation)

```
composer require nola-consulting/module-universign
bin/magento module:enable NolaConsulting_Universign
bin/magento setup:upgrade

```

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

[](#configuration)

Go to `STORES > Configuration > SERVICES > Universign`

You can find your API key on the Universign website, in your account under `Developer > API keys.`

You can set a default `Country ID` for your website, it is used to format the phone number with the right country code. If your website has customers from different countries, you can specify the `$countryId` in the `setSigner()` method.

You can set a default `Transaction Name` and a default `Document Name` there as well. If you have many types of documents to sign, you can specify them when you initialize the transaction:

```
$this->transaction->initialize($documentId)
    ->setDocumentFullPath($documentFullPath)
    ->setTransactionName('Contract N°%ID')
    ->setDocumentName('contract-%ID.pdf')
    ->setSigner($email, $fullName, $phone)
    ->create();
```

The `%ID` placeholder will be replaced by the reference passed to `initialize()`.

Demo
----

[](#demo)

It's possible to test the module at the url `/universign/demo`, you can:

- Create a "Contact" and sign it after providing a name, an email and a phone.
- Retrieve transaction data by providing the transaction ID.

Basic usage
-----------

[](#basic-usage)

```
use NolaConsulting\Universign\Model\TransactionFactory;

/** ... */

/** @var Transaction $transaction */
$this->transaction = $this->transactionFactory->create();

$this->transaction->initialize($documentId)
    ->setDocumentFullPath($documentFullPath)
    ->setSigner($email, $fullName, $phone)
    ->create();

$redirectUrl = $this->transaction->getTransactionUrl();
```

Dependencies
------------

[](#dependencies)

- `Dompdf`: help you to generate PDF from HTML.
- `libphonenumber`: used to format the phone number in the E.164 format required by Universign for any country.

Troubleshooting
---------------

[](#troubleshooting)

```
Exception #0 (ReflectionException): Class "NolaConsulting\Universign\Model\PdfCreator\Interceptor" does not exist

```

Cause: Dompdf probably hasn't been installed properly.

TODO
----

[](#todo)

- Manage automatic reminders with the `schedule` array
- Allow customers to sign documents only with a phone number and without email

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

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

780d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/163291694?v=4)[nola-adrien](/maintainers/nola-adrien)[@nola-adrien](https://github.com/nola-adrien)

---

Top Contributors

[![nola-adrien](https://avatars.githubusercontent.com/u/163291694?v=4)](https://github.com/nola-adrien "nola-adrien (4 commits)")[![julienanquetil](https://avatars.githubusercontent.com/u/1108170?v=4)](https://github.com/julienanquetil "julienanquetil (1 commits)")

### Embed Badge

![Health badge](/badges/nola-consulting-module-universign/health.svg)

```
[![Health](https://phpackages.com/badges/nola-consulting-module-universign/health.svg)](https://phpackages.com/packages/nola-consulting-module-universign)
```

###  Alternatives

[verbb/formie

The most user-friendly forms plugin for Craft.

102393.6k70](/packages/verbb-formie)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[imi/magento2-friendly-captcha

Friendly Captcha integration for Magento2

19131.4k](/packages/imi-magento2-friendly-captcha)[veriteworks/cookiefix

Magento2 extension for Cookie SameSite attribute.

65482.5k1](/packages/veriteworks-cookiefix)

PHPackages © 2026

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