The WHMCS API provides an interface to allow you to access and perform actions in WHMCS both from external applications and scripts as well as internal modules and addons.
The internal API can be used from any file within WHMCS - be it a template, action hook, addon module, anything. It allows you to call any of the API functions via a local function call to avoid needing to use CURL. For more information on this, please refer to the Internal API Page
The External API supports 3 response types: Name/Value Pairs (NVP), XML & JSON (V4.5 or later)
Most calls support all response types, but certain data retrieval calls will only work under either XML or JSON due to the multi-level depth nature of their responses.
API User Setup
When creating an admin user for API use, only the API permission is required to be able to access & use all the API functions.
You must also setup the IP(s) you will be connecting from in General Settings > Security. Failure to do this will result in an "Invalid IP xx.xxx.xxx.xx" response from the API.
If IP Restricted access isn't suitable for what you're using the API for, then an alternative solution using an access key is available. For details about how to use this alternative option instead, see the API Access Keys Page.
With regards to the passwords and hashes, these are case sensitive, and should be passed accordingly.
We have fully working PHP code samples demonstrating how you can connect to and interpret each of the supported response types of the WHMCS API in the pages below:
An alphabetical list of API Functions is available at API:Functions(A-Z).
The API currently supports the following functions.
|Module Change Package||Module Change Password||Module Create|
|Module Suspend||Module Terminate||Module Unsuspend|
|Accept Order||Add Order||Cancel Order|
|Delete Order||Fraud Order||Get Orders|
|Get Order Statuses||Get Products||Get Promotions|
|Order Fraud Check||Pending Order|
|Add Billable Item||Add Credit||Add Invoice Payment|
|Add Transaction||Apply Credit||Capture Payment|
|Create Invoice||Generate Invoice(s)||Get Invoices|
|Get Invoice||Get Payment Methods||Get Transactions|
|Update Invoice||Update Transaction|
|Accept Quote||Create Quote||Delete Quote|
|Get Quotes||Send Quote||Update Quote|
|Create OAuth Credential||Delete OAuth Credential||List OAuth Credentials|
|Update OAuth Credential|
|Add Project Message||Add Project Task||Create Project|
|Delete Project Task||End Task Timer||Get Project|
|Get Projects||Start Task Timer||Update Project|
|Update Project Task|
Need something else?
The API is being continually developed and added to as features are requested. If you have a need for a feature that is not currently available, feel free to create a feature request and we'll see what we can do.