Integratiegids
Voeg online reserveren toe aan uw website met één scriptregel — of laat gasten reserveren via uw gehoste boekingspagina.
Zoekt u de installatiehandleiding in gewone taal? Die staat op volzet.nl/widget-installeren.
De Volzet-widget wordt geladen met één <script>-tag. Vervang pk_UW_SLEUTEL door de publieke sleutel van uw restaurant. Er zijn drie manieren om te integreren; u kunt ze combineren.
1. Zwevende knop
Plaats deze regel vlak voor </body>. De widget toont een zwevende reserveerknop rechtsonder op elke pagina.
<!-- Zwevende knop -->
<script async src="https://cdn.volzet.nl/widget/v1/loader.js" data-key="pk_UW_SLEUTEL"></script>2. Inline reserveringsformulier
Wilt u het formulier direct in de pagina tonen in plaats van als zwevende knop? Voeg naast dezelfde scriptregel een leeg element met data-volzet-inline toe op de plek waar het formulier moet verschijnen.
<!-- Inline reserveringsformulier -->
<script async src="https://cdn.volzet.nl/widget/v1/loader.js" data-key="pk_UW_SLEUTEL"></script>
<div data-volzet-inline></div>Inline heeft voorrang. Staat er een data-volzet-inline-element op de pagina, dan rendert de widget daarin en verschijnt de zwevende knop niet. Zo bepaalt u met de opmaak van uw pagina welke modus actief is, zonder de scriptregel te wijzigen.
3. Eigen knop
Gebruikt u liever uw eigen knop of link? Geef een willekeurig element het attribuut data-volzet-action="open". Een klik opent het reserveringsvenster.
<!-- Eigen knop -->
<button data-volzet-action="open">Reserveer</button>Events en JS-API
Na een geslaagde reservering vuurt de widget een volzet:booking:created CustomEvent af op window. De reserveringsgegevens staan in event.detail — handig voor bevestigingen of conversietracking.
window.addEventListener('volzet:booking:created', function (event) {
console.log('Reservering aangemaakt', event.detail);
});Het venster is ook programmatisch te openen via de JS-API window.Volzet.open() — bijvoorbeeld vanuit uw eigen event-handler:
document.querySelector('#reserveer').addEventListener('click', function () {
window.Volzet.open();
});Gehoste boekingspagina
Geen zin in embedden? Elk restaurant krijgt een gehoste boekingspagina op een vast URL-schema:
https://book.volzet.nl/{slug}Bijvoorbeeld https://book.volzet.nl/uw-restaurant. Deel de link of gebruik hem als bestemming van een knop; u hoeft dan niets op uw eigen site te plaatsen.
Toegestane domeinen
Om misbruik van uw sleutel te voorkomen, laadt de widget alleen op domeinen die u zelf hebt geregistreerd. Registreer uw domein in het dashboard onder Beheer → Widget, of koppel het tijdens het aanmelden (zie hieronder). Domeinen die er niet in staan, worden door CORS geweigerd.
Zelf een account aanmaken
U kunt direct zelf beginnen — geen wachten op handmatige aanmaak. Ga naar app.volzet.nl/signup en meld u aan met uw e-mailadres en de naam van uw restaurant. U ontvangt een verificatielink; zodra u die bevestigt, is uw restaurant actief.
Volzet is gratis, met 30 dagen Volzet Pro erbovenop en zonder creditcard; wat Gratis en Pro precies inhouden staat op de prijzenpagina.
Uw domein koppelen
Om de widget op uw eigen website te laten laden, koppelt u uw domein met een verificatietoken dat u bij het aanmelden krijgt. Plaats één van de twee onderstaande opties op uw site en klik daarna op Verifieer. Volzet haalt uw pagina op en controleert of het token aanwezig is; beide plaatsingen zijn gelijkwaardig.
Optie A — scriptregel
Voeg het attribuut data-volzet-claim met uw token toe (bijvoorbeeld op de universele loader-regel, vlak voor </body>):
<script async src="https://cdn.volzet.nl/widget/v1/loader.js" data-volzet-claim="UW_TOKEN"></script>Optie B — meta-tag
Of plaats een meta-tag in de <head> van uw pagina:
<meta name="volzet-claim" content="UW_TOKEN">Na een geslaagde verificatie is uw domein toegestaan en laadt de widget erop. U hoeft het token daarna niet te laten staan.
MCP-server voor agents
De volledige aanmeldstroom is ook beschikbaar voor AI-agents via een MCP-server op https://mcp.volzet.nl/mcp. Een agent kan hiermee namens u een restaurant aanmelden, de status volgen, de embed-snippet ophalen en uw domein koppelen. De server biedt zes tools:
start_signup— meld een restaurant aan (e-mailadres + naam) en ontvang een onboarding-token. De agent moet u eerst de algemene voorwaarden en het privacybeleid tonen en om uw akkoord vragen: zonder dat akkoord weigert de aanmelding.resend_verification— verstuur de verificatiemail opnieuw (maximaal 6 keer per uur).get_signup_status— vraag de status op: e-mail geverifieerd, restaurant, facturatie, einde proefperiode, domeinkoppelingen en de afleverstatus van de verificatiemail.get_embed_snippet— haal de embed-snippets (universeel, met sleutel, inline) en de gehoste boekingspagina-URL op.start_domain_claim— start een domeinkoppeling; geeft een claim-token en de twee plaatsingsopties terug.verify_domain— laat Volzet de plaatsing controleren en de koppeling afronden.
get_signup_status geeft ook verification_email_status terug: de afleverstatus van de laatst verstuurde verificatiemail voor uw account bij dit restaurant, of null wanneer er nooit een is verstuurd — meestal doordat u zich met Google hebt aangemeld, waarbij er geen mail nodig is. queued, sent, delivered en delayed betekenen allemaal dat de mail onderweg is of al is aangekomen: even wachten volstaat. queued wordt trouwens binnen enkele seconden sent. Staat er bounced, dan bestaat het adres niet of weigert het de mail; staat er complained, dan is de mail juist wél aangekomen, maar heeft de ontvanger die als spam gemarkeerd — nogmaals sturen schaadt dan de afleverbaarheid. In beide gevallen heeft opnieuw versturen geen zin, en het adres kan niet via de MCP-server worden gewijzigd: meld u opnieuw aan met het juiste adres, of neem contact op met support via info@volzet.nl. Bij failed is één nieuwe poging wel zinvol. suppressed komt in de praktijk niet voor op dit veld; ziet u het toch, neem dan contact met ons op.
Het onboarding-token werkt niet meer zodra u zelf op het dashboard inlogt — met uw wachtwoord, via een wachtwoordherstel of met "Doorgaan met Google". Elke aanroep met dat token geeft daarna HTTP 401 met code not_authenticated: exact dezelfde melding als bij een verlopen of ongeldig token, dus uw agent kan de twee niet uit elkaar houden. Dat is normaal en definitief — de agent hoeft het niet opnieuw te proberen en moet ook geen nieuwe aanmelding starten (uw e-mailadres is dan al geregistreerd, wat een 400 oplevert). Vanaf dat moment gaat u verder in de console.
Let op: inloggen met "Doorgaan met Google" geldt meteen ook als e-mailverificatie. Kiest u die route in plaats van de link in de verificatiemail, dan stopt het token op datzelfde moment en ziet uw agent bij get_signup_status mogelijk nooit email_verified: true. Er gaat dan niets mis — de aanmelding is gewoon afgerond.
Nog geen account? Maak er zelf een aan op app.volzet.nl/signup — gratis, zonder creditcard. Zoekt u de installatie in gewone taal, zonder code? Die staat op volzet.nl/widget-installeren. Liever hulp? Mail info@volzet.nl.
Veelgestelde vragen
Waarom heeft de scriptregel geen integrity= (SRI)?
Dat is bewust. De loader /widget/v1/loader.js is een evergreen URL die Volzet ter plekke bijwerkt — hetzelfde model als Stripe.js. Een vastgepinde hash (Subresource Integrity) zou bij elke loader-update elke embed breken, want de hash zou niet meer overeenkomen. De beveiliging zit in eerste-partij TLS op cdn.volzet.nl: het bestand komt alleen van onze eigen, met certificaat beveiligde host.
Vragen? Mail info@volzet.nl.