ConnectWiz + API & webhooks
Live-integrationAPI:et vi säljer är API:et vi själva använder
Hela plattformen är specificerad i ett enda OpenAPI-kontrakt som vår egen panel och vår mobilapp genereras ur — inga dolda endpoints, ingen dokumentation som glider isär. Ovanpå det: scopade Commerce-API-nycklar, säkrade webhook-triggers och flöden som anropar dina system.
Utvecklare
Vad den gör — exakt
Ett kontrakt som gäller
Ett enda OpenAPI 3-dokument specificerar plattformen, och våra egna TypeScript-klienter genereras ur det — dokumentationen kan inte glida ifrån verkligheten, eftersom verkligheten byggs ur dokumentationen.
Commerce-API-nycklar
Nycklar som utfärdas per tenant med uttalade scopes — katalog läs, order läs, order skriv — driver din egen butik eller app på samma ordermotor, med priser som alltid räknas fram på servern.
Inkommande webhooks, säkrade
Varje webhook-trigger i ett flöde har en egen URL och en egen secret, HMAC-verifiering över den råa kroppen och skydd mot replay. En payload kan namnge en person; den kan aldrig styra flödets insida.
Utgående via Flows
REST-steget anropar dina system i exakt de ögonblick du ritar ut på arbetsytan — order lagd, samtycke givet, tid bokad.
Tekniken bakom
Designpositioner i API:et, uttalade
Priser kommer aldrig från klienten
En orderförfrågan säger vad och hur många — namn och pris läses ur katalogen i just det ögonblicket, på servern, och skrivs in på raden som en ögonblicksbild. En manipulerad förfrågan kan inte uppfinna en rabatt.
Förmågor före anrop
Varje integrationsingång publicerar ett förmågekontrakt — kan den matcha på telefonnummer, lista gästorder, skapa order? — och ett anrop förbi ett uttalat ”nej” kastar direkt i stället för att fallera någonstans långt ner.
Fel som betyder något
Transportlagret skiljer ”obehörig” från ”tjänsten nere” — så ”butiken går inte att nå” återges aldrig som ”den här kunden har aldrig köpt något”. Namngivna fel är skillnaden mellan ett API och en gissningslek.
Replay-säkra webhooks
Varje inkommande händelse tar en unik nyckel i ett idempotensregister innan den behandlas — en omförsökt eller uppspelad leverans dör i databaslagret, inte i din automation.
Nycklar hashade, secrets scopade
API-nycklar lagras som hashar, och bara hashen och scopen går att slå upp i dörren — en läckt databasrad namnger inget workspace och låser inte upp något utanför sina scopes.
Utkast och bekräftelser är uttalade
Att skapa en order tar en uttrycklig confirm-parameter — det publika API:et står som standard på bekräftad, flöden i panelen kan lägga upp utkast — så ”är den här på riktigt?” är ett fält, inte en konvention.
Uppsättning
Så kopplas den in
Utfärda en nyckel
Skapa en scopad Commerce-API-nyckel i panelen; återkalla den lika enkelt.
Koppla in en webhook
Skapa ett flöde med en webhook-trigger; signera anropen med dess secret.
Anropa utåt
Lägg till REST-steg där dina system behöver få veta.
Bättre tillsammans
Vad den kombineras med
Flows
Webhook-triggers startar Flows; REST-steg ringer tillbaka till dina system i exakt de ögonblick du ritar ut — inkommande och utgående automation delar samma arbetsyta.
Handel
Den katalog- och ordermotor som ligger bakom API:et är samma motor som chattbutiken och AI:n använder — en enda ordersanning, fyra dörrar.
Din egen butik
Team kör headless-butiker på Commerce-API:et redan i dag — vägen som ärligt rekommenderas på Shopify-sidan medan den nativa kopplingen byggs.
Säkerhet & garantier
De tråkiga garantierna
HMAC över den råa kroppen
Webhook-verifieringen signerar den råa requestkroppen med en secret per trigger och jämför i konstant tid — parsning sker först efter bevis.
Payloads är data, aldrig kommandon
En webhook-payload kan referera till en person; den kan aldrig styra ett flödes insida, skriva om prompter eller anropa verktyg. Gränsen mellan data och instruktioner är arkitektonisk, inte beteendemässig.
Rate limits på varje dörr
Publika endpoints går på standardstrypning, och läsgränser sätts på servern — en klient som missköter sig försämrar för sig själv, inte för plattformen.
Det ärliga finstilta
Gränser, uttalade
Ingen firehose ännu
Ett generiskt webhook-flöde där man prenumererar på allt är inte byggt — utgående händelser sker via steg i flöden i dag. Det står här, så att inget säljsamtal behöver antyda något annat.
Avgränsade läsningar, med flit
Läsningar returnerar upp till 100 rader med cursor — API:et är byggt för operativ integration, inte för massexport. Behov av massuttag är ett samtal, inte ett kryphål.
Ärligt inkopplat slår högljutt inkopplat.
Varje integration här beskrivs utifrån vad den faktiskt gör — riktning, ägarskap och gränser inkluderade.