Skip to content
Indiana
Dashboard
Docs
Browse docs / Coupons & offers

Coupons & offers

Claim an offer through delivery or grant it from a trusted backend.

SDK 0.0.1Updated

Terms and eligibility

Coupons are independent commercial capabilities. Terms lock on activation. Promotion codes, grants, claims and redemptions are separate records. The server enforces windows, targeting, first purchase and per-customer or global limits; surfaces present resolved terms.

Grant and redeem

  • A trusted server key needs offers:grant. Browser claims execute through a published claim_offer node in the current Funnel.
  • Connect the screen button to a Funnel claim-offer node. The server validates eligibility and retains the original receipt. Display and refresh do not claim an offer.
  • Redeem codes through redeemCoupon or claim an offer through a Funnel action. Bind the offer in the checkout node; verified transactions and the coupon ledger establish redemption.
Resolve couponId, productVersionId and the authenticated customer within the current App/environment. Persist and reuse the original requestId for a retry.
server-and-browser/offers.tsTypeScript
// Trusted backend: explicit offers:grant permission.const result = await groove.grantOffer({  customerId: authenticatedGrooveCustomerId,  couponId,  requestId: offerClaimRequestId,}); // Browser reads offers; claims and purchases execute through published Funnel nodes.const offers = await grow.listOffers();// Configure couponId in the Funnel claim node and the checkout offer binding.// Start and display that Funnel using createFunnelStartClient / showFunnelRun.