Licensing

VerseDocs works fully from the moment you import it. A license key removes the trial watermark and unlocks the utility pack — across your whole Microsoft tenant, from a single key.

What the trial does and does not do

The trial is not a crippled demo. Every action is present, every feature works, and there is no time limit. Two things separate it from a licensed environment:

  • Every document carries a visible VERSEDOCS TRIAL watermark — in every output format: PDF, Word, Excel and PowerPoint.
  • The 38 utility-pack actions refuse to run, returning UTILITY_LICENSE_REQUIRED. Document generation and conversion are not part of the utility pack and work throughout the trial.

That means you can build and prove an entire document-generation solution — templates, bindings, flows, the button — before paying anything, and the only difference afterwards is that the watermark stops appearing.

VerseDocs Premium

There is one plan. It is tenant-scoped: a single key covers every Dataverse environment in your Microsoft tenant — production, sandbox, developer, and environments you create in future — with no per-environment top-ups and nothing to re-order as you grow.

See pricing for the current price.

Why tenant-scoped? VerseDocs cannot tell a production environment from a sandbox — environment type is a Power Platform concept, and the plug-in execution context does not expose it. A per-environment license would therefore have meant buying a key for every dev and test environment just to avoid watermarked test output. Pricing the tenant once removes that problem instead of billing you for it.

Buying from inside the product

The Licensing page in the VerseDocs Admin app already knows your org and tenant id, so a self-serve purchase needs nothing looked up or sent to anyone first.

  1. 1Open the VerseDocs Admin app → Licensing.
  2. 2Click Buy VerseDocs Premium. Stripe Checkout opens in a new browser tab. This is deliberate: a model-driven app page runs inside an iframe and Stripe refuses to load in one.
  3. 3Complete payment. The order already carries your tenant id, so the key that comes back is scoped to your tenant automatically.
  4. 4The tab returns to the Licensing page and fetches the key that was just issued. The key is displayed on screen immediately, before anything else happens with it.
  5. 5The page then tries to save the key into the vdocs_LicenseKey environment variable for you. If that succeeds, the status card refreshes to licensed and you are done.
Copy the key when it appears. The one-time retrieval that brings the key back to the page can only succeed once. If the automatic save fails — most often because the signed-in user cannot write environment variables — the key stays on screen for you to paste in manually. VerseBlocks also emails it to the address used at checkout, so it is never only in one place.

Activating a key you already have

A VerseDocs key is a single line of text beginning VDLIC1., roughly 600 characters long. There are two places to put it, and they do the same thing.

From the Licensing page (recommended)

  1. 1Open VerseDocs AdminLicensing.
  2. 2Paste the key into the license key box and click Apply. The page validates it and reports what it found — including telling you plainly if the key is for a different tenant.
  3. 3The status card refreshes. You want Valid.

From the environment variable

  1. 1Maker portal → Solutions → VerseDocs → Environment variablesvdocs_LicenseKey.
  2. 2Set its current value to the key.
  3. 3Publish all customizations.
  4. 4Call vdocs_Ping or refresh the Licensing page and confirm the license reads Valid.
Never export a solution from an environment where you have set vdocs_LicenseKey and ship that zip to someone else. A solution export bakes the source environment’s environment-variable values into the package, which would hand your license key to whoever imports it.

Reading the license status

vdocs_Ping always returns a license object, and the Licensing page renders it. This is the single source of truth for “why is my output still watermarked”.

The license portion of a vdocs_Ping response
{
  "license": {
    "isLicensed": true,
    "reason": "Valid",
    "edition": "Premium",
    "scope": "tenant",
    "expiryUtc": "2027-08-13T00:00:00Z",
    "isPerpetual": false
  },
  "executingOrgId": "...",
  "executingTenantId": "..."
}
reasonWhat it meansWhat to do
ValidLicensed. Clean output.Nothing.
NoKeyNo key is set. This is the trial, by design.Set a key if you want clean output.
MalformedThe stored key does not parse.Re-paste it — a character was almost certainly dropped or a line break introduced.
SignatureInvalidThe signature does not verify: the key was corrupted or altered.Request a fresh key.
ScopeMismatchThe key is genuine but issued for a different tenant or org.Copy this environment's tenant id from the Licensing page and check it against the key you were issued.
ExpiredPast its expiry date.Renew.
isLicensed is true only when reason is Valid. Any other value means output is watermarked.
The VerseDocs Licensing page showing status Licensed, edition Premium, reason code Valid, scope Tenant, an expiry date, a licence key box and a telemetry toggle.
Valid is what a working key looks like, and Tenant scope is the whole point: one key, every environment in your Microsoft tenant. The org and tenant IDs are blurred here.

One key, one tenant

A Premium key is issued to one Microsoft tenant and carries that tenant’s id inside its signed payload. Every environment in that tenant — production, sandbox, developer, and any you create later — validates against it, so a single key covers your dev and test work with nothing extra to buy.

Presented in any other tenant, the same key validates as ScopeMismatch and buys nothing: output stays watermarked and the 38 utility-pack actions stay locked. A key passed to another company is therefore worth nothing to them.

Where the key is usedDocumentsUtility pack (38)
Any environment in the tenant it was issued toClean, no watermarkUnlocked
An environment in a different tenantWatermarked (ScopeMismatch)Locked
No key at allWatermarked (NoKey)Locked
Both checks now agree. An earlier build let a signature-genuine key unlock the utility pack even in an environment its scope did not cover — convenient for one customer with a single environment-scoped key, but it also meant a forwarded key unlocked the paid toolkit for whoever received it. Scope is now enforced in both places.
You do not need a second key for dev. Because the key is scoped to the tenant rather than to one environment, your sandbox and developer environments are already covered by the key you have.

Renewals and changes

A Premium license renews annually. On renewal a new key is issued and emailed to the billing address on the subscription; paste it in the same way as the original. Cancelling stops the renewal — the existing key keeps working until its expiry date, after which output reverts to watermarked and the utility pack locks again. Nothing is deleted and no template stops working.

To change payment details or cancel, use the billing portal link on the Licensing page.