Plateforme développeurs

La signature,
dans votre produit.

Votre serveur émet une session de courte durée avec une clé secrète, votre page l’encadre avec un SDK de 1,5 Ko, et vos utilisateurs signent sans quitter votre produit. Construisez d’abord toute l’intégration avec des clés de test gratuites.

Des clés de test dans chaque forfait, Free compris Votre clé secrète n’atteint jamais un navigateur Des SDK sous licence MIT sur GitHub
Comment ça marche

Trois étapes, et la clé secrète
ne quitte jamais votre serveur

Toute intégration commence par une session émise par votre serveur. Votre page encadre l’URL reçue, et le cadre dialogue avec votre code par un canal postMessage verrouillé.

  1. 1

    Émettez une session sur votre serveur

    Appelez POST /embed_sessions avec votre clé secrète, en indiquant le document et l’origine de la page qui affichera le cadre. Vous recevez un id et une URL qui expire.

  2. 2

    Montez-la dans votre page

    Confiez l’URL à @gingerdocs/embed. Le SDK encadre l’expérience de signature sur notre origine, verrouille l’origine et l’id de session aux deux extrémités et transmet des événements typés à votre code.

  3. 3

    Agissez sur les webhooks

    Les événements du SDK sont des signaux d’interface — masquer un indicateur de chargement, afficher une confirmation. Faites le vrai travail à partir du webhook signé document.completed ; chaque événement reste lisible 90 jours.

Votre serveurNode.js
const res = await fetch('https://api.gingerdocs.com/api/v1/embed_sessions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.GINGERDOCS_SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    kind: 'signing',
    document_id: documentId,
    host_origin: 'https://app.example.com',
  }),
})
const { id, url } = await res.json()
Votre pageJavaScript
import { mount } from '@gingerdocs/embed'

const embed = mount('#signing', { url, sessionId: id })

embed.on('ready', () => hideLoader())
embed.on('completed', () => showConfirmation())
embed.on('session_expired', async () => {
  const fresh = await refetchSession()
  embed.reload(fresh.url, { sessionId: fresh.id })
})
ReactJSX
import { GingerDocsEmbed } from '@gingerdocs/react'

<GingerDocsEmbed
  url={session.url}
  sessionId={session.id}
  onEvent={event => event.type === 'completed' && showConfirmation()}
/>

Transmettez l’URL telle quelle : son fragment porte l’identifiant de session et sa requête porte la valeur grâce à laquelle notre périphérie décide qui peut encadrer la page.

Trois façons d’intégrer

D’une simple signature
à l’éditeur complet

Toute intégration est une session émise par votre serveur. Son type (kind) et son mode (mode) déterminent ce que la personne dans le cadre peut faire — et le serveur l’impose à chaque requête, pas seulement dans l’interface.

kind: signing

Session de signature

Un signataire, un document, dans votre page. Sans aller-retour par e-mail, sans redirection hors de votre site.

  • Lire le document, remplir ses champs et signer — à la main, au clavier ou par import
  • Refuser en indiquant un motif, que votre page reçoit comme événement
  • Télécharger le PDF signé à la fin de la cérémonie
  • Changer la langue du cadre depuis son propre menu
kind: workspace · mode: minimal

Espace de travail · minimal

Création à partir de modèles pour l’un de vos propres utilisateurs, sans exposer d’éditeur.

  • Parcourir ses modèles disponibles et remplir les variables et ses propres saisies
  • Désigner qui envoie et qui signe — prédéfini et verrouillé par vous si vous le souhaitez
  • Prévisualiser les pages pendant la saisie, puis créer et envoyer
  • Importer son propre PDF et l’envoyer, le champ de signature étant placé automatiquement
kind: workspace · mode: advanced

Espace de travail · advanced

Le même éditeur que celui de l’application GingerDocs, sur votre domaine.

  • Importer des PDF et placer des champs de signature, d’initiales, de texte, de date et des cases à cocher
  • Enregistrer des brouillons et les rouvrir plus tard
  • Créer des modèles à partir d’un PDF et modifier ceux qu’il a créés
  • Tout ce que permet minimal, en plus

Un quatrième mode, read_only, affiche un document terminé ou un modèle sans action possible — une visionneuse à placer dans votre propre interface.

API REST

Le même produit,
sous forme d’endpoints

Tout se trouve sous https://api.gingerdocs.com/api/v1, avec une clé d’API de type Bearer. Créez un utilisateur, importez un document, envoyez-le et lisez ce qui s’est passé — en quatre appels, depuis n’importe quel langage.

Des conventions sur lesquelles bâtir

  • Des clés secrètes pour vos serveurs, des clés publiables pour une surface navigateur en lecture seule — chacune limitée au nécessaire (scopes)
  • Deux environnements entièrement séparés, test et live, sur les mêmes endpoints
  • Une Idempotency-Key sur chaque POST rend les nouvelles tentatives sûres
  • Les erreurs portent un code stable lisible par machine ; les messages sont du texte d’affichage et peuvent changer
  • 120 requêtes par minute et par clé, avec Retry-After sur un 429
  • Définie par un contrat OpenAPI 3.1 contre lequel chaque réponse est validée
