curl --request GET \
--url https://{host}/promotion/v2/coupons \
--header 'Authorization: <api-key>' \
--header 'memberId: <memberid>'import requests
url = "https://{host}/promotion/v2/coupons"
headers = {
"memberId": "<memberid>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {memberId: '<memberid>', Authorization: '<api-key>'}};
fetch('https://{host}/promotion/v2/coupons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/promotion/v2/coupons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"memberId: <memberid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/promotion/v2/coupons"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("memberId", "<memberid>")
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{host}/promotion/v2/coupons")
.header("memberId", "<memberid>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/promotion/v2/coupons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["memberId"] = '<memberid>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"coupons": [
{
"campaignId": "33cf8dc8-bf6f-47f1-a912-5ac2544f4564",
"couponId": "7e1781d9-41d2-4dd7-b964-842409ff30b0",
"posCouponId": null,
"campaignType": "appCoupon",
"campaignContent": {
"iconTags": [],
"title": "10% Off Coca-Cola & Fanta – Chain 1 Deal",
"description": "Refresh your day with a cool discount! For a limited time, get 10% off Coca-Cola or Fanta when purchased without any other offers. This exclusive deal for Chain 1 is your ticket to crisp, bubbly savings—no stacking needed.",
"brand": "Coca-Cola Refreshments",
"imageUrl": "https://example.com/assets/coke_fanta_discount.jpg",
"discountLabel": "10% Off Coca-Cola & Fanta",
"normalPriceLabel": "Non-member price 5EUR",
"pricePerUnitLabelEnabled": true,
"unitOfMeasure": "L",
"conditionLabel": "Buy 1 Coca-Cola or Fanta",
"receiptDisplayText": "10% off Coca-Cola or Fanta",
"tags": [],
"icons": [],
"autogenerateDiscountLabel": null
},
"validFrom": "2026-08-09T00:00:00Z",
"validTo": "2026-08-15T00:00:00Z",
"activationTime": null,
"storeIds": [],
"chainIds": [
"1"
],
"isRedeemed": false,
"prices": {
"currency": "EUR",
"normalPrice": 5,
"price": 4.5,
"normalPricePerUnit": 10,
"pricePerUnit": 9
},
"discount": {
"priority": 5,
"allowOtherDiscountsOnTop": false,
"itemsApplicationType": "NonDiscountedItems",
"impactLevel": "Line",
"maxDiscountAmount": 5,
"maxDiscountAmountPerCoupon": 0,
"maxNumberApplyPerReceipt": 1,
"maxNumberApplyPerReceiptDecimal": 1,
"applyOnHighestPrice": false,
"applicationType": "OnThreshold",
"discountType": "SimpleLine",
"checkoutTypes": null,
"rewardRedemptionSettings": null,
"rules": [
{
"type": "Percentage",
"value": 0.1,
"thresholdType": "Quantity",
"thresholdValue": 1,
"affiliations": [
{
"type": "Product",
"id": "coca-cola",
"applicationType": "Include"
},
{
"type": "Product",
"id": "fanta",
"applicationType": "Include"
}
]
}
]
},
"redemptionLimit": 1,
"redeemedCount": 0,
"displayPriority": 5,
"deletedAt": null,
"assignedBy": null
}
],
"activationLimits": null
}Get member coupons
Returns coupons with specified types or all types if no type filters are specified.
Returns all member’s coupons with specified types that are not expired, have been assigned, and have not been picked up in the store. For preferredStore coupons, preferredStore query parameter is required; without it, no preferredStore coupons will be returned.
If queryRedeemed is set to true, Promotion will also return coupons that were already picked up at the store, but have not expired yet.
If preferredStore parameter is set member will see preferredStore coupons available in the selected store. If preferredStore parameter is provided, then selected storeId and chainId have to be empty, and vice versa.
One accepted edge case for preferredStore offers: If member already activated preferredStore coupon, and changed his store after this, coupon will no longer be displayed in app, but member will still be able to pick up this coupon in store.
curl --request GET \
--url https://{host}/promotion/v2/coupons \
--header 'Authorization: <api-key>' \
--header 'memberId: <memberid>'import requests
url = "https://{host}/promotion/v2/coupons"
headers = {
"memberId": "<memberid>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {memberId: '<memberid>', Authorization: '<api-key>'}};
fetch('https://{host}/promotion/v2/coupons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/promotion/v2/coupons",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"memberId: <memberid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/promotion/v2/coupons"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("memberId", "<memberid>")
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{host}/promotion/v2/coupons")
.header("memberId", "<memberid>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/promotion/v2/coupons")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["memberId"] = '<memberid>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"coupons": [
{
"campaignId": "33cf8dc8-bf6f-47f1-a912-5ac2544f4564",
"couponId": "7e1781d9-41d2-4dd7-b964-842409ff30b0",
"posCouponId": null,
"campaignType": "appCoupon",
"campaignContent": {
"iconTags": [],
"title": "10% Off Coca-Cola & Fanta – Chain 1 Deal",
"description": "Refresh your day with a cool discount! For a limited time, get 10% off Coca-Cola or Fanta when purchased without any other offers. This exclusive deal for Chain 1 is your ticket to crisp, bubbly savings—no stacking needed.",
"brand": "Coca-Cola Refreshments",
"imageUrl": "https://example.com/assets/coke_fanta_discount.jpg",
"discountLabel": "10% Off Coca-Cola & Fanta",
"normalPriceLabel": "Non-member price 5EUR",
"pricePerUnitLabelEnabled": true,
"unitOfMeasure": "L",
"conditionLabel": "Buy 1 Coca-Cola or Fanta",
"receiptDisplayText": "10% off Coca-Cola or Fanta",
"tags": [],
"icons": [],
"autogenerateDiscountLabel": null
},
"validFrom": "2026-08-09T00:00:00Z",
"validTo": "2026-08-15T00:00:00Z",
"activationTime": null,
"storeIds": [],
"chainIds": [
"1"
],
"isRedeemed": false,
"prices": {
"currency": "EUR",
"normalPrice": 5,
"price": 4.5,
"normalPricePerUnit": 10,
"pricePerUnit": 9
},
"discount": {
"priority": 5,
"allowOtherDiscountsOnTop": false,
"itemsApplicationType": "NonDiscountedItems",
"impactLevel": "Line",
"maxDiscountAmount": 5,
"maxDiscountAmountPerCoupon": 0,
"maxNumberApplyPerReceipt": 1,
"maxNumberApplyPerReceiptDecimal": 1,
"applyOnHighestPrice": false,
"applicationType": "OnThreshold",
"discountType": "SimpleLine",
"checkoutTypes": null,
"rewardRedemptionSettings": null,
"rules": [
{
"type": "Percentage",
"value": 0.1,
"thresholdType": "Quantity",
"thresholdValue": 1,
"affiliations": [
{
"type": "Product",
"id": "coca-cola",
"applicationType": "Include"
},
{
"type": "Product",
"id": "fanta",
"applicationType": "Include"
}
]
}
]
},
"redemptionLimit": 1,
"redeemedCount": 0,
"displayPriority": 5,
"deletedAt": null,
"assignedBy": null
}
],
"activationLimits": null
}Authorizations
Opaque Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"
Headers
The id of the member.
Query Parameters
The specific types of coupons to return.
Specifies if the redeemed coupons are included.
The preferred store of the member.
The selected store to retrieve related available coupons.
The selected chain to retrieve related available coupons.
Specifies if preview coupons should be returned.
Specifies if coupons with Bonus rewars are included.