Μετάβαση στο κύριο περιεχόμενο

Ενσωμάτωση του Legalesign Signer στην Ιστοσελίδα σας

Ενεργοποίηση για την ομάδα σας

Το στοιχείο Signer απαιτεί ενεργοποίηση. Επικοινωνήστε με την υποστήριξη για να το ενεργοποιήσετε για την ομάδα σας.

Τρέχουσα έκδοση: v1.1.7 — αρχείο αλλαγών

Ο Legalesign Signer είναι ένα ανεξάρτητο πλατφόρμας στοιχείο web που παρέχει μια ολοκληρωμένη και ομαλή εμπειρία υπογραφής εγγράφων μέσα από τη δική σας εφαρμογή. Λειτουργεί με απλό HTML, React, Vue, Angular ή οποιοδήποτε web framework.

Ενσωματώστε αυτό το στοιχείο όπου οι χρήστες σας χρειάζεται να υπογράψουν έγγραφα — μέσα σε CRM, portal πελάτη ή οποιαδήποτε εσωτερική εφαρμογή που αποδίδει HTML.

Εγκατάσταση​

Φορτώστε απευθείας από το CDN (δεν απαιτείται εγκατάσταση):

<script type="module" src="https://cdn.legalesign.io/signer/latest/ls-signer.esm.js"></script>

Εγκατάσταση React​

Εγκατάσταση μέσω package manager:

npm install legalesign-signer
# or
pnpm add legalesign-signer

Βασική Ενσωμάτωση​

HTML & JavaScript​

<ls-signer
recipient-id="abc123"
private-key="key"
session-id="session"
></ls-signer>

<script>
const signer = document.querySelector('ls-signer');
signer.addEventListener('signingSuccess', (e) => console.log('Signed:', e.detail.eventType, e.detail.documentId));
signer.addEventListener('signingFail', (e) => console.error('Failed:', e.detail.failureReason, e.detail.error));
signer.addEventListener('fieldChange', (e) => console.log('Field event:', e.detail.eventType));
</script>

React​

import { useEffect, useState } from 'react';
import { LsSigner } from 'legalesign-signer/react';
import 'legalesign-signer/react.css';

function SigningPage() {
const [signerData, setSignerData] = useState(null);

useEffect(() => {
fetch('/your-backend/to-get-token')
.then(res => res.json())
.then(setSignerData);
}, []);

if (!signerData) return <p>Loading...</p>;

return (
<LsSigner
recipientId={signerData.recipientId}
privateKey={signerData.token}
sessionId={signerData.sessionId}
onSuccess={({ eventType, documentId }) => console.log(eventType, documentId)}
onFail={({ eventType, failureReason, error }) => console.error(eventType, failureReason, error)}
onChange={({ eventType, uuid, saved, field, document }) => console.log('Event:', eventType)}
/>
);
}

Το React απαιτεί react και react-dom (v18 ή v19) ως peer dependencies.

Vue​

<template>
<ls-signer
ref="signer"
:recipient-id="recipientId"
:private-key="privateKey"
:session-id="sessionId"
/>
</template>

<script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue';

const signer = ref(null);

function handleSuccess(e) {
console.log('Signed:', e.detail);
}
function handleFail(e) {
console.error('Failed:', e.detail);
}

onMounted(() => {
signer.value.addEventListener('signingSuccess', handleSuccess);
signer.value.addEventListener('signingFail', handleFail);
});

onBeforeUnmount(() => {
signer.value?.removeEventListener('signingSuccess', handleSuccess);
signer.value?.removeEventListener('signingFail', handleFail);
});
</script>
Συμβουλή

Αν χρησιμοποιείτε Vue με Vite, προσθέστε isCustomElement: (tag) => tag.startsWith('ls-') στη ρύθμιση του Vue plugin σας για να καταστείλουν οι προειδοποιήσεις αγνώστων στοιχείων.

Προειδοποίηση

Το Vue 3 μετατρέπει σε πεζά τα ονόματα γεγονότων σε custom elements, οπότε το @signingSuccess δεν λειτουργεί. Χρησιμοποιήστε addEventListener στο στοιχείο ref όπως φαίνεται παραπάνω.

Nuxt 3

Τυλίξτε το <ls-signer> μέσα σε <ClientOnly> για να αποφύγετε σφάλματα SSR. Προσθέστε τη ρύθμιση του custom element στο nuxt.config.ts:

