Web Services Overview

SOLO Server offers several web services which allow you to build custom interfaces which interact directly with SOLO Server via HTTP.

Supported Web Services

Web Service Description
Activation Server Provides a method which may be used for generating activation codes for the manual/trigger code activation process. Whenever possible, however, we strongly encourage the use of the XML Activation Service instead, as it contains support for newer and more robust activation features.
Cart Server Includes methods for creating and manipulating carts. This is particularly useful for a highly customized integration with a brochure website that would be otherwise difficult to achieve through the use of cart query string parameters alone.
Customer Server Supplies methods for creating customers and manipulating customer registration data. Because it contains features and capabilities not previously available with its predecessor, the newer XML Customer Service should be used instead, whenever possible.
License Server Includes methods for creating licenses and manipulating customer registration data. The superior XML License Service should be used instead, if at all possible.
XML Activation Service Supplies methods for activating, deactivating, and validating Protection PLUS 4 SDK, Instant Protection PLUS 3 and Protection PLUS 5 SDK license installations.
XML Customer Service Provides methods for finding and authenticating customers.
XML License Service Includes methods for creating, manipulating, and validating licenses.
XML License File Service Includes methods for retrieving and refreshing Protection PLUS 5 SDK license files.

Contact support@softwarekey.com if you determine a need for one or more customized web services for your application.

Web Service Security

Important

For security reasons, certain SOLO Server web services require the following to be passed to the web method:

If you are using any of the web methods that require these values as inputs, you need to create an Integration User on your SOLO Server account, which will be used exclusively for the web services. An Integration User cannot log into the SOLO Server author interface.

If you are currently using the regular UserID and UserPassword credentials, you will need to update your application(s) to use an API UserID and API UserPassword instead, as support for the regular User ID and Password will be removed in the future.

The web methods that require providing an AuthorID, API UserID, and API User Password as inputs (see below) should only be used by your internal systems and applications. It is not safe to deploy your protected applications with API credentials, as this exposes a security risk to your account. If you absolutely need to allow your protected application(s) to use these web methods, we recommend creating and hosting a proxy web service that can properly authenticate the request from your software and then make the web service call to SOLO Server.

Creating an Integration User

To create an Integration User, first add a new user.

You can also edit an existing user to update them to an Integration User.

Enable the Integration User option in the Settings section:

This user's Group can be set to NONE, and they should be granted the appropriate user permissions to perform the required action of the web service method(s) you are using (see below).

To ensure even greater security, you can also use the Outside Access field on the user record to restrict which IP addresses can call the web methods.

After clicking Save button, viewing the user will list the system generated API User ID and API User Password:

Important

An Integration User is used exclusively for the web services. An Integration User cannot log into the SOLO Server author interface.

Affected Web Service Methods and Required Permissions

The following web methods require the AuthorID/API UserID/API UserPassword and these User permissions:

Web Service Method Required User Permission(s)
CustomerServer.CreateCustomer Add Single Customer
LicenseServer.AddLicenseAndUnregisteredCustomer Add Single Customer, Add Licenses
XmlCustomerService.GetCustomerDataByAuthor none
XmlCustomerService.CustomerSearch none
XmlCustomerService.CustomerLogin none
XmlLicenseService.Add Add Licenses
XmlLicenseService.UpdateActivationFields Edit Licenses
XmlLicenseService.UpdateUserDefinedFields Edit Licenses (when User Defined Fields Writable setting is disabled)
XmlLicenseService.GetLicenseCustomData none
XmlLicenseService.UpdateLicenseCustomData Edit Licenses
Any reports accessed programatically dependent on the report

Accessing Web Services from your Application

Application Programming Interface (API) Libraries

The SoftwareKey System offers an assortment of libraries which provide APIs that simplify the invocation of these web services from your application. This collection of API libraries includes:

Please refer to the applicable product manuals and sample projects for more information on each library/API.

Automation Client Scripts

SOLO Server also includes a variety of Automation Client scripts, each of which is specifically designed to work with Automation Client functions. Although these web services provide the same (and more!) functionality than the Automation Client scripts, the scripts may still be a more convenient means of gearing your application to communicate with SOLO Server.

Custom Web Form Integration

In some cases, these web services may be used with your own, custom web forms. (An example of a custom web form is Self Hosted Trial Tracking forms.) If you are creating custom web forms which integrate with these web services, you should review the Client Validation Script, which simplifies adding client-side validation to your forms, which will help ensure that SOLO Server accepts the data entered by the end-user.