Benefits & redemptions
Benefits are what a tier entitles a member to. Redemptions are members cashing them in — checked for eligibility, recorded against a venue, and approved when needed.
Benefits
A benefit is a thing a member can claim — a free drink, a guest pass, a discount, a session. Benefits attach to tiers, so a member is entitled to every benefit on their tier. Two fields control how often a member can redeem one:
| Field | Meaning |
|---|---|
custom_limit | How many times per period. -1 means unlimited; 0 blocks redemption entirely. |
period_type | The window the limit resets over — day, week, month, year, or lifetime (never resets). |
List the benefits configured on your site:
$ nwp benefits list --output json{
"success": true,
"data": [
{
"id": 7,
"name": "Welcome Drink",
"custom_limit": 1,
"period_type": "month"
},
{
"id": 9,
"name": "Guest Pass",
"custom_limit": -1,
"period_type": "lifetime"
}
]
}Unlimited is minus one
custom_limit of -1 means a member can redeem the benefit as often as they like within the period. Pair it with period_type: "lifetime" for a perk that simply never runs out.Redemptions
A redemption records a member cashing in a benefit. Before you create one, check eligibility — this tells you whether the member is allowed to redeem right now, accounting for their tier, the benefit's limit, and how many times they've already redeemed this period.
Eligibility takes a member-id and a benefit-id as positional arguments:
$ nwp redemptions eligibility 42 7 --output json{
"success": true,
"data": {
"eligible": true,
"remaining": 1,
"period_type": "month",
"reason": null
}
}When the member is eligible, record the redemption against a venue. NextWave re-checks eligibility server-side, so a stale client can't over-redeem:
$ nwp redemptions create --member-id 42 --benefit-id 7 --venue-id 3 --output json{
"success": true,
"data": {
"id": 1024,
"member_id": 42,
"benefit_id": 7,
"venue_id": 3,
"status": "approved",
"redeemed_at": "2026-06-24T18:30:00Z"
}
}The full approval flow is short and predictable:
- Check eligibility for the member and benefit.
- Create the redemption against a venue.
- Approve — high-value benefits can require an explicit approval step before they count as used.
Two capabilities gate the floor
nwp_process_checkins. Approving a redemption requires nwp_approve_redemptions. Every nwp call carries the connected user's WordPress capabilities — if a call returns success: false with a permission error, the user is missing one of these caps.Venues & check-ins
A venue is a physical or virtual place where benefits are redeemed and members check in. Every redemption carries a venue_id so you know where a benefit was claimed, not just that it was. A check-in is a lighter record — a member arriving at a venue — which you can pair with redemptions to understand attendance and on-site activity.
- Attribute redemptions to the right location for per-venue reporting.
- Use check-ins to gate door access or trigger an arrival flow.
- Both are capability-gated — staff at the door get
nwp_process_checkinswithout broader admin rights.
Put it together