Demo testen ↗

Sigillo-Widget

QR-Code am Desktop, App-Link am Handy, Statusanzeige und Mehrsprachigkeit – mit wenigen Zeilen eingebunden.

Was das Widget übernimmt

  • Desktop: QR-Code zum Scannen mit der swiyu-App
  • Handy: Button «In swiyu-App öffnen»
  • Warten auf das Ergebnis, Anzeige von bestätigt, zu jung, abgebrochen, abgelaufen, «Erneut versuchen»
  • Sprachen: Deutsch, Französisch, Italienisch, Englisch
  • Eigenes Shadow DOM – kein Konflikt mit dem CSS Ihres Shops

Sicherheitsprinzip

Der Browser erhält nie Ihren API-Key, sondern nur id und client_secret einer einzelnen Prüfung. Damit kann das Widget genau diese Prüfung anzeigen, sonst nichts.

1. Server-Route

Eine Route auf Ihrem Server startet die Prüfung und gibt nur id und client_secret zurück. Beispiel in PHP:

$r = wp_remote_post('https://api.sigillo-id.ch/v1/verifications', [
  'headers' => ['Authorization' => 'Bearer ' . SIGILLO_API_KEY, 'Content-Type' => 'application/json'],
  'body'    => json_encode(['min_age' => 18, 'reference' => $cart_id]),
]);
$v = json_decode(wp_remote_retrieve_body($r), true);
wp_send_json(['id' => $v['id'], 'client_secret' => $v['client_secret']]);

2. Widget einbinden

<div id="age-check"></div>
<script src="https://api.sigillo-id.ch/widget.js"></script>
<script>
  Sigillo.mount('#age-check', {
    createVerification: () => fetch('/sigillo/start', { method: 'POST' }).then(r => r.json()),
    onVerified: (result) => unlockCheckout(result.id),
  });
</script>

Als Dialog statt eingebettet: Sigillo.open({ createVerification, onVerified }).

3. Serverseitig bestätigen

onVerified ist nur ein Signal für die Oberfläche. Vor dem Annehmen der Bestellung prüft Ihr Server GET /v1/verifications/{id} → status == "verified".

Optionen

Option Beschreibung
createVerification Funktion, die { id, client_secret } von Ihrem Server holt (auch für «Erneut versuchen»)
verification alternativ eine bereits angelegte Prüfung { id, client_secret }
locale de, fr, it, en – Standard: Browsersprache
theme light (Standard), dark, auto
accentColor Farbe der Buttons, z. B. '#7A1E38'
autoStart Prüfung ohne Klick sofort starten
onVerified, onRejected, onExpired, onError, onStateChange Callbacks

Eine vollständige Referenz-Integration ist unser Demo-Shop.

Aktualisiert 30. September 2026