Feature Requests
Share ideas, discuss and vote on requests from other users in community
 

Customer API

Thomas shared this idea 4 years ago
Under Consideration

To further boost the flexibility of WHMCS it would be good to have a customer facing API. This would allow customers and often resellers to use the system of their choice to resell the services offered through WHMCS. The system they use doesn't necessarily have to be WHMCS although it would make sense to have some existing modules that can be given to customers to link up a different WHMCS installation to the customer account of the primary system.

I think that the customer API should be a feature that should be there anyway. The module(s) that link a different WHMCS installation to the primary system using that customer API can be a paid module as far as I'm concerned. A server and registrar module would be sufficient.

The way I see it this will both boost WHMCS' business as well as ours. The maths is easy.

Comments (23)

photo
1

Also ...this should be a great opportunity to integrate the reseller features of WHM into WHMCS :)

As per whmcs blog, whmcs should have better integration in a near future with WHM / cPanel.

photo
1

Would really like this as have someone wanting to develop login similar to banking app and token based password auth for subsequent logins and push notifications

photo
1

How can we spark some life in this?

I will take a first shot. This is how I see it. The must have commands would be:

  • AddContact
  • EditContact
  • DeleteContact
  • AddOrder (similar to AddOrder for admins)
  • ListProducts
  • GetService
  • ListServices
  • CancelService

I would like to clarify that when I use the word customer I am really talking about the customer. If I use the word consumer this would be the application that contacts WHMCS.

It all starts with a consumer being able to authenticate. A multi-factor solution is of course preferred. It should be separate from the username and password they use for normal authentication. For us it's not required to have multiple API users/keys per customer but I can imagine some companies would need this.

The next part is the ListProducts command. This would return a list of products that can be ordered. A consumer needs to understand which product ID's are available in order to pass them onto the AddOrder command. This command would be similar to what is provided to admins already but stripped from functionality such as noinvoice and price overrides.

ListServices, GetService and CancelService probably don't need much of an explanation. It may be useful to split these into Services and Domains though.

Managing contacts is important for orders that require contact details, domain registrations for example. For this an API consumer needs to be able to manage contacts.

I think it is up for debate if further domain management commands should be added right away. The foundation is more important than functionality for us. Once that is in place it should become easier to build new features.

In terms of technology a REST API would be preferred with basic CRUD-support for most (but not all, deleting an order makes no sense for example) commands. Swagger would be great as documentation must be hosted by yourself, not WHMCS. Being able to write your own API commands would be a could have feature for us, not a should or must have.

I hope this gives a better impression.