JUHUUPMS
Zur Startseite

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.

  1. Schranke im PMS unter Schranken anlegen (Steuerung Abruf/Poll empfohlen, oder Push mit Öffnen-URL).
  2. Controller (ANPR-Kamera / Tastenfeld / Mini-PC) alle 30–60 s abrufen lassen:
    GET …/api/barrier/access?key=<Schlüssel>
  3. 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

  1. Widget im PMS aktivieren (jedes Widget ist anfangs aus — so kommen keine versehentlichen Buchungen rein).
  2. Design wählen: Primärfarbe, Theme hell / dunkel / transparent, Layout und sichtbare Felder.
  3. 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

GET/api/v1/campgrounds

Alle Campingplätze deines Kontos.

{
  "ok": true,
  "campgrounds": [
    { "id": "cg_…", "name": "Seeblick", "city": "Seedorf", "isActive": true }
  ]
}
GET/api/v1/sites

Stellplätze (optional auf einen Platz gefiltert) inkl. Grundpreis.

  • campgroundIdoptional – nur Plätze dieses Campingplatzes
{
  "ok": true,
  "sites": [
    { "id": "site_…", "number": "A12", "category": "Komfort",
      "basePrice": 3200, "maxPersons": 4, "maxDogs": 1 }
  ]
}
GET/api/v1/availability

Buchbare Stellplätze + Preis für einen Zeitraum.

  • campgroundIderforderlich
  • checkIn / checkOuterforderlich – Format YYYY-MM-DD
  • adults / children / dogsoptional – Personenzahl
{
  "ok": true,
  "nights": 4,
  "available": [
    { "siteId": "site_…", "number": "A12", "pricePerNight": 3200, "total": 12800 }
  ]
}
GET/api/v1/bookings

Buchungen deines Kontos (read-only).

  • campgroundId / statusoptional – Filter
  • from / tooptional – Zeitraum YYYY-MM-DD
  • limitoptional – 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 }
  ]
}
Docs — Schranken, Widgets & Entwickler-API · JUHUU PMS