1. Enable a customer transfer flow
Associate the license with the customer's email and allow customer self-service device release according to the authorization policy. Send the customer to the portal from your application's licensing screen or support instructions.
Portal access uses a one-time email login link. Opening that link does not release a device; the customer must select the old device and explicitly confirm the transfer.
2. Release the old device in the portal
- Open the customer portal and sign in using the email associated with the license.
- Select the old device and confirm Unbind and transfer.
- Copy the displayed one-time activation code, valid for at most 15 minutes. The portal can optionally email it.
- On the new computer, paste the code into the same activation field used for an ordinary license key.
3. Accept the code with your existing SDK
Do not build a separate device-transfer HTTP client. All nine SDKs accept lv_tmp_ temporary codes through the normal startup method. This Go fragment belongs in your application's error-returning startup or action function.
// Use this for the customer's ordinary key or lv_tmp_ transfer code.
// Leave activationInput empty on later starts to restore the saved credential.
client, err := licentivo.OpenWithLicense(ctx, "product.json", activationInput,
func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
return err
}
defer client.Close()
return client.RunFeature("export", exportReport)4. Preserve the original license rights
Successful activation creates a machine-bound credential for future checks. The temporary code expiring afterwards does not invalidate that activated device. Later launches can pass an empty key and restore the credential.
The customer's original first activation date, expiry, maintenance rights, features, consumption and ownership remain. A device transfer is not a new purchase and does not reset the usage counter.
A failed redemption does not consume the code. Retry with the original SDK state to recover an interrupted result. An unused expired code can be reissued from its released-device record; a used code cannot be reissued from that old record.
5. Transfer to a fully offline replacement
When the policy allows node-locked offline activation, the replacement computer can generate a request using the temporary code. Bring it to the portal and obtain an approved response before the code expires, then import the response on that replacement computer.
The old device learns remote release on its next online check. A still-valid offline cache may continue under its signed limits until it reconnects or expires. A permanently offline cache cannot learn immediate revocation. Make the policy and customer instructions reflect this limitation.
6. Test and troubleshoot
- Verify the portal requires the license-associated email and an explicit release confirmation.
- Activate on a different test computer with the temporary code, then restart with an empty key.
- Confirm the original expiry and feature usage remain unchanged.
- If the code is expired, request a replacement for the unused released-device record. If it has been used, inspect the new device rather than trying to reuse it.
- Keep normal node-locked Close separate from customer-initiated Deactivate. Ordinary shutdown should not release the customer's registration.