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 1mo ago

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 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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

1144d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/01447caa3a17d1195fc467c4cacc253cb64653668fa742ab2ac0c69b5cbe7091?d=identicon)[CyrilBochet](/maintainers/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

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M478](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M271](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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