POST /v1/orgs/{orgId}/integrations/shopify
Handle Shopify webhook event
POST
/v1/orgs/{orgId}/integrations/shopify
Handle Shopify webhook event
Path Parameters
orgId
string
required
path
Organization ID
Query Parameters
secret
string
required
query
Webhook secret
Header Parameters
X-Shopify-Topic
string
required
header
Shopify topic (e.g., orders/create)
X-Shopify-Shop-Domain
string
required
header
Shop domain (e.g., my-store.myshopify.com)
X-Shopify-Hmac-SHA256
string
required
header
HMAC signature for payload verification
Request Body required
Shopify webhook payload
application/jsonOne of:
Option 1
Option 2
Responses
200
OK
application/jsonaction
string
"triggered", "resumed", "skipped"
eventId
string
Webhook event ID for audit
reason
string
If skipped, the reason
runIds
string[]
Multiple if fan-out (platform) or single (generic)
Array of:
400
Bad Request
401
Unauthorized
404
Not Found
curl -X POST 'https://api.example.com/v1/orgs/string/integrations/shopify?secret=string' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'X-Shopify-Topic: string' \ -H 'X-Shopify-Shop-Domain: string' \ -H 'X-Shopify-Hmac-SHA256: string' \ -H 'Content-Type: application/json' \ -d '{}'
const response = await fetch('https://api.example.com/v1/orgs/string/integrations/shopify?secret=string', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json", "X-Shopify-Topic": "string", "X-Shopify-Shop-Domain": "string", "X-Shopify-Hmac-SHA256": "string" }, body: JSON.stringify({})});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN', 'X-Shopify-Topic': 'string', 'X-Shopify-Shop-Domain': 'string', 'X-Shopify-Hmac-SHA256': 'string'}response = requests.post('https://api.example.com/v1/orgs/string/integrations/shopify?secret=string', headers=headers, json={})print(response.json())
package mainimport ( "fmt" "io" "net/http" "strings")func main() { body := strings.NewReader(`{}`) req, _ := http.NewRequest("POST", "https://api.example.com/v1/orgs/string/integrations/shopify?secret=string", body) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") req.Header.Set("Content-Type", "application/json") req.Header.Set("X-Shopify-Topic", "string") req.Header.Set("X-Shopify-Shop-Domain", "string") req.Header.Set("X-Shopify-Hmac-SHA256", "string") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() result, _ := io.ReadAll(resp.Body) fmt.Println(string(result))}
200
Response
{ "action": "<string>", "eventId": "<string>", "reason": "<string>", "runIds": [ "<string>" ]}
API Playground
Try this endpoint
POST
/v1/orgs/{orgId}/integrations/shopify