export default defineNuxtConfig({
vue: {
compilerOptions: {
isCustomElement: (tag) => tag.startsWith('ls-'),
},
},
});

Αυθεντικοποίηση​

Το στοιχείο signer απαιτεί ένα βραχύβιο token από το backend σας. Υπάρχουν δύο επιλογές:

  1. GraphQL generateComponentToken — Κλήση με component: LS_SIGNER και είτε recipientId είτε sessionId στο signer scope (δώστε ένα από τα δύο, όχι και τα δύο).
  2. REST API — Κλήση GET /signer/{signerId}/component-token/ με το API key σας.

Και οι δύο επιστρέφουν το token και το sessionId που απαιτούνται από το στοιχείο. Δείτε Έγκριση Widget για την πλήρη ροή token στην πλευρά του server.

Επιλογή 1: GraphQL (Node.js)​

Χρήση recipientId (η πιο συνηθισμένη — όταν γνωρίζετε τον παραλήπτη αλλά δεν έχετε ακόμη session):

const response = await fetch('https://graphql.uk.legalesign.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.LEGALESIGN_API_KEY}`,
},
body: JSON.stringify({
query: `mutation MintSignerToken($input: GenerateComponentTokenInput!) {
generateComponentToken(input: $input) {
token
tokenType
sessionId
expiresIn
expiresAt
}
}`,
variables: {
input: {
component: 'LS_SIGNER',
signer: { recipientId: '<recipient-id>' }
}
}
})
});

const { data } = await response.json();
const { token, sessionId } = data.generateComponentToken;

Εναλλακτικά, αν ήδη έχετε sessionId από προηγούμενη κλήση:

variables: {
input: {
component: 'LS_SIGNER',
signer: { sessionId: '<session-id>' }
}
}

Επιλογή 2: REST API​

const response = await fetch(
`https://eu-api.legalesign.com/api/v1/signer/${signerId}/component-token/`,
{
headers: {
Authorization: `Bearer ${process.env.LEGALESIGN_API_KEY}`,
},
}
);

const { token, sessionId } = await response.json();

Περάστε το token ως private-key και το sessionId ως session-id στο στοιχείο.

Απαιτούμενα Χαρακτηριστικά​

ΧαρακτηριστικόΤύποςΠεριγραφή
recipient-idstringΑναγνωριστικό παραλήπτη (base64, πρόθεμα rec ή UUID)
private-keystringToken που επιστρέφεται από το generateComponentToken
session-idstringSession ID που επιστρέφεται από το generateComponentToken

Προαιρετικά Χαρακτηριστικά​

ΧαρακτηριστικόΤύποςΠροεπιλογήΠεριγραφή
colourstringblueΌνομα χρώματος θέματος (δείτε Θεματισμός)
stylestring``Αλλαγές στυλ (δείτε Προσαρμοσμένο CSS)
brandingbooleantrueΕμφάνιση λογοτύπου Legalesign. Ορίστε σε false για αφαίρεση.
languagestring—Επιβολή συγκεκριμένης γλώσσας και απόκρυψη επιλογέα γλώσσας (δείτε Διεθνοποίηση)

Γεγονότα​

React propΓεγονός web componenteventTypeΠότε
onSuccesssigningSuccess"success"Έγγραφο υπογράφηκε με επιτυχία
onFailsigningFail"failure"Υπογραφή εγγράφου απέτυχε, απορρίφθηκε, έληξε, ακυρώθηκε, διαγράφηκε, αφαιρέθηκε ή έχει ήδη ολοκληρωθεί αλλού
onChangefieldChange"ready"Έγγραφο και εικόνες φορτώθηκαν πλήρως
onChangefieldChange"save"Μια τιμή πεδίου αποθηκεύτηκε
onChangefieldChange"select"Ένα πεδίο επιλέχθηκε ή εστιάστηκε

onSuccess / signingSuccess​

Εκτελείται όταν ο παραλήπτης υπογράφει με επιτυχία το έγγραφο.

{
eventType: 'success';
documentId: string; // UUID of the signed document
recipientId: string; // UUID of the recipient
}

React:

<LsSigner
onSuccess={({ eventType, documentId, recipientId }) => {
console.log(eventType); // "success"
console.log(documentId);
console.log(recipientId);
}}
/>

