PHPackages                             mpp/universign-bundle - 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. [API Development](/categories/api)
4. /
5. mpp/universign-bundle

ActiveSymfony-bundle[API Development](/categories/api)

mpp/universign-bundle
=====================

Symfony Universign Bundle

v5.0.1(7mo ago)012.7k↓61.3%3MITPHPPHP &gt;=8.1

Since Aug 31Pushed 7mo ago4 watchersCompare

[ Source](https://github.com/mon-petit-placement/mpp-universign-bundle)[ Packagist](https://packagist.org/packages/mpp/universign-bundle)[ RSS](/packages/mpp-universign-bundle/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (7)Versions (48)Used By (0)

Symfony Bundle to quickly interact with Universign library
==========================================================

[](#symfony-bundle-to-quickly-interact-with-universign-library)

Installation:
-------------

[](#installation)

To install this bundle, simply run the following command:

```
$ composer require mpp/universign-bundle
```

How to run:
-----------

[](#how-to-run)

Before run, you need to add `UNIVERSIGN_ENTRYPOINT_SIGN` and `UNIVERSIGN_ENTRYPOINT_RA` variables in the `.env` file of your project with the url and the credentials of the universign account.

```
###> mpp/unviversign-bundle ###
UNIVERSIGN_ENTRYPOINT_SIGN=https://:@sign.test.cryptolog.com/sign/rpc/
UNIVERSIGN_ENTRYPOINT_RA=https://:@sign.test.cryptolog.com/ra/rpc/
###< mpp/unviversign-bundle ###

```

After this you can use this bundle with your Symfony Project.

How to use:
-----------

[](#how-to-use)

Here is a presentation of the Universign workflow:

[![Universign workflow](./Resources/docs/universign_workflow.png)](./Resources/docs/universign_workflow.png)

### Requests a signature

[](#requests-a-signature)

First, you have to send a transaction to Universign services.

#### Transaction Request

[](#transaction-request)

Here is an example:

```
...
use Mpp\UniversignBundle\Requester\SignerInterface;

...
/**
 * @var SignerInterface;
 */
private $requester;

public function __construct(SignerInterface $requester)
{
    $this->requester = $requester;
}

...
    $transactionRequest = $this->requester->initiateTransactionRequest([
        'signers' => [
            [
                'firstname' => 'john',
                'lastname' => 'doe',
                'organization' => 'dummy company',
                'emailAddress' => 'john.doe@dummy-company.com',
                'phoneNum' => '+0122334455',
                'language' => 'fr',
                'birthDate' => new \DateTime::createFromFormat('Y-m-d', '2000-01-01'),
            ],
        ],
        'documents' => [
            'mpp_contract' => [
                'fileName' => $document->getFileName(),
                'content' => $this->storage->resolvePath($document),
                'signatureFields' => [
                    [
                        'name' => 'Signature:',
                        'page' => 18,
                        'signerIndex' => 0,
                    ],
                ],
            ],
        ],
        'finalDocSent' => true,
    ]);

    $transactionResponse = $this->requester->requestTransaction($transactionRequest);
```

Once you have send the request transaction, you will get a `TransactionResponse` object in which you will find the transaction ID and an URL.

#### Transaction Response

[](#transaction-response)

Here is an example of the `TransactionResponse` object:

```
{
 'id' => "bde1e661-a217-4d2b-a3ec-160c2e266ff4"
 'url' => "https://sign.test.universign.eu/sig/#/?id=7d161638-9fb7-42c9-bb56-c902ea491404"
}
```

The `id` value identify the transaction, it allow you to get more information about the transaction, retrieve the signed documents. The `url` value is used to sign the documents by the signers.

### Requests the signed document

[](#requests-the-signed-document)

After you have send your transaction request and it has been signed, send a request to get the signed documents with the previous transaction id:

```
$documents = $this->requester->getDocuments($transactionId);
```

You will get an array of `Document` object:

```
[
    0 => [
        'id' => 'http.example.com',
        'documentType' => 'pdf',
        'content' => "JVBERi0xLj[...]UKJb4",
        'fileName' => 'contract_test',
        'signatureFields' => [
            [
                'name' => 'Client:',
                'page' => 1,
                'x' => 100,
                'y' =>  200,
                'signerIndex' => 0,
            ],
        ]
        'checkBoxTexts' => null,
        'metaData' => null,
        'title' => null,
        'sepaData' => [
            'rum' => '87654345678765'
            'ics' => 'FR12ZZZ123456'
            'iban' => 'FR7630006000011234567890189'
            'bic' => 'BREDFRPPXXX'
            'recuring' => false
            'debtor' => [
                'name' => 'Victor Vidal'
                'address' => '805, boulevard Richard'
                'postalCode' => '32 082'
                'city' => 'Ruiz-sur-Dos Santos'
                'country' => 'Christmas (Île)'
            ]
        ]
        'creditor' => [
            'name' => 'Marie Pierre'
            'address' => 'rue Roger Marie'
            'postalCode' => '71 625'
            'city' => 'Deschamps-sur-Dupre'
            'country' => 'Bosnie-Herzégovine'
        ]
    ]
]
```

The `content` parameters is your signed document base64 encoded. Simply decode it to get the file.

More Informations:
------------------

[](#more-informations)

- Advanced documentation:
    - [Configuration](./Resources/docs/Configuration.md)
    - [TransactionInfo](./Resources/docs/TransactionInfo.md)
    - [TransactionFilter](./Resources/docs/TransactionFilter.md)
    - [RelaunchTransaction](./Resources/docs/RelaunchTransaction.md)
    - [CancelTransaction](./Resources/docs/CancelTransaction.md)
- Object Structure:
    - [Signer](./Resources/docs/Signer.md)
    - [Document](./Resources/docs/Document.md)
    - [SignatureField](./Resources/docs/SignatureField.md)
- Others:
    - [Universign documentation](https://help.universign.com/hc/fr/articles/360000837769-Guide-API-Universign)

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance64

Regular maintenance activity

Popularity26

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~66 days

Recently: every ~193 days

Total

30

Last Release

218d ago

Major Versions

v1.4.0 → v2.0.02020-12-03

v2.1.1 → v3.0.02021-06-02

v3.1.0 → v4.0.02023-10-03

v4.0.4 → v5.0.02025-11-27

PHP version history (3 changes)v1.0.0PHP &gt;=7.3

v4.0.0PHP &gt;=7.4

v5.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/0035fe5c6efa0fa3441ef5b7744918deed3b05aae0841d91f7eaca3b42541d33?d=identicon)[monpetitplacement](/maintainers/monpetitplacement)

---

Top Contributors

[![konandrum](https://avatars.githubusercontent.com/u/964354?v=4)](https://github.com/konandrum "konandrum (30 commits)")[![Gwemox](https://avatars.githubusercontent.com/u/9432727?v=4)](https://github.com/Gwemox "Gwemox (24 commits)")[![Celine68](https://avatars.githubusercontent.com/u/67600444?v=4)](https://github.com/Celine68 "Celine68 (10 commits)")[![cscherp](https://avatars.githubusercontent.com/u/68990219?v=4)](https://github.com/cscherp "cscherp (2 commits)")[![oliviermpp](https://avatars.githubusercontent.com/u/126158630?v=4)](https://github.com/oliviermpp "oliviermpp (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![monpetitplacement](https://avatars.githubusercontent.com/u/68108392?v=4)](https://github.com/monpetitplacement "monpetitplacement (1 commits)")

---

Tags

jsonapiyamlxmlrpc

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mpp-universign-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/mpp-universign-bundle/health.svg)](https://phpackages.com/packages/mpp-universign-bundle)
```

###  Alternatives

[sylius/sylius

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

8.5k5.9M737](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M387](/packages/easycorp-easyadmin-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)

PHPackages © 2026

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