Creates a new ticket together with its opening post. The request body is flat JSON (not wrapped in data.attributes).
Request body fields:
catid (integer, required)ID of the ATS category in which the ticket will be created. The API user must have core.create permission for this category.
title (string, required)Ticket subject. HTML tags are stripped before saving.
content_html (string, required)HTML body of the opening post (the first message in the ticket). This field populates the initial reply record; it is not stored directly on the ticket row.
priority (integer, optional)Ticket priority: 0 = High, 5 = Normal, 10 = Low. Defaults to 5 when omitted. If the category has a default_priority configured it overrides this value.
public (integer, optional)1 to make the ticket publicly visible; 0 for private. Defaults to the category setting.
status (string, optional)Initial ticket status. Defaults to O (Open) when omitted.
assigned_to (integer, optional)Joomla user ID of the staff member to assign the ticket to. Defaults to 0 (unassigned).
language (string, optional)Language tag for the ticket (e.g. en-GB). Defaults to *.
tags (array of integers, optional)Array of Joomla tag IDs to attach to the ticket.
enabled (integer, optional)Publication state: 1 = published (default), 0 = unpublished. May only be set by a user with core.edit.state permission on the category.
created_by (integer, optional)Override the ticket author. Only accepted when the API user has the core.admin permission on com_ats; otherwise the field is silently ignored.
com_fields (object, optional)Key–value map of Joomla custom field values for this ticket, where each key is the field name and each value is the field value. Alternatively, custom field values may be sent as top-level keys using the field name directly; the API will move them into the com_fields sub-object automatically.
The fields created, modified, modified_by, and email_uid are always ignored when sent by the caller and are set automatically by the server. The origin field is always forced to web.
Example request:
POST /api/index.php/v1/ats/ticketsAuthorization: Bearer <token>Accept: application/vnd.api+jsonContent-Type: application/json{ "catid": 13, "title": "Cannot log in after password reset", "content_html": "<p>Since I reset my password I cannot log in anymore. The error says: invalid credentials.</p>", "priority": 10, "public": 0}HTTP codes:
Ticket created successfully. Returns the newly created ticket resource.
A required field is missing or contains an invalid value. Check the errors array in the response body.
{ "errors": [ { "title": "Field required: Reply text", "detail": "", "status": "400" } ]}The API user is not an ATS manager or does not have core.create permission on the specified category.