Web component:

signer.addEventListener('signingSuccess', (e) => {
console.log(e.detail.eventType); // "success"
console.log(e.detail.documentId);
console.log(e.detail.recipientId);
});

onFail / signingFail​

Εκτελείται όταν η υπογραφή αποτυγχάνει — είτε λόγω απόρριψης εγγράφου είτε λόγω σφάλματος κατά τη διαδικασία υπογραφής (π.χ. σφάλμα δικτύου, λήξη session, σύγκρουση κατάστασης εγγράφου).

{
eventType: 'failure';
failureReason: FailureReason;
error: string; // Human-readable error message
documentId?: string; // UUID of the document (if available)
recipientId: string; // UUID of the recipient
}
failureReasonΑιτία
documentExpiredΗ κατάσταση state του εγγράφου είναι "expired" ή η ημερομηνία expires είναι στο παρελθόν
sessionExpiredΤο API επέστρεψε 401 ή 403 κατά τη φόρτωση του εγγράφου
cancelledΗ κατάσταση state του εγγράφου είναι "cancelled"
deletedΤο flag is_deleted του εγγράφου είναι true
rejectedΟ παραλήπτης απέρριψε το έγγραφο (is_rejected είναι true)
removedΤο API επέστρεψε 404 — το έγγραφο πλέον δεν υπάρχει
documentCompletedΤο API υπογραφής επέστρεψε completed — το έγγραφο είχε ήδη υπογραφεί, πιθανόν σε άλλο browser ή συσκευή. Το στοιχείο εμφανίζει ενημερωτικό μήνυμα στον παραλήπτη αντί για σφάλμα.
signingErrorΚάθε άλλο σφάλμα κατά το φόρτωμα ή την υπογραφή

React:

<LsSigner
onFail={({ eventType, failureReason, error, documentId, recipientId }) => {
console.log(eventType); // "failure"
console.log(failureReason); // e.g. "documentExpired"
console.log(error);
}}
/>

Web component:

signer.addEventListener('signingFail', (e) => {
console.log(e.detail.eventType); // "failure"
console.log(e.detail.failureReason); // e.g. "documentExpired"
console.log(e.detail.error);
});

onChange / fieldChange​

Και οι τρεις τιμές eventType μοιράζονται το ίδιο γεγονός. Χρησιμοποιήστε το eventType για διάκριση.

eventType: "ready"​

Εκτελείται μια φορά όταν το έγγραφο και όλες οι εικόνες σελίδων έχουν φορτωθεί πλήρως και η διεπαφή υπογραφής είναι έτοιμη για αλληλεπίδραση.

{
eventType: 'ready';
document: {
documentId: string; // UUID of the document
name: string; // Document name
state: string; // Document state (e.g. "signing")
recipientId: string; // UUID of the recipient
recipientRole?: string; // Role of the recipient (e.g. "witness")
pageCount: number; // Number of pages
expires?: string; // Expiry date (ISO string, if set)
isApprover: boolean; // Whether the recipient is an approver
isWitness: boolean; // Whether the recipient is a witness
canReassign: boolean; // Whether the recipient can reassign
doOfferReject: boolean; // Whether the reject option is shown
};
}

React:

<LsSigner
onChange={({ eventType, document }) => {
if (eventType === 'ready') {
console.log('Ready to sign:', document.documentId, document.name);
console.log('Pages:', document.pageCount);
console.log('Expires:', document.expires);
}
}}
/>

Web component:

signer.addEventListener('fieldChange', (e) => {
if (e.detail.eventType === 'ready') {
console.log('Ready to sign:', e.detail.document.documentId, e.detail.document.name);
}
});

eventType: "save"​

Εκτελείται μετά την αποθήκευση μιας τιμής πεδίου στον server.

{
eventType: 'save';
uuid: string; // UUID of the field
saved: boolean; // Whether the save was successful
field: Record<string, any>; // Full field object (see Field Properties below)
}

React:

<LsSigner
onChange={({ eventType, uuid, saved, field }) => {
if (eventType === 'save') {
console.log(uuid, saved, field.value);
}
}}
/>

Web component:

signer.addEventListener('fieldChange', (e) => {
if (e.detail.eventType === 'save') {
console.log(e.detail.uuid, e.detail.saved, e.detail.field.value);
}
});

