Ontwikkelaars · voor Ontwikkelaars
Snel aan de slag met de API
Maak een API-sleutel aan, doe je eerste aanroep, maak boekingen vanuit je PMS, lees incheck- en betaalstatus en reageer op events met webhooks.
Alles wat het dashboard doet, is beschikbaar als JSON REST API. Typische toepassingen: boekingen aanmaken vanuit je PMS of boekingsmodule, de link naar het gastenportaal in je eigen berichten zetten, de gegevens van het online inchecken uitlezen of de MTA-aangifte in je boekhouding binnenhalen.
De volledige referentie staat op /api/docs, machineleesbaar als OpenAPI 3.1.
1. Maak een API-sleutel aan #
Settings → API keys (alleen owners): geef de sleutel een naam en een rol. De sleutel kan precies wat die rol kan — gebruik Viewer voor integraties die alleen lezen. De volledige sleutel (gpk_…) wordt één keer getoond; bewaar hem in je secret store. Je kunt hem daar op elk moment intrekken.
2. Doe je eerste aanroep #
Stuur de sleutel mee als bearer token. De basis-URL is je portaaladres.
curl https://stay.example.com/api/v1/me \
-H "Authorization: Bearer gpk_xxxxxxxxxxxx"
Het antwoord vertelt je de tenant, de rol van de sleutel en de bijbehorende rechten.
3. Maak een boeking aan #
curl -X POST https://stay.example.com/api/v1/bookings \
-H "Authorization: Bearer gpk_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"propertyId": "p_xxxxxxxxxx",
"checkIn": "2026-11-18", "checkOut": "2026-11-23",
"adults": 2, "children": 0,
"guest": { "firstName": "Sofia", "lastName": "Rossi", "email": "sofia@example.com", "phone": "+39 333 1234567" },
"source": "mypms", "externalId": "RES-48213",
"sendPortalLink": true
}'
- Met
source+externalIdis de aanroep een upsert: als je dezelfde reservering opnieuw stuurt, wordt die bijgewerkt in plaats van gedupliceerd. - Overlappende data geven 409 terug; voeg
"allowOverlap": truetoe als dat de bedoeling is. - Het antwoord bevat de boeking met
portalUrl— de persoonlijke link van de gast.
Accommodatie-ID's haal je op met GET /api/v1/properties.
4. Status en incheckgegevens uitlezen #
GET /api/v1/bookings?from=2026-11-01&to=2026-11-30— lijst met betaalstatussen (eco.status,deposit.status),stayStateenunlocked.GET /api/v1/bookings/{id}— volledige boeking incl. gegevens van het online inchecken en activiteitenlogboek.GET /api/v1/bookings?format=csv— export als spreadsheet.
Meer endpoints #
| Endpoint | Wat het doet |
|---|---|
GET /api/v1/reports/stats?propertyId=&from=&to= | Statistieken per accommodatie en periode (format=csv voor CSV) |
GET /api/v1/reports/owner-statement?propertyId=&from=&to= | Overzicht van de ecobijdrage voor de eigenaar; POST …/owner-statement/send mailt het |
GET/PUT /api/v1/properties/{id}/translations | De vertalingen van de gids per taal; POST …/translations/auto vult ontbrekende aan |
PATCH /api/v1/settings | Bevat stayTimes (vroeg/laat), journey (gastberichten), pushArrivalHours en checkin.formType (short of long) |
POST /api/v1/settings/journey/test | Stuurt één stap van de berichtentijdlijn als test naar jou |
GET /api/v1/push, POST /api/v1/push/subscribe | Meldingen op de telefoon van de ingelogde gebruiker |
De gast-API accepteert de header X-GP-Lang (en, de, it, fr, es, nl, pl, mt) en geeft de gids in die taal terug.
5. Reageren op events #
In plaats van te pollen registreer je een webhook (Settings → Webhooks) en ontvang je ondertekende events zoals checkin.completed, payment.completed of feedback.received — zie Webhooks.
Conventies #
| Onderwerp | Regel |
|---|---|
| Formaat | JSON in en uit, UTF-8; datums YYYY-MM-DD, tijdstempels ISO 8601 UTC |
| Fouten | HTTP-status + { "error": "message" } — 400 ongeldige invoer, 401 ongeldige sleutel, 403 niet toegestaan, 404 niet gevonden, 409 conflict, 429 te veel verzoeken |
| Geld | Decimale getallen in de valuta van het account (standaard EUR) |
| Geheimen | Gemaskeerd in antwoorden; stuur een lege waarde om een opgeslagen geheim te behouden |
Veelgestelde vragen #
Is er een sandbox? #
Gebruik het demo-account om rond te kijken en de sandboxmodus van Revolut voor betalingen. In de demo kun je geen API-sleutels aanmaken — maak een gratis account aan voor ontwikkeling.
Is er een API voor platformbeheerders? #
Ja: de platform-API (/api/platform/v1, sleutels die beginnen met gpp_) richt tenants en domeinen in. Zie het platformgedeelte van de API-referentie.
