ConnectWiz + API & webhooks

Live-integration

API: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.

Ett OpenAPI-kontrakt Scopade API-nycklar HMAC-verifierade webhooks
API & webhooks × ConnectWiz
Payloads är data, aldrig kommandon
Scopad nyckel: katalog läs · order skriv
Webhook → HMAC-verifierad → flödet startar
REST-steg i flödet anropar ditt API
1
OpenAPI-kontrakt som gäller — samma fil som vår egen panel och våra mobilappar genereras ur
3
Commerce-scopes — katalog läs, order läs, order skriv — utfärdas per nyckel
100
Max antal rader per läsning, begränsat på servern — en limit-parameter valideras, den litas aldrig på
50
Orderrader per order via API:et — en uttalad gräns, inte en upptäckt

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

01

Utfärda en nyckel

Skapa en scopad Commerce-API-nyckel i panelen; återkalla den lika enkelt.

02

Koppla in en webhook

Skapa ett flöde med en webhook-trigger; signera anropen med dess secret.

03

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.

FAQ om API & webhooks

Raka svar

Mer finns i vår fullständiga FAQ, eller fråga oss direkt.

Plattformen är specificerad i ett enda OpenAPI 3-kontrakt — samma fil som vår webbpanel och vår mobilapp genererar sina typer ur. Det du integrerar mot är det vi själva kör på.

En secret per trigger, HMAC-verifiering över den råa kroppen och skydd mot replay via ett idempotensregister. Och som regel är payloads data: de kan referera till en person, aldrig beordra automationen.

Via REST-steg i flöden, som avfyras i de ögonblick du väljer på arbetsytan. Ett generiskt utgående webhook-flöde ligger på färdplanen och utlovas medvetet inte förrän det är på plats.

Ja — katalogläsningar och orderskrivningar är vägen som stöds, med priser som räknas fram på servern och scopade nycklar som du kan återkalla per ingång. Gränserna på 50 orderrader och 100 poster per läsning står utskrivna, så att du designar mot dem i stället för att snubbla på dem.

Leveranser är idempotenta hos oss — registret känner igen en replay och kastar den, så dina system kan göra om anrop utan risk. Utgående REST-steg från flöden har en egen omförsökspolicy, och fel visas på flödeskörningen.

Ä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.