Industry
Use Case
Favorite Feature
A professional association for project managers runs an online member area: a job board, webinars, a forum, and, for higher tiers, certification courses and discounted event tickets. Members pay yearly, as Individual or Professional members.
Renewals were handled by two people in the office. They sent invoices, matched incoming payments, and switched access on and off in the member area by hand. A member who paid late lost access for a few days. A member who didn’t pay at all often kept it for weeks. An upgrade from Individual to Professional meant an email, a pro-rata calculation and another manual change.
Each member is a licensee, identified by their member number. Each tier is its own Subscription module:
Product: Member Area
├── Module "Individual" – Subscription
│ ├── 1 year: TIMEVOLUME 1 YEAR
│ └── Grace: TIMEVOLUME 14 DAY, hidden, grace period
└── Module "Professional" – Subscription
├── 1 year: TIMEVOLUME 1 YEAR
└── Grace: TIMEVOLUME 14 DAY, hidden, grace period
A Subscription is valid while a paid period runs, and validation returns its expires date. When a member renews early, the new year is added to the end of the current one, so nobody loses days by paying on time.
The member area validates when a member logs in and caches the result for the session:
curl -u apiKey:YOUR_API_KEY -H "Accept: application/json" -X POST \
https://go.netlicensing.io/core/v2/rest/licensee/PM-0047712/validate
If “Professional” is valid, the member gets everything. If only “Individual” is valid, the certification courses show a “Professional members only” note with an upgrade link. If neither is valid, the member sees the public pages and a renewal button.
Both modules have the grace period switched on. A member whose year has ended keeps access for 14 more days while they sort out the payment. After that, access stops on its own, and nobody in the office has to remember to switch it off.
Reminders come before that point. A yearly membership turns yellow at 80% of its time, about ten weeks before the end (warning levels). The association’s mailing tool receives a WARNING_LEVEL_CHANGED webhook and sends the renewal email.
“Renew” and “Upgrade” open the NetLicensing Shop from a shop token for the member. With PayPal, members can choose automatic yearly renewal. PayPal doesn’t allow recurring payments for buyers in some countries, including Germany, so those members renew with a one-time payment, which the reminder email makes easy.
An upgrade is a purchase of a Professional year. The member’s Individual year simply runs out alongside it. The association prices the upgrade in the Shop so it doesn’t charge twice for the overlap.
Members check their membership, renewal date and payments in the Customer Portal, opened from the member area without a second login (an ACTION token with action=licenseeLogin).
The office works in Zoho CRM. The NetLicensing extension for Zoho CRM adds the member’s customer number to each CRM account and shows their licenses there. Staff don’t need to switch between two systems to answer “is this member paid up?”.
Running a membership organisation or community? See membership management with NetLicensing or contact us.

Trial-to-Paid Conversion: Structured Trials and Freemium Tiers
How a SaaS vendor can give every new account a 14-day trial of its Pro plan and fall back to a free tier afterwards, using the Pricing Table licensing model.

Physical Security: Feature-Based Access Control with Time-Limited Permissions
How a building operator can tie tenant amenities to Multi-Feature licenses and give contractors passes that expire on their own with the Subscription model.