Parcourir la référence de l’API
Demandez à l’API qui vous êtescURL
curl https://api.gingerdocs.com/api/v1/account \
  -H "Authorization: Bearer gd_sk_test_YOUR_KEY"
RéponseJSON
{
  "environment": "test",
  "scopes": ["documents", "templates", "users", "embed", "webhooks"],
  "plan": { "key": "free", "limit": 30, "used": 12, "remaining": 18 },
  "defaults": { "email_delivery": "platform" }
}

Users

Les personnes de votre produit à qui appartiennent les documents, identifiées par votre propre external_id.

Documents

Importez un PDF ou instanciez un modèle, désignez le signataire, suivez le statut, téléchargez la copie signée.

Fields

Champs de signature, d’initiales, de texte, de date et cases à cocher, placés en coordonnées de page normalisées.

Templates

Listez, partagez et instanciez des modèles créés dans l’application ou dans un espace de travail advanced.

Sending

Nous envoyons l’e-mail au signataire, ou vous transmettez vous-même le lien de signature et nous n’envoyons rien du tout.

Webhooks & events

Enregistrez des endpoints HTTPS, consultez le journal de livraison et rejouez n’importe quel événement du journal de 90 jours.

La v1 compte exactement un signataire par document — pas de liste de destinataires, pas d’ordre de signature, pas de passage de relais.

Conçu pour la production

Les briques que vous devriez
sinon construire vous-même

Signer est la moitié facile. Le reste — livraison, vérification, nouvelles tentatives, image de marque, langues — est fourni avec la plateforme.

Webhooks signés, 16 types d’événements

Des livraisons signées en HMAC-SHA256, avec nouvelles tentatives et journal de livraison. Chaque événement reste lisible 90 jours via l’API d’événements : rien n’est perdu pendant que votre endpoint est indisponible.

Un environnement de test qui n’envoie aucun e-mail

Les clés de test fonctionnent dans chaque forfait. La sortie porte un filigrane et n’a pas de valeur juridique, rien n’est décompté de votre forfait, un endpoint de test peut simuler la signature pour que votre CI vérifie COMPLETED, et les données de test sont purgées après 90 jours.

Votre couleur de marque, votre fenêtre

Transmettez theme.primary_color à l’émission de la session et les boutons, liens et anneaux de focus du cadre l’adoptent. Une commande Agrandir permet à une intégration dans une barre latérale étroite d’occuper toute la fenêtre, puis de la rendre.

Transmettez vous-même le lien de signature

Par compte ou par envoi, choisissez si GingerDocs envoie l’e-mail au signataire avec votre image de marque ou si votre produit s’en charge — dans ce cas nous n’envoyons rien et vous remettons l’URL de signature.

Un certificat qui vous nomme

Lorsque vous transmettez le lien ou admettez un signataire par une session intégrée, le certificat d’achèvement nomme votre entité juridique comme partie vérificatrice — la responsabilité que vous acceptez dans les Conditions d’intégration.

Six langues dans le cadre

Les cadres de signature et d’espace de travail existent en anglais, japonais, coréen, allemand, espagnol et français. Fixez la langue sur la session ou au montage ; le signataire peut la changer depuis le menu du cadre.

Open source

Deux petits SDK sous licence MIT

Le SDK ne fait qu’une chose : il encadre l’URL de session, verrouille l’origine et l’id de session aux deux extrémités du canal postMessage et transmet des événements typés à votre code. Il se lit d’une traite.

Licence MITMoins de 1,5 Ko compresséZéro dépendance

@gingerdocs/embed

Sans framework. mount(), on(), reload(), unmount() — et le protocole Agrandir, si vous préférez construire l’iframe vous-même.

Voir sur GitHub

@gingerdocs/react

Un composant React léger autour du paquet principal : un seul gestionnaire onEvent pour tous les événements, que l’on peut passer en ligne sans risque.

Voir sur GitHub
Tarifs pour les développeurs

Construisez gratuitement. Passez en production pour 100 $ par an.

Construisez avec des clés de test — gratuitement

Le mode développeur et les clés de test sont disponibles dans chaque forfait, Free compris. Toute l’intégration — créer, envoyer, signer, webhook, télécharger — fonctionne dans l’environnement de test.

Obtenir une clé de test

Passez en production avec le forfait Developer

100 $/ an

Tout ce que propose Pro avec les mêmes 1 000 documents importés par mois, plus des clés d’API live, la signature intégrée sur vos domaines enregistrés et des webhooks signés.

Voir le forfait Developer

Commencez dès aujourd’hui en mode test

Inscrivez-vous gratuitement, activez le mode développeur dans Paramètres → Développeur et faites votre premier appel à l’API en quelques minutes. Aucune carte bancaire requise.