API
Zurück zur Website
Webhooks

Coupon-Webhooks.

Reloadify kann in Echtzeit einen Coupon bei deinem System abfragen, zum Beispiel wenn ein Flow einen einmaligen Rabattcode für einen bestimmten Kunden braucht. Du stellst einen HTTPS-Endpoint bereit, und jeder Aufruf ist signiert, damit du sicher weißt, dass er von uns kommt.

So funktionieren Coupon-Webhooks

Du richtest Coupon-Webhooks auf ihrer Einstellungsseite in deinem Reloadify-Konto ein und lässt sie dort auf deinen HTTPS-Endpoint zeigen. Wird ein Coupon gebraucht, senden wir einen JSON-Payload per POST an deine URL; antworte mit einem 2xx und dem Couponcode im Body.

Jede Anfrage enthält einen Webhook-Signature-Header: einen HMAC SHA-256 des unveränderten Request-Bodys, berechnet mit dem Signing Secret deines Endpoints. Prüf ihn, bevor du dem Payload vertraust.

Signaturen prüfen

Berechne den HMAC SHA-256 des unveränderten Request-Bodys mit deinem Signing Secret neu und vergleiche ihn in konstanter Zeit mit dem Wert im Webhook-Signature-Header. Lehne alles ab, was nicht übereinstimmt.

Einen Aufruf prüfen
# Header bei jedem Aufruf:
Webhook-Signature: 5f8c2e…

# Neu berechnen und vergleichen (Pseudocode):
expected = HMAC_SHA256(secret, raw_body)
valid    = constant_time_equal(expected, header_value)
$signature = $_SERVER['HTTP_WEBHOOK_SIGNATURE'] ?? '';
$body      = file_get_contents('php://input');
$expected  = hash_hmac('sha256', $body, $secret);

if (!hash_equals($expected, $signature)) {
    http_response_code(400);
    exit;
}
import hashlib, hmac

def verify(headers, body: bytes, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(
        expected, headers.get("Webhook-Signature", "")
    )
require "openssl"

def verify(signature, body, secret)
  expected = OpenSSL::HMAC.hexdigest("SHA256", secret, body)
  Rack::Utils.secure_compare(expected, signature.to_s)
end

Hashe immer den unveränderten Request-Body, bevor du das JSON parst oder neu serialisierst. Erneutes Kodieren kann Bytes verändern, sodass die Signatur nicht mehr stimmt.

Best practices