canonical: https://jentic.com/apis/netlicensing.io/netlicensing

# Netlicensing Labs64 NetLicensing RESTful API

Labs64 NetLicensing is a cloud-based licensing-as-a-service platform that lets software vendors create products, define license templates, issue and validate licenses, and bill licensees. The 40-endpoint REST API covers the full lifecycle: register products and product modules, mint licenses against templates, validate them at runtime, and reconcile transactions and payment methods. Use it to embed entitlement checks into desktop, server, mobile, IoT, or SaaS applications without building your own licensing backend.

## For AI agents

Issue, validate, and revoke software licenses, manage licensees, and reconcile licensing transactions on the Labs64 NetLicensing platform.

## Scope

Does not handle payment capture, tax calculation, or feature flagging - use for software license issuance, validation, and lifecycle management only.

## Capabilities

- Validate a license at application startup against a licensee number
- Mint a new license from a license template for a specific licensee
- Transfer licenses between licensees during account migrations
- Register product modules with feature, time-volume, or rental licensing models
- Reconcile licensing transactions against captured payment methods
- Generate single-use tokens for licensee shop and validation flows

## Use cases

### Runtime License Validation

Call the validate endpoint at application startup to confirm a customer's license is active, within its time window, and authorised for the requested feature set. NetLicensing returns a structured validation result per product module so the application can degrade gracefully or block usage. Validation supports offline grace periods configured on the license template.

Example prompt: Call POST `/licensee/{licenseeNumber}/validate` with productNumber set to PROD-123 and return whether each module is valid and its expiry date.

### Subscription License Issuance

When a customer completes checkout, mint a new license from a subscription license template against their licensee number. NetLicensing tracks the transaction, billing window, and renewal eligibility so the application can read entitlement state directly from the API rather than syncing it locally.

Example prompt: Create a new license for licensee LIC-456 from license template TPL-MONTHLY-PRO with start date today and confirm the license number returned.

### License Transfer During Migration

When a customer reorganises accounts or sells a seat, move active licenses from the source licensee to the target licensee through the transfer endpoint. NetLicensing keeps an audit trail in the transaction log so the original purchase history is preserved.

Example prompt: Transfer all active licenses from licensee LIC-123 to licensee LIC-789 and return the resulting transaction number.

### AI Agent Entitlement Manager

Let an AI agent answer support and billing questions like 'when does this customer's license expire?' or 'why is the validation failing?' by querying NetLicensing directly through Jentic. The agent fetches the licensee, the active licenses, and the most recent validation result without an engineer dropping into the admin console.

Example prompt: Given customer email alex@example.com, find the matching licensee, list active licenses with expiry dates, and explain why the most recent validation returned invalid.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/licensee/{licenseeNumber}/validate` | Validate a licensee's licenses at runtime |
| POST | `/license` | Create a new license |
| POST | `/licensee/{licenseeNumber}/transfer` | Transfer licenses between licensees |
| GET | `/licensetemplate` | List license templates |
| POST | `/product` | Create a product |
| GET | `/transaction` | List licensing transactions |

## Key resources

- **Product** — Top-level products you license to customers
- **Product Module** — Feature groupings within a product, each with a licensing model
- **License Template** — Reusable definitions of license terms, pricing, and duration
- **Licensee** — End-customer or organisation receiving licenses
- **License** — Individual issued license tied to a licensee and template
- **Transaction** — Audit record for license issue, transfer, and payment events
- **Token** — Single-use tokens for shop, apikey, and validation flows
- **Payment Method** — Stored payment instruments attached to licensees

## Why Jentic

- **Setup:** Wiring Labs64 NetLicensing by hand means encoding its HTTP basic username and password, targeting the go.netlicensing.io/core/v2/rest host, and shaping license, licensee, and product calls yourself. Through Jentic you install once, import NetLicensing from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** NetLicensing puts the licensee number in the URL path (`/licensee/{licenseeNumber}/validate`), so a rule can pin your agent to one licensee. You choose the operations it may call, so a licensee transfer is not included unless you add it.
- **Credential handling:** Your NetLicensing username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time as the basic auth header. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'validate a software license' or 'issue a new license', and Jentic returns the matching NetLicensing operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Paddle API** — Paddle is a merchant-of-record platform that bundles billing, tax, and licensing for software vendors; broader than NetLicensing's licensing-only scope.
- **FastSpring API** — FastSpring offers commerce plus subscription and license fulfilment for software publishers.
- **Stripe API** — Stripe handles payment capture and subscription billing; NetLicensing handles the resulting license issuance and validation.
- **Recurly API** — Recurly manages subscription billing lifecycles and pairs well with NetLicensing for entitlement enforcement.

## FAQ

### What authentication does the NetLicensing API use?

NetLicensing uses HTTP basic authentication with your NetLicensing username and password (or an API key as the password). Through Jentic those credentials sit in the encrypted vault and never enter the agent's prompt context.

### Can I validate a license at runtime through the NetLicensing API?

Yes. POST `/licensee/{licenseeNumber}/validate` returns a per-product-module validation result you can call at application startup or on a heartbeat. The response indicates whether each module is valid and when it expires.

### Can I issue a new license programmatically with the NetLicensing API?

Yes. POST /license with a licenseTemplateNumber and licenseeNumber creates a new license. The license inherits term, pricing, and feature settings from the chosen template.

### What are the rate limits for the NetLicensing API?

Labs64 does not publish a fixed rate limit; throughput is governed by your NetLicensing plan. Validation traffic is the highest-volume case and is built to handle production application load.

### How do I transfer licenses between customers through Jentic?

Run jentic.search('transfer software licenses between customers'), load the matching NetLicensing transfer operation, then execute against POST `/licensee/{licenseeNumber}/transfer` with the source and target licensee numbers. Jentic returns the resulting transaction record.

### Does NetLicensing support feature, subscription, and rental licensing models?

Yes. Each product module is configured with one of NetLicensing's licensing models including Feature, TimeVolume, Subscription, Rental, FloatingMultiFeature, and PayPerUse. The API returns the model on each product module so applications can branch on it.

### Can I limit what my agent is allowed to do with the NetLicensing API?

Yes. Because you run Jentic One yourself, your own rules decide which NetLicensing operations the agent may call, so you can grant it read-only validation via POST `/licensee/{licenseeNumber}/validate` while withholding license issuance (POST /license) or transfers (POST `/licensee/{licenseeNumber}/transfer`). Since NetLicensing carries the licensee number in the URL path, a rule can also pin the agent to a single licensee. The NetLicensing username and password are stored by your own instance and injected only at execution, so the agent never sees the credentials it uses.
