The Frustration that is KeNIC and its brilliant API

kenic_article_fullWorking with APIs is something that every developer gets used to over time. Be it PayPal, eNom, Namecheap, infobip or even PesaPal – there are a few things we expect when working with an API mainly a sandbox environment, proper documentation and possibly sample code.

The Sandbox environment is a developers playground – where one can refine their code for every scenario that the API or its users might bring up. Usually, it is based on a subdomain, sample keys, or something of the sort. The switch between Sandbox and Live is normally a simple switch of a url or change of API keys – and more often than not, once everything works in the sandbox, there is little or no reason for the application not to work in live.

Of late, I have a new appreciation of Sandbox environments – especially ones that work like they should. This new found appreciation is all thanks to KeNIC API.

KeNIC have a decent API for the services they offer. I must commend them on the implementation of the API because it works like a charm and enables efficient automation of essentially any services one would require regarding .ke domains. How to go about implementing this efficient automation is another story altogether.

Sandbox Environment

First off, kudos to the availability of a sandbox environment. I however have to throw a bad apple at KeNIC for having the test environment not be a duplication of the live environment. How hard can it be to implement a sandbox that mimics the live environment? Json returns are all wrong; the sandbox and live environments actually have different templates making it hard to locate stuff; some functions simply do not work despite all the commands being right (but they work on the live environment – thank God!).

Documentation

The worst bit about working with the KeNIC API – lack of proper documentation. No scratch that. I meant to say lack of any documentation.

A quick Google search for KeNIC API will return results to User Guide on how to implement the API in WHMCS. This is a line from said User Guide.

“Regularly, we provide new release for this module. Please ensure that you have downloaded the latest one. You can download the package here: Provide the URL that the Files will be located

I want to bring your attention to the bold  and italicized text. Now, all the versions out there for the file named Kenic WHMCS API_User Guide.doc (which I will not link here as its usefulness is quite limited) have this same ridiculous oversight and will not help you get the download link you require. This makes me wonder what they mean when they say and I quote “Regularly, we provide new release for this module” when one can’t even download the current release.

Good luck trying to find any documentation for the actual API.

Sample Code

Why has KeNIC only released (should you be able to find a download link) a sample of their API that only works with the proprietary and ioncube encrypted WHMCS? Yet their API is built to work off any platform? In other words, at the time of writing this – should you want to integrate with KeNIC and you are not running WHMCS – you are, for the most part, on your own.

On a positive note, they are actually quick to respond to emails, and will give you required phone support, should you call. I was also able to get some un-published code that helped with the implementation of the API. The only issue with communication with them is without proper documentation of the API, even they themselves cannot translate error codes that the API returns from time to time. This renders their very good communication skills useless due to lack of information.

Over the last two days or so, I have been slaving over that API and have been able to roughly document some ad-hoc ways to get it to work on any platform – not just WHMCS – and I will be putting my findings here very soon for one and all. Hopefully, this will spark them to properly document their API so that developers can build useful applications on top of them.

Watch this space for that promised ad-hoc documentation of their API.

Share

Leave a Reply