Partner Integration Guide — v1

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.

WEBHOOK BASE URLhttps://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 is used as the worked example below. Flousify also connects Salla, Zid, EasyOrders, and Vendera — the same Flousify-hosted URL pattern applies; replace shopify with the relevant provider slug and follow that platform's official docs for header names and payload shape.
  1. 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. 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. 3

    Copy your signing secret & test

    Copy the Shopify webhook signing secret into SHOPIFY_WEBHOOK_SECRET in 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_id
Every merchant tenant on Flousify has a store_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_bucket
Every inbound event is classified into one of three semantic buckets:
abandoned_candidate

Cart or checkout started but not completed — triggers follow-up.

order_completed

Payment confirmed — marks open cart as recovered.

other

Informational event — stored, no customer action taken.

resource_id
A stable string (checkout token, order ID, cart ID) used for deduplication. If the platform sends duplicate deliveries for the same event, Flousify upserts instead of creating duplicate customer rows. Always respond 200 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.

ProviderModelSignature headerAlgorithm
ShopifyOAuth 2.0X-Shopify-Hmac-Sha256HMAC-SHA256 base64
SallaOAuth 2.0X-Salla-SignatureHMAC-SHA256 hex
ZidOAuth 2.0X-Zid-SignatureHMAC-SHA256 hex
EasyOrdersManual API keysecretDirect string compare
VenderaManual API keyBeta — 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 URIhttps://flousify.net/api/oauth/shopify/callback
Webhook URLhttps://flousify.net/api/webhooks/shopify
Scopesread_orders, read_customers, read_checkouts
Signature headerX-Shopify-Hmac-Sha256 (base64 HMAC-SHA256)
Store resolutionX-Shopify-Shop-Domain header
Event (X-Shopify-Topic)event_bucket
checkouts/create, checkouts/updateabandoned_candidate
carts/create, carts/updateabandoned_candidate
orders/create, orders/paidorder_completed
All othersother

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.

PlatformWebhook URLOfficial docs
Sallahttps://flousify.net/api/webhooks/salla
Zidhttps://flousify.net/api/webhooks/zid
EasyOrdershttps://flousify.net/api/webhooks/easyorders
Vendera (beta)https://flousify.net/api/webhooks/venderaContact 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 event field (abandoned_candidate or order_completed) and a data object with customer details and cart value.
  • · Two headers authenticate the request: X-Flousify-Signature (hex HMAC-SHA256 over the raw body) and X-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-Signature using a constant-time comparison.

Error Responses

HTTP statusMeaning
400Malformed request or missing required field
401Signature verification failed or missing auth token
404Unknown provider slug
429Rate limited (onboarding endpoints)
500Unexpected server error
503Maintenance mode active
504Vercel 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

Flousify Partner Integration — Webhook & OAuth API Reference