Webhooks & APIIntegrations

Shopify

Trigger Wexio flows from Shopify orders, carts, and customers

Shopify signs webhook bodies with HMAC-SHA256 and sends the base64-encoded signature in X-Shopify-Hmac-Sha256. Wexio's Shopify preset configures that for you.

Provider docs: Setting up webhooks in Shopify

Setup

1. Create an inbound Wexio connection

Settings → Webhooks & API → New connection → Inbound. Click the Shopify preset under Generic HMAC-SHA256 presets.

The preset prefills:

FieldValue
Auth modeGENERIC_HMAC_SHA256
Signature header nameX-Shopify-Hmac-Sha256
EncodingBase64
Header prefix(empty)

You'll add the signing secret and URL next.

2. Register the webhook in Shopify

In Shopify admin → Settings → Notifications → Webhooks → Create webhook (or use the Admin API for programmatic setup).

FieldValue
Evente.g. orders/paid, checkouts/create, customers/create
FormatJSON
URLThe Wexio endpoint URL
Webhook API versionLatest stable

Shopify shows a Webhook signing key once per shop in Settings → Notifications — copy that into Wexio's Signing secret field. This key signs all webhooks for this shop (not per-endpoint).

3. Configure contact resolution

Identifier typeJSON pathNotes
Email$.emailOrder-level events
Email$.customer.emailCustomer-nested events
Phone number$.phoneWhen SMS marketing is involved

4. Capture the schema, bind a flow

Trigger a test webhook from Shopify's Send test notification button, let Wexio capture the schema, then add a Webhook Received trigger.

Example — Order Paid → WhatsApp Receipt

  • Shopify event: orders/paid
  • Wexio: identifier Email, path $.email
  • Flow: Webhook Received → WA Template "order_receipt" with {{webhook.order_number}}, {{webhook.total_price}}, {{webhook.currency}}

Troubleshooting

SymptomFix
UNAUTHORIZED: HMAC signature mismatchDouble-check the signing key in Shopify — it's shop-wide, so one wrong copy breaks every webhook
Signature always mismatches after reaching WexioA reverse proxy is reformatting the JSON body. Shopify's signature is over the exact bytes — pass-through only
Missing eventsConfirm the webhook is registered for the event you expect in Shopify's admin

On this page