AddTicketReply

Add a reply to a ticket by Ticket ID.

Request Parameters

Parameter Type Description Required
action string “AddTicketReply” Required
ticketid int The id of the ticket in the database. $ticketid is required Required
message string The content of the ticket reply Required
markdown bool Should markdown be used on the ticket reply output Optional
clientid int Pass a clientid to associate the ticket reply with a specific client Optional
contactid int Pass a contactid to associate the ticket reply with a specific contact belonging to $clientid Optional
adminusername string The admin username to associate the ticket reply with Optional
name string The name to associate with the ticket reply if not an admin or client response Optional
email string The email to associate with the ticket reply if not an admin or client response Optional
status string The status to set on the ticket after the reply is made if the default status on admin/client response is not required. See GetSupportStatuses API command Optional
noemail bool Set to true to stop the ticket reply email being sent Optional
customfields string A base64 encoded array of the custom fields to update Optional
attachments array Optional base64 json encoded array of file attachments. Can be the direct output of a multipart-form-data form submission ($_FILES superglobal in PHP) or an array of arrays consisting of both a filename and data keys (see example below). Optional
created string The date and time the ticket reply will show as sent. Format: ISO8601 or YYYY-MM-DD HH:mm:ss Optional

Response Parameters

Parameter Type Description
result string The result of the operation: success or error

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' => 'AddTicketReply',
            // See https://developers.whmcs.com/api/authentication
            'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
            'password' => 'SECRET_OR_HASHED_PASSWORD',
            'ticketid' => '1',
            'message' => 'This is a sample ticket reply',
            'clientid' => '1',
            'customfields' => base64_encode(serialize(array("1"=>"Google"))),
            'markdown' => true,
            'attachments' => base64_encode(json_encode([['name' => 'sample_text_file.txt', 'data' => base64_encode('This is a sample text file contents')]])),
            'responsetype' => 'json',
        )
    )
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

Example Request (Local API)

$command = 'AddTicketReply';
$postData = array(
    'ticketid' => '1',
    'message' => 'This is a sample ticket reply',
    'clientid' => '1',
    'customfields' => base64_encode(serialize(array("1"=>"Google"))),
    'markdown' => true,
    'attachments' => base64_encode(json_encode([['name' => 'sample_text_file.txt', 'data' => base64_encode('This is a sample text file contents')]])),
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later

$results = localAPI($command, $postData, $adminUsername);
print_r($results);

Example Response JSON

{
    "result": "success"
}

Error Responses

Possible error condition responses include:

  • Ticket ID not found
  • Client ID Not Found
  • Contact ID Not Found
  • Name and email address are required if not a client
  • Message is required
  • Email Address Invalid
  • Invalid Ticket Status
  • Invalid Date Format
  • Reply creation date cannot be in the future

Version History

Version Changelog
1.0 Initial Version
7.5 Added support for attachments
8.0 Added support for ticket reply date and time