Public Reward Bank Create
📌 Purpose
Public Reward Banks enable your loyalty program to offer coupons in exchange for a defined number of points. These banks are accessible to all eligible customers with a qualifying points balance. This recipe outlines how to create a Public Reward Bank using the API, where a specific campaign is offered as a redeemable reward. For full technical details, refer to the Create a Reward Bank with Rewards API.
🖼 Recipe Overview
This recipe guides you through creating a Public Reward Bank via API. Once active, any customer with the required point balance can redeem from the bank and receive a coupon. After completing this process, you will have a Reward Bank configured with:
- Open access for all members with sufficient points
- One campaign-based reward
- A fixed redemption cost in points
📋 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 Name | Purpose |
|---|---|
| pointsRewardBankId | The unique identifier for your Reward Bank used to create links and use the exchange API |
| pointsRewardBankRewardId | he 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 PUBLIC 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": "PUBLIC",
"status": "ACTIVE",
"name": "Get a 25.00 off coupon for 2000 points",
"rewards": [
{
"resourceType": "CAMPAIGN",
"resourceId": "101161654",
"cost": 2000,
"status": "ACTIVE"
}
]
}{
"pointsRewardBankId": "84605",
"status": "ACTIVE",
"mode": "PUBLIC",
"reference": "000084605",
"name": "Get a 25.00 off coupon for 2000 points",
"dateCreated": "2025-06-18T19:13:24+00:00",
"lastUpdated": "2025-06-18T19:13:24+00:00",
"exchangeLimit": null,
"rewards": [
{
"pointsRewardBankRewardId": "186278",
"pointsRewardBankId": "84605",
"resourceType": "CAMPAIGN",
"resourceId": "101161654",
"threshold": 2000,
"cost": 2000,
"status": "ACTIVE",
"dateCreated": "2025-06-18T19:13:24+00:00",
"lastUpdated": "2025-06-18T19:13:24+00:00",
"reasonCode": null
}
]
}✅ Business Readiness Checklist
Use these steps to validate the setup of your scheme:
- Call GET Points Reward Bank to validate the response matches the POST request
- Call POST Exchange to exchange points for a coupon reward
🔧 Troubleshooting Tips
Issue | Possible Cause & Resolution |
|---|---|
207 (multi-status) response | Verify the campaigns included as rewards are active using the GET campaign endpoint |
Updated about 5 hours ago
