Get reward details
Retrieve a single reward from the catalog including points cost, redemption limits, and availability.
Authorizations
Per-company partner API key (zupy_pk_…). Validated by Zupy against the company integration key hash (Story 14.x); send it on every request as the X-API-Key header. Scoped read-write to the owning company's data.
Path Parameters
Unique identifier for this reward.
Response
Available reward in the loyalty program catalog with points cost and validity details.
Functional reward type. Use 'Generic' for rewards that don't fit other categories.
other, generic, welcome, return, birthday, surprise, recovery, gift The approximate monetary value of this reward.
^-?\d{0,8}(?:\.\d{0,2})?$Number of days the reward is valid after redemption.
Number of rewards available. Null means unlimited.
Number of rewards already redeemed.
Type of discount applied when redeeming this reward
none- Nenhumpercentage- Percentagefixed_amount- Fixed Amountfree_shipping- Free Shippingfree_item- Free Itemconditional- Conditional
none, percentage, fixed_amount, free_shipping, free_item, conditional Percentage discount (e.g., 15.50 for 15.5%)
^-?\d{0,3}(?:\.\d{0,2})?$Fixed amount discount in currency
^-?\d{0,8}(?:\.\d{0,2})?$Maximum discount value (for percentage discounts)
^-?\d{0,8}(?:\.\d{0,2})?$^-?\d{0,10}(?:\.\d{0,2})?$Customer's share of the settlement (hardcoded constant 50.00%).
Reserved — always null in 2026-05 production data. This field is part of a 4-way settlement-split surface (customer / operator / publisher / sharer) intended for a future cross-merchant marketplace flow where Z$ payouts route to multiple parties on redemption. Today only customer_split_pct is populated (constant 50%); the operator/publisher/sharer fields exist in the schema but are not yet wired into the redemption pipeline. Do not write partner code that depends on a non-null value here yet.
^-?\d{0,3}(?:\.\d{0,2})?$Reserved — always null in 2026-05 production data. Same caveat as operator_split_pct: part of the 4-way settlement surface, not yet wired. Documented here so the schema stays explicit about what's live and what's coming.
^-?\d{0,3}(?:\.\d{0,2})?$Reserved — always null in 2026-05 production data. Same caveat as operator_split_pct / publisher_split_pct.
^-?\d{0,3}(?:\.\d{0,2})?$Total Z$ already distributed via this reward (used_redemptions × settlement_budget). null for non-marketing rewards.
How the campaign budget is enforced: 'unlimited' (no cap), 'per_redemption' (each redeem consumes settlement_budget Z$), or 'pooled' (shared across all redemptions).
Lifecycle of the campaign that hosts this reward (draft, active, paused, ended). null for non-marketing rewards.
ID of the partner operator who created/operates this campaign (e.g. an aggregator running the marketing reward on behalf of a merchant). null for direct-merchant rewards.
Human-readable name of the campaign operator (paired with campaign_operator_id).