Pay: offers update
pay_offers_updateUpdate an existing offer's name, description, rewards, eligibility, caps, dates, or status; omitted fields remain unchanged, and paused or expired offers stop code redemption.
Instructions
Update an offer (patch — only supplied fields change; kind is immutable). Changes an offer's name, description, rewards, eligibility, caps, dates or status; omitted fields are kept. Setting status to paused or expired stops its codes being redeemed. Changing a discount reward does not update the Stripe coupon made at creation. For status alone, pay_offers_pause and pay_offers_activate are simpler. It changes or deletes existing data, so check with the user before running it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Offer id to update. Find it with pay_offers_list. | |
| name | No | Offer display name | |
| status | No | Set status: active, paused, or expired | |
| total_cap | No | Total redemption cap (omit for unlimited) | |
| valid_from | No | Offer valid-from (ISO date/time) | |
| description | No | Offer description | |
| eligibility | No | Eligibility rules as JSON, e.g. {"match":"all","rules":[{"type":"subscribed_to_plan","plan_ids":[1]}]} | |
| valid_until | No | Offer valid-until (ISO date/time) | |
| per_user_cap | No | Per-user redemption cap (default 1) | |
| redeemer_reward | No | Redeemer reward as JSON, e.g. {"type":"discount","percent_off":50,"duration":"once"} | |
| referrer_reward | No | Referrer reward as JSON (referral offers only) | |
| discount_percent | No | Shortcut: redeemer reward = N% discount (use --discount-duration for recurrence) | |
| discount_duration | No | Discount duration for --discount-percent: once, forever, repeating (default once) | |
| redeemer_trial_days | No | Shortcut: redeemer reward = trial extension of N days | |
| referrer_trial_days | No | Shortcut: referrer reward = trial extension of N days | |
| referrer_subscription_days | No | Shortcut: referrer reward = subscription extension of N days |