eventType: "select"​

Εκτελείται όταν ένα πεδίο επιλέγεται ή εστιάζεται — ενεργοποιείται από κλικ χρήστη, πλοήγηση με πληκτρολόγιο, αυτόματη προώθηση ή αλληλεπίδραση στην πλαϊνή μπάρα.

{
eventType: 'select';
uuid: string; // UUID of the selected field
field: Record<string, any>; // Full field object (see Field Properties below)
}

React:

<LsSigner
onChange={({ eventType, uuid, field }) => {
if (eventType === 'select') {
console.log('selected', uuid, field.fieldtype);
}
}}
/>

Web component:

signer.addEventListener('fieldChange', (e) => {
if (e.detail.eventType === 'select') {
console.log('selected', e.detail.uuid, e.detail.field.fieldtype);
}
});

Ιδιότητες Πεδίου​

Το αντικείμενο field που περιλαμβάνεται στα γεγονότα save και select έχει τις ακόλουθες ιδιότητες:

ΙδιότηταΤύποςΠεριγραφή
uuidstringΜοναδικός αναγνωριστικός αριθμός πεδίου
fieldtypestringΤύπος πεδίου (π.χ. "text", "signature", "date", "checkbox")
valuestringΤρέχουσα τιμή πεδίου
statebooleanΑν το πεδίο έχει αποθηκευτεί επιτυχώς
optionalbooleanΑν το πεδίο είναι προαιρετικό
pagenumberΑριθμός σελίδας όπου εμφανίζεται το πεδίο
labelstringΕτικέτα πεδίου (αν έχει οριστεί)
validationnumberΚωδικός τύπου επαλήθευσης
logicactionstringΤύπος λογικής ενέργειας ("1" = radio, "2" = άθροισμα, "3" = υπό όρους)
logicgroupstringΑναγνωριστικό ομάδας λογικής
maptostringΣτόχος για λογική (πεδία ελέγχου)
autobooleanΑν το πεδίο συμπληρώνεται αυτόματα
dirtybooleanΑν το πεδίο έχει μη αποθηκευμένες τοπικές αλλαγές

React Props​

Το React component χρησιμοποιεί camelCase props και callback props αντί για γεγονότα DOM:

PropΤύποςΑπαραίτητοΠεριγραφή
recipientIdstring✅Αναγνωριστικό παραλήπτη
privateKeystring✅Ιδιωτικό κλειδί από τη μεταβολή generateComponentToken
sessionIdstring✅Αναγνωριστικό session
colourLsSignerColour❌Χρώμα θέματος
brandingboolean❌Εμφάνιση λογοτύπου Legalesign. Προεπιλογή true.
languagestring❌Επιβολή συγκεκριμένης γλώσσας (δείτε Διεθνοποίηση)
onSuccess(data: { eventType: 'success'; documentId: string; recipientId: string }) => void❌Καλείται σε επιτυχή υπογραφή
onFail(data: { eventType: 'failure'; failureReason: FailureReason; error: string; documentId?: string; recipientId: string }) => void❌Καλείται σε αποτυχία υπογραφής
onChange(data: { eventType: 'ready' | 'save' | 'select'; document?: DocumentSummary; uuid?: string; saved?: boolean; field?: Record<string, any> }) => void❌Καλείται σε γεγονότα πεδίων και έγγραφου έτοιμου

Χειριστής catch-all (για debugging & πρωτότυπα)​

Καθώς κάθε γεγονός περιλαμβάνει eventType, μπορείτε να συνδέσετε μια ενιαία συνάρτηση σε όλα τα γεγονότα:

React:

const handleSignerEvent = (e) => {
switch (e.eventType) {
case 'success': console.log('Signed:', e.documentId); break;
case 'failure': console.log('Failed:', e.failureReason, e.error); break;
case 'ready': console.log('Ready:', e.document?.name); break;
case 'save': console.log('Saved field:', e.uuid, e.saved); break;
case 'select': console.log('Selected field:', e.uuid); break;
}
};

<LsSigner
onSuccess={handleSignerEvent}
onFail={handleSignerEvent}
onChange={handleSignerEvent}
/>

Web component:

