Personal Reward Bank Create

📌 Purpose

Reward Banks allow you to offer customers the ability to exchange their loyalty points for specific rewards, such as coupons tied to campaigns. This recipe explains how to create a Personal Reward Bank, which enables targeted rewards for individual customers based on their wallet. The setup includes assigning a point cost to each reward and enforcing a limit on how many times the reward can be claimed. For full technical details, refer to the Create a Reward Bank with Rewards API.

🖼 Recipe Overview

This guide outlines the process of creating a Personal Reward Bank using the API. Personal Reward Banks are designed for targeted promotions and can include multiple reward campaigns. Once set up, wallets with sufficient points can exchange them for the selected rewards.

  • Upon completion of this recipe, your Reward Bank will have the following configuration:
  • Targeted to specific wallets (not open to all)
  • Includes multiple campaign-based rewards
  • Fixed point cost per reward
  • One-time redemption limit per wallet

📋 Prerequisites

  • Eagle Eye API access
  • Company unit’s clientId & secret
  • A three-level company hierarchy
  • An active points scheme (schemeId)
  • One or more active campaignIds that will serve as rewards

📤 Outputs

After completing this recipe, capture the following output:

Output NamePurpose
pointsRewardBankIdThe unique identifier for your Reward Bank used to create links and use the exchange API
pointsRewardBankRewardIdhe unique identifier(s) for each campaign-based reward to use in the exchange API

📒 Steps

Step 1: Prepare the request payload

  • 1.1 Define a clear and descriptive name for the Reward Bank
  • 1.2 Set mode to PERSONAL and status to ACTIVE
  • 1.3 Set the exchangeLimit of 1 to allow a one-time redemption per wallet
  • 1.4 In the rewards array, include each campaign reward with the following fields:
    • resourceType of CAMPAIGN
    • Use your campaignId as the resourceId
    • cost: Number of points required to redeem the reward
    • status: Set to ACTIVE

Step 2: Call POST /banks/pointsreward

{
	"mode": "PERSONAL",
	"status": "ACTIVE",
	"name": "Get multiple coupons for 2500 points",
	"exchangeLimit": 1,
	"rewards": [
		{
			"resourceType": "CAMPAIGN",
			"resourceId": "101161654",
			"cost": 2000,
			"status": "ACTIVE"
		},
		{
			"resourceType": "CAMPAIGN",
			"resourceId": "101161652",
			"cost": 500,
			"status": "ACTIVE"
		}
	]
}
{
	"pointsRewardBankId": "84606",
	"status": "ACTIVE",
	"mode": "PERSONAL",
	"reference": "000084606",
	"name": "Get multiple coupons for 2500 points",
	"dateCreated": "2025-06-18T19:24:19+00:00",
	"lastUpdated": "2025-06-18T19:24:19+00:00",
	"exchangeLimit": 1,
	"rewards": [
		{
			"pointsRewardBankRewardId": "186279",
			"pointsRewardBankId": "84606",
			"resourceType": "CAMPAIGN",
			"resourceId": "101161654",
			"threshold": 2000,
			"cost": 2000,
			"status": "ACTIVE",
			"dateCreated": "2025-06-18T19:24:19+00:00",
			"lastUpdated": "2025-06-18T19:24:19+00:00",
			"reasonCode": null
		},
		{
			"pointsRewardBankRewardId": "186280",
			"pointsRewardBankId": "84606",
			"resourceType": "CAMPAIGN",
			"resourceId": "101161652",
			"threshold": 500,
			"cost": 500,
			"status": "ACTIVE",
			"dateCreated": "2025-06-18T19:24:19+00:00",
			"lastUpdated": "2025-06-18T19:24:19+00:00",
			"reasonCode": null
		}
	]
}

✅ Business Readiness Checklist

Use these steps to validate the setup of your reward bank:

🔧 Troubleshooting Tips

Issue

Possible Cause & Resolution

207 (multi-status) response

Verify the campaigns included as rewards are active using the GET campaign endpoint