Campaigns via API
Overview
This documentation provides examples of the Campaigns Create request payload example along with a trimmed down request with many optional fields removed. Refer to Create Campaign via API (here) to see type specific offer object examples per campaign type.
In this example Gemma needs to create a Points Fixed campaign for two banners that will reward customers with 500 points when they spend 75.00 or more on their basket. Each wallet is limited to one coupon account from this campaign. To ensure the marketing budget is not exceeded, a 15,000 issuance limit will be set, along with a 10,000 redemption limit.
Gemma will call the Create Campaign API to create the campaign in the Fabulous Retailer unit.
{
"type": "POINTS_FIXED",
"class": "COUPON",
"version": 2,
"reference": null,
"status": "ACTIVE",
"details": {
"name": "A Fabulous Campaign",
"alternativeName": "Some Alternative Name",
"description": "Purple Offer",
"alternativeDescription": "Some Alternative Description",
"printerMessage": null,
"screenMessage": null,
"tags": [
"tag1",
"tag2"
],
"startDate": "2025-02-27T00:00:00+00:00",
"endDate": "2025-03-28T23:59:00+00:00",
"mode": "TARGETED"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"issuanceMethod": null,
"accountClientType": "OFFER",
"defaultAccountClientState": "UNLOADED"
},
"suppliers": [
{
"supplierUnitId": null,
"supplierCampaignReference": null,
"fundingAccountId": "{{fundingAccountId}}",
"fundingPercentage": 100
}
],
"rules": {
"creation": {
"campaignLimit": 15000,
"consumerLimit": 1,
"consumerLimitActive": null,
"windows": {
"active": false
}
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"graceAmount": null,
"redemption": {
"maxRedemptionsPerPeriod": null,
"campaignLimit": 10000,
"timeBetweenRedemptions": null,
"timeBetweenStamps": null,
"allowMultipleRedeem": null,
"couponLimit": 1,
"allowAccountOverride": true,
"maximumAccountUsage": 1,
"windows": {
"active": false
},
"dates": {
"exclusion": {
"active": false
}
},
"isHiddenFromRelatedWallets": false,
"redeemableOutsideOwningWalletWithIdentity": false,
"redeemableOutsideOwningWalletWithoutIdentity": false,
"maximumDiscountableRelatedContents": null,
"maximumAccountsPerTransaction": null
},
"start": {
"type": "IMMEDIATELY",
"valueType": null,
"value": null,
"date": null
},
"expiry": {
"type": "CAMPAIGN_END",
"valueType": null,
"value": null,
"date": null
},
"refund": {
"refundable": true,
"unredeemable": false
},
"useLocalTime": {
"active": false
},
"adjudication": null
},
"partners": {
"issuance": [],
"redemption": [
{
"partner": "{{banner1UnitId}}",
"redemptionLimit": null
},
{
"partner": "{{banner2UnitId}}",
"redemptionLimit": null
}
],
"creation": []
},
"distributionChannels": {
"digitalTestChannel": {
"active": true,
"partners": [
null
],
"channelId": 308,
"data": {
"digitalDescription": {
"fieldData": "Get x on y products",
"fieldType": "text",
"fieldName": "digitalDescription"
},
"digitalDisclaimer": {
"fieldData": "Terms and conditions apply.",
"fieldType": "text",
"fieldName": "digitalDisclaimer"
}
}
}
},
"windows": {
"creation": [],
"redemption": []
},
"dates": {
"redemption": {
"exclusion": []
}
},
"relationships": null,
"offer": {
"offerType": "FIXED_POINTS_BASKET",
"issuanceQualification": null,
"promoId": null,
"qualification": {
"basket": {
"minimumBasketSpend": 7500,
"minimumUnits": null
},
"consumer": null,
"globalProductRestrictions": {
"enabled": false
},
"locations": {
"banner1": {
"included": {
"locationIdentifiers": null,
"locationTags": null
},
"excluded": {
"locationIdentifiers": null,
"locationTags": null
}
},
"banner2": {
"included": {
"locationIdentifiers": null,
"locationTags": null
},
"excluded": {
"locationIdentifiers": null,
"locationTags": null
}
}
},
"multipleRedemptionPartners": null,
"product": null,
"redemptionChannels": null,
"universalCode": null,
"tenders": null,
"identityTypes": null
},
"reward": {
"basket": null,
"maxRewardValue": null,
"maxRewardValuePerPeriod": null,
"maxRewardUnitsPerPeriod": null,
"standard": {
"value": null,
"coupons": null,
"points": {
"schemeId": "{{schemeId}}",
"creditAmount": 500
},
"tax": null,
"bolton-points": null,
"product": null
},
"product": null,
"treatAs": null,
"restrictRewardToTender": null,
"tierMembership": null
},
"boltOn": null,
"bounceBack": null,
"barcode": null,
"custom": null
}
}{
"type": "POINTS_FIXED",
"class": "COUPON",
"version": 2,
"status": "ACTIVE",
"details": {
"name": "A Fabulous Campaign",
"alternativeName": "Some Alternative Name",
"description": "Purple Offer",
"alternativeDescription": "Some Alternative Description",
"printerMessage": null,
"screenMessage": null,
"tags": [],
"startDate": "2025-02-27T00:00:00+00:00",
"endDate": "2025-03-28T23:59:00+00:00",
"mode": "TARGETED"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"accountClientType": "OFFER",
"defaultAccountClientState": "UNLOADED"
},
"rules": {
"creation": {
"campaignLimit": 15000,
"consumerLimit": 1,
"consumerLimitActive": null,
"windows": {
"active": false
}
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"redemption": {
"campaignLimit": 10000,
"allowAccountOverride": true
},
"start": {
"type": "IMMEDIATELY",
"valueType": null,
"value": null,
"date": null
},
"expiry": {
"type": "CAMPAIGN_END",
"valueType": null,
"value": null,
"date": null
}
},
"partners": {
"issuance": [],
"redemption": [
{
"partner": "{{banner1UnitId}}",
"redemptionLimit": null
},
{
"partner": "{{banner2UnitId}}",
"redemptionLimit": null
}
]
},
"windows": {
"creation": [],
"redemption": []
},
"offer": {
"offerType": "FIXED_POINTS_BASKET",
"qualification": {
"basket": {
"minimumBasketSpend": 7500,
"minimumUnits": null
},
"locations": {
"banner1": {
"included": {
"locationIdentifiers": null,
"locationTags": null
},
"excluded": {
"locationIdentifiers": null,
"locationTags": null
}
},
"banner2": {
"included": {
"locationIdentifiers": null,
"locationTags": null
},
"excluded": {
"locationIdentifiers": null,
"locationTags": null
}
}
}
},
"reward": {
"standard": {
"value": null,
"coupons": null,
"points": {
"schemeId": "{{schemeId}}",
"creditAmount": 500
}
}
}
}
}
The above payload should be used for example purposes only. Check with your accounts or delivery team on the required values and objects unique to your unit.
Updated about 4 hours ago
Check out the full list of required and optional fields in the API Reference for Campaigns below.