const handleSignerEvent = (e) => {
switch (e.detail.eventType) {
case 'success': console.log('Signed:', e.detail.documentId); break;
case 'failure': console.log('Failed:', e.detail.failureReason, e.detail.error); break;
case 'ready': console.log('Ready:', e.detail.document?.name); break;
case 'save': console.log('Saved field:', e.detail.uuid, e.detail.saved); break;
case 'select': console.log('Selected field:', e.detail.uuid); break;
}
};

signer.addEventListener('signingSuccess', handleSignerEvent);
signer.addEventListener('signingFail', handleSignerEvent);
signer.addEventListener('fieldChange', handleSignerEvent);

Θεματισμός​

Ορίστε χρωματικό θέμα με την ιδιότητα colour. Όλες οι αποχρώσεις παράγονται αυτόματα.

Διαθέσιμα Χρώματα​

pink · blue · purple · indigo · teal · green · lightblue · burnt · aubergine · red · yellow · cyan · lime · trueGreen

Παραλείψτε το prop για το προεπιλεγμένο μπλε.

<ls-signer colour="pink" ...></ls-signer>
<LsSigner colour="pink" ... />

Το prop colour ορίζει την ιδιότητα data-ls-theme στη ρίζα του στοιχείου. Οι προσαρμοσμένες ιδιότητες CSS ορίζουν κλίμακα 10–100 για κάθε χρώμα:

ΑπόχρωσηΧρήση
10Ανοιχτά φόντα, διακριτικά γεμίσματα
20Διακριτικά περιγράμματα
30Δακτύλιοι εστίασης
60Κύριο χρώμα (κουμπιά, σύνδεσμοι, ενεργές καταστάσεις)
70Κατάσταση hover
80Σκούρες/έντονες τονίσεις

Προσαρμοσμένο CSS​

Το στοιχείο εκθέτει προσαρμοσμένες ιδιότητες CSS που μπορούν να υπερισχύσουν για να προσαρμόσετε την εμφάνιση πέρα από το χρωματικό θέμα. Αυτή η σειρά ιδιοτήτων είναι περιορισμένη προς το παρόν, επικοινωνήστε μαζί μας για περισσότερα.

<ls-signer
style="--ls-font-family: 'Inter', sans-serif; --ls-color-primary-60: #e91e63;"
recipient-id="abc123"
private-key="key"
session-id="session"
></ls-signer>

Διαθέσιμες Ιδιότητες​

ΙδιότηταΠροεπιλογήΠεριγραφή
--ls-font-family'IBM Plex Sans', sans-serifΚύρια οικογένεια γραμματοσειράς
--ls-color-primary-10 έως --ls-color-primary-100—Πλήρης κλίμακα κύριου χρώματος (αντικαθιστά θέμα)
--ls-color-error#f64a44Χρώμα κατάστασης σφάλματος
--ls-color-error-light#fff0f0Φόντο σφάλματος
--ls-color-success#46dbaaΧρώμα κατάστασης επιτυχίας
--ls-color-success-light#effff9Φόντο επιτυχίας
--ls-color-warning#fad232Χρώμα κατάστασης προειδοποίησης
--ls-color-warning-light#fffcefΦόντο προειδοποίησης
--ls-color-border#d8d9dcΠροεπιλεγμένο χρώμα πλαισίου
--ls-color-border-subtle#e0e2e5Διακριτικό χρώμα πλαισίου
--ls-color-bg-subtle#f7f8faΔιακριτικό φόντο

Σημείωση: Για πλήρη έγχυση custom CSS (στόχευση εσωτερικών στοιχείων απευθείας, αντικατάσταση μεγεθών γραμματοσειράς, ακτίνων περιγράμματος, αποστάσεων κ.λπ.), αυτό είναι μελλοντική προγραμματισμένη λειτουργία. Παρακαλούμε επικοινωνήστε αν ενδιαφέρεστε.

Διεθνοποίηση​

Το στοιχείο υποστηρίζει 17 γλώσσες με μεταφράσεις ενσωματωμένες στο build. Η γλώσσα ανιχνεύεται αυτόματα από τον browser. Ένας ενσωματωμένος επιλογέας γλώσσας στη διεπαφή υπογραφής επιτρέπει στον παραλήπτη να αλλάζει γλώσσα ανά πάσα στιγμή.

Ορίστε την ιδιότητα language για να επιβάλτε συγκεκριμένη γλώσσα. Όταν δοθεί, ο ενσωματωμένος επιλογέας γλώσσας κρύβεται και παρακαμφθεί η ανίχνευση του browser.

