CreateInvoice
Create an invoice using the provided parameters.
Request Parameters
Parameter |
Type |
Description |
Required |
action |
string |
“CreateInvoice” |
Required |
userid |
int |
The ID of the client to create the invoice for. |
Required |
status |
string |
The status of the invoice being created. Defaults to unpaid . |
Optional |
draft |
bool |
Whether to create the invoice in draft status. (You do not need to pass $status with this.) |
Optional |
sendinvoice |
bool |
Whether to send the Invoice Created Email to the client. (You can’t use this with $draft .) |
Optional |
paymentmethod |
string |
The payment method of the created invoice, in system format. |
Optional |
taxrate |
float |
The first-level tax rate to apply to the invoice to override the system default. |
Optional |
taxrate2 |
float |
The second-level tax rate to apply to the invoice to override the system default. |
Optional |
date |
string |
The creation date that the invoice should display. Format: YYYY-mm-dd |
Optional |
duedate |
string |
The due date of the newly-created invoice. Format: YYYY-mm-dd |
Optional |
notes |
string |
The notes to appear on the created invoice. |
Optional |
itemdescriptionx |
string |
The line item’s description. X is an integer to add multiple invoice items. |
Optional |
itemamountx |
float |
The line item’s amount. |
Optional |
itemtaxedx |
bool |
The line item’s taxed value. |
Optional |
autoapplycredit |
bool |
Whether to automatically apply credit from the client account to the invoice. |
Optional |
Response Parameters
Parameter |
Type |
Description |
result |
string |
The result of the operation: success or error |
invoiceid |
int |
The ID of the newly-created invoice. |
status |
string |
The status of the newly-created invoice. |
Example Request (CURL)
$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' => 'CreateInvoice',
// See https://developers.whmcs.com/api/authentication
'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
'password' => 'SECRET_OR_HASHED_PASSWORD',
'userid' => '1',
'status' => 'Unpaid',
'sendinvoice' => '1',
'paymentmethod' => 'mailin',
'taxrate' => '10.00',
'date' => '2016-01-01',
'duedate' => '2016-01-08',
'itemdescription1' => 'Sample Invoice Item',
'itemamount1' => '15.95',
'itemtaxed1' => '0',
'itemdescription2' => 'Sample Second Invoice Item',
'itemamount2' => '1.00',
'itemtaxed2' => '1',
'autoapplycredit' => '0',
'responsetype' => 'json',
)
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
Example Request (Local API)
$command = 'CreateInvoice';
$postData = array(
'userid' => '1',
'status' => 'Unpaid',
'sendinvoice' => '1',
'paymentmethod' => 'mailin',
'taxrate' => '10.00',
'date' => '2016-01-01',
'duedate' => '2016-01-08',
'itemdescription1' => 'Sample Invoice Item',
'itemamount1' => '15.95',
'itemtaxed1' => '0',
'itemdescription2' => 'Sample Second Invoice Item',
'itemamount2' => '1.00',
'itemtaxed2' => '1',
'autoapplycredit' => '0',
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later
$results = localAPI($command, $postData, $adminUsername);
print_r($results);
Example Response JSON
{
"result": "success",
"invoiceid": "1",
"status": "Unpaid"
}
Error Responses
Possible error condition responses include:
- Client ID Not Found
- Cannot create and send a draft invoice in a single API request. Please create and send separately.
Version History
Version |
Changelog |
1.0 |
Initial Version |