Campaign Create Recipe - Manual
📌 Purpose
Manual campaigns are available for discount and points rewards where the reward calculation is done by the POS and not by AIR. This recipe helps you set up a Manual campaign to be used for issuing third party accounts via a reward bank.
This campaign type is generally without qualification or rewards as another engine is managing the qualification and resulting reward.
For more campaign types and additional options for campaign setup, see the Campaigns Create API reference and Campaign Best Practices pages.
🖼 Recipe Overview
You will create a manual campaign that can be used as a rewards bank reward when a customer purchases a third party gift card. This campaign will be the reward of the rewards bank. Once that is issued as a coupon account to the wallet, it can be used as a trigger to issue the gift card to your customer. This with the following setup:
- Campaign will have a 1,000 limit on the number of coupons that can be issued
- There is no limit on the number of issuances per wallet
- Offer can be redeemed at a specific banner and all stores within them
Once live, this campaign can be linked to a rewards bank as a reward. See Campaigns Create API reference and Rewards Bank Recipe for an example on how to setup.
📋 Prerequisites
Ensure the following are ready before proceeding:
- Access to the Eagle Eye API platform
- Your company unit’s clientId and secret
- Active 3-level unit hierarchy (Company > Banner > Store)
- unitId and incomingIdentifier for all redemption partners (banners)
- Start and end dates for the campaign period
- schemeId that will be used when the customer exchanges points for a reward
📤 Outputs
After completing this recipe, capture the following output:
| Output Name | Purpose |
|---|---|
| campaignId | Used to create accounts with wallets or retrieve campaign details |
📒 Steps
Step 1: Define Your Campaign Setup
This step outlines the rules of your promotion, including how long it's redeemable.
- 1.1 Campaign Name: Select a name for the campaign in the details container e.g. Get reward for buying gift card
- 1.2 Campaign timing: Define the startDate and endDate
- 1.3 Redemption Locations: In partners.redemption, add the unitId for any banners where the coupon can be redeemed
- 1.4 Campaign Type: Select the appropriate class and type and offerType:
- type: MANUAL
- class: COUPON
- 1.5 Set the offer.reward.standard.points.schemeId for the scheme that is being used to exchange the points. No creditAmount is needed.
Step 2: Call POST /campaigns
{
"type": "MANUAL",
"status": "ACTIVE",
"class": "COUPON",
"details": {
"name": "Third Party Account",
"alternativeName": "",
"description": "",
"alternativeDescription": "",
"printerMessage": null,
"screenMessage": null,
"tags": [],
"startDate": "2026-03-20T00:00:00+00:00",
"endDate": "2026-12-31T23:59:00+00:00",
"mode": "TARGETED"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"issuanceMethod": null,
"accountClientType": "OFFER",
"defaultAccountClientState": "LOADED"
},
"partners": {
"creation": [],
"redemption": [
{
"partner": "328030",
"redemptionLimit": null
}
]
},
"rules": {
"creation": {
"campaignLimit": null,
"consumerLimit": null,
"consumerLimitActive": null
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"redemption": {
"campaignLimit": null,
"couponLimit": null,
"maximumAccountUsage": 1
},
"locations": null,
"expiry": {
"type": "AFTER_CREATION",
"valueType": "HOUR",
"value": "1",
"date": null
}
},
"windows": {
"creation": [],
"redemption": []
},
"offer": {
"qualification": {},
"reward": {
"standard": {
"points": {
"schemeId": "{{schemeId}}",
"creditAmount": null,
"multiplierValue": null
}
}
}
},
"version": 2
}{
"id": "102472057",
"type": "MANUAL",
"status": "ACTIVE",
"class": "COUPON",
"details": {
"name": "Third Party Account",
"alternativeName": "",
"description": "",
"alternativeDescription": "",
"printerMessage": null,
"screenMessage": null,
"tags": [],
"startDate": "2026-03-20T00:00:00+00:00",
"endDate": "2026-12-31T23:59:00+00:00",
"mode": "TARGETED"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"issuanceMethod": null,
"accountClientType": "OFFER",
"defaultAccountClientState": "LOADED"
},
"partners": {
"creation": [],
"redemption": [
{
"partner": "328030",
"redemptionLimit": null
}
]
},
"rules": {
"creation": {
"campaignLimit": null,
"consumerLimit": null,
"consumerLimitActive": null,
"windows": {
"active": false
}
},
"adjudication": {
"excludedProducts": null
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"redemption": {
"maxRedemptionsPerPeriod": null,
"campaignLimit": null,
"couponLimit": null,
"allowOverride": null,
"allowAccountOverride": null,
"maximumAccountUsage": 1,
"maximumDiscountableRelatedContents": null,
"maximumAccountsPerTransaction": null,
"windows": {
"active": false
},
"dates": {
"exclusion": {
"active": false
}
},
"timeBetweenRedemptions": null,
"timeBetweenStamps": null,
"allowMultipleRedeem": null,
"isHiddenFromRelatedWallets": false,
"redeemableOutsideOwningWalletWithIdentity": false,
"redeemableOutsideOwningWalletWithoutIdentity": false
},
"refund": [],
"locations": null,
"expiry": {
"type": "AFTER_CREATION",
"valueType": "HOUR",
"value": "1",
"date": null
},
"start": null,
"graceAmount": null,
"useLocalTime": null,
"maxCreditsPerPeriod": null
},
"windows": {
"creation": [],
"redemption": []
},
"dates": {
"redemption": {
"redemption": [],
"exclusion": []
}
},
"relationships": null,
"reference": "102472057",
"offer": {
"qualification": {
"tenders": null,
"identityTypes": null
},
"reward": {
"standard": {
"points": {
"schemeId": "102312801",
"creditAmount": null,
"multiplierValue": null
}
}
},
"promoId": null
},
"version": 2,
"dateCreated": "2026-03-20T13:42:32+00:00",
"lastUpdated": "2026-03-20T13:42:32+00:00",
"lastUpdatedBy": 1
}✅ Business Readiness Checklist
Use these steps to validate the setup of your scheme:
- Retrieve the campaign via GET /campaigns/campaignId to validate setup
- Start and end dates are set as expected
- Add the campaign as a reward to a rewards bank using Create Rewads Bank Recipe
- Redemption banners are correctly listed by unitId and incomingIdentifier
- Reward setup reflects the correct schemeId
🔧 Troubleshooting Tips
| Issue | Possible Cause & Resolution |
|---|---|
| 400 Bad Request | Check all required fields, including description and alternativeDescription. These can be null but must be present. |
| Invalid redemption partner | Confirm each unitId is correct and belongs to a valid redemption partner under your company’s clientId. Use GET /units/unitId to verify. |
Updated 1 day ago
