Dokumentation
Anleitungen für smarte Schranken und die einbettbaren Widgets sowie eine schlanke Lese-API für Entwickler. Springe zu: Schranken · Widgets · Entwickler-API.
Smarte Schranken
So funktioniert der Zutritt
Jede Buchung bekommt automatisch einen 6-stelligen Zugangscode und kann ein Kennzeichen tragen — beides kommt in die Bestätigungsmail. Der Zutritt gilt für den gesamten Aufenthalt (beliebig oft rein und raus), tag-genau vom Anreise- bis zum Abreisetag. Nach der Abreise fällt die Buchung automatisch aus der Whitelist.
Wichtig: Der Zutritt hängt nicht am Check-in-Status. Eine bestätigte Buchung steht ab Mitternacht des Anreisetags auf der Whitelist — auch wenn der (automatische) Check-in erst später läuft.
Einrichtung — netzneutral, ohne Portfreigabe
Das PMS läuft in der Cloud, die Schranke vor Ort. Der Controller fragt das PMS ab (nur ausgehendes HTTPS) — kein VPN, keine Portfreigabe.
- Schranke im PMS unter Schranken anlegen (Steuerung Abruf/Poll empfohlen, oder Push mit Öffnen-URL).
- Controller (ANPR-Kamera / Tastenfeld / Mini-PC) alle 30–60 s abrufen lassen:
GET …/api/barrier/access?key=<Schlüssel> - Antwort enthält die gültigen Kennzeichen/Codes (Whitelist) sowie offene Öffnen-Befehle (Poll). Bei Treffer das Relais schalten, Befehl bestätigen.
Kompatibel u. a. mit Hikvision/Dahua/Nedap/Axis (ANPR), beliebigen Tastenfeld-Controllern und Shelly-Relais.
Vor-Ort-Bridge (empfohlen)
Statt jeden Controller einzeln einzurichten, kannst du das kleine Bridge-Programm auf einem Rechner im selben Netz laufen lassen (Download je Campingplatz unter Schranken bzw. Strom). Es vermittelt automatisch zwischen lokaler Schranke und Stromzähler und dem PMS — nur ausgehend. Bei PMS-Ausfall werden Zählerstände lokal gepuffert und nachgesendet.
Öffnen & manuelle Codes
- Rezeption: Schranke per Knopf öffnen — auf der Schranken-Seite und direkt an der Buchung.
- Gast: „Schranke öffnen“-Button im Gäste-Widget und auf juhuu.camp — nur während des Aufenthalts.
- Einzelanlässe: manuelle Tages-Codes/Kennzeichen für Lieferungen, Handwerker oder Besucher — gültig nur im gewählten Zeitraum.
Arbeiten mit den Widgets
Welche Widgets gibt es?
Buchung (Campingplatz, Stellplatz-Gruppe oder einzelner Platz), Shop, Brötchen, Verleih sowie das Gäste-Widget (Konto, Buchungen, Rechnungen). Dazu Info-Widgets: Anfahrtskarte und Bewertungen.
Einbetten in deine Website
- Widget im PMS aktivieren (jedes Widget ist anfangs aus — so kommen keine versehentlichen Buchungen rein).
- Design wählen: Primärfarbe, Theme hell / dunkel / transparent, Layout und sichtbare Felder.
- Einbettungs-Code (iframe) kopieren und auf deiner Seite einfügen. Größe für Desktop und Mobil getrennt festlegen — fix oder responsiv.
<iframe src="https://<deine-pms-domain>/widget/<campgroundId>"
style="width:100%;height:720px;border:0;background:transparent"
loading="lazy"></iframe>Bezahlung — du bestimmst den Modus
Pro Campingplatz wählst du, wie die Verkaufs-Widgets kassieren:
- Online: Kreditkarte, Klarna, SEPA, iDEAL, PayPal — Geld direkt auf dein Konto.
- Am Platz: Reservierung ohne Online-Zahlung; du kassierst vor Ort (bar, Karte oder POS-Terminal).
- Beides: der Gast wählt im Widget zwischen „Online bezahlen“ und „Am Platz“.
Online-Zahlung benötigt einen verbundenen Anbieter (Stripe/Mollie/PayPal). Die jeweils freigeschalteten Zahlarten erscheinen automatisch im Anbieter-Checkout.
Login & Gäste-Daten
Camper buchen mit oder ohne Konto. Mit einem juhuu.camp-Konto werden ihre Rechnungsdaten automatisch übernommen; sie sehen alle Buchungen gebündelt und können die Schranke öffnen. Anmeldung läuft über juhuu.camp (SSO).
Entwickler-API
Eine schlanke Lese-API, mit der du Verfügbarkeit, Stellplätze und Buchungen deines Campingplatzes auf der eigenen Website einbinden kannst.
Authentifizierung
Erzeuge deinen API-Key im PMS unter Abo & Pakete → Entwickler-API (im Paket enthalten sein muss). Sende ihn als Bearer-Token:
curl -H "Authorization: Bearer DEIN_API_KEY" \ https://<deine-pms-domain>/api/v1/campgrounds
Der Key gilt für dein gesamtes Konto und gewährt nur Lesezugriff. Behandle ihn vertraulich — am besten serverseitig nutzen.
Basis & Format
- Antworten sind JSON (
{ "ok": true, … }). - Beträge sind in Cent (Ganzzahl), Daten im Format
YYYY-MM-DD. - CORS ist aktiviert; ohne/mit falschem Key →
401, fehlendes Paket →403.
Endpunkte
/api/v1/campgroundsAlle Campingplätze deines Kontos.
{
"ok": true,
"campgrounds": [
{ "id": "cg_…", "name": "Seeblick", "city": "Seedorf", "isActive": true }
]
}/api/v1/sitesStellplätze (optional auf einen Platz gefiltert) inkl. Grundpreis.
campgroundId— optional – nur Plätze dieses Campingplatzes
{
"ok": true,
"sites": [
{ "id": "site_…", "number": "A12", "category": "Komfort",
"basePrice": 3200, "maxPersons": 4, "maxDogs": 1 }
]
}/api/v1/availabilityBuchbare Stellplätze + Preis für einen Zeitraum.
campgroundId— erforderlichcheckIn / checkOut— erforderlich – Format YYYY-MM-DDadults / children / dogs— optional – Personenzahl
{
"ok": true,
"nights": 4,
"available": [
{ "siteId": "site_…", "number": "A12", "pricePerNight": 3200, "total": 12800 }
]
}/api/v1/bookingsBuchungen deines Kontos (read-only).
campgroundId / status— optional – Filterfrom / to— optional – Zeitraum YYYY-MM-DDlimit— optional – max. 200
{
"ok": true,
"count": 1,
"bookings": [
{ "reference": "B-2026-0001", "status": "CONFIRMED",
"checkIn": "2026-07-01", "checkOut": "2026-07-05",
"campground": "Seeblick", "guest": "Max Mustermann", "total": 12800 }
]
}