+++ title = "AddBillableItem" toc = true +++
Adds a Billable Item
| Parameter | Type | Description | Required |
|---|---|---|---|
| action | string | "AddBillableItem" | Required |
| clientid | int | The client to add the item to. | Required |
| description | string | The description of the Billable Item. This will appear on the invoice. | Required |
| amount | float | The total amount to invoice for. | Required |
| unit | string | Either 'hours' or 'quantity'. | Required |
| quantity | float | The number of units the billable items represents. Defaults to 0. | Optional |
| invoiceaction | string | One of 'noinvoice', 'nextcron', 'nextinvoice', 'duedate', or 'recur'. | Optional |
| recur | int | When $invoiceaction=recur. The frequency of the recurrence. |
Optional |
| recurcycle | string | How often to recur the Billable Item. Days, Weeks, Months or Years. | Optional |
| recurfor | int | How many times the Billable Item should create an invoice. | Optional |
| duedate | string | Date the invoice should be due (only required for due date and recur invoice actions). YYYY-mm-dd | Optional |
| Parameter | Type | Description |
|---|---|---|
| result | string | The result of the operation: success or error |
| billableid | int | The ID of the newly created billable item. |
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
'action' => 'AddBillableItem',
// See https://developers.whmcs.com/api/authentication
'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
'password' => 'SECRET_OR_HASHED_PASSWORD',
'clientid' => '1',
'description' => 'This is a billable item',
'amount' => '10.00',
'invoiceaction' => 'recur',
'recur' => '1',
'recurcycle' => 'Months',
'recurfor' => '12',
'duedate' => '2021-01-01',
'responsetype' => 'json',
)
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
$command = 'AddBillableItem';
$postData = array(
'clientid' => '1',
'description' => 'This is a billable item',
'amount' => '10.00',
'invoiceaction' => 'recur',
'recur' => '1',
'recurcycle' => 'Months',
'recurfor' => '12',
'duedate' => '2021-01-01',
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later
$results = localAPI($command, $postData, $adminUsername);
print_r($results);
{
"status": "success",
"billableid": 1
}
Possible error condition responses include:
- Client ID not Found
- You must provide a description
- Invalid Invoice Action
- Recurring must have a unit, cycle and limit
- Due date is required
- Invalid Unit, please specify either 'hours' or 'quantity'
- Invalid Date Format - Expected: 'YYYY-mm-dd'
| Version | Changelog |
|---|---|
| 1.0 | Initial Version |
| 8.2 | Renamed 'hours' parameter to quantity. Now Required |
| 8.2 | Added unit parameter. |