A product plan describes access rules; a license grants those rules to one customer in one environment.
What you will learn
- How the main records relate.
- Which identifiers are public and which are secrets.
- Which limits and environments belong to which layer.
Prerequisites
- Read the introduction.
- Use the glossary when comparing similar names.
Relationships
Record reference
| Concept | Purpose | Important distinction |
|---|---|---|
| Organization | Tenant owning the workspace records and platform subscription | Not a software buyer account |
| Product | Your application definition, public App ID and validation policy | Shared configuration across Sandbox and Live |
| Public App ID | Nonsecret product identifier supplied as X-App-ID during activation | Not a secret developer API key |
| Product plan | Template for duration, features, device and cumulative activation limits | Its price is metadata, not a buyer checkout |
| Feature or entitlement | A named boolean or typed JSON value returned in signed data | Your app must enforce it after validation |
| Customer | Your software buyer or license recipient | Distinct from you paying KDPika |
| License | Customer/product/plan/environment access record with status and optional expiry | Not the printable license key alone |
| License key | Secret used to activate a license | Copy it at issuance; listings show a mask |
| Installation ID | Stable random identity generated and persisted by your app | Not a MAC address or serial number |
| Device | Server record for a hashed installation identity | Not guaranteed unique physical hardware |
| Activation | Registering an installation and obtaining a token | Active seats and cumulative activations differ |
| Activation token | Secret used to validate or deactivate the activated installation | Bound to its license/device; do not share |
| Environment | Sandbox or Live boundary for licenses, customers, credentials and endpoints | Not the payment provider's Test/Live mode |
| Developer API key | Scoped server-side credential for management | Never distribute in application binaries |
| Webhook | Signed outbound notification to your backend | Not an authority that decides license validity |
Product and platform plans
Your platform subscription defines workspace capacity and billing. Your own product plans define what your customers may use. A monthly product plan does not automatically charge a buyer or renew a license after a sale.
Products, plans and features are shared configuration. Licenses and customers belong to an environment; devices inherit that environment through the license. Usage totals can span both licensing environments.
Features and changes
Require a valid result before reading a feature. Current helpers can expose a payload value even when the result is invalid; the caller must apply the validity guard.
Device and cumulative activation limits are copied when issuing a license. Changing the product plan does not retroactively replace those copies. Feature resolution uses plan features with license-level overrides; an offline app cannot see a fresh change before reconnecting.
Expected result
You can trace a customer license to its product, plan, environment, devices and token without confusing it with a platform billing subscription.
Common mistakes
- Counting active licenses as activation requests: a license can have multiple devices and many validations.
- Resetting devices to clear cumulative activations: reset releases seats and revokes tokens, not that counter.
- Treating a feature as a usage meter: implement metering and business rules in your own backend.
Security notes
Customer emails and metadata can be personal data. Hashing an installation ID does not automatically make the complete record anonymous. Avoid unnecessary personal data in labels and metadata.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Existing limit did not change after editing a plan | The license stores its issued limits | Review the individual license and supported management operations |
| More than one device uses one license | Its per-license device policy allows it | Review max_devices and your transfer policy |
| A plan's price appears in a response but no charge occurs | Licensing metadata is not payment processing | Use your own confirmed payment/fulfilment flow |
Next steps
Read authentication and the license lifecycle.