Upsert offer
If offer with given ID does not exist in promotion service, it is created.
If campaign already exists, it is updated instead. All values that are not null in the request are overwritten, all values that are null are kept as they are in the DB. If any property is not present in the request, it will be treated as null.
Authorizations
Opaque Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"
Body
The offer to create or update.
ID of Unified Campaign.
64ID of Promotion Campaign.
255Name of the campaign visible in the admin tools.
255Date when any coupons for this promotion campaign become available to pick up in store.
Date when all coupons for this promotion campaign stop being available to pick up in the store.
Date when Coupons will be returned in API and visible in the app. Cannot be cleared after being set.
Customer specific campaign type. Determines how or by which service campaign will be used. Types used so far: game, appCoupon, gift, preferredStore, memberOffer, stampCard, stickersCampaign, segmentedAppCoupon. If not specified during creation, default type will be used.
255Specifies how many times coupon can be redeemed in store. Each redemption is a separate purchase. Amount of time a coupon can be used in one purchase is controlled by Discount model. When not specified, defaults to last stored value on update, or 1 on create. Use 0 to indicate that coupon can be redeemed unlimtied amount of times. If value is not equal to 1, we recommned providing Idempotency key during redemption, or weird behavior might happen.
Total amount of possible coupons in the campaign. When it is null, unlimited amount of coupons can be assigned.
Can be true only for personal campaigns ("personalOffer", "relevantOffer"). When true, this campaign will be returned for a user that has no coupons assigned in personal campaigns.
List of Chain Ids where Promotion campaign is available. Mutually exclusive with StoreIds.
List of Store Ids where Promotion campaign is available. Mutually exclusive with ChainIds.
Specifies if offer was successfully synchronized into customer system
Specifies who this offer is funded by. Retailers can use any values they need, or keep it empty
100Specifies if the offer is template, meaning it can be used as a base for other offers during creation
Controlls the order in which coupons are returned to the mobile app. Lower number means higher priority
Specifies if coupons for this offer require activation, or are working on POS without activation
Specifies if coupons should be visible and processed by POS.
When set to true, offer will be also published during upsert. When set to false, Offer will be moved to draft. When not specified, offer status will not be checked.
Default number of days a Triggered coupon is valid for, when no explicit value is specified during assignment
Allows to store any arbitrary data in Campaign, returned in all get requests and sent to IL during activation. Can be null.
Response
OK
ID of Promotion Campaign.
1 - 255Name of the campaign visible in the admin tools.
1 - 255ID of Turboflow Campaign.
64Date when any coupons for this promotion campaign become available to pick up in store.
Date when all coupons for this promotion campaign stop being available to pick up in the store.
Date when Coupons will be returned in API and visible in the app. Optional. When not specified, ValidFrom is used.
Customer specific campaign type. Determines how or by which service campaign will be used. Types used so far: game, appCoupon, gift, preferredStore, memberOffer, stampCard, stickersCampaign, segmentedAppCoupon.
255Imported, Active, Expired, Scheduled Specifies how many times coupon can be redeemed in store. Each redemption is a separate purchase. Amount of time a coupon can be used in one purchase is controlled by Discount model.
Total amount of possible coupons in the campaign. When it is null, unlimited amount of coupons can be assigned.
Statistical data about campaign. Can be null if not requested.
List of Chain Ids where Promotion campaign is available. Mutually exclusive with StoreIds. Can be null if not requested
List of Store Ids where Promotion campaign is available. Mutually exclusive with ChainIds. Can be null if not requested
Can be true only for personal campaigns ("personalOffer", "relevantOffer"). When true, this campaign will be returned for a user that has no coupons assigned in personal campaigns.
Specifies if offer was successfully synchronized into customer system
Specifies who this offer is funded by. Retailers can use any values they need, or keep it empty
100Allows to store any arbitrary data in Campaign, returned in all get requests and sent to IL during activation. Can be null.
The name of the person/entity that created the offer."
64Specifies if the offer is template, meaning it can be used as a base for other offers during creation
Controlls the order in which coupons are returned to the mobile app. Lower number means higher priority
Specifies if coupons for this offer require activation, or are working on POS without activation
Specifies if coupons should be visible and processed by POS.
Default number of days a Triggered coupon is valid for, when no explicit value is specified during assignment
Settings related to the redemption of a reward granted by an offer. Applicable only for Bonus type offers.
The date and time when the campaign was modified. Changes every time the campaign is updated.
The name of the person/entity that last updated the offer.
64