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.
Coupons & offers
Claim an offer through delivery or grant it from a trusted backend.
SDK 0.0.1Updated
Terms and eligibility
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.
// 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.