Before you can start using the client API you first need to enable API access. This needs to be done by logging into the client area, clicking on 'Hello, <NAME>', then 'Client API', then the 'API Status' tab and finally the 'Enable API' button.
Each API request should be directed to:
https://customer.ndchost.com/index.php
The client API accepts parameters using either POST or GET. We always recommend using POST!
The following parameters are always required when making a API request.
Below are a list of modules and it's corresponding functions.
client
Below shows how one could make a simple API request using curl to retrieve your current client details
curl https://customer.ndchost.com/whmcs/index.php \ -d m=clientapi \ -d apikey=supersecretkey \ -d apimodule=client \ -d apifunction=getdetails
<?PHP // Required Parameters $post['m'] = 'clientapi'; $post['apikey'] = 'supersecretkey'; $post['apimodule'] = 'client'; $post['apifunction'] = 'getdetails'; // Curl Init $ch = curl_init(); if($ch === false) die('Curl Error: curl_init failed'); // Curl Options curl_setopt($ch, CURLOPT_URL, 'https://customer.ndchost.com/whmcs/index.php' ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Curl Result $result = curl_exec($ch); if($result === false) die(curl_error($ch)); // Result Info $curlinfo = @curl_getinfo($ch); if($curlinfo['content_type'] != 'application/json') die("api response was not JSON\n"); // Decode JSON into an array $result = @json_decode($result, true); if(!is_array($result)) die("failed to decode JSON response\n"); // Print out result print_r($result);
{
"status":"success",
"message":"successfully retrieved client details",
"data":{
"id":"1",
"firstname":"Test",
"lastname":"Client",
"companyname":"",
"email":"testclient@domain.com",
"address1":"1001 Ave Pico",
"address2":"",
"city":"San Clemente",
"state":"Ca",
"postcode":"92673",
"country":"US",
"phonenumber":"123-456-7890",
"defaultgateway":"paypal",
"credit":"0.00",
"billingcid":"0",
"lastlogin":"2012-08-01 18:30:56",
"ip":"204.10.36.76",
"host":"staff.ndchost.com",
"status":"Active"
}
}