Integrations & API

Connect FidiPerks to your existing stack. REST API, real-time webhooks, booking widget connectors, and multi-location architecture — all production-ready.

REST API v1 Webhooks API Keys Multi-location Booking Widgets OpenAPI / Swagger

REST API

A versioned, JSON-based API that covers every FidiPerks resource — customers, points, rewards, stores, analytics, and more.

🔑

API Key Authentication

Generate scoped API keys from your merchant dashboard. Each key has configurable per-hour rate limits and can be restricted to specific permission scopes (read-only, write, admin).

📄

OpenAPI / Swagger Docs

Full interactive documentation at /api/docs. Every endpoint documented with request/response schemas, examples, and error codes. Try calls directly from the browser.

Versioned & Stable

All endpoints live under /api/v1/. Breaking changes are never introduced in-version — you get deprecation notices and a migration window before anything changes.

Example — Award points to a customer
POST https://app.fidiperks.com/api/v1/points/credit
Authorization: Bearer <your-api-key>
Content-Type: application/json

{
  "storeId":    "store_abc123",
  "customerId": "cust_xyz789",
  "points":     50,
  "reason":     "POS sale — order #4821"
}
Open API Documentation →

Real-Time Webhooks

FidiPerks sends signed HTTPS POST requests to your endpoint whenever key loyalty events occur — no polling required.

🔐

HMAC Signature Verification

Every webhook delivery includes an X-Webhook-Signature header. Verify the HMAC-SHA256 signature against your webhook secret to ensure authenticity before processing.

🔄

Automatic Retries

Failed deliveries are retried with exponential back-off (up to 5 attempts over 24 hours). Delivery status and response logs are visible in your merchant dashboard under Webhooks → Delivery History.

Available Events

Event Trigger
points.creditedPoints successfully added to a customer's balance
points.deductedPoints deducted via redemption or manual adjustment
points.exhaustedCustomer's points balance reaches zero
reward.earnedReward engine triggers a new reward for the customer
reward.redeemedCustomer claims (redeems) an earned reward
reward.expiredUnclaimed reward passes its expiry date
customer.createdNew customer registers at a store
customer.updatedCustomer profile updated (tier change, opt-out, etc.)
subscription.activatedStore billing plan activates or upgrades
subscription.cancelledStore subscription is cancelled
Example webhook payload — reward.earned
{
  "event":     "reward.earned",
  "storeId":   "store_abc123",
  "timestamp": "2025-06-01T09:14:33.000Z",
  "data": {
    "customerId": "cust_xyz789",
    "rewardId":   "rwd_001",
    "rewardName": "Free Coffee",
    "earnedAt":   "2025-06-01T09:14:33.000Z"
  }
}

Booking Widget Connectors

Embed booking and scheduling tools directly inside the FidiPerks loyalty app. Customers can earn rewards and book their next visit in the same experience.

iFrame Embed

Table Reservations

Embed your existing table booking system (e.g. ResDiary, OpenTable) as an iFrame widget. Reward customers automatically when they complete a booking via a configurable callback action.

Native API

Appointment Booking

Connect scheduling tools via their JavaScript API (e.g. Calendly, Acuity). The native integration handles postMessage callbacks to award loyalty points on confirmed appointments.

External Link

Service Scheduling

For platforms that don't support embedding, use the External Link type to send customers to your existing booking URL. Combine with check-in QR codes to close the loyalty loop on arrival.

Widget Callback Actions

Configure what happens when a customer completes a booking inside a widget:

CHECKIN_REWARD

Award points as if the customer physically checked in — ideal for bookings that represent a confirmed visit.

CLAIM_REWARD

Immediately unlock a specific configured reward — useful for "book 5 appointments, get the 6th free" campaigns.

CUSTOM

Define your own merchant-side logic via webhook. Receives the full postMessage payload at your configured endpoint.

Each store can configure up to 10 widgets. Maximum 5 callback rules per widget.

Multi-Location & Franchise Architecture

FidiPerks is built store-first — every store is an isolated unit that belongs to a shared loyalty network. Franchises and retail chains can offer a consistent customer experience across every location without coupling store data.

🏪

Per-Store Isolation

Each location has its own store ID, API keys, reward configuration, customer roster, and analytics. A customer's loyalty balance at Location A is separate from Location B — unless you explicitly configure a shared program.

🌐

Shared Loyalty Programmes

Franchise groups can configure a unified programme where customers earn and redeem across all participating locations. One tap, one balance, one reward — regardless of which store they visit.

📊

Aggregated Analytics

Head-office dashboards roll up customer engagement, redemption rates, and campaign performance across all locations. Drill into individual stores or view group-wide trends side-by-side.

🔑

Role-Based Access

Separate admin roles for head-office managers, regional managers, and individual store staff. Each role is scoped to the appropriate stores and data, enforced at the API level.

Getting Started with the API

From zero to your first API call in under 10 minutes.

Building a custom integration?

Our team can walk you through the API, review your architecture, and provide hands-on support for enterprise and franchise deployments.