What should happen on the ISV side when a license is terminated?

In general, ISV can stop providing the service for the Plesk owner. But it would be good if ISV could provide smooth exit scenario for the end user. Let’s suppose the extension needs to communicate with its API to completely terminate the account. In such case we recommend to mark the account as “being terminated” and allow the extension to communicate with the API for some time (up to 1 month) to allow the required changes.

Is it possible to reactivate (un-terminate) a license?

No. Unlike Plesk licenses which typically can be reactivated (un-terminated) in KA, third-party licenses cannot.

What should happen on the ISV side if a license was not renewed on time (no RENEW call)?

In fact, there is no call to the ISV endpoint when a license is expired. But on an extension side the license will be already marked as expired. On the KA side there is a 3 months grace period till the TERMINATE request. So we recommend to have the same grace period on the ISV side when the extension cannot make API calls to create new objects but can start reverting changes as the license owner decided not to pay for the license. The same is for licenses on the ISV side when the extension doesn’t communicate with the API: ISV can set expiration date for the license based on the License Creation/Renewal/Upgrade Request parameters.