Skip to content
Reponse.ai LogoDocs
DocsAPISDKsGuides

Search Documentation

Search for an article...

Getting Started

  • Overview
  • Architecture
  • Installation
  • Authentication
  • First Request

Products & Collections

  • Products — List
  • Products — Get
  • Products — Metafields
  • Collections — List
  • Collections — Get
  • Collections — Products

Cart & Checkout

  • Cart — Create
  • Cart — Get
  • Cart — Add Item
  • Cart — Update Item
  • Cart — Remove Item
  • Cart — Apply Promotion
  • Checkout — Stripe
  • Checkout — Payment Intent
  • Checkout — ACP

Orders & Fulfillment

  • Orders — Create
  • Orders — Get
  • Orders — Confirm
  • Orders — Cancel
  • Orders — Fulfill
  • Orders — Refund

Commerce

  • Inventory — Get
  • Inventory — Update
  • Shipping — Rates
  • Discounts — List
  • Discounts — Create
  • Discounts — Validate
  • Subscriptions — Manage

Loyalty & Gift Cards

  • Loyalty — Balance
  • Loyalty — Redeem
  • Loyalty — Referral
  • Gift Cards — List
  • Gift Cards — Redeem

Tickets & Support

  • Tickets — List
  • Tickets — Create
  • Tickets — Reply

Platform

  • Product Feed — JSON
  • Product Feed — CSV
  • Theme — Get
  • Approvals — Execute
  • Approvals — Reject
  • Geocode

SDKs

  • SDK Overview
  • TypeScript SDK
  • React Hooks

Guides

  • Chat Widget
  • Shopify Sync
  • Storefront Starter
  • Loyalty Program
  • Discounts & Promotions
  • Subscriptions
  • Klaviyo Integration
  • Custom Domains
  • Agentic Commerce (ACP)
  • A2A Protocol
  • AI Engines
  • MCP Server

Webhooks

  • Webhooks Overview
  • Events Reference
  • Shopify Webhooks
  • Stripe Webhooks
  • Reviews (Stamped / Trustpilot)
  • Logistics
  • Email Inbound

Resources

  • Environment Variables
  • Rate Limits
  • Changelog
DocsGuidesLoyalty Program

Loyalty Program

How the Reponse loyalty program works.

3 min read/Last updated Aug 19, 2026
On this page

Overview

The Reponse loyalty program lets contacts **earn points** on purchases and actions, **progress through tiers** for increasing benefits, and **refer friends** for bonus rewards. Points balances, tier status, and redemption history are fully accessible through the API and SDK.

Prerequisites

RequirementDescription
Reponse workspaceActive workspace on a plan that includes loyalty
API keyKey with loyalty:read, loyalty:write scopes
ProductsAt least one product to trigger purchase-based earning

Step 1 — Enable the loyalty program

  1. Open Dashboard → Loyalty → Settings.
  2. Toggle Enable Loyalty Program.
  3. Set the program name (e.g. "Rewards Club") and point currency name (e.g. "Stars").

Step 2 — Configure earn rules

Earn rules define how contacts accumulate points:

Rule typeExampleConfiguration
Purchase1 point per €1 spentSet points_per_currency_unit
Sign-up100 points on first registrationSet signup_bonus
Review50 points per product reviewSet review_bonus
Birthday200 points on birthdaySet birthday_bonus
Custom eventVariable points on any tracked eventDefine via API

Configure earn rules in **Dashboard → Loyalty → Earn Rules**, or via the API:

typescript
await reponse.loyalty.createEarnRule({
  body: {
    type: 'purchase',
    pointsPerUnit: 1,
    currency: 'EUR',
    description: '1 Star per €1 spent',
  },
});

Step 3 — Set up tiers

Tiers reward your most loyal customers with escalating benefits:

TierLifetime pointsBenefits
Bronze0 – 499Base earn rate, birthday bonus
Silver500 – 1 9991.5× earn multiplier, early access
Gold2 000 – 4 9992× earn multiplier, free shipping
Platinum5 000+3× earn multiplier, exclusive products, priority support

Configure tiers in **Dashboard → Loyalty → Tiers**. Each tier specifies:

  • Threshold — minimum lifetime points to qualify
  • Earn multiplier — multiplied against the base earn rate
  • Benefits — free-text description shown to the contact

Step 4 — Redemption

Contacts redeem points for discounts at checkout:

typescript
// Check balance
const { data: balance } = await reponse.loyalty.getBalance({
  path: { contactId: 'ctc_xxx' },
});
// balance → { available: 1250, lifetime: 3400, tier: "Gold" }

// Redeem points for a discount
const { data: redemption } = await reponse.loyalty.redeem({
  path: { contactId: 'ctc_xxx' },
  body: {
    points: 500,
    reason: 'checkout',
    orderId: 'ord_xxx',
  },
});
// redemption → { discountAmount: 5.00, currency: "EUR", remainingPoints: 750 }

Redemption rules

SettingDescriptionDefault
min_redeem_pointsMinimum points per redemption100
points_to_currency_ratioPoints per 1 unit of currency100:1
max_redeem_per_orderMax discount percentage per order50%

Step 5 — Referral program

Drive growth by letting contacts refer friends:

  1. Enable referrals in Dashboard → Loyalty → Referral.
  2. Each contact gets a unique referral code.
  3. When a referred friend makes their first purchase, both parties earn bonus points.
typescript
// Get referral code for a contact
const { data: referral } = await reponse.loyalty.getReferral({
  path: { contactId: 'ctc_xxx' },
});
// referral → { code: "FRIEND-ABC12", referralUrl: "https://..." }
SettingDescriptionDefault
referrer_bonusPoints awarded to the referrer500
referee_bonusPoints awarded to the referred friend250
max_referralsMaximum referrals per contactUnlimited

API reference

EndpointMethodDescription
/v1/loyalty/:contactId/balanceGETGet points balance and tier
/v1/loyalty/:contactId/historyGETList earn/redeem transactions
/v1/loyalty/:contactId/redeemPOSTRedeem points for a discount
/v1/loyalty/:contactId/referralGETGet referral code and stats
/v1/loyalty/earn-rulesGETList configured earn rules
/v1/loyalty/earn-rulesPOSTCreate a new earn rule
/v1/loyalty/tiersGETList all tiers

Troubleshooting

SymptomCauseFix
Points not earned on purchaseEarn rules not configuredAdd a purchase earn rule in the dashboard
Tier not upgradingLifetime points below thresholdCheck tier thresholds in settings
Redemption rejectedBalance below min_redeem_pointsInform the contact or lower the minimum
Referral code not workingReferral program disabledEnable in Dashboard → Loyalty → Referral
Points balance shows 0Wrong contactIdVerify the contact ID matches the profile
PreviousStorefront Starter
NextDiscounts & Promotions