XML Customer Service

The XML Customer Service web service provides several web methods for interacting with customers.  The current live server can be reached at https://secure.softwarekey.com/solo/webservices/XmlCustomerService.asmx.  If you are running a stand alone version of SOLO server, simply replace secure.softwarekey.com/solo in the url with the path to your SOLO instance.

 

All web methods in this service use xml for both input and output.  This allows new input and output values to be added without breaking backwards compatibility with existing implementations using the service.  If your integration with the web service validates the xml returned by the web methods, be sure to account for the possibility of new elements being returned in the result.  This can easily be done by applying an xslt transform to the result xml to filter out any new fields and then validating the transformed xml.

 

The XmlCustomerService.asmx web service offers the following webmethods:

 

GetCustomerDataByAuthor/GetCustomerDataByAuthorS

Used to retrieve author specific customer contact details as well as license information for a customer.  This method requires passing in a SOLO AuthorID/UserID/Password, but the user does not need any specific permissions.  GetCustomerDataByAuthor accepts an XmlDocument input parameter, while GetCustomerDataByAuthorS accepts a string input parameter for the xml so that it is accessible via http post.

Input: The input xml is in the following format:

<GetCustomerDataByAuthor>

<AuthorID></AuthorID>

<UserID></UserID>

<UserPassword></UserPassword>

<CustomerID></CustomerID>

</GetCustomerDataByAuthor>

The values of these elements are as follows:

Output:  The result is returned as XML in the following format:

<?xml version="1.0" encoding="utf-8"?>

<CustomerData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<ResultCode></ResultCode>

<Customer>

<CompanyName></CompanyName>

<FirstName></FirstName>

<LastName></LastName>

<Address1></Address1>

<Address2></Address2>

<City></City>
<StateProvince></StateProvince>

<PostalCode></PostalCode>

<Country></Country>

<Phone></Phone>

<Fax></Fax>

<Email></Email>

<Nickname></Nickname>

<Unregistered>True|False</Unregistered>

<Enabled>True|False</Enabled>

<InvalidAddress>True|False</InvalidAddress>

<Taxable>True|False</Taxable>

<ExcludeFromAll>True|False</ExcludeFromAll>

<IsDistributor>True|False</IsDistributor>

<OfferProduct>True|False</OfferProduct>

<OfferPartners>True|False</OfferPartners>

<Notes></Notes>

</Customer>

<License>

<LicenseID></LicenseID>

<EnteredDate></EnteredDate>

<Status></Status>

<ExpirationDate></ExpirationDate>

<Quantity></Quantity>

<LicenseUpdate></LicenseUpdate>

<ProductID></ProductID>

<ProductName></ProductName>

<ProdOptionID></ProdOptionID>

<OptionName></OptionName>

<PaymentPlanInstanceID></PaymentPlanInstanceID>

</License>

.

Additional license elements for each license

.

</CustomerData>

If an error occurs, only the ResultCode element will be returned, otherwise the Customer and License elements will be returned.  In the case of an error, the ResultCode will contain one of the following error values: