PHPackages                             cyril-bochet/yousign-api-client - 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. cyril-bochet/yousign-api-client

ActiveLibrary[API Development](/categories/api)

cyril-bochet/yousign-api-client
===============================

API client for Yousign · French eSignature solution.

1.3(3y ago)353MITPHPPHP &gt;=7.4.0

Since Jul 26Pushed 3y ago1 watchersCompare

[ Source](https://github.com/CyrilBochet/YousignApiClient)[ Packagist](https://packagist.org/packages/cyril-bochet/yousign-api-client)[ RSS](/packages/cyril-bochet-yousign-api-client/feed)WikiDiscussions main Synced today

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

CyrilBochet/YousignApiClient
----------------------------

[](#cyrilbochetyousignapiclient)

### README translation

[](#readme-translation)

- [English](README.en.md)

> Client API pour [ Yousign](https://yousign.com/fr-fr) · solution de signature électronique française.

### Sommaire

[](#sommaire)

- [Procédure simple](#simple-procedure)
- [Procédure avancée](#advanced-procedure)
- [Téléchargement d'un fichier](#download-file)
- [Récupérer les utilisateurs](#users)
- [Gestion des tags (message du mail)](#tags-management)
- [Liens utiles](#useful-links)

### Procédure simple

[](#procédure-simple)

```
use YousignApiClient\YousignApiClient;

// Votre clé API
$apikey = 'API_KEY';
$env = 'test';

$client = new YousignApiClient($apikey, $env);

// Nouvelle procédure
$client->newProcedure('test.pdf');

$members = array(
   array(
       'firstname' => 'Cyril',
       'lastname' => 'Bochet',
       'email' => 'cyril@mail.com',
       'phone' => '0102030405',
       'fileObjects' => array(
           array(
           'file' => $client->getIdfile(),
               'page' => 1,
               'position' => "202,205,389,284",
               'mention' => "Lu et approuvé",
               "mention2" => ""
           )
       )
       // Autre membre, etc.
   )
);

$client->addMembersToProcedure($members, 'Procédure test', 'Signature test.');
```

### Procédure avancée

[](#procédure-avancée)

En créant une procédure avancée vous pouvez utiliser des [ webhooks](https://fr.wikipedia.org/wiki/Webhook).

> Exemple : Yousign peut vous envoyer une notifcation webhook lorsqu'une personne signe votre document.

Vous pouvez mettre en place une URL qui va traiter la notification envoyée par Yousign.
Ensuite vous traiter la requête selon vos besoins. (mail, enregistrement du statut de la procédure, etc.)
Une procédure avancée vous permet également de créer des **notifications mails**.

> Exemple : vous pouvez créer une notification lorsqu'une personne refuse de signer votre document. (déclencheur : "procedure.refused")

```
use YousignApiClient\YousignApiClient;

// Votre clé API
$apikey = 'API_KEY';
$env = 'test';

$client = new YousignApiClient($apikey, $env);

// Paramètres de la procédure
$parameters = array(
    'name' => "Ma procédure avancée",
    'description' => "Création d'une procédure avancée.",
    'start' => false
);

// Création de la procédure
// Liste des déclencheurs (mails et webhooks) : "procedure.started", "procedure.finished", "procedure.refused", "member.started", "member.finished"

    $emails = [
        "member.started" => array(
            "subject" => "Hey! You are invited to sign!",
            "message" => "Hello  ,  You have ben invited to sign a document, please click on the following button to read it: Access to documents",
            "to" => ["@member"]),
        "procedure.refused" => array(
            "subject" => "John, created a procedure.",
            "message" => "The content of this email is totally awesome.",
            "to" => ["@creator", "@members"]),
            //etc.
    ];

    $webhooks = [
        "member.started" => array(
            "url" => "https://testyousign.requestcatcher.com",
            "method" => "POST",
            "headers" => array(
                "X-Custom-Header" => 'test'
            )),
            //etc.
    ];

$client->newAdvancedProcedure($parameters);

$filePath = 'file.pdf';
$fileName = 'file.pdf';

// On ajoute le fichier à signer
$client->advancedProcedureAddFile($filePath, $fileName);

// On définit le·s différent·s emplacement·s de signature
$emplacementsSignature = array(
  [
    'position' => '64,71,245,142',
    'page' => 2,
    'mention' => 'Certifié exact et sincère.',
    'mention2' => '',
    'reason' => ''
  ],
  [
    'position' => '87,297,270,369',
    'page' => 12,
    'mention' => 'Je certifie avoir bien reçu le document.',
    'mention2' => '',
    'reason' => ''
  ]
);

// On ajoute le·s membre·s à la procédure
$member = $client->advancedProcedureAddMember($prenom, $nom, $mail, $tel, $type);

// On ajoute les emplacements de signature à la procédure
foreach ($emplacementsSignature as $emplacement) {
   $client->advancedProcedureFileObject($emplacement["position"], $emplacement["page"], $emplacement["mention"], $emplacement["mention2"], $emplacement["reason"]);
}

// On lance la procédure
$client->advancedProcedureStart();
```

### Téléchargement d'un fichier

[](#téléchargement-dun-fichier)

```
// Pour l'exemple je télécharge le fichier directement après avoir lancé la procédure, mais en utilisant les webhooks vous pouvez le télécharger à n'importe quel moment.
// le fichier que l'on souhaite télécharger
$file = $client->advancedProcedureAddFile($filePath, $fileName);
$client->advancedProcedureStart();

// On récupère le fichier en base64 ou en binaire
$binary=false;
$client->downloadFile($file['id'], $binary);
```

### Récupérer les utilisateurs

[](#récupérer-les-utilisateurs)

```
$client->getUsers();
```

### Gestion des tags (message du mail)

[](#gestion-des-tags-message-du-mail)

   Syntax Description     `Access to documents` Show a stylized link to access to the procedure. If the recipent is a member, it will be redirect to the sign view. `url` params is required but you can change as your convenience the string "Access to documents"   `` It will display the firstname of the recipient.   `` It will display the lastname of the recipient.   `` It will list files that have been added to a procedure.   `` It will list members of a procedure.   `` It will display the expiration date formatted like that : `04/31/2018`. Allowed values for data-tag-date-format and data-tag-time-format: `**NONE**`: Does not display the element // `**FULL**`: `Tuesday, April 12, 1952 AD` or `3:30:42pm PST` // `**LONG**`: `January 12, 1952` or `3:30:32pm` // `**MEDIUM**`: `Jan 12, 1952` // `**SHORT**` (default value for both parameters): `12/13/52` ou `3:30pm`

### Liens utiles

[](#liens-utiles)

> Pour connaitre les coordonnées d'un emplacement de signature :

> Documentation complète de l'API Yousign :

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

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

Total

4

Last Release

1197d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/45588993?v=4)[Cyril](/maintainers/CyrilBochet)[@CyrilBochet](https://github.com/CyrilBochet)

---

Top Contributors

[![CyrilBochet](https://avatars.githubusercontent.com/u/45588993?v=4)](https://github.com/CyrilBochet "CyrilBochet (9 commits)")

---

Tags

api-clientphpyousign

### Embed Badge

![Health badge](/badges/cyril-bochet-yousign-api-client/health.svg)

```
[![Health](https://phpackages.com/badges/cyril-bochet-yousign-api-client/health.svg)](https://phpackages.com/packages/cyril-bochet-yousign-api-client)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k13](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

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