Simple and PSR7 compatible WHMCS API Client which is inspired by GitLabPHP/Client.
$ composer require "darthsoup/php-whmcs-api" "guzzlehttp/guzzle:^7.5" "http-interop/http-factory-guzzle:^1.2"
This package requires:
- PHP ^7.4 | ^8.0
- PHP extensions
curl
,json
andmbstring
Basic initialisation of the Client.
<?php
require_once __DIR__ . '/vendor/autoload.php';
$client = new \DarthSoup\WhmcsApi\Client();
// Auth Credentials with identifier and secret
$client->authenticate('your_identifier', 'your_secret', \DarthSoup\WhmcsApi\Client::AUTH_API_CREDENTIALS);
// Login Credentials with Username and Password (without md5)
$client->authenticate('your_username', 'your_password', \DarthSoup\WhmcsApi\Client::AUTH_LOGIN_CREDENTIALS);
// Set the URL to your whmcs instance
$client->url('http://<your_whmcs_instance_url>');
In case your instance has an additional $api_access_key
configured in your whmcs configuration.php
,
you can also add it by using accessKey
in the init process.
$client->accessKey('my_access_key');
Name | Status |
---|---|
Addons | Complete |
Affiliates | Complete |
Authentication | Complete |
Billing | Complete |
Client | Complete |
Domains | Complete |
Orders | Complete |
Products | Complete |
Servers | Complete |
Service | Complete |
Support | Incomplete |
System | Complete |
Ticket | Incomplete |
Users | Complete |
$client->client()->getClients(['search' => 'firstname']);
$client->orders()->getOrders();
If your WHMCS instance contains custom API routes, you can also call them without extending the code.
$parameters = ['foo' => 'bar'];
$client->custom()->yourCustomApiName($parameters);
There are some examples in the /examples
folder if reading documentation is not your cup of tea.
If you are using this client, please refer to the documentation on the WHMCS Developer page. The API documentation is in some places very incomplete and in some cases questionably documented.
Please open an issue in github
This package is released under the MIT License. See the bundled LICENSE file for details.