Ovion license API
Use these endpoints from Laravel apps, WordPress plugins, or desktop installers to activate licenses, validate installations, check for updates, deactivate domains, and request signed download links.
Activate
Creates or reuses an activation for a domain and installation UUID.
/api/licenses/activate
Check
Validates an already activated installation before protected actions.
/api/licenses/check
Deactivate
Marks an installation inactive so a live or staging slot can be reused.
/api/licenses/deactivate
Update check
Returns license status, update status, and a signed download URL when allowed.
/api/licenses/update-check
Signed download
Streams a short-lived protected package URL returned by update-check.
/api/licenses/downloads/{token}
Download SDK snippets
Laravel license client
Use inside Laravel apps, service providers, or installer screens.
Download snippetWordPress license client
Use inside plugins or themes with wp_remote_post.
Download snippetPlain PHP client
Use in standalone PHP scripts or simple installers.
Download snippetRequest payload
{
"license_key": "OVM-XXXXX-XXXXX-XXXXX-1234",
"site_url": "https://client-site.example",
"domain": "client-site.example",
"installation_uuid": "stable-installation-id",
"environment": "production",
"product_slug": "attendpro-hr-attendance-payroll",
"product_version": "1.0.0",
"client": "laravel"
}
Use production for live customer sites. Use staging, development, local, test, qa, or sandbox for non-production installations. Production and staging limits follow the purchased license tier.
Response shape
{
"valid": true,
"status": "active",
"message": "License is valid.",
"license_type": "business_2_apps",
"support_ends_at": "2026-12-28",
"updates_allowed": true,
"download_allowed": true,
"activation_id": 123,
"latest_version": "1.0.1",
"requires_update": true,
"download_url": "https://ovion-tech.xyz/api/licenses/downloads/..."
}
Common denial statuses include invalid_license_key, production_limit_reached, staging_limit_reached, product_mismatch, not_activated, expired, revoked, pending, and entitlement_inactive.
Integration rules
- Store the license key securely and never expose it in public JavaScript.
- Generate one stable installation UUID per installed app and reuse it for future checks.
- Call activate during setup, check during admin/license screens, update-check before package update requests, and deactivate before moving a license to another production domain.
- Signed download links are short-lived and should be requested only when the installed product is allowed to update.
- Respect the API rate limit and back off when errors such as rate_limited, invalid_license_key, production_limit_reached, or staging_limit_reached are returned.