Signature intégrée
Faites signer les gens dans votre propre site ou application.
Comment ça fonctionne
Envoyez le document comme d'habitude (avec l'API ou l'application). Puis, quand le signataire est sur votre site, demandez une session de signature pour lui. Vous recevez une URL à usage unique; affichez-la dans un cadre sur votre page, ou dirigez le navigateur vers elle.
Vous avez déjà identifié le signataire dans votre propre système : il n'a donc pas de code par courriel. Les preuves indiquent qu'il a été vérifié par votre application (embedded:api). Il reçoit quand même l'invitation habituelle par courriel, pour pouvoir terminer à partir du courriel s'il quitte votre page.
# 1. Allow your site to frame the signing page (once). Also possible in Settings, Developers.
curl -X PATCH "https://api.esorasign.com/v1/workspaces/$WORKSPACE_ID" \
-H "Authorization: Bearer $ESORA_API_KEY" -H "Content-Type: application/json" \
-d '{ "embed_origins": ["https://portal.example.com"] }'
# 2. Each time the signer opens your page, make a fresh session for them (the document must be sent).
curl -X POST "https://api.esorasign.com/v1/documents/doc_3y9Pf34qY6Nb3wWD25RQ4F/recipients/rcp_5ZR3qa7yEeeby3abP3E2Zs/signing-sessions" \
-H "Authorization: Bearer $ESORA_API_KEY" -H "Content-Type: application/json" \
-d '{ "return_url": "https://portal.example.com/deals/D-10442/signed" }'
{
"object": "signing_session",
"recipient_id": "rcp_5ZR3qa7yEeeby3abP3E2Zs",
"url": "https://sign.esorasign.com/embed/7Hk2…",
"expires_at": "2026-11-02T14:12:00.000Z",
"note": "Open within 5 minutes. The URL works once. Add your site to the workspace embed_origins to show it in a frame."
}Affichez-la sur votre page
L'URL ne fonctionne qu'une fois et doit être ouverte dans les 5 minutes; créez une nouvelle session à chaque chargement de la page. Seuls les sites inscrits dans les origines d'intégration de votre espace de travail peuvent afficher la page de signature dans un cadre; tout autre site obtient un cadre vide. Les origines sont en HTTPS (http://localhost est permis pour le développement).
<!-- signingUrl comes from your server (step 2). It works once, within 5 minutes. -->
<iframe id="esora" src="{{ signingUrl }}" style="width:100%;height:860px;border:0" allow="clipboard-write"></iframe>
<script>
window.addEventListener('message', (e) => {
if (e.origin !== 'https://sign.esorasign.com') return;
if (e.data && e.data.type === 'esora.signing_complete') {
// e.data.documentStatus is "sent" (others still to sign) or "finalizing"/"completed".
// Wait for the document.completed webhook before treating the record as final.
}
});
</script>
Quand la personne signe, la page envoie à votre page un message de type esora.signing_complete puis, si vous avez fourni return_url, s'y rend avec ?event=signing_complete ajouté. return_url doit être en HTTPS, ou http://localhost pendant le développement.