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/json
One of:
Option 1
Option 2

Responses

200 OK
application/json
action 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>"  ]}