Integrating SiteVibes Loyalty With an Omnichannel POS System

Modified on Mon, 22 Dec at 11:08 AM

This guide explains how to integrate a third-party omnichannel POS system with the SiteVibes Loyalty platform, supporting in-storeonline, and mixed-channel customer interactions under a unified loyalty experience.

This document is intended for POS vendors, system integrators, and merchants with custom or unsupported POS systems.


What “Omnichannel” Means in SiteVibes

An omnichannel loyalty integration ensures that:

  • Customers earn and redeem points online and in-store

  • Loyalty balances are shared across channels

  • Tiers, rewards, and history remain consistent

  • Orders from all channels contribute to loyalty status

SiteVibes acts as the single source of truth for loyalty data.


High-Level Omnichannel Architecture

Core Principle

One customer, one loyalty account, many channels

Data Flow Summary

  1. Customer is identified (email, phone, or loyalty ID)

  2. Order occurs (online or in-store)

  3. POS or ecommerce platform sends order data to SiteVibes

  4. SiteVibes calculates points and tier changes

  5. Loyalty balance is immediately available across all channels

  6. Rewards can be redeemed anywhere


Channel Definitions

Each order sent to SiteVibes should include a channel identifier.

Common values:

  • online

  • in_store

  • mobile

  • kiosk

  • marketplace

This enables:

  • Channel-specific rules

  • Reporting by channel

  • Bonus campaigns (e.g., double points in-store)


Customer Identity Strategy (Critical)

Correct customer matching is the most important part of omnichannel loyalty.

Recommended Primary Identifier

Identifier

Use

Email

Primary, cross-channel

External Customer ID

POS or CRM ID

Phone

Optional fallback

Best Practices

  • Require email or phone for in-store loyalty

  • Capture email at first in-store transaction

  • Use the same identifier online and in-store

  • Avoid channel-specific customer records


Customer Sync

Customers should be created or updated before loyalty actions.

When to Sync Customers

  • In-store sign-up

  • Online account creation

  • First checkout on any channel

  • Loyalty enrollment screen in POS

Required Fields

Field

Description

email

Required

external_id

POS or CRM customer ID

channel_origin

online or in_store

first_name

Optional

last_name

Optional


Order Sync (All Channels)

All completed orders must be sent to SiteVibes.

Required Order Fields

Field

Description

order_id

Unique per channel

channel

online / in_store

customer_email

Loyalty matching

total_amount

Final paid amount

currency

ISO code

line_items

Products purchased

location_id

Store or website identifier

created_at

Timestamp

Order Timing

  • Send orders after payment

  • Do not send voided or draft orders

  • Send refunds as separate events


Points Earning Across Channels

Points logic is centralized in SiteVibes.

Examples:

  • 1 point per $1 spent online

  • 2 points per $1 spent in-store

  • Bonus points for BOPIS orders

  • Tier multipliers apply everywhere

The POS and ecommerce platform only send raw order data.


Reward Redemption (Omnichannel)

Rewards must be redeemable anywhere the customer shops.

Option A: Coupon-Based Redemption (Recommended)

Flow

  1. Customer selects reward (online account or POS screen)

  2. SiteVibes generates a coupon code

  3. Coupon code is:

    • Applied online at checkout

    • Entered or scanned in POS

  4. POS validates and applies discount

Why this works well

  • Simple POS implementation

  • Works with legacy systems

  • Easy to audit


Option B: Loyalty-ID–Based Redemption

Flow

  1. POS sends reward redemption request

  2. SiteVibes validates balance and reward

  3. POS applies discount internally

  4. POS confirms redemption completion

This approach requires tighter real-time integration.


Store Credit vs Coupons

Method

Use Case

Coupon

Discounts, promos, free items

Store credit

Returns, gift cards, high-value rewards

SiteVibes can manage both, but POS capabilities determine the approach.


Returns and Refunds (Cross-Channel)

Refunds should impact loyalty balances regardless of channel.

Recommended Handling

  1. POS or ecommerce detects refund

  2. Refund event is sent with:

    • Original order ID

    • Refunded amount

    • Channel

  3. SiteVibes reverses earned points

  4. Tier changes occur automatically

Partial refunds should only reverse proportional points.


Preventing Duplicate Points

Omnichannel systems increase duplication risk.

Safeguards

  • Unique order IDs per channel

  • Idempotent API requests

  • Do not resend historical orders

  • Store SiteVibes response IDs


Reporting and Analytics

With omnichannel data, SiteVibes can report on:

  • Points earned by channel

  • Reward redemption by channel

  • In-store vs online LTV

  • Tier progression across channels

  • Campaign performance by location


Testing Checklist (Omnichannel)

Before launch, validate:

  • Same customer earns points online and in-store

  • Points earned in-store appear online immediately

  • Online rewards redeem in-store

  • Refunds reverse points correctly

  • Tier upgrades apply across channels

  • Duplicate orders do not double-award points


Go-Live Recommendations

  • Start with one physical location

  • Train staff on loyalty identification

  • Monitor mismatched customers

  • Review first week of transactions daily

  • Enable alerts for failed syncs



POS Integration – API Reference Table

This table lists the required and recommended SiteVibes API interactions for a streamlined POS loyalty integration.


Required APIs

Use Case

Endpoint

Method

Required

Purpose

Fetch loyalty tiers

/loyalty/tiers

GET

Yes

Retrieve tier names and configuration so the POS can display tier context and stay in sync with merchant settings

Authenticate API requests

Bearer Token

Header

Yes

Secure access to SiteVibes Enterprise API


Loyalty Tier API Details

Field

Description

app_id

Merchant application identifier

disabled

Optional flag to include disabled tiers

id

Unique tier identifier (do not hardcode)

name

Tier display name (used by POS UI or receipts)

threshold

Spend or points threshold for the tier


Recommended POS → SiteVibes Events (via API or Middleware)

Event

Direction

Description

Customer lookup / create

POS → SiteVibes

Identify customer by email or phone, create full loyalty account instantly if not found

Transaction completed

POS → SiteVibes

Send finalized sale so points and tier progress are awarded

Reward redemption

POS → SiteVibes

Confirm which reward was redeemed during checkout

Refund processed

POS → SiteVibes

Reverse points and handle reward clawbacks per merchant policy

Note: Exact transaction and customer endpoints may vary by implementation, but these events are required behaviors.


Caching & Call Frequency Guidance

API

Call Timing

Caching

/loyalty/tiers

On startup + scheduled refresh

Cache 15–60 minutes

Customer lookup

Per checkout

No caching

Transaction submission

Per completed sale

No caching


Failure Handling Expectations

Scenario

Expected POS Behavior

Tier API unavailable

Use last cached tier data

Loyalty API timeout

Continue checkout, retry async

Duplicate transaction

Do not double-award points

Redemption confirmation fails

Log and retry, do not block checkout


What the POS Should NOT Do

Anti-Pattern

Why

Hardcode tier names

Tiers can change in SiteVibes

Calculate tier upgrades

Tier logic is centralized in SiteVibes

Block checkout on loyalty failure

Loyalty must never stop a sale

Use guest loyalty states

Streamlined workflow uses full accounts only


Minimum Integration Compliance Checklist

  • Email or phone captured at POS

  • Loyalty account created instantly

  • Points awarded on completed sale

  • Rewards redeemable in same transaction

  • /loyalty/tiers API implemented and cached

  • Refunds reverse points correctly



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article