Send events to Flousify
This guide documents Flousify-hosted endpoints that your platform pushes commerce events into. Register a webhook on your side pointing here, verify the signature, and abandoned-cart recovery starts automatically.
These are Flousify's URLs. Your Shopify / Salla / Zid / EasyOrders store sends webhooks to Flousify — this is not Shopify's API or Salla's API catalog.
https://flousify.net/api/webhooks/{provider}Webhook-first
Receive real-time commerce events from Shopify, Salla, Zid, EasyOrders, and Vendera with zero polling.
Per-platform signing
Every provider uses HMAC-SHA256 signature verification so only authentic events reach your pipeline.
OAuth where supported
One-click connect for Shopify, Salla, and Zid — Flousify registers webhooks automatically after OAuth.
Normalized events
All payloads are reduced to a common shape with an event_bucket enum — build one handler for every platform.
Quick Start
shopify with the relevant provider slug and follow that platform's official docs for header names and payload shape.- 1
Register your Shopify app
Create an application in Shopify Partners and set the Redirect URI to:https://flousify.net/api/oauth/shopify/callback
- 2
Register the Flousify webhook URL in Shopify
In the Shopify app settings, subscribe to cart, checkout, and order topics. Point them at:https://flousify.net/api/webhooks/shopify
- 3
Copy your signing secret & test
Copy the Shopify webhook signing secret intoSHOPIFY_WEBHOOK_SECRETin your Flousify Vercel project. Then connect from the Flousify dashboard — trigger a test checkout and confirm a new customer row appears within seconds.
Core Concepts
store_idstore_id (UUID). Flousify resolves it server-side by matching platform-specific clues (Shopify shop domain, EasyOrders secret, etc.) against the integrations table. Never send store_id in a webhook payload expecting it to be trusted.event_bucketabandoned_candidateCart or checkout started but not completed — triggers follow-up.
order_completedPayment confirmed — marks open cart as recovered.
otherInformational event — stored, no customer action taken.
resource_id200 to all deliveries.Authentication
Flousify verifies every inbound webhook before processing. The raw request body is hashed with HMAC-SHA256 using the platform's secret and compared to the platform-supplied header. A missing or invalid signature returns 401.
| Provider | Model | Signature header | Algorithm |
|---|---|---|---|
| Shopify | OAuth 2.0 | X-Shopify-Hmac-Sha256 | HMAC-SHA256 base64 |
| Salla | OAuth 2.0 | X-Salla-Signature | HMAC-SHA256 hex |
| Zid | OAuth 2.0 | X-Zid-Signature | HMAC-SHA256 hex |
| EasyOrders | Manual API key | secret | Direct string compare |
| Vendera | Manual API key | — | Beta — pending |
Endpoints
Health
Inbound webhooks
OAuth
Credentials test
Tenant onboarding
Provider-specific Webhook Contracts
Flousify reads customer name, email, phone, and cart value from each platform's standard webhook payload fields. For the full payload schema, refer to each platform's official documentation — linked in the sections below.
Example integration: Shopify
OAuth 2.0Worked example| Redirect URI | https://flousify.net/api/oauth/shopify/callback |
| Webhook URL | https://flousify.net/api/webhooks/shopify |
| Scopes | read_orders, read_customers, read_checkouts |
| Signature header | X-Shopify-Hmac-Sha256 (base64 HMAC-SHA256) |
| Store resolution | X-Shopify-Shop-Domain header |
| Event (X-Shopify-Topic) | event_bucket |
|---|---|
| checkouts/create, checkouts/update | abandoned_candidate |
| carts/create, carts/update | abandoned_candidate |
| orders/create, orders/paid | order_completed |
| All others | other |
For add-to-cart signals that precede the checkout lifecycle, use POST /api/tracking/cart from your Shopify theme script or Web Pixel.
Other supported platforms
The same pattern applies to all platforms: register the Flousify webhook URL below in your platform's developer portal, set the required signature header (see Authentication table), and connect from the Flousify dashboard. Payload field details follow each platform's official schema.
| Platform | Webhook URL | Official docs |
|---|---|---|
| Salla | https://flousify.net/api/webhooks/salla | |
| Zid | https://flousify.net/api/webhooks/zid | |
| EasyOrders | https://flousify.net/api/webhooks/easyorders | |
| Vendera (beta) | https://flousify.net/api/webhooks/vendera | Contact support |
Outbound Webhooks — Flousify → Your System
Flousify can push events to your own endpoint (n8n, CRM, custom backend) when an abandoned cart is detected or a recovery is confirmed. Contact support at wa.me/201069297403 to register an outbound endpoint.
How outbound delivery works
- · Every outbound POST includes an
eventfield (abandoned_candidateororder_completed) and adataobject with customer details and cart value. - · Two headers authenticate the request:
X-Flousify-Signature(hex HMAC-SHA256 over the raw body) andX-Flousify-Event(event name). - · Verify by computing HMAC-SHA256 with your registered signing secret over the raw request body and comparing it to
X-Flousify-Signatureusing a constant-time comparison.
Error Responses
| HTTP status | Meaning |
|---|---|
| 400 | Malformed request or missing required field |
| 401 | Signature verification failed or missing auth token |
| 404 | Unknown provider slug |
| 429 | Rate limited (onboarding endpoints) |
| 500 | Unexpected server error |
| 503 | Maintenance mode active |
| 504 | Vercel 30 s timeout — usually a downstream latency spike |
All error responses return JSON with at least an error string field.
Going-live Checklist
Shopify checklist shown as a worked example. For Salla, Zid, EasyOrders, and Vendera, follow the same pattern with the relevant redirect URI and environment variables — contact support if you need onboarding help.
Shopify
- Create app in Shopify Partners with redirect URI: https://flousify.net/api/oauth/shopify/callback
- Set SHOPIFY_CLIENT_ID, SHOPIFY_CLIENT_SECRET, SHOPIFY_WEBHOOK_SECRET in Vercel
- Set NEXT_PUBLIC_APP_URL in Vercel → redeploy
- Connect from Flousify dashboard → Integrations → Shopify
- Trigger a test checkout and confirm a new customer row appears
Need help integrating?
Reach our technical team on WhatsApp: +20 10 6929 7403
