Skip to main content
Docs navigation

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:

FieldMeaning
custom_limitHow many times per period. -1 means unlimited; 0 blocks redemption entirely.
period_typeThe 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
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

A 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
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
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:

  1. Check eligibility for the member and benefit.
  2. Create the redemption against a venue.
  3. Approve — high-value benefits can require an explicit approval step before they count as used.

Two capabilities gate the floor

Recording a check-in requires 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_checkins without broader admin rights.

Put it together

See these commands chained into a real door-to-redemption flow in the recipes.