Skip to content
Last updated

AddTicketReply

Add a reply to a ticket by Ticket ID.

Request Parameters

ParameterTypeDescriptionRequired
actionstring"AddTicketReply"Required
ticketidintThe id of the ticket in the database. $ticketid is requiredRequired
messagestringThe content of the ticket replyRequired
markdownboolShould markdown be used on the ticket reply outputOptional
clientidintPass a clientid to associate the ticket reply with a specific clientOptional
contactidintPass a contactid to associate the ticket reply with a specific contact belonging to $clientidOptional
adminusernamestringThe admin username to associate the ticket reply withOptional
namestringThe name to associate with the ticket reply if not an admin or client responseOptional
emailstringThe email to associate with the ticket reply if not an admin or client responseOptional
statusstringThe 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 commandOptional
noemailboolSet to true to stop the ticket reply email being sentOptional
customfieldsstringA base64 encoded array of the custom fields to updateOptional
attachmentsarrayOptional 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
createdstringThe date and time the ticket reply will show as sent. Format: ISO8601 or YYYY-MM-DD HH:mm:ssOptional

Response Parameters

ParameterTypeDescription
resultstringThe 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

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