Webhooks
Webhooks — game.finished
Bei jedem Spielende sendet Rent an Arcade einen POST an deine konfigurierte Webhook-URL. Perfekt für Gewinnspiel-Auswertungen, Live-Dashboards oder Bestenlisten.
Webhook-Payload
{
"event": "game.finished",
"arcade_id": "arc_abc123",
"game_key": "dishtennis",
"player": {
"id": "user-42",
"name": "Max Mustermann"
},
"score": 4200,
"custom_values": ["gewinnspiel-ostern", "newsletter", "gold-member", "Berlin"],
"leaderboard": [
{ "name": "Max Mustermann", "score": 4200 },
{ "name": "Lisa Schmidt", "score": 3800 },
{ "name": "Tom Weber", "score": 2100 }
],
"origin_domain": "meinshop.de",
"timestamp": "2026-03-28T18:30:00+02:00"
}
Webhook einrichten
- Im Dashboard unter deinem Automaten auf Webhook klicken
- HTTPS-URL eingeben (z.B.
https://meinshop.de/api/arcade-webhook) - Mit Test senden prüfen ob dein Endpoint antwortet
Oder per API: POST /api/v1/arcades/{arcade_id}/webhook mit {"url": "https://..."}
Webhook empfangen (PHP-Beispiel)
<?php
$payload = json_decode(file_get_contents('php://input'), true);
if ($payload['event'] === 'game.finished') {
$playerId = $payload['player']['id'];
$score = $payload['score'];
$campaign = $payload['custom_values'][0] ?? '';
// In deine DB schreiben, Gewinner ermitteln, etc.
$db->insert('gewinnspiel_scores', [
'user_id' => $playerId,
'score' => $score,
'campaign' => $campaign,
]);
}
http_response_code(200);
echo json_encode(['ok' => true]);
Hinweise
- Webhook-URL muss HTTPS sein
- Timeout: 10 Sekunden — antworte schnell oder verarbeite asynchron
- Bei Fehler (non-2xx): wird geloggt, kein Retry
- Test-Webhooks haben
"test": trueim Payload - Header:
User-Agent: RentAnArcade-Webhook/1.0,X-RAA-Event: game.finished
Tipp: Gewinnspiel-Auswertung
Setze player.id beim Einbinden auf deine interne User-ID. Dann kannst du per API die besten Scores eines Spielers abrufen:
GET /api/v1/scores?player_id=user-42&arcade_id=arc_abc123&limit=1
So ermittelst du automatisch den Gewinner deines Gewinnspiels.