# Signaturprüfer

> Fügen Sie einen Request-Body oder einen Webhook-Body ein. Diese Seite berechnet die Signatur Schritt für Schritt so wie Cryptomus, vergleicht jeden Schritt mit Ihrem und markiert die erste Abweichung. Alles läuft in Ihrem Browser: Diese Seite kann überhaupt keine Netzwerkanfragen senden, Ihr API key verlässt also nie Ihren Rechner.
>
> HTML: https://blockwallets.io/docs/sign?lang=de · English: https://blockwallets.io/docs/sign.md?lang=en

## Request-Signatur (Sie rufen unsere API auf)

1. Der signierte Text ist genau der Request-Body, den Sie senden, Byte für Byte (Leerzeichen, Zeilenumbrüche und Escapes eingeschlossen).
2. base64 seiner UTF-8-Bytes.
3. sign = md5(Schritt 2 + API key), gesendet im Header `sign`; der Header `merchant` enthält die UUID des Händlers.

Bei einer falschen Signatur gibt die API 401 zurück, und `debug.body_base64` in der Antwort ist Schritt 2, berechnet aus dem Body, den wir empfangen haben, zum direkten Vergleich mit Ihrem.

## Webhook-Signatur (wir rufen Ihre Webhook-URL auf)

1. Entfernen Sie das Feld `sign` und kodieren Sie den Rest so neu wie PHP `json_encode`: kompakt, `/` als `\/` escaped, Nicht-ASCII bleibt erhalten.
2. base64 der UTF-8-Bytes aus Schritt 1.
3. md5(Schritt 2 + API key) muss `sign` entsprechen. Verwenden Sie den API key im selben Modus (Live / Test) wie der merchant.

## Übliche Ursachen

- Der API key des anderen Modus oder ein inzwischen rotierter.
- Das Framework hat den Body neu serialisiert (Formatierung, Schlüsselreihenfolge, Zahlenformate); prüfen Sie gegen den empfangenen Rohtext.
- `/` wurde beim erneuten Kodieren eines Webhooks nicht als `\/` escaped.

Der Prüfer läuft vollständig in Ihrem Browser, und die Seite kann keine Netzwerkanfragen senden, Ihr API key verlässt also nie Ihren Rechner. Codebeispiele zur Prüfung: https://blockwallets.io/docs/cryptomus?lang=de#verify
