ConnectWiz + API & Webhooks
Live integratieDe API die we verkopen, is de API die we zelf gebruiken
Het hele platform staat gespecificeerd in één OpenAPI-contract waaruit ons eigen paneel en onze mobiele app worden gegenereerd — geen schaduwendpoints, geen documentatie die afdrijft. Daarbovenop: Commerce API-sleutels met scopes, beveiligde webhooktriggers en flows die jouw systemen aanroepen.
Ontwikkelaars
Wat het doet — precies
Eén contract dat telt
Eén OpenAPI 3-document specificeert het platform; onze eigen TypeScript-clients worden eruit gegenereerd — de documentatie kan niet afdrijven van de werkelijkheid, want de werkelijkheid wordt uit de documentatie gebouwd.
Commerce API-sleutels
Sleutels die de tenant zelf uitgeeft, met expliciete scopes — catalogus lezen, orders lezen, orders schrijven — draaien je eigen storefront of app op dezelfde ordermotor, met prijzen die altijd aan de serverkant worden bepaald.
Inkomende webhooks, beveiligd
Elke webhooktrigger in een flow heeft een eigen URL en secret, HMAC-verificatie over de ruwe body en bescherming tegen replay. Een payload mag een persoon noemen; hij kan nooit de binnenkant van de flow sturen.
Uitgaand via flows
De REST-stap roept je systemen aan op precies de momenten die je op het canvas tekent — order geplaatst, toestemming gegeven, boeking gemaakt.
De techniek erachter
Standpunten in het API-ontwerp, uitgesproken
Prijzen komen nooit van de client
Een orderverzoek zegt wat en hoeveel — naam en prijs worden op dat moment aan de serverkant uit de catalogus gelezen en als momentopname op de regel gezet. Een gemanipuleerd verzoek kan geen korting verzinnen.
Eerst mogelijkheden, dan aanroepen
Elke integratie publiceert een contract met haar mogelijkheden — kan ze matchen op telefoonnummer, gastorders opsommen, orders aanmaken? — en aanroepen voorbij een uitgesproken “nee” gooit meteen een fout, in plaats van ergens diep vast te lopen.
Fouten die iets betekenen
Het transport onderscheidt “niet geautoriseerd” van “dienst ligt plat” — zodat “de winkel is onbereikbaar” nooit wordt weergegeven als “deze klant heeft nooit iets gekocht”. Fouten met een naam zijn het verschil tussen een API en een raadspelletje.
Webhooks die replay niet pikken
Elk binnenkomend event claimt vóór verwerking een unieke sleutel in een idempotency-register — een herhaalde of opnieuw afgespeelde levering sterft in de databaselaag, niet in je automatisering.
Sleutels gehasht, secrets met scopes
API-sleutels worden als hash opgeslagen, en aan de deur zijn alleen de hash en de scopes op te lossen — een uitgelekte databaseregel noemt geen workspace en opent niets buiten zijn scopes.
Concepten en bevestigingen zijn expliciet
Een order aanmaken vraagt een expliciete confirm-parameter — de publieke API staat standaard op bevestigd, flows in het paneel kunnen concepten klaarzetten — zodat “is dit echt?” een veld is en geen afspraak.
Instellen
Hoe de koppeling werkt
Geef een sleutel uit
Maak in het paneel een Commerce API-sleutel met scopes; intrekken gaat net zo makkelijk.
Sluit een webhook aan
Maak een flow met een webhooktrigger; onderteken je verzoeken met het secret ervan.
Roep naar buiten
Voeg REST-stappen toe waar je systemen het moeten horen.
Beter samen
Waar het mee combineert
Flows
Webhooktriggers starten flows; REST-stappen roepen je systemen terug op de momenten die jij tekent — inkomende en uitgaande automatisering delen één canvas.
Commerce
De catalogus- en ordermotor achter de API is dezelfde die de chatwinkel en de AI gebruiken — één orderwaarheid, vier deuren.
Je eigen storefront
Teams draaien vandaag al headless storefronts op de Commerce API — het pad dat de Shopify-pagina zonder opsmuk aanbeveelt zolang de native connector wordt gebouwd.
Beveiliging & garanties
De saaie garanties
HMAC over de ruwe body
De webhookverificatie ondertekent de ruwe request-body met een secret per trigger en vergelijkt in constante tijd — pas na het bewijs wordt er geparsed.
Payloads zijn data, nooit commando’s
Een webhookpayload mag naar een persoon verwijzen; hij kan nooit de binnenkant van een flow sturen, prompts herschrijven of tools aanroepen. De grens tussen data en instructies zit in de architectuur, niet in gedrag.
Rate limits op elke deur
Publieke endpoints vallen onder de standaard throttling, en leeslimieten worden aan de serverkant begrensd — een client die zich misdraagt, remt zichzelf af en niet het platform.
De kleine lettertjes, zonder opsmuk
Grenzen, benoemd
Nog geen firehose
Een algemene webhookfeed waarop je je op alles abonneert, is niet gebouwd — uitgaande events lopen vandaag via flowstappen. Dat staat hier, zodat geen verkoopgesprek iets anders hoeft te suggereren.
Begrensde leesacties, met opzet
Leesacties geven maximaal 100 rijen terug, met een cursor — de API is gebouwd voor operationele integratie, niet voor bulkexport. Bulkbehoeften zijn een gesprek, geen achterdeur.
Eerlijk koppelen wint van hard roepen.
Elke integratie hier is beschreven op wat ze echt doet — inclusief richting, eigenaarschap en grenzen.