<ls-signer language="fr" recipient-id="abc123" private-key="key" session-id="session"></ls-signer>
<LsSigner language="fr" recipientId="abc123" privateKey="key" sessionId="session" />

Προτεραιότητα: prop language → γλώσσα browser → αγγλικό fallback.

ΚωδικόςΓλώσσαΚωδικόςΓλώσσα
enΑγγλικάnlΟλλανδικά
frΓαλλικάfiΦινλανδικά
bgΒουλγαρικάitΙταλικά
esΙσπανικάheΕβραϊκά
deΓερμανικάsvΣουηδικά
gsΣκωτσέζικα GaeliccyΟυαλικά
arΑραβικάisΙσλανδικά
elΕλληνικάiwΕβραϊκά (παλιά έκδοση)
ptΠορτογαλικά
roΡουμανικά

Έκδοση CDN​

Ο URL του CDN υποστηρίζει τόσο το latest όσο και αριθμούς έκδοσης με κλείδωμα:

<!-- Always get the most recent version (recommended) -->
<script type="module" src="https://cdn.legalesign.io/signer/latest/ls-signer.esm.js"></script>

<!-- Pin to a specific version -->
<script type="module" src="https://cdn.legalesign.io/signer/v1.1.7/ls-signer.esm.js"></script>

Συνιστούμε τη χρήση latest — αυτό εξασφαλίζει ότι η ενσωμάτωσή σας λαμβάνει αυτόματα διορθώσεις σφαλμάτων, ενημερώσεις ασφαλείας και νέες λειτουργίες. Χρησιμοποιήστε έκδοση με κλείδωμα αν χρειάζεται να σταθεροποιηθεί σε μια γνωστή έκδοση κατά τη διάρκεια QA freeze ή ελεγχόμενης κυκλοφορίας. Δείτε το πλήρες ιστορικό εκδόσεων στο npm για διαθέσιμες εκδόσεις.

Ολοκληρωμένο Παράδειγμα​

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document Signing</title>
<script type="module" src="https://cdn.legalesign.io/signer/latest/ls-signer.esm.js"></script>
</head>
<body>
<ls-signer
recipient-id="abc123"
private-key="key"
session-id="session"
colour="teal"
></ls-signer>

<script>
const signer = document.querySelector('ls-signer');

signer.addEventListener('signingSuccess', (event) => {
console.log('Document signed:', event.detail.documentId);
window.location.href = '/thank-you';
});

signer.addEventListener('signingFail', (event) => {
console.error('Signing failed:', event.detail.failureReason, event.detail.error);
});

signer.addEventListener('fieldChange', (event) => {
if (event.detail.eventType === 'ready') {
console.log('Ready to sign:', event.detail.document.name);
}
});
</script>
</body>
</html>

Υποστήριξη Browser​

  • Chrome/Edge (τελευταία έκδοση)
  • Firefox (τελευταία έκδοση)
  • Safari (τελευταία έκδοση)
  • Κινητοί browsers (iOS Safari, Chrome Mobile)

Αρχείο Αλλαγών​

ΈκδοσηΗμερομηνίαΠερίληψη
v1.1.720 Οκτ 2026Αιτία αποτυχίας documentCompleted; βελτιώσεις αποθήκευσης πεδίων; διορθώσεις θέσης; βελτιωμένη καταγραφή αποτυχίας γεγονότων
v1.1.022 Ιουλ 2026Γεγονός onChange / fieldChange; prop language; υπό όρους πεδία; αυτόματο άλμα; QES
v1.0.1220 Ιουλ 2026Γεγονός onChange / fieldChange με ready, save, select; τιμές failureReason; επαλήθευση regex
v1.0.1115 Ιουλ 2026Prop language; υπό όρους, dropdown, checkbox πεδία; είσοδος τηλεφώνου; σειρά πεδίων
v1.0.69 Ιουν 2026Προστέθηκε prop branding
v1.0.315 Μαΐ 2026Prop colour; custom CSS ιδιότητες; διορθώσεις σφαλμάτων
v1.0.011 Μαΐ 2026Αρχική σταθερή έκδοση

Πόροι​

Βίντεο: Μετάβαση από iframe στο στοιχείο Signer​