MachPanel API Overview - SOAP API


Important Note:

There are two types of API available SOAP and REST.

Recommended is to use REST API as the SOAP API will be depreciated in future. REST API is easy to use and user can try operations on Swagger interface.

REST API: https://kb.machsol.com/Knowledgebase/55650/MachPanel-REST-API-Configuration

Summary

This article offers an overview of MachPanel API - SOAP API (latest version) and how it works.

Applies To

Applies to & Supported in MachPanel v5.1.10 and onwards. (Click Here to see release notes and update instructions)
Current Version of MachPanel API is v5.12 (Download latest API Class Library Documentation below)

References

Basic Details about MachPanel API

MachPanel API facilitates the providers and/or resellers to completely customize the online web store for the services they offer to their customers.

You can set up your own store to interact with your deployment of MachPanel Control Server system and manage the highlighted parts of the panel from the set up store.

MachPanel API overview

If you intend to customize your Online store front website and want to invest on some programming skills and efforts, take the advantage services and functionality offered by MachPanel API.

MachPanel API provides following functionality

  1. Customer Registration
  2. Customer/Reseller Authentication
  3. Service Subscription functionality
  • Shared Hosting Subscription
  • Domain Registration/Transfer
  • SSL Certificates
  • Misc/Reseller Hosting
  • Licensed based services
  1. VPS Hosting(Hyper-V)
  2. SaaS Enabled Hosting
  • CRM Hosting
  • Exchange Hosting
  • SharePoint Hosting
  • Lync Hosting
   4. Service management functionality

 

How it works?

MachPanel API is basically a web service which uses SOAP messages to communicate to the Control Server and the client application. The service is hosted on same server as Control Server and same Port as Control Server. The URL of the service is as

http://cpaddress/webservices/machpanelservice.asmx

https://cpaddress/webservices/machpanelservice.asmx

To start communication with the control server through API, first we need the API to be enabled by the provider and/or reseller under whose authority the requests will be entertained. The API needs to be enabled by the provider and/or reseller from within the Control Panel after login.


The snapshot below highlights the navigation path for MachPanel API Settings:

 

 

Allowed IP Addresses: If you apply the IP restriction by putting some IP in Allowed IP Addrersses field of MachPanel API settings.

All the requests to the API shall be from the IPs which are mentioned in the ‘Allowed IP Addresses’ input box of MachPanel API settings. The requests coming from the addresses other than mentioned in the field described will not be entertained and authentication of the request will fail the same way.

Every request for an operation through MachPanel API is authenticated with the provided credentials by the client application. These credentials are saved through Control Server as shown above. Only the authenticated request of an operation is entertained, otherwise an “AuthenticationException” is thrown.

Following is a sample code snippet to utilize MachPanel API in client application to authenticate a customer:

Code Snippet


MPAuthenticationHeader header = new MPAuthenticationHeader();

header.UserName = ConfigurationManager.AppSettings["CompanyLogin"]

header.UserPassword = ConfigurationManager.AppSettings["CompanyPassword"];

MachPanelService svc = new MachPanelService();

svc.MPAuthenticationHeaderValue = header;

ResponseArguments Args = svc.AuthenticateCustomer(“user@domain.com”, “password”, false);#endregion
	

<

 










Here you can see a header has been added to the request of a service and this header is mandatory for each and every operation which is performed through MachPanel API.

Another thing to note here is that most of the operations performed through MachPanel API will result a ResponseArguments object. This object will contain a flag for either the operation was successful or not, related message in case of failure and also sometimes an associated key (such as CustomerId and etc.)

Following is a code snippet to List all/filtered existing subscriptions of the customers.

Code Snippet

private void FillSubscriptions() 

    {

        MachPanelService svc = new MachPanelService(); 

        svc.Url = ServiceUrl;

        svc.MPAuthenticationHeaderValue = MPHeader; 

        SubscriptionInfo[] subsList = svc.GetAllSubscriptions();

        Lv_Subscriptions.DataSource = subsList; 

        Lv_Subscriptions.DataBind();

     } 

    //SubscriptionCriteria is a type to get filter criteria from client application

    //Assign values to the members/properties by which you want to filter the subscription records 

    //and leave others unassigned.

    private void FillFilteredSubscriptions(MPService.SubscriptionCriteria SC) 

    {

        MachPanelService svc = new MachPanelService(); 

        svc.Url = ServiceUrl;

        svc.MPAuthenticationHeaderValue = MPHeader; 

        SubscriptionInfo[] subsList = svc.GetSubscriptionsByCriteria(SC);

        Lv_Subscriptions.DataSource = subsList; 

        Lv_Subscriptions.DataBind();

     } 

    //you can call above functions in your client application as

    //SubscriptionCriteria SC = new SubscriptionCriteria(); 

    //SC.PackageTypeId = 16;

    //FillFilteredSubscriptions(SC); OR 

    //FillSubscriptions();

<
<













































Following is a code snippet to Cancel/Suspend/Resume an existing subscription of a customer

Code Snippet


MachPanelService MPSvc = new MachPanelService();

       MPSvc.MPAuthenticationHeaderValue = MPHeader; 

ResponseArguments Args = null;

       ServiceActions action = new ServiceActions(); 

string Comments = string.Empty;

       //Select action as any of the following             

//action = ServiceActions.Cancel;Comments = "Cancel subscription via API";

       //OR                     

//action = ServiceActions.Suspend; Comments = "Suspend subscription via API";

       //OR                     

//action = ServiceActions.Resume; Comments = "Resume subscription via API";

       Args = MPSvc.UpdateSubscriptionStatus(HostingId, HostingTypeId, action, Comments, false); 
<
<








 









API Sample/Test Application

*Please refer to the link on top in references section.


Save Save Save