idstring (uuid)required
namestringrequired
status"draft" | "active" | "paused" | "archived"required
As stored: what the brand last chose.
state"draft" | "paused" | "archived" | "scheduled" | "ended" | "out_of_codes" | "live"required
status, with active resolved against the dates, the total cap and the pool (in the key's mode): scheduled, live, ended or out_of_codes.
rewardType"shared_code" | "unique_code" | "codeless_link" | "gated_link"required
valueTextstring | nullrequired
discountKind"percent" | "fixed" | "free_shipping" | "other"required
discountValueinteger | nullrequired
Basis points for percent, minor units for fixed.
discountCurrencystring | nullrequired
minSpendMinorinteger | nullrequired
combinesWithobjectrequired
orderbooleanrequired
productbooleanrequired
shippingbooleanrequired
affiliateRoutebooleanrequired
termsstring | nullrequired
sharedCodestring | nullrequired
codePoolIdstring (uuid) | nullrequired
linkUrlstring | nullrequired
startsAtstring (date-time) | nullrequired
endsAtstring (date-time) | nullrequired
marketsstring[]required
allowedCountriesstring[] | nullrequired
totalCapinteger | nullrequired
dailyCapinteger | nullrequired
perShopperLimitintegerrequired
perShopperWindowDaysinteger | nullrequired
ageMininteger | nullrequired
ageMaxinteger | nullrequired
audiences"student" | "graduate" | "apprentice" | "teacher" | "youth" | "under_26" | "over_60" | "custom_age" | "nhs" | "healthcare" | "social_worker" | "carer" | "police" | "fire" | "first_responder" | "emergency_services" | "military" | "veteran" | "key_worker" | "delivery_transport" | "supermarket" | "charity_worker" | "government" | "employee" | "disability" | "maternity" | "social_follow" | "strava" | "donor"[]required
merchantIdinteger | nullrequired
captureFieldsobject[]required
What the shopper is asked for after verifying, in order.
captureConsentTextstring | nullrequired
marketingConsentTextstring | nullrequired
Null hides the marketing tick box.
codelessMode"shopify_discount" | "parameter" | nullrequired
codelessParamstring | nullrequired
name=value added to the landing page in parameter mode.
gatedTtlMinutesintegerrequired
How long a gated link's token lasts, 5 to 1440 minutes.
channels"online" | "in_store"[]required
Where it runs: online (your site and our hosted pages), in_store (the in-store launcher) or both.
inStoreobjectrequired
In store: how the phone shows the code (barcode, qr or text), for how many minutes (2 to 30), and whether staff confirm it with the shop's PIN.
display"barcode" | "qr" | "text"required
ttlMinutesintegerrequired
staffConfirmbooleanrequired
createdAtstring (date-time)required
updatedAtstring (date-time)required
issuedTodayintegerrequired
Rewards issued today (London) in the key's mode.
issuedTotalintegerrequired
Rewards issued in the key's mode.