Integratiegids
Voeg online reserveren toe aan uw website met één scriptregel — of laat gasten reserveren via uw gehoste boekingspagina.
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 metdata-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 eendata-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 attribuutdata-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 eenvolzet:booking:created CustomEventaf op window. De reserveringsgegevens staan inevent.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-APIwindow.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 onderBeheer → 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 naarapp.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, start uwproefperiode van 30 dagen. Daarna is Volzet€39 per maand excl. btw, maandelijks opzegbaar.
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 ophttps://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.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 ookverification_email_status terug: de afleverstatus van de laatst verstuurde verificatiemail voor uw account bij dit restaurant, ofnull 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 secondensent. Staat er bounced, dan bestaat het adres niet of weigert het de mail; staat ercomplained, 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. Bijfailed 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 codenot_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 bijget_signup_status mogelijk nooitemail_verified: true. Er gaat dan niets mis — de aanmelding is gewoon afgerond.
Nog geen account? Maak er zelf een aan opapp.volzet.nl/signup — 30 dagen gratis proberen. Liever hulp bij de installatie? Mailinfo@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.