Installation and lifecycle actions
Explicit confirmation
Every action below is POST, requires Manage access and a JSON body containing confirm: true. The path uses a full license UUID owned by the authenticated customer. Read the current license state before acting; failed eligibility, billing and security checks cannot be overridden.
Lifecycle calls are not automatically retried. In particular, generating another install link rotates the previous token, and reset/reinstall invalidates installed credentials. Re-read the license after an uncertain response.
POST /licenses/{license}/install-link
Allowed only for pending_key licenses with no blocking overdue billing. Returns data, install_token, install_url, install_command and expires_at. The secret expires after 60 minutes, is one-time for activation, and a newly generated token replaces the previous one. Protect the URL and command as credentials.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/install-link" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'Run the returned install_command on the intended target server after reviewing it. Initial activation belongs to the installer handshake; the API does not mark an uninstalled license active.
POST /licenses/{license}/suspend
Allowed for active licenses. Suspends runtime use and records customer_api_manual as the reason. Suspension is not termination and does not itself promise to stop billing.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/suspend" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'
POST /licenses/{license}/activate
Resumes an installed license suspended by this API with reason customer_api_manual. An active installed key is required. This is not initial activation. Billing, security, IP-mismatch and administrative suspensions cannot be bypassed.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/activate" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'
POST /licenses/{license}/reinstall
Returns an active or permitted manually suspended license to pending_key and revokes its old installed credentials. The previous installation loses its binding. Resolve overdue billing and security holds first. Generate a new install link afterward.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/reinstall" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'
POST /licenses/{license}/reset
Exact alias of reinstall, with the same validation and credential revocation. It does not delete the license, order, billing history or audit trail.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/reset" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'
POST /licenses/{license}/confirm-ip
Approves an already detected server IP change. First GET the license and review observed_ip. The license must be suspended for ip_mismatch with a pending detected change. Supply expected_ip exactly as reviewed (IPv4 or IPv6). A changed observation returns 409, requiring another review; arbitrary IP assignment is not supported.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/confirm-ip" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true,"expected_ip":"192.0.2.20"}'On success, the observed address becomes registered_ip and the license resumes. This changes the licensed server binding, not your API key’s allowed source IPs.
POST /licenses/{license}/terminate
Permanently terminates the license through the existing customer billing/termination workflow. Outstanding usage or minimum commitments can still be billed. It cannot be reactivated through this API; use suspend for a reversible access stop. The license record and audit history remain.
curl --fail-with-body -X POST "https://synconix.com/api/enterprise/v1/licenses/$LICENSE_ID/terminate" \
-H "Authorization: Bearer $SYNCONIX_API_KEY" -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{"confirm":true}'Successful lifecycle actions return {data: license}, except install-link which additionally returns the short-lived installation secret and command.
Theme color