Helpdesk API

21 PracBill API endpoints for helpdesk. Base URL https://billing.pracbill.com.au/api.

Get all tickets for a customer

GET /{api_key}/helpdesk/customer/{cid}/tickets

Parameters

NameInTypeDescription
statusqueryintegerFilter by status
limitqueryintegerLimit results

Responses

  • 200 — Customer tickets retrieved successfully

Get a specific note

GET /{api_key}/helpdesk/note/{noteid}

Responses

  • 200 — Note retrieved successfully

Delete a note

POST /{api_key}/helpdesk/note/{noteid}/delete

Responses

  • 200 — Note deleted successfully

Update a note

POST /{api_key}/helpdesk/note/{noteid}/update

Request body

FieldTypeDescription
notestring
internalinteger
ignore_responseboolean

Responses

  • 200 — Note updated successfully

Create a new helpdesk ticket

POST /{api_key}/helpdesk/ticket/create

Request body

FieldTypeDescription
cid requiredinteger
subject requiredstring
bodystring
uidintegerAssigned user ID
priorityinteger1=low, 2=medium, 3=high, 4=critical
ostypestring
internalintegerInternal note flag (0 or 1)
contactsarray of object

Responses

  • 200 — Ticket created successfully

Get a specific helpdesk ticket with full details

GET /{api_key}/helpdesk/ticket/{htid}

Responses

  • 200 — Ticket retrieved successfully

Assign a ticket to a user

POST /{api_key}/helpdesk/ticket/{htid}/assign/{uid}

Responses

  • 200 — Ticket assigned successfully

Upload a single attachment to an existing helpdesk ticket. The request must be multipart/form-data with the binary in the `file` field; JSON or base64 bodies are not accepted. Files larger than 10MB are rejected. The new attachment is listed by the ticket detail endpoint and served by the attachment download endpoint.

POST /{api_key}/helpdesk/ticket/{htid}/attachment

Responses

  • 200 — Attachment stored successfully, or a JSON error describing why it was rejected

Download a single attachment belonging to a helpdesk ticket. The file content is base64 encoded in the JSON response. Files larger than 10MB are not served.

GET /{api_key}/helpdesk/ticket/{htid}/attachment/{rdid}

Responses

  • 200 — Attachment retrieved successfully, or a JSON error describing why it could not be served

Close a helpdesk ticket

POST /{api_key}/helpdesk/ticket/{htid}/close

Request body

FieldTypeDescription
notestringClosing note
uidintegerUser closing the ticket

Responses

  • 200 — Ticket closed successfully

Add a note to a ticket. Optionally stores base64 encoded file attachments against the ticket (up to 10, each at most 10MB decoded) and, with send_notification set, sends the standard helpdesk update email for the note with those files attached. Invalid attachment input is rejected before the note or any attachment is written.

POST /{api_key}/helpdesk/ticket/{htid}/note/add

Request body

FieldTypeDescription
note requiredstring
uidinteger
internalinteger0=customer visible, 1=internal only
ignore_responseboolean
send_notificationinteger1 to send the standard helpdesk update email for this note (attachments from this request included). Default 0: nothing is emailed. Internal notes/tickets keep the notifier's customer-email suppression.
attachmentsarray of objectFiles to attach to the ticket. Each is stored in the department's attacheddocs directory and listed on the ticket, exactly as a UI upload. Names must be plain file names (no path separators or control characters); content must be valid base64 decoding to 1..10485760 bytes.

Responses

  • 200 — Note added successfully

Get all notes for a ticket

GET /{api_key}/helpdesk/ticket/{htid}/notes

Responses

  • 200 — Notes retrieved successfully

Set ticket priority

POST /{api_key}/helpdesk/ticket/{htid}/priority/{priority}

Responses

  • 200 — Priority updated successfully

Reopen a closed helpdesk ticket

POST /{api_key}/helpdesk/ticket/{htid}/reopen

Request body

FieldTypeDescription
notestringReopening note
uidintegerUser reopening the ticket

Responses

  • 200 — Ticket reopened successfully

Update a helpdesk ticket

POST /{api_key}/helpdesk/ticket/{htid}/update

Request body

FieldTypeDescription
subjectstring
uidinteger
priorityinteger
statusinteger
ostypestring
cidinteger

Responses

  • 200 — Ticket updated successfully

Void a helpdesk ticket

POST /{api_key}/helpdesk/ticket/{htid}/void

Request body

FieldTypeDescription
notestringVoid reason
uidintegerUser voiding the ticket

Responses

  • 200 — Ticket voided successfully

Get paginated list of helpdesk tickets with filtering

GET /{api_key}/helpdesk/tickets

Parameters

NameInTypeDescription
statusqueryintegerFilter by status (0=open, 1=closed, 2=void)
cidqueryintegerFilter by customer ID
uidqueryintegerFilter by assigned user ID
priorityqueryintegerFilter by priority (1=low, 2=medium, 3=high, 4=critical)
searchquerystringSearch in subject and company
limitqueryintegerRecords per page (default: 20)

Responses

  • 200 — Tickets retrieved successfully

Get all outstanding (open) tickets

GET /{api_key}/helpdesk/tickets/outstanding

Responses

  • 200 — Outstanding tickets retrieved successfully

Get outstanding tickets for a specific user

GET /{api_key}/helpdesk/tickets/outstanding/{uid}

Responses

  • 200 — Outstanding tickets retrieved successfully

Get paginated list of helpdesk tickets

GET /{api_key}/helpdesk/tickets/page/{page_number}

Responses

  • 200 — Tickets retrieved successfully

Search helpdesk tickets

POST /{api_key}/helpdesk/tickets/search

Request body

FieldTypeDescription
query requiredstringSearch term
statusinteger
limitinteger

Responses

  • 200 — Search results retrieved successfully

← All API groups