Ticket Configuration Endpoints
Ticket Configuration
This section covers the configuration endpoints for ticket types, statuses, outcomes, areas, templates, and categories in HaloPSA.
TOutcome
Ticket outcomes define possible resolution states (e.g., "Fixed", "Workaround Applied"). They control workflow transitions, SLA holds, email notifications, and child ticket creation.
GET /Outcome
Summary: List of TOutcome
Returns multiple TOutcome records. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
access_control_level | integer | Filter by access control level |
debug | boolean | Include debug information |
excludesystemactions | boolean | Exclude system-generated actions |
quick_only | boolean | Return only quick outcomes |
showhidden | boolean | Include hidden outcomes |
showsystemactions | string | Show system actions |
slastate | integer | Filter by SLA state |
status | integer | Filter by status |
supplier_id | integer | Filter by supplier |
supplier_status | integer | Filter by supplier status |
tickettype_id | integer | Filter by ticket type |
workflow_id | integer | Filter by workflow |
workflow_step | integer | Filter by workflow step |
POST /Outcome
Creates or updates TOutcome records. Request body: array of TOutcome objects.
GET /Outcome/{id}
Summary: Get one TOutcome
Returns a single TOutcome instance by ID. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Outcome ID |
action_id | integer | Filter by action |
anon_ticketid | integer | Anonymous ticket ID |
contract_id | integer | Filter by contract |
debug | boolean | Include debug info |
includedetails | boolean | Include related detail objects |
invoice_id | integer | Filter by invoice |
matched_kb_client_id | integer | Matched KB client ID |
matched_kbid | integer | Matched KB article ID |
override_user_id | integer | Override user for context |
purchaseorder_id | integer | Filter by purchase order |
quotation_id | integer | Filter by quotation |
salesorder_id | integer | Filter by sales order |
selected_supplier_id | integer | Selected supplier |
ticket_id | integer | Filter by ticket |
token | string | Auth token |
DELETE /Outcome/{id}
Deletes a TOutcome by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Outcome ID |
TOutcome Schema — Key Fields
| Field | Type | Description |
|---|---|---|
id | integer | Outcome ID |
outcome | string | Outcome name/label |
buttonname | string | Label shown on action button |
labellong | string | Long description label |
colour | string | Display colour |
sequence | integer | Display sort order |
hidden | boolean | Whether hidden from normal views |
newstatus | integer | Status to set when this outcome is used |
sendemail | integer | Email sending behaviour |
sendsms | integer | SMS sending behaviour |
slaholdischecked | boolean | Whether SLA hold is enabled |
slareleaseischecked | boolean | Whether SLA release is enabled |
emailtemplate_id | integer | Email template to use |
child_template_id | integer | Template for created child ticket |
createchildticketortemplate | integer | Whether to create child ticket or use template |
child_ticket_type_id | integer | Ticket type for created child |
defaultmanhrs | number | Default man-hours to log |
defaultnonbill | number | Default non-billable hours |
chargerate | integer | Default charge rate |
approval_process_id | integer | Approval process to trigger |
workflow_id | integer | Workflow to apply |
workflow_step_id | integer | Workflow step to transition to |
mustaddnote | boolean | Require a note before completing |
mustassign | boolean | Require assignment before completing |
hidefromuser | boolean | Hide from end-user portal |
requesttype | integer | Associated request type |
tickettypes | array | Ticket types this outcome applies to |
fields | array | Custom fields shown for this outcome |
access_control_level | integer | Access control level |
TStatus
Ticket statuses represent the lifecycle stages of a ticket (e.g., "Open", "In Progress", "Closed").
GET /Status
Summary: List of TStatus
Returns multiple TStatus records. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
domain | string | Filter by domain (reqs, opps, prjs) |
excludeclosed | boolean | Exclude closed statuses |
excludepending | boolean | Exclude pending statuses |
outcome_id | integer | Filter by outcome |
showall | boolean | Show all statuses |
showcounts | boolean | Include ticket counts per status |
showquickchangeoptions | boolean | Only show statuses available for quick change |
split_closed | boolean | Split closed statuses separately |
ticket_id | integer | Filter by ticket context |
ticket_id_firstchild | integer | First child ticket context |
ticketarea_id | integer | Filter by ticket area |
tickettype_group_id | integer | Filter by ticket type group |
tickettype_id | integer | Filter by ticket type |
tickettype_ids | string | Comma-separated list of ticket type IDs |
type | string | Filter by status type |
view_id | integer | Filter by view |
POST /Status
Creates or updates TStatus records. Request body: array of TStatus objects.
GET /Status/{id}
Summary: Get one TStatus
Returns a single TStatus instance by ID. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Status ID |
includedetails | boolean | Include related detail objects |
DELETE /Status/{id}
Deletes a TStatus by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Status ID |
TStatus Schema — Key Fields
| Field | Type | Description |
|---|---|---|
id | integer | Status ID |
name | string | Status display name |
shortname | string | Short name/abbreviation |
type | integer | Status type (open/closed/pending etc.) |
sequence | integer | Sort order |
colour | string | Display colour |
slaaction | string | SLA action when ticket enters this status |
ticket_count | integer | Count of tickets in this status |
showonquickchange | boolean | Show in quick-change dropdown |
timeuntilloffhold | number | Hours until ticket comes off hold |
statuschangeto | integer | Auto-change to this status after a period |
statuschangetofreq | number | Frequency (hours) for auto status change |
statusnochangehours | number | Hours of no-change before escalation |
nochangetemplate | integer | Email template for no-change notification |
statusemailid | integer | Email template for status change notification |
statusemailfreqdays | integer | Days between recurring status emails |
notifystatuschange | integer | Who to notify on status change |
dontsendslareminders | boolean | Suppress SLA reminders in this status |
slaignorerelease | boolean | Ignore SLA release in this status |
includeinloadbalance | boolean | Include in agent load balancing |
tickettypes | array | Ticket types this status applies to |
outcomes | array | Outcomes associated with this status |
useworkinghours | integer | Whether to use working hours for timers |
RequestType
Ticket types (also called Request Types) define the category of work: incidents, service requests, changes, problems, projects, etc.
GET /TicketType
Summary: List of RequestType
Returns multiple RequestType records. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
access_control_level | integer | Filter by access control level |
anonanduser | boolean | Include types visible to anonymous users |
can_create_only | boolean | Only types that can be created |
can_edit_only | boolean | Only types that can be edited |
canagentsselect | boolean | Only types agents can select |
canusercreate | boolean | Only types end-users can create |
client_id | integer | Filter by client |
domain | string | Filter by domain (reqs, opps, prjs) |
group_id | integer | Filter by ticket type group |
include_current | integer | Include this ticket type ID in results |
include_mandatory_field_check | boolean | Include mandatory field validation info |
isquicktimedropdown | boolean | Only types shown in quick time dropdown |
itil_type | integer | Filter by ITIL type |
outcome_id | integer | Filter by outcome |
searchtickets | string | Filter types based on ticket search |
showall | boolean | Admin override — show all ticket types |
showcounts | boolean | Include ticket counts in response |
showinactive | boolean | Include inactive ticket types |
sprints_only | boolean | Only sprint ticket types |
ticketarea_id | integer | For showcounts — ticket area filter |
user_only | boolean | Only types visible to the current user |
view_id | integer | For showcounts — ticket view filter |
POST /TicketType
Creates or updates RequestType records. Request body: array of RequestType objects.
GET /TicketType/{id}
Summary: Get one RequestType
Returns a single RequestType instance by ID. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Ticket type ID |
can_create_only | boolean | Filter to statuses that can be created |
can_edit_only | boolean | Filter to statuses that can be edited |
debug | boolean | Include debug information |
includeconfig | boolean | Include configuration data |
includedetails | boolean | Include extra detail objects |
includekbinfo | boolean | Include knowledge base information |
includeteamrestrictions | boolean | Include team restriction data |
isdetailscreen | boolean | Context: detail screen view |
isnewticket | boolean | Context: new ticket creation |
survey_fields | boolean | Include survey field configuration |
ticket_id | integer | Filter by specific ticket context |
DELETE /TicketType/{id}
Deletes a RequestType by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Ticket type ID |
RequestType Schema — Key Fields
| Field | Type | Description |
|---|---|---|
id | integer | Ticket type ID |
name | string | Display name |
use | string | Usage description |
sequence | integer | Sort order |
group_id | integer | Ticket type group ID |
itilrequesttype | integer | ITIL type (incident, change, problem, etc.) |
cancreate | boolean | Whether tickets can be created of this type |
agentscanselect | boolean | Whether agents can select this type |
enduserscanselect | boolean | Whether end-users can select this type |
anonymouscanselect | boolean | Whether anonymous users can select |
allow_all_clients | boolean | Available to all clients |
initial_status | integer | Default status on creation |
default_sla | integer | Default SLA ID |
workflow_id | integer | Default workflow |
statusafteruserupdate | integer | Status set after end-user update |
statusaftertechupdate | integer | Status set after agent/tech update |
statusaftersupplierupdate | integer | Status set after supplier update |
statusafterapproverupdate | integer | Status set after approver update |
reopenedstatus | integer | Status when a closed ticket is reopened |
portalcanreopen | boolean | Whether portal users can reopen tickets |
closedrequestswithupdates | integer | Behaviour for closed ticket updates |
closeduserupdatehours | number | Hours window for closed ticket user updates |
autoCloseHours | integer | Hours until auto-close |
dontusependingclosure | boolean | Skip pending closure state |
dontsendslareminders | boolean | Suppress SLA reminder emails |
acknowledgementtemplate | integer | Acknowledgement email template ID |
hasmandatorytechfields | boolean | Has mandatory agent fields |
hasmandatoryuserfields | boolean | Has mandatory user-facing fields |
allowattachments | boolean | Allow file attachments |